RE: [PATCH 14/22] staging: comedi: adv_pci1710: support external analog output reference

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Friday, November 06, 2015 10:30 AM, Ian Abbott wrote:
> On 05/11/15 19:03, Hartley Sweeten wrote:
>> On Thursday, November 05, 2015 5:43 AM, Ian Abbott wrote:
>>> On 04/11/15 16:55, H Hartley Sweeten wrote:
>>>> The analog outputs can use an external reference to create the D/A output
>>>> range. Add an entry to the comedi_lrange table for it and modify the
>>>> (*insn_write) to support it.
>>>>
>>>> Signed-off-by: H Hartley Sweeten <hsweeten@xxxxxxxxxxxxxxxxxxx>
>>>> Cc: Ian Abbott <abbotti@xxxxxxxxx>
>>>> Cc: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
>>>> ---
>>>>    drivers/staging/comedi/drivers/adv_pci1710.c | 13 ++++++++-----
>>>>    1 file changed, 8 insertions(+), 5 deletions(-)
>>>>
>>>> diff --git a/drivers/staging/comedi/drivers/adv_pci1710.c b/drivers/staging/comedi/drivers/adv_pci1710.c
>>>> index 86ed288..339130b 100644
>>>> --- a/drivers/staging/comedi/drivers/adv_pci1710.c
>>>> +++ b/drivers/staging/comedi/drivers/adv_pci1710.c
>>>> @@ -65,6 +65,8 @@
>>>>    #define PCI171X_CLRFIFO_REG	0x09	/* W:   clear FIFO */
>>>>    #define PCI171X_DA_REG(x)	(0x0a + ((x) * 2)) /* W:   D/A register */
>>>>    #define PCI171X_DAREF_REG	0x0e	/* W:   D/A reference control */
>>>> +#define PCI171X_DAREF(c, r)	(((r) & 0x3) << ((c) * 2))
>>>> +#define PCI171X_DAREF_MASK(c)	PCI171X_DAREF((c), 0x3)
>>>>    #define PCI171X_DI_REG		0x10	/* R:   digital inputs */
>>>>    #define PCI171X_DO_REG		0x10	/* W:   digital outputs */
>>>>    #define PCI171X_TIMER_BASE	0x18	/* R/W: 8254 timer */
>>>> @@ -111,9 +113,10 @@ static const struct comedi_lrange pci1711_ai_range = {
>>>>    };
>>>>
>>>>    static const struct comedi_lrange pci171x_ao_range = {
>>>> -	2, {
>>>> -		UNI_RANGE(5),
>>>> -		UNI_RANGE(10)
>>>> +	3, {
>>>> +		UNI_RANGE(5),		/* internal -5V ref */
>>>> +		UNI_RANGE(10),		/* internal -10V ref */
>>>> +		RANGE_ext(0, 1)		/* external Vref (+/-10V max) */
>>>
>>> Minor niggle:
>>>
>>> The comment for the external Vref is slightly confusing.  The manual I
>>> have says:
>>>
>>> By inputting an external reference voltage: -xV , where |x| <= 10,
>>> you will get a output voltage range: 0 to xV.
>>>
>>> So the external reference voltage is never positive.  How about this?:
>>   >
>>> 	/* external -xV ref, |x| <= 10 */
>>
>> Again it appears we have different manuals.
>
> Indeed!

Ian,

The link you referenced for the manual in another email also has this manual:
http://downloadt.advantech.com/ProductFile/Downloadfile1/1-11P65IR/PCI-1710U.pdf
It does not include the register map but has this information about the analog
outputs:

Page 26:
The maximum reference input voltage is +/-10V and maximum output scaling
Is +/-10V.

Page 32:
Output Range	Using External Reference	0 ~ +xV @ -xV (-10 <= x <= 10)

Based on that, are you ok with the RANGE_ext(0,1) option?

Thanks,
Hartley


_______________________________________________
devel mailing list
devel@xxxxxxxxxxxxxxxxxxxxxx
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel



[Index of Archives]     [Linux Driver Backports]     [DMA Engine]     [Linux GPIO]     [Linux SPI]     [Video for Linux]     [Linux USB Devel]     [Linux Coverity]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]
  Powered by Linux