• Join
  • Sign In with my.TI Login
Texas Instruments
  • Products
  • Applications
  • Tools & Software
  • Support & Community
  • Sample & Buy
  • About TI
Sample & Purchase Cart Sample & Purchase Cart
  • Search
  • Advanced
TI E2E™ Community
  • Support Forums
  • Blogs
  • Groups
  • Videos
  • 简体中文
  • More ...
TI Home » TI E2E Community » Support Forums » Data Converters » Precision Data Converters » Precision Data Converters Forum » ADS1241 Startup procedure
Share
Precision Data Converters
  • Forum
  • Files
  • E2E Wiki
Options
  • Subscribe via RSS
Check out
The Signal blog
  • $core_v2_blog.Current.Name

    Grounding Principles

    Posted 21 hours ago
    by Bruce Trump
    In a previous blog on supply bypassing , I cautioned that poor...
  • $core_v2_blog.Current.Name

    Handy Gadgets and Resistor Divider Calculations

    Posted 8 days ago
    by Bruce Trump
    Handy gadgets make our engineering life easier—the little...
  • $core_v2_blog.Current.Name

    Chopper Op Amps—are they really noisy?

    Posted 16 days ago
    by Bruce Trump
    Chopper op amps offer very low offset voltage and dramatically...

Forums

ADS1241 Startup procedure

This question is answered
Charles Saunders
Posted by Charles Saunders
on Apr 30 2012 21:06 PM
Prodigy160 points

  I am trying to communicate with the ADS1241. I am not currently able to receive any information from the device. I was wondering if there are specific commands I need to send (or if I need to reset the device) prior to being able to use it as intended. 

  My thinking was to try to establish known communications with the device first and then, when I'm sure I have the communication protocol down correctly, to try to read analog inputs. Thus, my first (and currently only) attempt at reading data device has been to try reading the FSR1 (0B hex) register as it has a reset value of (55 hex). This should mean that I get a combination of one's and zero's when I read back the information. 

  Currently I am using the 4.91MHz crystal as I'd like a sampling frequency of 30Hz. An oscilloscope currently reads a sine wave with a period of 200ns, which equates to a master clock speed of 5MHz, which is at the top end of the data sheet spec. With 3.3V powering the device, I am reading just over 3V as the logic "high" for the clock and master out / slave in line. However, I am getting some unusual coupling on the slave out / master in line. I don't have a screen cap or anything of the o-scope, but I've faithfully redrawn it as follows in paint:

  This is the command I am trying to send: The first byte is the read register command (0001) followed by the FSR1 register (1011), followed by the fact that I want to read 0 additional registers (xxxx0000).  The slave out line couples with both the clock and master out data transmissions, but the voltages there range from about 0.45V when it's just the clock to about 0.75V when the master and and clock are both high. 

  I'm not a terrific C programmer, so I'm using LabVIEW to run the SPI bus for me. That said, there is a read command that clocks out eight 0's for each byte you state that you would like to read. When I use this command, I get the following:

  The coupling is still there, but I'm not getting any response. The data sheet says to wait at least 50 (t_osc), which would be 10us, before attempting to read the data. I have no direct control over the timing here with LabVIEW, but an oscilloscope gives the time difference between the end of the read register command and the start of the dummy bytes to shift data out of the ADC as approximately 220us. The data sheet also states that if I wait three DRDY cycles it will reset the serial interface. However, even at a sampling rate of 30Hz, the DRDY pin should only cycle every (1/30) = 33ms, and I'm well within that limit. Even if it cycles once for each of 8 input channels for every sample, that's still (1/240) = 4ms between pulses, and again, I am well within ONE pulse cycle, let alone three. 


  I am not sure what it is that I'm doing wrong. The device is powered, the DSYNC, PDWN, RST lines are all tied high, grounds are grounded, power supplies are at 3.3V, and everything seems to be working fine on the microcontroller end. The oscilloscope shows what I believe the datasheet is telling me to do, but I have tried two separate ADC's and neither of them are functioning. Again, I'm concerned that there is a startup sequence not specifically mentioned in the data sheet that I'm not using.

Thanks for your help!

  Chuck Saunders

SPI ADS1241 ADS1240 startup
Report Abuse
  • Reply
