I am trying to read impedance information from the AD5933 evaluation board using an Arduino Nano BLE 33. According to the information provided here (https://ez.analog.com/dds/f/q-a/29168/how-to-measure-the-impedance-charactersistics-of-a-unknown-valued-resistor-or-capacitor-using-ad5933-please-help-friends) by an official employee at Analog, I connected the SCL and SDA lines of the Arduino to R15 and R16 on the board respectively. I established a common GND between the board and the Arduino.

My first step was to try and get the Arduino to recognize the slave through I2C. I used the I2C slave scanner mentioned here (https://create.arduino.cc/projecthub/abdularbi17/how-to-scan-i2c-address-in-arduino-eaadda) but the slave was not recognized. I think all my wired connections are correct.

Does anyone know why the communication could be failing?

  • \$\begingroup\$ You need to look at the source code of the Wire module for your BLE 33 platform what it does when only the device address needs to be sent. The code may ignore it as it is basically useless operation. You need to know whether it does anything at all, or if it starts a read or write operation on the I2C bus. And not all chips, especially Analog Devices chips, support random read protocol without sending register address first. So yes, not all I2C bus scan sequences are compatible with all I2C chips, and those who write such sequences don't know that these sequences do not always work. \$\endgroup\$
    – Justme
    Apr 21 at 4:54

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.