I am using a Bluegiga BLE112 to perform bluetooth impedance spectroscopy using an AD5933. The device should communicate via I2C to configure the registry. I am able to communicate with a BME280 I2C device with the BLE112 and read the correct Who Am I register value. Unfortunately, the AD5933 returns 0x00 for all registers I attempt to read from. Any ideas on what may be wrong?
1. Chip Address
My raspberry pi shows the ad5933 has an 8-bit I2C address of 0xD0. I am also able to read and write registers with the Raspberry Pi. The bgapi documentation describes 7-bit I2C devices and needing to bit-shift the address to 8-bits. Though this device has an 8-bit address. I assume there is possibly an 8-bit read address and 8-bit write address. Though I tried all combinations without any success.
.BGS file excerpt
if handle = i2c_read then
#208 = 0xd0. Assumed read address
#209 = 0xd1. Assumed write address
call attributes_write(i2c_read, 0, 1, i2c_data)
2. Pull-up Resistors
I thought that there may be an issue with the pull-up resistors needed for I2C communication. These may be configured in the hardware.xml file. The raspberry pi has built-in I2C pullup resistors. The BLE112 use software bit-banging for I2C communication. I am unsure if pull-up resistors are needed or built-in. I did attach 10 kOhm external pull-up resistors to the I2C pins and used all combination of chip addresses described previously without success.
<?xml version="1.0" encoding="UTF-8" ?>
<sleeposc enable="true" ppm="30" />
<usb enable="false" endpoint="api" />
<txpower power="15" bias="5" />
<script enable="true" />
<port index="1" tristatemask="0" pull="up" />