10V to 1.8V level translation for ADC reading

Hi,

I will need to read a 10VDC signal from the pressure transducer with
the BeagleBone onboard ADC's. What is the proper way of transforming
the 10V to 1.8V? Would a simple resistor bridge work? Or will that
introduce noise and variability?

Thanks,
Bastiaan.

I'm using a simple voltage divider to measure input voltage to a
regulator (up to just about 20v) and it seems fine. The only thing
that caught me off guard for a while is that (obviously, in
retrospect) small differences in ground potential make a significant
difference once you do the multiplication to get back to your full
scale reading. I was a bit perplexed until it occurred to me to tie
the adc ground to the same ground I anchored the voltage divider to.

Steve

I think a resistor divider is fine. It can bring only non-linear if you use wrong values. For example if much current flows through a divider it begins to heat up and resistors with high temperature resistance coefficient will change resistance

Dumb question -- how are you guys reading the A/D -- I have searched
with what I feel is reasonable diligence and did not come across how
to set up and read the A/D.

Apologies for slightly jacking the thread, but I sure would be happy
to know the answer -- I'm trying to turn the bone into an XMPP chat-
bot physical computing interface.

From: beagleboard@googlegroups.com [mailto:beagleboard@googlegroups.com]
On Behalf Of pezman
Sent: Saturday, January 21, 2012 1:06 PM
To: Beagle Board
Subject: [beagleboard] Re: 10V to 1.8V level translation for ADC reading

Dumb question -- how are you guys reading the A/D -- I have searched
with what I feel is reasonable diligence and did not come across how
to set up and read the A/D.

I don't have a Beaglebone so let me show you how you would access this info
on the Beagle-xM. I think the easiest way to get access to this information
without programming is to use SYSFS which is located in the /sys folder.
What you are looking for is something to do with twl4030 and madc and in
this case it is twl4030_madc_hwmon. There are several ways to find this
folder but since you probably don't know how it is connected, I suggest you
start by looking in
/sys/module/twl4030_adc_hwmon/drivers/platform:twl4030_madc_hwmon/twl4030_ma
dc_hwmon/. In this folder you will find everything you need. Simply use the
cat command to read any of the input voltages or current.

Alternatively, you can find this same information by following the
connectivity of the communications between the processor and twl4030. For
the Beagle-xM, the connectivity looks like this
/sys/devices/platform/omap/omap_i2c.1/i2c.1/1-004a/twl4030_madc_hwmon/

I expect the Beaglebone will work the same way, but it may use a different
power management part.

Kind Regards,
John

You can read the value from /sys/bus/platform/tsc/ain[1-8]

Steve

From: beagleboard@googlegroups.com [mailto:beagleboard@googlegroups.com]
On Behalf Of Steve Galle
Sent: Sunday, January 22, 2012 3:39 PM
To: beagleboard@googlegroups.com
Subject: Re: [beagleboard] Re: 10V to 1.8V level translation for ADC

reading

You can read the value from /sys/bus/platform/tsc/ain[1-8]

Hi Steve,

Is that correct? Normally there is only devices or drivers listed under
platform together with hotplug events and probes.

Kind Regards,
John

Steve

> Dumb question -- how are you guys reading the A/D -- I have searched
> with what I feel is reasonable diligence and did not come across how
> to set up and read the A/D.
>
> Apologies for slightly jacking the thread, but I sure would be happy
> to know the answer -- I'm trying to turn the bone into an XMPP chat-
> bot physical computing interface.
>
>> I'm using a simple voltage divider to measure input voltage to a
>> regulator (up to just about 20v) and it seems fine. The only thing
>> that caught me off guard for a while is that (obviously, in
>> retrospect) small differences in ground potential make a significant
>> difference once you do the multiplication to get back to your full
>> scale reading. I was a bit perplexed until it occurred to me to tie
>> the adc ground to the same ground I anchored the voltage divider to.
>>
>> Steve
>>
>>
>>
>>
>>
>>
>>
>>
>>> Hi,
>>
>>> I will need to read a 10VDC signal from the pressure transducer with
>>> the BeagleBone onboard ADC's. What is the proper way of transforming
>>> the 10V to 1.8V? Would a simple resistor bridge work? Or will that
>>> introduce noise and variability?
>>
>>> Thanks,
>>> Bastiaan.
>
> --
> You received this message because you are subscribed to the Google

Groups

On my beaglebone, they are in /sys/devices/platform/ain[1-8]

Oops, no, that's not correct, sorry.

/sys/bus/platform/devices/tsc/ain[1-8] is the correct path.

