Адреса в I2C обязаны сопровождаться ACK, который генерирует устройство, имеющее этот адрес. В противном случае считается, что устройства просто нет на шине. А вот отсутствие ACK после переданного байта данных может свидетельствовать о том, что устройство хочет завершить передачу или прием. Например, для того чтобы записать принятый буфер. Кстати, в даташите TDA7318 ясно указано, что "The TDA7318 must always acknowledge at the end of each transmitted byte." Таким образом TDA7318 принимает передаваемую информацию и всегда генерирует ACK и для адреса и для данных. P.S. по поводу восьмого бита в адресе. Вы видимо невнимательно читали спецификацию шины I2C. Иначе знали бы, что последний бит адреса определает режим чтения/записи. 1 - чтение, 0 - запись. TDA7318 работает только на прием, поэтому ее адрес должен заканчиваться нулем, т.е. режим записи (запись в TDA7318). Если попробовать читать из TDA7318 (восьмой бит адреса =1), то она должна выдать NACK. Т.е. чтение эта м/с не поддерживает.
|