8. SPI Модуль в режиме Frame Master
SPI модуль будет не в состоянии генерировать frame импульсы синхронизации когда конфигурировано в режиме Frame Master, если начало данных выбора совпадает с началом frame импульса синхронизации (FRMEN = 1, SPIFSD = 0, FRMDLY = 1). Однако, данная функция модуля правильна в режиме Frame Slave, а также в режиме Frame Master если FRMDLY = 0.
Решение проблемы
Если не используется DMA, то вручную управляйте выводом SSx (x – номер модуля) high использование связанного регистра PORT, и затем управляется низким уровнем с требуемой шириной импульса времени передачи бита. Эта операция должна быть выполнена, когда в передающем буфере есть данные.
Если используется DMA, и если другими перерефериями модуля не использует DMA для передачи, то необходимо использовать таймер прерывания, чтобы периодически генерировать Frame импульс синхронизации (используя описанный выше метод) после каждого периода на 8 или 16 битов (в зависимости от используемого формата (бит MODE16)).
Если FRMDLY = 0, никакие дополнительные действия не нужны.
9. SPI Модуль в режиме SlaveSelect
Функциональные возможности модуля SPI в режиме Slave Select (активизируется установкой SSEN = 1) не будет правильно работать.
Высокий ли уровень на входе SSx (x = 1 или 2 – в зависимости он номера модуля) или низкий уровень, передача данных SPI будет завершена и прерывание будет сгенерировано.
Решение проблемы
Если не используется DMA, вручную опросите состояние вывода SSx в прерывании SPI, читая при этом связанный бит LAT:
- если бит LAT - ‘0’, то исполняют требуемое чтение-запись данных.
- если бит LAT - ‘1’, то очистить флаг прерывания SPI (SPIxIF), произвести фиктивное чтение регистра SPIxBUF, и возвратиться из сервисной подпрограммы прерывания.
Если DMA используется, то дополнительные действия не нужны.
10. SPI Модуль
Бит SMP (SPIxCON1 <9>) не имеет никакого эффекта, когда модуль SPI сконфигурирован для коэффициента предделителя 1:1 режиме ведущего. В этом режиме вне зависимости от того, установлен ли бит SMP или сброшен, данные всегда проверяются в конце времени вывода данных.
Решение проблемы
Если требуется выборка в середине времени вывода данных, тогда настроить модуль SPI, чтобы использовать другой коэффициент предделителя кроме 1:1 используя биты PPRE <1:0> и SPRE <2:0> в регистре SPIxCON1.
11. ECAN Модуль
Если множество ECAN передающих буферов, поставлены в очередь для передачи (множество битов TXREQ устанавливается в ‘1’ одновременно), тогда передачи сообщения от включённых буферов могут сталкнуться между собой. В результате, неправильный идентификатор и данные передачи произойдут периодически.
Решение проблемы
Нужно включать только один передающий буфер, т.е. одновременна активным должен быть только один. В пользовательском приложении, это может быть обеспечено проверяя, что все другие биты TXREQ являются очищенными перед установкой бита TXREQn передающего буфера, из которого должны быть переданы данные.
12. ECAN Модуль
При определенных условиях, первые пять битов идентификатора отправителя могут не соответствовать значению в буфере передатчика SID. Если модуль ECAN обнаруживает начало фрейма (SOF) в третьем бите межфреймового пространства и если сообщение, что должно быть передано is pending, первые пять битов идентификатора передатчика может быть неверным (испорченным).
Решение проблемы не имеется
13. ECAN Модуль, режим Loopback
Модуль ECAN (ECAN1 или ECAN2) функционирует не правильно в режиме Loopback.
Использовать данный режим нельзя
18. Модуль UART
При работе с опцией четности, ошибкой четности, обозначенной битом PERR (UxSTA <3>) быть установленным, может происходить, если Baud Rate содержит нечетное значение. Это затрагивает варианты при проверки на чётность и проверку на нечётность.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.