Because of the holidays, TI E2E™ design support forum responses will be delayed from Dec. 25 through Jan. 2. Thank you for your patience.

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.

ADS131A02: Issue on communication

Part Number: ADS131A02

Hi,

i am trying to use the ADS131A02 with MSP432.

The SPI clock is 12MHz and the the phase is set so data is captured on low edge from clock.

So i am first doing this:

HARD RESET-> WAIT 10ms -> Send UNLOCK SPI-> WRITE REG SPI_->Send WAKEUP SPI-> Send LOCK SPI

Always when i write to the REG the ADS131A02 is outputing at DOUT 0xFF02, so this means 0xFF that the device is lock and 0x02 the device channel number right?

I am using a 32Bit configuration, asynchronous interrupt and hamming so M0/M1/M2 are set HIGH

To UNLOCK i am sending 0x06550000 on SPI since my deivce word length is 32Bits.

Why is the device not unlocking?

  • Hi Michael,

    Thanks for your post!

    FF02h is the correct READY response after the internal power-on reset has completed.

    When you send the UNLOCK command (0655h), do you see the same command on DOUT in the Status Response of the next frame? The command should be repeated to acknowledge that it was received properly. See Figure 67 and Table 14 on page 49 of the datasheet.

    Since you are enabling the Hamming Code, you will have to send the correct Hamming Code bits in the last byte of the UNLOCK command as well. Notice that the last 8 bits in the READY response also contain Hamming Code.

    Best Regards,

  • Hi Ryan,

    i found the issue!

    I have to send two times UNLOCK so that the ADS131A02 unlocks it self.

    Here is a screenshot why:

    It looks like the ADS131A02 reacts one clock later and he does not understand my "UNLOCK". Sending "UNLOCK" again it resolves the issue.

    Any reason why he is doing this? 

    Obs: Value is not 0xFF82, it is 0xFF81

  • This is only working in 16Bit mode: in 32Bit mode where M1 is High it doent work. It is always LOCKED.

    M1:16Bit(Floating) -> UNLOCK 0x0655 works

    M1:24Bit(GND) -> UNLOCK 0x065500 dont work

    M1:32Bit(VCC) -> UNLOCK 0x6550000 dont work

    Any idea?

  • Hi Michael,

    It makes sense that 0x0655 works in 16-bit mode (M1 = floating) because Hamming Code is not supported in that mode (I believe this means that M2 is ignored in that case). For 24-bit and 32-bit mode, you must send the proper Hamming Code bits in the least-significant byte at the end of the word. For example, in 32-bit mode, you must send 0x065500'HC'.

    Try disabling the Hamming Code feature for now by tying M2 to GND. Then you only need to send 0x06550000.

    Best Regards,
  • Hi Ryan,

    M2 is connected to GND, sorry i  forgot to say.

    Sending 0x065500 for 24 but or 0x06550000 for 32bit it doesn’t work.

    Any idea?

  • Hi Michael,

    Sorry this is causing so much trouble. I'm scratching my own head as well. There are are a few details so far that still concern me. Let me summarize where we are now and add some questions for clarification:

    1. The READY response you see on the scope is 0xFF81, which is incorrect. You should see 0xFF02.
    2. UNLOCK (0x0655) only seems to work in 16-bit mode. Hamming Code is disabled now (M2 = GND), so zeros must be added to the LSBs to support 24-bit adn 32-bit modes.
    3. I asked earlier if the Command Status Response was correct in the next frame. You should see the Command repeated in the first word of the next frame with zeros to pad the LSBs in 24-bit and 32-bit modes (i.e. 0x06550000 should be the first word on DOUT in the frame after 0x06550000 is sent on DIN). Can you please double-check this and share a screen capture to confirm?
    4. Are all hardware mode pins set before the analog and digital supplies ramp?

    Let me check a couple other things with the digital designer and get back to you.

    Best Regards,

  • Michael - one other thing...

    Can you please share a scope capture showing the UNLOCK command for 24-bit mode? Please include the 0x065500 on DIN as well as the next 24 bits so that we can see the same 0x065500 on DOUT.

    Best Regards,
  • Hi Ryan,

    ok lets start from begin.

    My configuration right now is:

    M0 - 3V3

    M1 - GND (24Bits)

    M2 - GND

    So first i send UNLOCK with 0x065500:

    The ADC send me 0xFF0200 out. Now i send a dummy value 0x000000 to check if in the next command it unlocks the device:

    The slave doesnt unlock and sends 0xFF0200 back. 

    My SCLK is running at 12MHz.

    Any idea why the slave is not unlocking?

    Obs:  M0 is pulled up to 3V3 and M1/M2 are pulled down to GND with 100Ohm Resistor. 

  • Hi,
    so i managed to get it to work with 32Bit Word size. I was playing around and the only thing i have changed was the SCLK.
    I change SCLK from 12MHz to 24MHz and it seems that i have unlocked the device.
    On the datasheet it says minimun SCLK 40ns. This means that the maximum clock period is 25MHz?

    Obs: After sending UNLOCK, on the next command i can read 0x06550000 intead of 0xFF020000

  • Hi Michael,

    Sorry for the delay, I was out of the office for a few days.

    I agree that the device appears to have unlocked correctly, based on the fact that you can read 0x06550000 in the next frame. I don't understand why increasing the SCLK frequency would have solved the issue. I will recheck the timing specs and speak with the designers to see what we might have missed.

    Best Regards,

  • Hi Michael,

    Did you ever narrow down the root cause of the issue? Does the increased SCLK frequency work for 16-bit and 24-bit word sizes as well?

    Best Regards,
  • Hi Ryan,

    yes 24MHz SPI clock works for 24 and 16 bit too.
    24Mhz is great because i am getting 48kHz samples per second and reading data at this speed improves the CPU/DMA performance.
  • Great, glad to hear that.

    I will keep this in mind in case our team runs into customers with a similar issue in the future. If you do realize what the root cause was or if you run into the issue again, please let us know.

    Best Regards,

  • Hello,

    Has there been any further information on this problem? I just discovered this thread in a search while experiencing the exact same problem with the same configuration. I am using a 12 MHz SPI clock as well and don't have the option of switching to a higher lock rate.
  • Hi Brian,
    try to reduce the 32bit word to 16bit and see if that works with 12Mhz clock.
    iI don’t know the reason but the only thing that helped me using it with 32Bit was to increase the sclk clock.

    You can also change try to change the clock input and connect to a PWM from your controller.
    Default is like 16.384 MHz I think, reduce it to 8Mhz and see if this works with you SPI