Post Go back to editing

ADC AD7134 / AD4134 Problem Writing/Reading Register

Category: Hardware
Product Number: AD7134
Software Version: NA

Dear Analog Support Team,

I would be really thankful if you can provide support in this forum.

I am trying to configure the AD7134 in 4-Wire SPI Control Mode with an ESP32-S3. According to the documentation and Analog, the AD7134 and AD4134 are interchangeable with minimum differences. So I tested this with AD7134 and AD4134.

I call out for help, as multiple days of testing and crawling through forums and online resources did not lead to solving the issue and I am running out of ideas to test. 

Settings and Setup:
- the communication chain looks as follows: ESP32-S3 Voltage Level Translator (3V3 <-> 1V8) AD7134 (or AD4134)- a 24 MHz Logic Analyzer is used to visualize signals (runs at 12 MHz and connected to the 1V8 ADC side)

- ADC is in Master mode
- SPI PINs:  
      FORMAT0 CS (SPI_SEL)
      FORMAT 1 SCLK
      DEC3 SDO (MISO)
      DEC2 SDI (MOSI)
- SPI-Mode: 0
- Clock-Speed: 2 MHz
- CPHA = CPOL = 0 (in Logic Analyzer)
- DEVICE_STATUS register reads back: 0b0001 1000 (ok, as far as I understand)
- SPI Error (0x47) and INTERNAL_ERROR (0x42) both read back 0b0000 0000 all the time (no errors)

Find here the ADC shematics (the SPI pin is hardwired to high (is on)):

Problem / Current Output:
Basically, I can communicate with the ADC via 4-wire SPI and can write to some registers as expected. For example, to the SCRATCH_PAD or to the VCMBUF_CTRL register. When I read these registers after writing, I find exactly what I put there. In case of VCMBUF_CTRL register I can also measure the correct voltage, which I set before via this register. So basic communication works from my understanding. See here the SPI communication with a working register as an example (please zoom in to see additional information in white):

Note the ADC convention are as follows:


R = Read = 1
W = Write = 0

So far so good. 

However, on some (important) registers I cannot seem to write/change the register entries. I did not test all registers, but it does not properly work for at least INTERFACE_CONFIG_A register, INTERFACE_CONFIG_B register and, as shown in the following, it also does not work on DATA_PACKET_CONFIG register (zoom in to see my comments and the error):

From the screenshot you can see, that the register values do not change, even though I  wrote something into them (and these bits in the register are also not some reserved/blocked bits). 

I really cannot find an explanation for this behavior. I hope this is a software/setting issue. From the working registers I believe that the hardware part is fine so far, but please correct me if you have other ideas or doubts.

Tested already without success:
- changing the order of registers does not help; the registers which I cannot write on remain the same, independent of when I try to write on them (according to Analog the order to write into registers is also irrelevant)
- note that the readings on PDN and RESET during writing/reading are due to cross-talk in the Logic Analyzer (not visible in direct measurement with oscilloscope)

Thank you!
Patrick



added ADC shematics
[edited by: pre at 9:48 AM (GMT -5) on 8 Nov 2022]
Parents
  • We probably found a solution to the problem. Even though it was said by Analog (in our previous post) that there is no specific order to write registers, the datasheet mentions on page 50 the following:

    So with changing this register to high performance mode first, the ADC responded. Unfortunately this took many many unnecessary hours of testing. Should this not be mentioned in the registers in the datasheet (again)? For such an important setting it appears quite hidden in the text.

    Unfortunately the Analog support was not helpful. No answer for 20 days is not what I would expect from a good customer service. Customer service from alternatives (e.g., TI) are much more involved and willing to help and this is getting more and more important these days in my opinion.

    Best wishes,

    Patrick 

  • Hi  ,

    Apologies for missing this item. Thank you for your feedback. The details are mentioned in the datasheet, but we will take note of your comments and we will probably make an adjustment on how to highlight this issue and the possible workaround, for example an FAQ.

    Again, apologies for the inconvenience and hoping to assist you better in the future.

    Regards,

    JC

Reply
  • Hi  ,

    Apologies for missing this item. Thank you for your feedback. The details are mentioned in the datasheet, but we will take note of your comments and we will probably make an adjustment on how to highlight this issue and the possible workaround, for example an FAQ.

    Again, apologies for the inconvenience and hoping to assist you better in the future.

    Regards,

    JC

Children
No Data