Ahah! I'm running the 11-16-11 Angstrom, and no such folder. At
least I failed to find it for a good reason.

A friend downloaded the 2011.12.26 image and it seemed to have some
stability issues. I presume that the 2012.01.11 has this folder (and
is preferred)?

At any rate, thanks for the response -- I have been really, really,
really wanting that ADC stuff

From: beagleboard@googlegroups.com [mailto:beagleboard@googlegroups.com]
On Behalf Of pezman
Sent: Sunday, January 22, 2012 4:40 PM
To: Beagle Board
Subject: [beagleboard] Re: 10V to 1.8V level translation for ADC reading

Ahah! I'm running the 11-16-11 Angstrom, and no such folder. At
least I failed to find it for a good reason.

Hi,

Which folder is missing? As Steve pointed out, you should have a folder
/sys/bus/platform/devices/tsc/

Which board are you using?

Kind Regards,
John

A friend downloaded the 2011.12.26 image and it seemed to have some
stability issues. I presume that the 2012.01.11 has this folder (and
is preferred)?

At any rate, thanks for the response -- I have been really, really,
really wanting that ADC stuff

> You can read the value from /sys/bus/platform/tsc/ain[1-8]
>
> Steve
>
>
>
>
>
>
>
>
> > Dumb question -- how are you guys reading the A/D -- I have searched
> > with what I feel is reasonable diligence and did not come across how
> > to set up and read the A/D.
>
> > Apologies for slightly jacking the thread, but I sure would be happy
> > to know the answer -- I'm trying to turn the bone into an XMPP chat-
> > bot physical computing interface.
>
> >> I'm using a simple voltage divider to measure input voltage to a
> >> regulator (up to just about 20v) and it seems fine. The only thing
> >> that caught me off guard for a while is that (obviously, in
> >> retrospect) small differences in ground potential make a significant
> >> difference once you do the multiplication to get back to your full
> >> scale reading. I was a bit perplexed until it occurred to me to tie
> >> the adc ground to the same ground I anchored the voltage divider to.
>
> >> Steve
>
>
> >>> Hi,
>
> >>> I will need to read a 10VDC signal from the pressure transducer with
> >>> the BeagleBone onboard ADC's. What is the proper way of transforming
> >>> the 10V to 1.8V? Would a simple resistor bridge work? Or will that
> >>> introduce noise and variability?
>
> >>> Thanks,
> >>> Bastiaan.
>
> > --
> > You received this message because you are subscribed to the Google

Groups

double checked and it's not there. I'll update to the latest version
of Angstrom ...

I prepared a dual-partition SD card according to the
instructions at the Openismus site:

Here’s the contents of the two partitions:

rafe@desktop-ubuntu:~$ ls /media/boot
MLO u-boot.img uImage x-load.bin.ift
rafe@desktop-ubuntu:~$ ls /media/rootfs
bin dev home linuxrc media proc sys usr
boot etc lib lost+found mnt sbin tmp var

I boot the board by pressing the USER button and
then powering up the board or pressing RESET.
Here’s the start of the ensuing log on the terminal:

U-Boot SPL 2011.12-00007-g12efa1c (Jan 13 2012 - 21:18:14)
Texas Instruments Revision detection unimplemented
OMAP SD/MMC: 0
reading u-boot.img
mkimage signature not found - ih_magic = ea000012
Assuming u-boot.bin …
reading u-boot.img

U-Boot 2009.11 (Feb 23 2010 - 15:33:48)

OMAP3530-GP ES3.1, CPU-OPP2 L3-165MHz
OMAP3 Beagle board + LPDDR/NAND
I2C: ready
DRAM: 256 MB
NAND: 512 MiB
In: serial
Out: serial
Err: serial
Board revision C4
Die ID #647c0004000000000403951c0a00b011
Hit any key to stop autoboot: 0
mmc - MMC sub-system

Usage:
mmc init [dev] - init MMC sub system
mmc device [dev] - show or set current device
Booting from nand …

NAND read: device 0 offset 0x280000, size 0x400000
4194304 bytes read: OK
## Booting kernel from Legacy Image at 80200000 …
Image Name: Angstrom/2.6.32/beagleboard
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 3203048 Bytes = 3.1 MB
Load Address: 80008000
Entry Point: 80008000
Verifying Checksum … OK
Loading Kernel Image … OK
OK

The kernel and modules file(s) that I picked up
from the angstrom-distribution site are labeled
3.017. So why am I still picking up the older
2.6.32 kernel from nand?

Is there something I need to change in the u-boot
environment? Or perhaps a configuration file of some
sort missing from the SD card?

Make sure you HOLD the user button pressed until it starts booting.

Gerald