Replies: 2 comments
|
Hi For your questions:
From what I see of your experiment, I would make sure that the address is correct and that the signal makes it to the sensors. Passing the question through Codex seems to show that you are not scanning enough address to reach the device address, I did not double check that though. |
0 replies
|
A NACK there usually means the device is not answering yet rather than not existing: the MAX14521E needs its supply up and a settle time before it responds, and some breakout boards tie an enable pin. Two more things specific to the Crazyflie expansion header:
|
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Hello,
This is my first time attempting I2C communication using the Crazyflie 2.1 expansion header (I2C1 bus).
I am trying to interface a piezoelectric micropump driver (Bartels MP6-XOEM / MAX14521E).
According to its datasheet, the default 8-bit write address is
0x78. Since the Crazyflie firmware uses standard 7-bit addressing, I target0x3C(0x78 >> 1).However, direct writes to
0x3Creturn NACK. To troubleshoot, I adapted thehellodeck driver example to scan the I2C bus across the full range (skipping0x50to0x57to protect the onboard deck memory).Here is my deck driver implementation:
Hardware setup:
/RESET) is tied to GND (Slave I2C mode). Pins 4, 5, and 6 are left floating as specified by the manufacturer.EEPROM: I2C connection [FAIL]).The oscilloscope trace shows valid 3.0V clock and data transitions, but the 9th clock cycle is never pulled down by the slave (NACK).

Questions:
i2cdevWrite(I2C1_DEV, addr, 0, NULL)) the correct way to ping slaves onI2C1_DEV, or does the driver expect at least one register byte?VCOMwhile the bus logic is at 3.0V require a specific level shifter on the Crazyflie 2.1 expansion header?Thank you in advance for your help!
All reactions