Инструменты пользователя

Инструменты сайта


doc:doclist:pininitorder

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
doc:doclist:pininitorder [2019/09/16 14:17]
katya [Исключение для RX блоков UART и SSP]
doc:doclist:pininitorder [2019/09/16 14:29] (текущий)
katya
Строка 16: Строка 16:
  
 <WRAP center round info 90%> <WRAP center round info 90%>
-Поведение с реакцией на ложный стартовый бит было обнаружено в микроконтроллерах 1986ВЕ8, 1923ВК014,​ Электросила. В прочих микроконтроллерах,​ инициализация пинов при включенном блоке UART отрабатывает без ложного старта. Вероятно это связано с различием в схеме падов (драйверов пинов)для указанных МК настройки задаются через регистры CLR и SET.+Поведение с реакцией на ложный стартовый бит было обнаружено в микроконтроллерах 1986ВЕ8, 1923ВК014,​ Электросила. В прочих микроконтроллерах,​ инициализация пинов при включенном блоке UART отрабатывает без ложного старта. Вероятноэто связано с различием в схеме падов (драйверов пинов) ​для указанных МК настройки задаются через регистры CLR и SET.
 </​WRAP>​ </​WRAP>​
  
  
 =====Сдвиг бит при обмене по SPI===== =====Сдвиг бит при обмене по SPI=====
-В случае,​ когда SSP является ведомым,​ а сигнал FSS на схеме подключен на землю, ​то возможно повторение поведения аналогично изложенному для UART. Активный сигнал FSS активирует работу ведомого,​ поэтому возникновение помехи (иголки) на линии CLK может быть воспринято ведомым как сигнал CLK от мастера. Соответственно ведомый тут же выдвигает свой первый бит. Но когда мастер начнет обмен, то выдаст например все 8 тактов CLK для обмена первым байтом. Ведомый один бит уже выдал, поэтому выдаст 7 бит от первого байта, и на 8-й такт от мастера выдвинет первый бит от второго байта. В итоге мастер будет постоянно получать данные сдвинутые на 1 бит.+В случае,​ когда SSP является ведомым,​ а сигнал FSS на схеме подключен на землю, возможно повторение поведения аналогично изложенному для UART. Активный сигнал FSS активирует работу ведомого,​ поэтому возникновение помехи (иголки) на линии CLK может быть воспринято ведомым как сигнал CLK от мастера. Соответственноведомый тут же выдвигает свой первый бит. Но когда мастер начнет обмен, то выдастнапримервсе 8 тактов CLK для обмена первым байтом. Ведомый один бит уже выдал, поэтому выдаст 7 бит от первого байта, и на 8-й такт от мастера выдвинет первый бит от второго байта. В итоге мастер будет постоянно получать данныесдвинутые на 1 бит.
  
-Это происходит тогда когда не используется сигнал FSS. FSS - это сигнал фреймовой синхронизации,​ он обрамляет слово данных. Внутри импульса FSS каждый бит слова данных передается в ответ на каждый такт CLK. Если FSS нет, то ведомый просто считает количество импульсов CLK и выдвигает биты, он не знает который бит первый,​ потому что нет привязки к началу фрейма. Отсчет начался с первым импульсом CLK, но если этот первый импульс CLK был ложным,​ то весь обмен "​поехал"​.+Это происходит тогдакогда не используется сигнал FSS. FSS - это сигнал фреймовой синхронизации,​ он обрамляет слово данных. Внутри импульса FSS каждый бит слова данных передается в ответ на каждый такт CLK. Если FSS нет, то ведомый просто считывает количество импульсов CLK и выдвигает биты, он не знаеткоторый бит первый,​ потому что нет привязки к началу фрейма. Отсчет начался с первым импульсом CLK, но если этот первый импульс CLK был ложным,​ то весь обмен "​поехал"​.
  
-Вместо помехи на CLK может проявляться неправильная последовательность инициализации. Например SPI включился,​ а на линии CLK еще "​0",​ т.к. мастер еще не включен и не вывел линию в "​1"​ - для случая SPO=SPH=1. При этом ведомый решит что начат обмен и выдаст первый бит.+Вместо помехи на CLK может проявляться неправильная последовательность инициализации. Например SPI включился,​ а на линии CLK еще "​0",​ т.к. мастер еще не включен и не вывел линию в "​1"​ - для случая SPO=SPH=1. При этом ведомый решитчто начат обмен и выдаст первый бит.
  
 В итоге, если наблюдается обмен со сдвигом бит, то необходимо задуматься почему ведомый ловит старт и что необходимо исправить,​ чтобы этого не происходило. Использование сигнала FSS в данном случае делает обмен более помехозащищенным. Даже если первое слово и будет выдано со сдвигом по какой-то причине,​ то последующие слова обязательно будут синхронны с FSS. В итоге, если наблюдается обмен со сдвигом бит, то необходимо задуматься почему ведомый ловит старт и что необходимо исправить,​ чтобы этого не происходило. Использование сигнала FSS в данном случае делает обмен более помехозащищенным. Даже если первое слово и будет выдано со сдвигом по какой-то причине,​ то последующие слова обязательно будут синхронны с FSS.
  
doc/doclist/pininitorder.txt · Последние изменения: 2019/09/16 14:29 — katya