Имеется система состоящая из Master receiver и Slave transmitter. Есл исходить из стандарта I2C, т количество передаваемых байт определяется мастером: при получении последнего байта он ставит NOT ACK, а передатчик получив его останавливает передачу. Мне же нужно чтобы количество передаваемых байт определялось передатчиком. С одной стороны, у него нет средств чтобы по своей инициативе остановить передачу - такты выдаются мастером. Но в описании Status Codes for Slave Transmitter Mode написано, что ведомый с передачей последнего байта может не установить TWEA и это будет означать, что передается последний байт. И есть status code 0xC8 означающий, что "Last data byte in TWDR has been transmitted (TWEA = “0”); ACK has been received". Так значит он может каким-то образом остановить передачу по своей инициативе? И как это происходит аппаратно, т.е. что выдается на шину?
|