Современная электроника №8/2021
ПРОЕКТИРОВАНИЕ И МОДЕЛИРОВАНИЕ 35 WWW.SOEL.RU СОВРЕМЕННАЯ ЭЛЕКТРОНИКА ◆ № 8 2021 USART2, USART3), а также 2 модуля UART (UART4, UART5), которые предоставля- ют практически те же возможности, что и USART, за исключением функ- ций синхронного обмена данными и аппаратного контроля передачи (соот- ветственно, для этих модулей недосту- пен режим Smartcard). Кроме того, для модуля UART5 недоступна работа через DMA. Все модули приёмопередатчи- ков обеспечивают полнодуплексный обмен по последовательному каналу. Длина посылки может составлять от 8 до 9 битов. Во всех модулях в обязатель- ном порядке присутствуют схемы кон- троля и формирования бита чётности. Выводы микроконтроллера, использу- емые модулями USART, являются лини- ями ввода/вывода общего назначения (микросхема STM32F103C4 имеет два 16-разрядных порта ввода/вывода с воз- можностью управления их битовыми линиями). Назначение выводам функ- цииUSART осуществляется в регистрах настройки GPIO. В микроконтроллере STM32F103C4 модулемUSART1 исполь- зуются линии PА10 (RXD) – вход USART1, PА9 (TXD) – выход USART1, PА8 (XCK) – вход/выход внешнего тактового сиг- нала USART1. Однако, используя реги- стрыAFIO, вход и выход USART1можно перенести на выводыРВ7 и РВ6 соответ- ственно. USART2 для приёма/передачи данных использует выводы РА3 и РА2. Модуль USART состоит из трёх основ- ных частей: блока тактирования, бло- ка передатчика и блока приёмни- ка. Буферные регистры приёмника и передатчика располагаются по одно- му адресу пространства ввода/вывода. Для доступа к ним используют младшие 9 бит регистра USART_DR. При чтении регистра USART_DR выполняется обра- щение к буферному регистру приёмни- ка RDR, при записи – к буферному реги- стру передатчика TDR. Прямого доступа к регистрам TDR и RDR нет. Для управления модулем USART используются регистры USART_SR, USART_BRR, USART_CR1, USART_CR2, USART_CR3. Работа модуля USART раз- решается установкой в лог. «1» бита UE (USART Enable) регистра USART_СR1. Работа передатчика разрешается уста- новкой в лог. «1» бита TE (Transmitter Enable) регистра USART_СR1. При уста- новке бита вывод TXD подключается к передатчику USART и начинает функ- ционировать как выход, независимо от установок регистров управления портом. Если используется синхрон- ный режим работы, то переопределя- ется также функционирование вывода XCK. Передача инициируется запи- сью передаваемых данных в буфер- ный регистр передатчика, т.е. в регистр данных USART_DR. После этого данные пересылаются из регистра USART_DR в сдвиговый регистр передатчика. После пересылки слова данных в сдвиговый регистр флаг ТХE регистра USART_SR устанавливается в 1, что означает готов- ность передатчика к получению нового слова данных. В этом состоянии флаг остаётся до следующей записи в буфер. Выключение передатчика осущест- вляется сбросом бита TE регистра USART_СR1. Если в момент выполнения этой команды осуществлялась переда- ча, сброс бита произойдёт только после завершения текущей и отложенной передач, то есть после очистки сдвиго- вого и буферного регистров передат- чика. При выключенном передатчике вывод TXD может использоваться как контакт ввода/вывода общего назначе- ния. Настройку скорости передачи дан- ных выполняют записью соответству- ющего значения в регистр USART_BRR. Работа приёмника разрешается установкой в лог. «1» бита RE регистра USART_СR1. При установке бита вывод RXD подключается к приёмнику USART и начинает функционировать как вход, независимо от установок регистров управления портом. Если использует- ся синхронный режим работы, пере- определяется также функционирование вывода XCK. Выключение приёмника осуществляется сбросом бита RE реги- стра USART_СR1. В отличие от передат- чика, приёмник выключается сразу же после сброса бита, а значит, кадр, при- нимаемый в этот момент, теряется. Кро- ме того, при выключении приёмника очищается его буфер, то есть теряют- ся также все непрочитанные данные. При выключенном приёмнике вывод RXD может использоваться как кон- такт ввода/вывода общего назначения. Включение контроля чётности выполняют установкой в лог. «1» бита PCE регистра USART_СR2. В этом же регистре задают количество стоповых битов, определив значение флага STOP (00-1, 01-0,5, 10-2, 11-1,5 стоп- бита). Управляя значениями битов реги- стров модуля USART микроконтролле- ров Cortex-M3, реализовывают процесс обмена данными. Для этого в регистре настроек USART_СR1 используют флаги: ● UE – 13-й бит регистра, установка 1 в котором включает модуль USART, 0 – выключает; ● M – 12 бит регистра, в котором опре- деляют количество информаци- онных битов в посылке (0–8 бит, 1–9 бит); ● РСЕ – 10-й бит регистра, установка единицы в котором включает кон- троль чётности, нуля – выключает; ● PS – 9-й бит регистра используют для проверки нечётности (1) или чётно- сти (0); ● ТЕ – 3-й бит регистра, где определя- ют состояние передатчика: 1 – вклю- чён, 0 – отключён; ● RE – 2-й бит регистра, где определя- ют состояние приёмника: 1 – вклю- чён, 0 – отключён; ● RWU–1-йбит управляет режимомра- ботыприёмникаUSART, когда внёмза- писана единица –приёмникпереклю- чается в режиможидания, когданоль – устанавливается активный режим. В регистре состояния USART_SR используют флаги: ● TXE – 7-й бит регистра USART_SR устанавливается в 1 после передачи всех битов регистра TDR в сдвиговый регистр передатчика, что указывает на то, что буферный регистр пуст и готов к приёму новых данных. Флаг сбрасывается автоматически по- сле записи байта данных в регистр USART_DR; ● TC – 6-й бит регистра устанавливается в 1 после передачи всех битов из сдви- гового регистра передатчика, если при этом установлен бит TXE (то есть ес- ли в регистре данных передатчика нет новых данных для передачи). Сбрасы- вается автоматически выполнением программной последовательности: чтение регистра USART_SR с после- дующей записьюв регистрUSART_DR; ● RXNE – 5-й бит регистра, устанавли- вается в 1 после перемещения при- нятых данных из сдвигового реги- стра приёмника в регистр данных приёмника, что указывает на то, что буферный регистр приёма не пуст. Данные должны быть считаны до прихода следующих, иначе они бу- дут потеряны. Флаг сбрасывается ав- томатически при чтении регистра USART_DR; ● ORE – 3-й бит регистра устанавлива- ется в 1, если в сдвиговом регистре приёмника готова очередная порция данных для передачи в регистр дан- ных приёмника, но при этом из реги- стра данных приёмника ещё не счи- тали предыдущие принятые данные. При возникновении этой ошибки данные в регистре RDR сохраняют-
RkJQdWJsaXNoZXIy MTQ4NjUy