This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Reading data from ADS1232 or any other ADC

Other Parts Discussed in Thread: ADS1232, ADS1232REF, MSP430WARE, ADS1246, ADS1256, MSP430G2553

I am a newbie at microcontrollers and microprocessors but I do have extensive software background. This is a very basic question and I searched a lot and did not find a post that was useful. Hence I am asking this question here. Mods, feel free to move this thread to a more appropriate location if so.

I am prototyping and have shortlisted the ADS1232 as a potential ADC to convert the output from a pressure sensor. However, I don't know how to get the data from the ADC to a PC. Below are a few options I can think of:

1. The most obvious and simple choice is to get the ADS1232REF Evaluation Module. However, I am in a prototype stage and not sure if the ADS1232 will work for my application and I may need to use a different ADC. Is this evaluation module specific to only the ADS1232 or can other ADC's be 'plugged in'? If it is specific, then it'll be a pretty expensive doorstop if the ADC doesn't work.

2. The MSP-EXP430G2 seems like a reasonable choice for prototyping and trying different ADC's. But I don't know what else I need to read the output from the ADS1232. Do I need a separate microcontroller? The ADS1232 has SPI output and the MSP-EXP4302G2 can read SPI but what other hardware components will I need? Please list the parts so I can order them together.

3. I considered the Arduino and seems like it handles SPI but I also read on another post here that the Arduino is not very well supported on this forum. So I would personally like to avoid the Arduino as I like the responsiveness on these forums and it will be very helpful for my development.

4. Any other alternative?

