I'm using Arduino Zero with the ADC128D818 ADC I2C expander and using this Arduino library, but I can't seem to get any response from the ADC128.
Some other info:
- I have two 4.7k pullup resistors to pull both SCL and SDA lines to 3.3V
- Address of the ADC128D818 is set to 0x1D by connecting both A0 and A1 to GND
- The ADC128D818 is powered by a 3.3V regulator on the V+ pin, same logic voltage as the Arduino Zero
- I have a precision 3.3V reference on the VREF pin of the ADC128D818
- I probed the 3.3V and reference voltage with a meter, all are OK and nothing's shorted anywhere in the circuit (the Arduino Zero runs code just fine)
Here's the code I'm using to test:
#include "Wire.h"
#include "ADC128D818.h" // https://github.com/bryanduxbury/adc128d818_driver
ADC128D818 adc (0x1D);
#if defined(ARDUINO_SAMD_ZERO) && defined(SERIAL_PORT_USBVIRTUAL)
// Required for Serial on Zero based boards
#define Serial SERIAL_PORT_USBVIRTUAL
#endif
void setup() {
while (!Serial);
Wire.begin();
Serial.begin(115200);
Serial.println("*** ADC128D818 Test ***");
adc.setReferenceMode(EXTERNAL_REF);
// adc.setReference(2.048);
adc.setReference(3.3);
adc.begin();
}
void loop() {
// IN0-IN6 ...
for (int i = 0; i < 7; i++) {
Serial.print(i);
Serial.print(": ");
Serial.print(adc.readConverted(i));
Serial.println();
}
// ... and the internal temp sensor
Serial.print("Temp: ");
Serial.print(adc.readTemperatureConverted());
Serial.println(" deg C");
delay(1000);
}
I looked at the source code in the library and it seems OK. However, I can't even get past the "begin()" function because it never receives a response from the ADC128D818's 0x0C register. I tried on a second ADC128D818 and still the same thing.
Any ideas what I might be doing wrong?