execuc / u2if

USB to interfaces implementing MicroPython "machine" module functionalities on a computer.
Other
152 stars 26 forks source link

change _i2c_scan from doing writes to a single read #11

Open charkster opened 2 years ago

charkster commented 2 years ago

I was not able to detect VCNL4010 ambient light and proximity sensor as it will not ACK a write to an invalid internal address (address 0x00 is not valid). It will ACK to a read of an invalid address. As micropython does not have a I2C quick command, a proper I2C scan is not possible to implement... so as a compromise a single byte read should be attempted instead of a multi-byte write. As most i2c device reads will use a repeated start after the address is written, a single byte read will most likely be ACK-ed by the majority of devices.