I2C
Флаг TXIS
Описание
Флаг TXIS формируется в конце передачи байта, а не в его начале. Из-за этого, если байт был предварительно загружен, то после подтверждения адреса первый TXIS не выставляется. Первая установка TXIS будет после отправки первого байта. Если в режиме без растягивания (NOSTRETCH = 1) за время от установки TXIS до отправки следующего байта не были загружены данные, то возникает недозагрузка.
Обход
Варианты:
-
Передача по флагу TXE без прерываний;
-
Передача по флагу TXIS с прерываниями. Потребует значительно снизить частоту передачи (приблизительно до 50 кГц) и использовать очень короткий обработчик прерываний;
-
Использование DMA. Этот блок тоже работает по флагу TXIS, но передает байт значительно быстрее, чем это возможно по прерыванию, что позволит работать на частоте 400 кГц и выше.