You have posted to a forum that requires a moderator to approve posts before they are publicly available.
All Replies
  • Charles Saunders
    Posted by Charles Saunders
    on Apr 30 2012 21:23 PM
    Prodigy160 points

    I would also like to add that I have BUFEN and POL both tied low. 

    Report Abuse
    • Reply
    You have posted to a forum that requires a moderator to approve posts before they are publicly available.
  • Bob Benjamin
    Posted by Bob Benjamin
    on May 01 2012 09:19 AM
    Mastermind34145 points

    Charles,

    You have not stated or shown what you are doing with CS.  CS must remain low throughout the entire communication transaction.  The noise on the MISO may be because CS is not low, and the output is in tri-state.  It may also be noise due to poor grounding and the SCLK line is coupling to the line.  Is it possible for you to send us your schematic?

    Best  regards,

    Bob B

    ADS1241
    Report Abuse
    • Reply
    You have posted to a forum that requires a moderator to approve posts before they are publicly available.
  • Charles Saunders
    Posted by Charles Saunders
    on May 01 2012 09:32 AM
    Prodigy160 points

    Bob,

      I'm sorry, I have CS tied to ground. I was initially testing with a bus speed of 1MHz, but I slowed to 250kHz hoping for a response or at least to minimize the coupling, and I got neither. Attached are the board and schematic files for Eagle for my circuit.

    Thanks again,

      Chuck

    8054.Slave_final.sch

    8168.Slave_final.brd

    Report Abuse
    • Reply
    You have posted to a forum that requires a moderator to approve posts before they are publicly available.
  • Bob Benjamin
    Posted by Bob Benjamin
    on May 02 2012 12:15 PM
    Verified Answer
    Verified by Tom Hendrick
    Mastermind34145 points

     

    Chuck,

    As you are pulling CS high on your board, I'm assuming that you are pulling CS low with your micro.  If this is the case, you must make sure that the CS is low for the entire communication.  It must not toggle between bytes.  Have you verified that CS is remaining low?

    There are a couple of other things I noticed with your schematic that may result in future issues.  There are no bypass caps on your board and there is also the possibility that the op amps could drive the analog inputs above (or below) the supply rail on the ADS1241.

    Best regards,

    Bob B

    Report Abuse
    • Reply
    You have posted to a forum that requires a moderator to approve posts before they are publicly available.
  • Charles Saunders
    Posted by Charles Saunders
    on Jul 29 2012 19:03 PM
    Prodigy160 points

    I'm sorry to not have followed up with this.

    My issues stemmed from LabVIEW embedded for arm (2010) and its spotty handling of the SPI interface between different families of microcontrollers. After lots of troubleshooting, I finally realized that LabVIEW does not toggle the CS line automatically on the LM3S8962 microcontrollers but does toggle it automatically on the LPC2378 microcontrollers.

    When LabVIEW toggles the CS line automatically, it does *not* allow me to toggle the pin manually. I was trying to allow for the requisite set-up time between issuing the read data command and then reading the converted data by manually setting the CS line low, issuing the read command, then trying to read the conversion data. Again, LabVIEW completely ignored the fact that I was trying to keep CS low between commands, and thus the chip was responding as though it was an aborted command. 

    There's no way to change how LabVIEW handles the CS line during data transmission shy of rewriting the C function it calls, so my fix was to slow the bus speed to accommodate the set-up time in one clock pulse.  

    Report Abuse
    • Reply
    You have posted to a forum that requires a moderator to approve posts before they are publicly available.
  • Tom Hendrick
    Posted by Tom Hendrick
    on Jul 29 2012 19:17 PM
    Guru86200 points

    No worries Chuck!

    Thank you for the follow up!

     

    Regards,

    Tom

    Report Abuse
    • Reply
    You have posted to a forum that requires a moderator to approve posts before they are publicly available.
TI E2E™ Community
  • Support Forums
  • Blogs
  • Videos
  • Groups
  • Site Support & Feedback
  • Settings
TI E2E™ Community Groups
  • TI University Program
  • Make the Switch
  • Microcontroller Projects
  • Motor Drive & Control
Other Communities
  • Deyisupport
  • Designsomething.org
  • beagleboard.org
  • TI on Element 14
  • TI on TechXchangeSM
Other Technical & Support Resources
  • WEBENCH® Design Center
  • Product Information Centers
  • Technical Documents
  • TI Design Network
  • TI Technical Articles
  • TI Training

All content and materials on this site are provided "as is". TI and its respective suppliers and providers of content make no representations about the suitability of these materials for any purpose and disclaim all warranties and conditions with regard to these materials, including but not limited to all implied warranties and conditions of merchantability, fitness for a particular purpose, title and non-infringement of any third party intellectual property right. TI and its respective suppliers and providers of content make no representations about the suitability of these materials for any purpose and disclaim all warranties and conditions with respect to these materials. No license, either express or implied, by estoppel or otherwise, is granted by TI. Use of the information on this site may require a license from a third party, or a license from TI.

Content on this site may contain or be subject to specific guidelines or limitations on use. All postings and use of the content on this site are subject to the Terms of Use of the site; third parties using this content agree to abide by any limitations or guidelines and to comply with the Terms of Use of this site. TI, its suppliers and providers of content reserve the right to make corrections, deletions, modifications, enhancements, improvements and other changes to the content and materials, its products, programs and services at any time or to move or discontinue any content, products, programs, or services without notice.

Follow Us Texas Instruments on Facebook Texas Instruments on Twitter Texas Instruments on LinkedIn Texas Instruments on Google+
TI Worldwide | Contact Us | my.TI Login | Site Map | Corporate Citizenship | mobile m.ti.com (Mobile Version)

TI is a global semiconductor design and manufacturing company. Innovate with 100,000+ analog ICs and
embedded processors, along with software, tools and the industry’s largest sales/support staff.

© Copyright 1995-2013 Texas Instruments Incorporated. All rights reserved.
Trademarks | Privacy Policy | Terms of Use