Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: STM32 USART Parity processing
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > ARM, 32bit
sonycman
Судя по мануалу к STM32F10ххВ:

Data register (USART_DR)

Bits 8:0 DR[8:0]: Data value.
Contains the Received or Transmitted data character, depending on whether it is read from
or written to.
---
When transmitting with the parity enabled (PCE bit set to 1 in the USART_CR1 register), the
value written in the MSB (bit 7 or bit 8 depending on the data length) has no effect
because
it is replaced by the parity.
When receiving with the parity enabled, the value read in the MSB bit is the received parity
bit
.

Получается, с включенным контролем чётности невозможно передавать данные в 9-ти битном формате, так как девятый бит заменяется битом чётности?
Ну это ладно.
Но вот второе - ну зачем мне бит чётности нужен в виде MSB? Там же аппаратный контроль!

Получается, чтобы принимать байты с контролем, надо устанавливать ширину 9 бит?
Lelikk
Может быть вам он и не нужен, до даже для аппаратного контроля он должен как-то передаваться.
Кстати, 9-ти битный формат, это какая-то экзотика: 5, 7 или 8 обычно.

Цитата(sonycman @ Jan 2 2009, 22:23) *
Получается, с включенным контролем чётности невозможно передавать данные в 9-ти битном формате, так как девятый бит заменяется битом чётности?
Ну это ладно.
Но вот второе - ну зачем мне бит чётности нужен в виде MSB? Там же аппаратный контроль!

Получается, чтобы принимать байты с контролем, надо устанавливать ширину 9 бит?
sonycman
Цитата(Lelikk @ Jan 7 2009, 17:51) *
Может быть вам он и не нужен, до даже для аппаратного контроля он должен как-то передаваться.

Конечно, должен. Дополнительным битом за словом данных.
А у ST он просто замещает MSB слова данных.

Не знаю, может, другие фирмы тоже так делают, просто в доках к девайсам по-другому это описывают?
В принципе, это не проблема, конечно. Интересно было... smile.gif
Lelikk
Цитата(sonycman @ Jan 7 2009, 20:00) *
Конечно, должен. Дополнительным битом за словом данных.
А у ST он просто замещает MSB слова данных.

Не знаю, может, другие фирмы тоже так делают, просто в доках к девайсам по-другому это описывают?
В принципе, это не проблема, конечно. Интересно было... smile.gif


У NXP этот бит например просто не виден в регистре данных.
Просто ST зачем-то показала его на обозрение, чем и вызывает смущение.
zltigo
Цитата(sonycman @ Jan 2 2009, 22:23) *
Но вот второе - ну зачем мне бит чётности нужен в виде MSB? Там же аппаратный контроль!

Аппаратный-то контроль почти везде, только наиболее часто в железе данные отдельно - ошибки отдельно. При этом те-же данные ,например, буферизирубтся в FIFO, а флаги ошибок - нет. В результате признак ошибки делокализуется. Только изредка (типа Am186) встречается действительно продвинутое железо UART.
sonycman
Цитата(zltigo @ Jan 8 2009, 12:10) *
Аппаратный-то контроль почти везде, только наиболее часто в железе данные отдельно - ошибки отдельно. При этом те-же данные ,например, буферизирубтся в FIFO, а флаги ошибок - нет. В результате признак ошибки делокализуется. Только изредка (типа Am186) встречается действительно продвинутое железо UART.

То есть наоборот, это признак продвинутого железа? Хм...
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.