This is a basic question but it will benefit newer enthusiasts such as me in getting started more easily. I will highly appreciate appropriate details in replies as I am looking for a solution. Thanks.

  • 'Megadeth' - first, awesome nick selection. I've caught Megadeth just about everytime they've stopped in whichever remote Texas city I was living in at the time. Always a good show.

    On to your post...

    Good question(s). While I am not the engineer directly responsible for the ADS1232, and should you have more analog questions I'm sure he would be happy to help you here, but I've had a good bit of experience in the past approaching these embedded prototyping quandries.

    Megadeth said:
    1. The most obvious and simple choice is to get the ADS1232REF Evaluation Module. However, I am in a prototype stage and not sure if the ADS1232 will work for my application and I may need to use a different ADC. Is this evaluation module specific to only the ADS1232 or can other ADC's be 'plugged in'? If it is specific, then it'll be a pretty expensive doorstop if the ADC doesn't work.

    All of the Precision Data Converter evaluation kits follow pretty similar naming conventions, these don't always hold true for kits across TI. If it has a 'REF' suffix it's usually a stand-alone reference solution customized to fit a device in a specific application. If it has an 'EVM' or 'EVM-PDK' suffix it fits to our 'modular evaluation system' - that is one motherboard for controlling devices and several daughter-cards that have the specific supporting circuitry for the ADC or DAC under evaluation.

    To answer your question most directly, the ADS1232REF is pretty tailor-fitted to the ADS1232 unless you happened to stumble into a pin-for-pin / footprint compatible device.

    When I am prototyping such a system I prefer to have one of our EVMs or EVM-PDKs since they are usually much simpler and I like to have few moving parts. If you choose to go the MSP430 route, you can still access and program the MSP430 on the ADS1232REF and as long as whichever device you fit to your MSP430 LaunchPad features a USCI peripheral for you SPI bus you'll be able to port most of the code with no problem.

    Megadeth said:
    2. The MSP-EXP430G2 seems like a reasonable choice for prototyping and trying different ADC's. But I don't know what else I need to read the output from the ADS1232. Do I need a separate microcontroller? The ADS1232 has SPI output and the MSP-EXP4302G2 can read SPI but what other hardware components will I need? Please list the parts so I can order them together.

    This is a difficult question to answer without knowing the full depth of your system and exactly how many things you plan on controlling at the same time. It's not unheard of to use a slave device purely to collect data and deliver results to a master. If you do use an MSP430 you're going to be combining back-to-back frames to acquire all of the data from the ADS1232 digital interface and then recombining those words to do any math. The MSP430 SPI frame-width is usually only 8-16 bits wide & to interact with our precision devices you will obviously need wider frames (still haven't figured out how to stuff 24 bits into 8...).

    I'm also not sure if you're looking to hear about what other analog components you need to supply the device / achieve performance from the device, or if you're really just asking what is needed to read from the device. Assuming you want to perform a basic read with not other needs for level-shifting or isolation, it's really as easy as connecting the bus for SPI. The only thing of note is to ensure that DVDD on the ADC matches the digital supplies / digital I/O level of the MCU. Otherwise you'll need to introduce a level shifter.

    Megadeth said:
    3. I considered the Arduino and seems like it handles SPI but I also read on another post here that the Arduino is not very well supported on this forum. So I would personally like to avoid the Arduino as I like the responsiveness on these forums and it will be very helpful for my development.

    Adruino is probably easier to use than an MSP430, I've never played with any Adruino devices myself, for an embedded beginner but I believe many would consider the MSP430 approach to be more traditional and if you already have a programming background I think you're going to find the MSP430, or other 'traditional' MCUs, more welcoming / comfortable. We have sort of recently released 'MSP430Ware' - an API of sorts around the MSP430 register sets that should help you get on your feet fast. Similarly for our Stellaris ARM devices & some Sitara ARM devices we offer higher level libraries (StellarisWare, StarterWare, etc.)

    Megadeth said:
    4. Any other alternative?

    There's always alternatives but I think you've got the right idea. Grab some simple EVMs and 'blue-wire' them together. If you do stick to TI MCUs you'll be able to come around here for support and you'll get much better results than bringing a competitor MCU to the table since even if we get stumped we can pass your issues on to the MCU group. Regardless of your MCU choice we will be receptive to looking at oscilloscope captures of your digital bus and help you understand why the devices aren't talking nicely with one another.

    Hopefully this is helpful. If you have further questions or need clarification let us know.

  • Megadeth,

    To add a few things to what Kevin has mentioned, even though the ADS1232REF can be reprogrammed the board is not intended to be a development platform, and you will get little to no support outside of the original code.  The code is compiled with GCC, and uses freeRTOS.  There is no debugger or IDE.

    If you use the Launchpad you will need some sort of prototyping board to wire between the ADS1232 and the Launchpad as it is really hard just to solder wires to the pins being that the ADS1232 is a surface mount device.

    Can you tell us a little more about the output of the sensor and the output voltage range?  This can help use target other devices/EVMs that you could use.

    Best regards,

    Bob B

  • I credit TI engineers for both responsiveness and being fans of Megadeth.

    Let me answer the central question in both the replies - What are my requirements?

    Requirements:

    My application is to read the pressure from a Honeywell pressure sensor with an output span of 100 mV. I need 17.5 bits of noise free resolution at 50 Hz sampling to be read and stored on a computer. The ADS1232 offers 18 bits of noise free resolution at a gain of 64 at 80 SPS. Given the match, I decided on using the ADS1232 as the ADC. I plan to directly connect the analog output of the pressure sensor to the inputs of the ADC.

    Current goal: To get the output of the ADC1232 to the computer.

    What I need to know:

    1. Is the MSP-EXP430G2 okay for my need? If so, please specify which microcontroller I should buy? Also, what else do I need? Power supply, crystal, level shifters. Please include model numbers for these components, so I do not have to guess.
    2. If you suggest going EVM/EVM-PDK route, which model will be reasonable for my application? Also tell me what additional components (microcontrollers, power supplies, batteries, peripherals) will be needed for this approach?
    3. Can you also recommend a good prototyping kit (resistors, capacitors, etc) for electronic components? I know I can Google and get a million results but I maybe you know a decent one that combines the components typically needed using TI tools. Would I also need DIP adapters for the surface mount ADS1232? Or are there special bread boards?

    Keeping development time in mind, I am going to order the ADS1232REF so it can serve as a reference for me when I design this using the evaluation board.

    Thanks again in advance.

  • Megadeth,

    You do not need to purchase the ADS1232REF to see the application and usage.  You can do this by perusing the user's guide, which  can be downloaded at:

    http://www.ti.com/tool/ADS1232REF

    The user's guide shows the schematic, layout and BOM for the project.  Maximum reference voltage is 5V for the ADS1232, so if your input is 100mV you cannot gain up to a gain of 64.

    Another part/EVM option is the ADS1246.  There are some advantages with this part in that it has some different data rates/PGA settings.  The ADS1256 is another possibility.  The ADS1256 is actually our lowest noise part with internal gain currently being offered for this type of sensor input.  Both of these devices have an EVM.  Each device has merits and differing price points so you pretty much need to do a side by side comparison relative to your needs.  Due to differing reference voltage selection, your actual noise relative to signal will differ as well.

    The Launchpad kit to which you are referring has a MSP430G2553 included in the kit, so it can be used for communication.  As far as supply, the Launchpad/MSP430 can be connected to about 3.3V which is supplied from the USB connection.  This is the digital voltage.  The analog supply might be different than the digital.  If that is the case, you will need to come up with the supply voltage necessary.  This is often the same as the excitation voltage used by the sensor.

    As far as a good prototyping kit, you need to be a bit careful as it should not be just considered as all parts being equal.  To get low noise performance you need stable low noise components.  That usually means precision resistors and high grade capacitors.  The analog input should contain an anti-aliasing filter consisting of a series resistance in the range of perhaps 1k-5k ohms, and a differential cap at the analog inputs around 10nF to 100nF.  If you add common mode caps, they should be at least 10 times less in value of the differential cap.  Supply bypassing caps (100nF) should also be placed at the supply pins of the device.

    Best regards,

    Bob B

  • Bob,

    Since this is a newbie post, I am going to summarize all that I have understood through all your replies. Please reply if anything is incorrect or if you would like to expand:

    1. The EVM should be no-brainer when prototyping. It provides analog and digital connectivity for the ADC is question.
    2. The EVM-PDK makes your life easier since it gets the output from the ADC to the computer. The software displays results from the ADC and can also save the data to a text file.
    3. If you choose to not use the EVM-PDK, you can use any other development board with a motherboard, including the MSP-EXP430G2, for communicating with the ADC and the PC. You will still need the EVM. Going this route is significantly more work; you will need power supply, additional components for connecting the EVM to the launch pad, custom code to set the ADC parameters and read the data from the ADC.
    4. I will need to separately purchase a power source and (low-noise) components (resistors, capacitors) for the analog inputs.

    Thanks for recommending the ADS1256 - its low noise characteristics makes it very desirable for my application. I am going to order the ADS1256EVM-PDK to get started. Can the MMB0 be used with other ADC's should I need to try a different ADC?

    Thanks for your excellent responsiveness. After you reply to this post, I will mark this thread as 'Answered'.

    MegaDeth

  • Megadeth,

    Your summary is good.  As far as motherboards are concerned, precision data converters has two main motherboards depending on operational speed.  There are a number of EVMs that work on the MMB0, and a number that don't.  For example, the ADS1246EVM is not setup to run on the MMB0. The ADS1246EVM is setup to work with the MMB3.  The ADS1256EVM is set up to work on the MMB0 and not the MMB3.  So the answer to the question is yes and no (or maybe.)  The form factor is the same for the EVM/Motherboards, we just don't have firmware to support the different combinations.

    When you are ready to connect the ADS1256EVM to a MSP430 we would be glad to guide you through the process and give guidance on how to connect everything up from the EVM to the Launchpad.

    Best regards,

    Bob B