Предполагая, что i2 c спецификация для nxp идентична отраслевому стандарту.
1) Я не думаю, что «подтверждение включено Мастером» является правильным термином здесь. После каждого (полного) байта, отправленного Ведущим, он ожидает, пока Ведомый не отправит обратно бит подтверждения (или не подтверждение). Ведомое устройство делает это, изменяя уровень линии SDA.
2) Для передачи данных от ведущего устройства к подчиненному (и обратно) очень важно соблюдать порядок отправленных байтов. Типичный пример будет выглядеть следующим образом:
- Ведущие отправляют: сигнал запуска
- Ведущие отправляют: адрес ведомого + бит записи
- Отправляемые ведомые: ACK
- Мастер посылает: регистр адрес, который мастер хочет прочитать
- Ведомый отправляет: ACK
- Мастер отправляет: повторный стартовый сигнал
- Мастер отправляет: адрес ведомого + бит чтения
- Slave отправляет: ACK
- Slave отправляет: содержимое регистра. Адрес регистра, который мастер хочет прочитать
- Master посылает: NACK
- Master посылает: сигнал остановки
Если вы ищете более подробную информацию о I2 C, то в Inte rnet их много. Для меня, раздел 21 этой таблицы данных очень помог мне понять.