Альтернативное использование UART как таймера в STM32

В условиях нехватки таймеров в микроконтроллерах STM32, UART можно эффективно использовать для генерации периодических прерываний. UART предоставляет гибкую настройку скорости передачи данных, фактически, делитель частоты, что позволяет точно контролировать интервалы между отправками байтов и, как следствие, частоту прерываний. Для этого UART настраивается на передачу данных, даже если его выходы не подключены, а прерывания вызываются после завершения передачи кадра, который можно растянуть до 12 бит (9 бит данных + 2 стоповых бита + стартовый). Частоту прерываний можно менять «на лету», просто меняя делитель в регистре BRR.
Альтернативное использование UART как таймера в STM32
Изображение носит иллюстративный характер

Использование UART в качестве таймера без DMA реализуется за счет обработки прерываний по окончании отправки каждого байта. Внутри обработчика прерывания необходимо повторно инициировать передачу данных, чтобы обеспечить непрерывную генерацию прерываний. Хотя этот метод и прост в реализации, он имеет некоторые недостатки, связанные с задержкой вхождения в прерывание и исполнением кода в обработчике, что может привести к отклонению от расчетной частоты.

Для более точной генерации прерываний можно использовать контроллер DMA, который снижает задержку. DMA позволяет передавать данные в UART без участия CPU, что уменьшает задержку между прерываниями. В этом случае DMA настраивается на циклическую передачу данных в регистр TDR UART, а прерывания возникают по завершении цикла передачи. Использование DMA также позволяет уменьшить частоту следования прерываний. Для этого в канале DMA настраивается количество передач данных.


Новое на сайте

1270Как проводить эффективные Вебинары: избавляемся от раздражающих факторов 1269Семь трендов seo в 2025 году 1268Итоги года в сфере интеллектуальной собственности и бизнеса 1267Reddit trends: новый инструмент для отслеживания упоминаний 1266"Пирог любви": сладкая история рождественского угощения Шри-Ланки 1265Умение признавать ошибки — ключ к росту и успеху 1264Технологические тренды и их влияние на жизнь IT-специалистов 1263Праздничные мини-колбаски в клюквенно-соевом соусе: простое волшебство 1262Роботы наступают: анализ прогнозов и экономической целесообразности 1261Пингвин-злодей и техно-брюки: новое дыхание музея в Брэдфорде 1260Марсель глазами шеф-повара: от пляжных закатов до исторических кварталов 1259Советский музыкальный звонок: хакаем и модифицируем 1258Конфликты как путь к успеху: история Рэя Крока 1257Звериный пересчет: итоги года в зоопарке 1256MetaStorm: гибкая настройка автодополнения в IDE