Post Go back to editing

AD74412RBCPZ unable to communicate with arduino(SPI)

I have being trying to communicate with AD74412 with SPI using arduino and STM32h723 development board no matter how hard I tried I am unable to receive any data from that AD74412 IC.

Datasheet says first we have to clear Alert status register bits and i did and in order to read something i have to use Readback select register and I am doing everything according to the datasheet I am not receiving any data at the output. And this sensor i cannot simply send dummy clocks and get the data it requires me to write the address of the register which i want to read inn Readselect register.

Is there something else I am missing here the PC based software seems to work fine but when i use arduino noting happens.

Kindly help me I am working some important project and also if there any library files available please so share me. I will be off loaded.

Parents
  • Hi Ankit,

    Can you please check if the Reset pin is pulled high in your setup? The GUI takes care of this as there is no pullup on the evaluation board. 

    Thanks,

    Bríde

  • you are right the reset was one of the issue after doing everything i found reset is not pulled high after  fixing that problem by pulling it up with 3K resistor I tries running the same program again but still it didn't work. and the Alert_pin is always low. and before fixing the reset issue it was always high. That makes things too hard i have no idea what's going i expect the alert pin to get low only when I make a CRC error. or some error while sending data but instead its always low.

  • Everything works fine with STM32 I checked everything Except for (Digital input, loop powered modes) till now everything works fine.

    I used both voltage output and current output by loading values inside DAC_CODE for all channels everything was perfect and even I can program it to get up to 25 mA.

    I connected RTD and even the LSB bits of ADC were stable this never happened with STM boards Sigma-Delta ADC is really a good.

    Everything was according to the datasheet Reset error and charge pump error. But I also saw CRC error CLK count (but was my fault only).

    I do had one problem actually two:

    problem 1:

          While using the module in current input mode a manual reset(while the current inputs are still connected) it makes the specific channel ADC misbehave the open circuit voltage of my current source is 21 volt I believe this high voltage manages to disturb the ADC and causes saturation errors too. because after reset channel enters high impedance mode. may be this IC is not made to handle 21 volt at channel input i saw 11 volt as max in datasheet pls let me know what could be the solution.

    problem 2:

    when I started working with arduino it worked as expected but then something terrible happened IC blew up after seeing the data sheet I found I am supposed to power the IC by connect GND first and then Vcc (for AVDD). but instead I connected Vcc first and my circuit blew up(NOTE: there was no polarity error). well I can not say its totally ADI fault our office made some changes to power supply section because of that I have to provide external 5v for LDO and 24 volt for AVDD. No fabricator is so dumb to do that so I think the external 5 volt somehow managed to blow the IC and now I feel my office engineers are too smart that there made me blow up the IC twice even last time the same fault happened and because of that I spent a weak exploding my head. but this time I saw spark which IC blew up.

  • Hello Ankit,
    I'm trying to connect the AD74413R (AD-SWIO 2 Click ) to an STM32F4, I want to configure one of the channels as voltage input or current input, I'm interested in how I can setup the module and read data from it. Can you help me please? Thank you. 

  •   Hello Ankit,

    I tried to read the ALERT_STATUS register, but the result is as the figure below mentions, what could be the problem ? I have another question, why did you write 0x27 in the 8-bit CRC ? Thank you. 

  • For the second part of your question, 0x27 is CRC-8 for 0x41002e, you can generate it using code or https://crccalc.com/

  • Hi

    0x27 is the CRC-8 for 0x41002e. You can generate it using code or https://crccalc.com/

  • Hi, 

    I have tried the same as you did a week ago and I got the same result. 

    By the way, I think the driver that is available for download has a bug in the CRC calculation function : for the frame you have sent 0x27 is the correct CRC but if you calculate the frame's CRC with the code available in the library it gives a different result. I have substituted that function with the oneI use to calculate the CRC for AD4111 ADC ( which uses the same polynomial ) and it gives the correct CRC of 0x27 for that frame.

  • Hello,

    Did you calculate the CRC with BA_CRC? 

    Thanks.

  • Yes, BA_CRC is the function I was talking about.

  • I couldn't manage to calculate it, can you help me?

    Thank you.

  • I substituted BA_CRC function with the CRC function of AD4111 ADC driver. 

    It is still an Analog's component and it uses the same polynomial , I was already using this component in other projects and I knew that it was working properly.

    Look for AD4111 driver for download on Analog's website.

Reply Children
No Data