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 <hswee...@visionengravers.com>
>>>> Cc: Ian Abbott <abbo...@mev.co.uk>
>>>> Cc: Greg Kroah-Hartman <gre...@linuxfoundation.org>
>>>> ---
>>>>    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
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel

Reply via email to