#1 Support I2C masters without clock-strech support

Open
opened 9 months ago by razzor · 0 comments
razzor commented 9 months ago

Currently clock stretching is used for write/erase timing - the bus is “stopped” (by forcing SCL=low) while the AVR is writing to the flash/eeprom.

Some I2C masters (eg. BCM2835 / Raspberry Pi) do not detect SCL=low forced by the slave und continue to write data to twiboot.

Workaround could be:

  • start the actual write cycle only after STOP condition is received
  • do not acknowledge ADDR+WRITE while chip is busy writing
  • add a new read command to check if chip is buy writing

This will break existing applications since (fast) I2C transaction will now fail during chip write cycle.

Currently clock stretching is used for write/erase timing - the bus is "stopped" (by forcing SCL=low) while the AVR is writing to the flash/eeprom. Some I2C masters (eg. BCM2835 / Raspberry Pi) do not detect SCL=low forced by the slave und continue to write data to twiboot. Workaround could be: - start the actual write cycle only after STOP condition is received - do not acknowledge ADDR+WRITE while chip is busy writing - add a new read command to check if chip is buy writing This will break existing applications since (fast) I2C transaction will now fail during chip write cycle.
Sign in to join this conversation.
No Label
No Milestone
No Assignees
1 Participants
Due Date

No due date set.

Dependencies

This issue currently doesn't have any dependencies.

Loading…
Cancel
Save
There is no content yet.