Clock stretching supported in boot mode?
Jimmy W.
Posts: 112
Does the prop support the eeprom stretching the clock when its booting?
Comments
-Phil
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
'Still some PropSTICK Kit bare PCBs left!
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Paul Baker
Propeller Applications Engineer
Parallax, Inc.
That would allow multiple Propellers to all boot from the same Eeprom and use those I2C lines for inter-Propeller communications.
I'm not asking for full multi-master I2C support or arbitration, that can be handled after boot-up by user-written I2C objects. Making it work is up to the develper but this would prevent the hardware damage which would currently occur if two Propellers had their SCK lines directly connected.
If writes to an EEPROM were restricted to whole pages of data only, the STOP would not be necessary to signal the end of a block, and the EEPROM could hold the bus after each group of 64 (or whatever page-length) bytes until the write is complete.
I have a feeling that manufactureres are reluctant to implement bus-hold in their slave devices since so few masters support it. In that light, it's kind of a chicken-and-egg problem.
-Phil
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
'Still some PropSTICK Kit bare PCBs left!
Clock stretch can be deferred to the next time the device is accessed. If the write cycle is complete no stretch, otherwise stretch a clock cycle sometime during the location address. That means further access blocks until the previous write cycle completes.
Leave stretching to the last instant and there's a greater chance a write will have completed before holding up the next access.
That's a very useful technique for Propeller-based I2C Slaves, and far better than guessing how long a delay is needed after each access. All it needs is an I2C Driver which supports clock stretching.