Ignoring ACK during master send without peripheral slave ack
Posted: Thu Apr 08, 2010 7:29 am
Performance of some embedded devices can be improved by extending length of I2C link, especially with unidirectional information stream like DAC or LCD.
Buffering and galvanic isolation of write-only I2C devices is quite sophisticated due to neediness in dynamic reverse of SDA signal direction for acknowledge bit.
Specialized I2C galvanic isolation devices (e.g. from Philips) are not popular.
The attached is example of ignoring ACK during master TX.
Slightly modified versions of NetBurner Run-time library functions I2CSendBuf() and I2CSend() are used. The modification is ignoring ACK during master send without peripheral slave acknowledge. The modified functions can be free mixed with the original NetBurner Run-time library functions.
For the reference, the original lines of the modified code are commented out instead of delete.
Tested with NetBurner board mod5270b, Atmel EEPROM at24c512, and NetBurner NDDK Rel24_rc2.
Buffering and galvanic isolation of write-only I2C devices is quite sophisticated due to neediness in dynamic reverse of SDA signal direction for acknowledge bit.
Specialized I2C galvanic isolation devices (e.g. from Philips) are not popular.
The attached is example of ignoring ACK during master TX.
Slightly modified versions of NetBurner Run-time library functions I2CSendBuf() and I2CSend() are used. The modification is ignoring ACK during master send without peripheral slave acknowledge. The modified functions can be free mixed with the original NetBurner Run-time library functions.
For the reference, the original lines of the modified code are commented out instead of delete.
Tested with NetBurner board mod5270b, Atmel EEPROM at24c512, and NetBurner NDDK Rel24_rc2.