AIN4 erroneous

On two different BBB’s (latest revision) I’ve noticed strange behavior of AIN4. I have a TMP36 (analog temperature sensor) running on 3V3. Vout measures 712 mV ((712 - 500) / 10 C = 21 degree C). If I attach Vout to any AIN* except AIN4, I can use the BB and read out 712. So the ADC is working, as is the TMP36 sensor.

As soon as I connect Vout to AIN4, the voltage drops from 712 to 673 mV and slowly decreasing. Why is this? Is another part of the BBB already using AIN4 and is it reserved?

No other capes or anything else connected to P8/P9.

Make sure you have the touch-screen (ADC) driver configured properly.

There are internal FETs that drive voltage onto various AIN lines in
order to sense resistive touch screens with no other external
components. If the driver is turning any of these FETs on, they could
be working against your external temperature sensor, which may be slowly
decreasing it's output voltage as the output drive transistors heat up.

See the Technical Reference Manual for details on the drive FETs hooked
to the AIN pins..

On two different BBB’s (latest revision) I’ve noticed strange behavior of
AIN4. I have a TMP36 (analog temperature sensor) running on 3V3. Vout
measures 712 mV ((712 - 500) / 10 C = 21 degree C). If I attach Vout to any
AIN* except AIN4, I can use the BB and read out 712. So the ADC is working,
as is the TMP36 sensor.

As soon as I connect Vout to AIN4, the voltage drops from 712 to 673 mV and
slowly decreasing. Why is this? Is another part of the BBB already using
AIN4 and is it reserved?

No other capes or anything else connected to P8/P9.

Make sure you have the touch-screen (ADC) driver configured properly.

There are internal FETs that drive voltage onto various AIN lines in
order to sense resistive touch screens with no other external
components. If the driver is turning any of these FETs on, they could
be working against your external temperature sensor, which may be slowly
decreasing it’s output voltage as the output drive transistors heat up.

Sounds perfectly reasonable to me. Thanks for the explanation.

See the Technical Reference Manual for details on the drive FETs hooked
to the AIN pins…

I tried to find info on how to program (disable) the internal FETs, but nothing useful so far. I did found http://processors.wiki.ti.com/index.php/AM335x_ADC_Driver’s_Guide: good info on ADC from TI, but no mentioning of the internal FETs.

So I have no clue how to disable the FET on AIN4. The funny thing is, the BeagleBone’s I tested on are fresh unmodified stock BB’s. Only the cape-bone-iio dts loaded. Then AIN 0-3, 5-7 work okay but AIN 4 pollutes my sensor by feeding it some voltage. So I just use another AIN as a work around.

Mark

On two different BBB’s (latest revision) I’ve noticed strange behavior of
AIN4. I have a TMP36 (analog temperature sensor) running on 3V3. Vout
measures 712 mV ((712 - 500) / 10 C = 21 degree C). If I attach Vout to any
AIN* except AIN4, I can use the BB and read out 712. So the ADC is working,
as is the TMP36 sensor.

As soon as I connect Vout to AIN4, the voltage drops from 712 to 673 mV and
slowly decreasing. Why is this? Is another part of the BBB already using
AIN4 and is it reserved?

No other capes or anything else connected to P8/P9.

Make sure you have the touch-screen (ADC) driver configured properly.

There are internal FETs that drive voltage onto various AIN lines in
order to sense resistive touch screens with no other external
components. If the driver is turning any of these FETs on, they could
be working against your external temperature sensor, which may be slowly
decreasing it’s output voltage as the output drive transistors heat up.

Sounds perfectly reasonable to me. Thanks for the explanation.

See the Technical Reference Manual for details on the drive FETs hooked
to the AIN pins…

I tried to find info on how to program (disable) the internal FETs, but nothing useful so far. I did found http://processors.wiki.ti.com/index.php/AM335x_ADC_Driver’s_Guide: good info on ADC from TI, but no mentioning of the internal FETs.

So I have no clue how to disable the FET on AIN4. The funny thing is, the BeagleBone’s I tested on are fresh unmodified stock BB’s. Only the cape-bone-iio dts loaded. Then AIN 0-3, 5-7 work okay but AIN 4 pollutes my sensor by feeding it some voltage. So I just use another AIN as a work around.

Look at your boot logs and see if there is any reference to TSC or TouchScreen. Also, in your kernel configuration, is “TI Touchscreen Interface” selected? Look at your kernel .config and see if CONFIG_TOUCHSCREEN_TI_AM335X_TSC is enabled. The touchscreen driver is typically enabled via the device tree “arch/arm/boot/dts/am33xx.dtsi”.

Hope this helps.

Regards,
John