0
\$\begingroup\$

I'm using an ATtiny3226 as an I2C client (slave) interface in a robot, to get commands from the main controller (single master) using I2C on a shielded cable.

  • There are brushless and servo motors around (it's a robot)
  • Maximum cable length is around 1 meter, it's shielded CAT 6 cable.
  • The I2C/TWI speed from master is 100 kHz or less (50 kHz, we don't have to stick to an standard if it suits us better) and the commands are at most 16 bytes per transfer.
  • There are 10 Ω series resistors on SDA/SCL lines close to the MCUs (both master and slaves)
  • The pullups are around 3.3 kΩ tied to 3.3 V, placed on the main board 1 m away
  • There's also a glitch filter on the Attiny which filters up to 50 ns glitches (page 488, TWI electrical characteristics)

After checking out datasheet, I came to this timing setup which I'm not sure how to set, to ensure better noise rejection:

SDA setup and hold for client

How should I set these 2 values to get a more robust connection on 50/100 kHz speed?

\$\endgroup\$

0

Browse other questions tagged or ask your own question.