I2C answers on every bus read request

i am trying to communicate between 2 Arduino's (Nano Matter) setting the slave to address 0x4c and telling the master to read from 0x3f

in general would expect not to get any answer but apparently i am getting all correct reads from the device

please see master and slave files (if addresses in the file are the same its because i played with it but changing any one of the addresses in a file will give the same communication results (passing)
i have even traced signals on a scope and the sender appears to be correct

tmp431_master1_color.ino (4.4 KB)
tmp431_slave_1.ino (9.4 KB)

Of course you get the device data from the device address, regardless of unmatched slave Nano address.

please explain:
as i was thinking that if i send or read data from address 0x4c and its not on the bus i would get a failure in the transaction

on the other hand i tried doing the scanner example and i get all 127 device ack
even did it with an lcd device and all ack'ed

How many separate I2C buses do you have?
A device at 0x4C can be reached from any other device at the same bus.

i have 1 i2c bus on this bus there is a master (Arduino) programed ither to my code or to an I2C scanner code
and a single slave device arduino 2 device ether from my code and it is on 0x4c or i used an LCD that is on address 0x27

on the bus i have 5k pullup resistors

in any case thatr i use the code for the scanner shows an ACK on each and evry address it polls - this dosent make sense

on the 1st matter the 2nd arduino (slave) replyes for any address bee asked even that the code configs it to be on 0x4c

Every device on an I2C bus can act as a slave when initialized with a slave address. And every programmable device can act as a master.

That's a bug. Remove that Arduino and find out whether your scanner shows the same behavior. Then replace it to find out whether it's a hardware or firmware bug.

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.