- •Семейство микроконтроллеров aDuC70xxс прецизионной подсистемой аналогоцифрового преобразования.
- •Общее описание
- •Терминология и сокращения
- •Дифференциальная нелинейность
- •Погрешность смещения
- •Погрешность усиления
- •Режим 16-битных команд Thumb (t)
- •Умножение 32-разрядных чисел (m)
- •Встроенный отладчик EmbeddedIce (I)
- •Исключения
- •Регистры arm
- •Время обработки прерывания
- •Организация памятив aDuC70xx
- •Память Flash/ее
- •Память sram
- •Регистры внутрикристальных периферийных устройств.
- •Функция преобразования ацп
- •Тактирование
- •Особенности ацп в микросхеме aDuC7019
- •Интерфейс ацп с регистрами mmrs
- •Дифференциальный режим
- •Псевдодифференциальный режим
- •Однополярный режим
- •Структура аналогового входа
- •Подача сигнала на аналоговые входы
- •Калибровка ацп
- •Датчик температуры
- •Источник опорного напряжения
- •Энергонезависимая память flash/ee
- •Надежность Flash/ee памяти
- •Программирование флэш-памяти через последовательные интерфейсы.
- •Программирование флэш-памяти через интерфейс jtag
- •Интерфейс управления памятью Flash /ee
- •Защита памяти flash/ee
- •Существует два уровня защиты:
- •Последовательность записи ключа такова:
- •Интерфейс управления памятью Flash /ee
- •Подробное описание регистров интерфейса управления памятью Flash/ee
- •Время выполнения программы из памяти sram и из флэш-памяти
- •Отображение блоков памяти в адресное пространство
- •Причины формирования сигнала начального сброса reseTи действие этого сигнала
- •Прочая аналоговая периферия
- •Использование цап
- •Монитор источника питания
- •Компаратор
- •Генератор и схема фапч Система тактирования микроконтроллера
- •Использование внешнего кварцевого резонатора
- •Переход в режим тактирования от внешнего генератора
- •Система управления питанием
- •Интерфейс системы управления питанием и тактированием
- •Цифровая периферия Трехфазный широтно-импульсный модулятор (шим)
- •Модели в 40-выводных корпусах (aDuC7020, 21, 22)
- •Описание блока шим
- •Отключение блока шим
- •Портыдискретного параллельного ввода/вывода
- •Последовательные интерфейсы в микросистемах aDuC70xx
- •Мультиплексирование выводовпоследовательныхинтерфейсов
- •Последовательный интерфейс uart
- •Структурная схема передатчика и приёмника
- •Набор линий интерфейса и протокол канального уровня
- •Контрольный бит и спобобы его использования
- •Задание скорости передачи (частоты следования битовых интерваловBaudrate) в aDuC70xx
- •Дробный делитель (FractionalDivider)
- •Основные регистры сф, ассоциированные с подсистемой uart
- •Сетевой режим с аппаратной поддержкой адресации.
- •Последовательный синхронный периферийный интерфейс spi.
- •Последовательные интерфейсы i2c Блок программируемой логики
- •Подсистема прерываний микрокомпьютера aDuC70xx
- •Источники запросов прерываний
- •Интерфейс внешней параллельной адресуемой магистрали
- •Таймерная подсистема
Последовательный интерфейс uart
Интерфейс UART – это полнодуплексный универсальный асинхронный приемопередатчик, полностью совместимый с подмножеством стандартапоследовательного обменаRS232C, реализованным в микросхемах 16450. Интерфейс UART производит преобразование из последовательной в параллельную форму данных, принятых от периферийного устройства или из модема, и преобразование из параллельной в последовательную форму данных, поступивших от процессора.
Временная диаграмма последовательной передачи в соответствии со спецификацией RS232C, имеет следующий вид.
Структурная схема передатчика и приёмника
В дополнение к возможностям спецификации 16450, интерфейс UART вADuC70xx содержит так называемый «дробный» делитель частоты для задания точных значенийчастоты следования битовых интервалов, а также имеет режим сетевой адресации, позволяющий организовать на базе UARTлокальную сеть с несколькими абонентами. Интерфейс UART задействует до 8 выводов микроконтроллеров ADuC7019-ADuC7028 (см. табл. выше).
Набор линий интерфейса и протокол канального уровня
Для лучшего понимания настроек подсистемы последовательного интерфейса далее описаны основные принципы асинхронной последовательной передачи данных, используемые в интерфейсе UART.
Исходно, интерфейс RS232Cпредназначался для двунаправленного соединения двух абонентов в соответствии со структурой, изображенной на рис.
Каждый абонент содержит два устройства: передатчик и приемник. На рисунке использованы общепринятые обозначения: Tx(от англ. Transmitter) – для выхода передатчика и Rx (от англ. Receiver) – для входа приемника. Для передачи данных в двух направлениях спецификация RS232-C предусматривает использование двух однонаправленных линий.
Передатчик и приёмник одного абонента способны работать независимо один от другого. Это означает, что при работе передатчика Tx1 происходят изменения сигнала на входе Rx2 другого абонента, которые активируют приемник Rx2. В это же время пара связанных устройств Rx2Tx2 может как работать, так и находиться в покое.
Данные по каждой из линий передаются последовательно, бит за битом, причем время передачи каждого бита ( и обратная величина ‑частота следования интервалов постоянства сигналаBaudrate1) определяется настройкой тактового генератора передатчика.
Функциональная схема управляемого генератора частоты тактирования асинхронного последовательного интерфейса изображена на рис.??? (см. ниже). Генератор содержит вычитающий счетчик с автоперезагрузкой (см. ??? раздел ??? описание таймерных каналов). Частота переполнения счетчика, определяемая входной частотой счетчика и константой автоперезагрузкиDL (делителем),равна
Fвх/(Делитель)
и обычно в 16 раз больше частоты следования битовых интервалов. DL должен быть заранее программно записан в регистр автоперзагрузкиDivisorLatch(от этого словосочетания и образовалось широко используемое обозначение DL.
Частота следования битовых интервалов (Baudrate) выражается формулой
Baud = (Fвх/16)/(Делитель)
Эта формула используется для определения величины делителя по требуемому Baud.
Сигнал переполнения автоперезагружаемого счетчика поступает на входы двух четырехразрядных счетчиков-делителей на 16 (далее обозначаемых как СД16). Выходной сигнал верхнего (на рисунке) СД16 используется для тактирования передатчика, т.е. задает его битовую частоту, а выходной сигнал второго (нижнего) СД16 аналогично тактирует приемник (на одном и том же абоненте).
Подобная структура тактирования должна быть реализована во втором из двух абонентов, связанных асинхронным интерфейсом. Заметим, что при организации связи двух абонентов А1 и А2 в передатчике А1 и в приемнике А2 могут использоваться различные значения Fвх, и различные разрядностиnавтоперезагружаемого счетчика. Должно лишь соблюдаться требование, чтобы можно было подобрать на приемнике и на передатчике такие (м.б. различные, с учетом различных Fвх и n) значения делителей, чтобы битовые частоты передатчика Tx1 одного абонента и приемникаRx2 другого абонента различались заметно меньше, чем на половину длины интервала постоянства сигнала. В наихудшем случае это требует относительной нестабильности задающих генераторов на передатчике и на приёмнике, меньшей, чем 4%.
Передатчик формирует в линию значения последовательных битов синхронно с формируемой его генератором тактовой последовательностью. Приемник, в котором тактирование производится той же частотой, может анализировать значения сигнала в линии, руководствуясь собственной тактовой последовательностью, если она будет сфазирована с тактовой последовательностью передатчика другого абонента.
Фазирование осуществляется следующим образом. Передача в соответствии со спецификацией RS232C происходит пакетами (кадрами, фреймами) небольшой длины. Перед началом пакета сигнал в линии соответсвует логической 1. В начале пакета всегда должен присутствовать стартовый бит со значением 0. Начало стартового бита в передатчике совпадает с состоянием 0000 его СД16. Схемотехника приемника выявляет наличие в линии перепада 10, соответствующего началу стартового бита, и по этому событию формирует сигнал сброса своего СД16, в результате чего его состояние также становится равным 0000, т.е. состояния СД16 в передатчике и приемнике оказываются синхронизированными. Это позволяет приемнику определять моменты времени, которые наиболее удалены от границ битового интервала, и в которые наиболее безопасно выполнять считывание значения передаваемого бита.
В значительной части реализаций приемников UART считывание выполняется трижды, при состояниях 7, 8 и 9 (0111, 1000 и 1101) в счетчике СД16. Решение о значении считанного бита производится «по большинству голосов». Такая организация позволяет не только повысить достоверность считывания бита, передаваемого по «зашумленной» линии но и выявить факт наличия шума (если «голосование» оказывается не единогласным).
Спецификация RS232Cпредусматривает после стартового бита наличие от 5 до 8 информационных битов (их количество может быть установлено программно), затем необязательный контрольный бит, а в конце пакета – стоповый интервал, в котором значение сигнала должно быть равно логической 1 (т.е. как перед началом стартового бита). Длительность стопового интервала программист может выбрать равным 1, либо 1.5 (только для формата с 5-ю информационными битами), либо 2-м битовым интервалам. Таким образом, длина пакета может составлять от 7 до 12 битовых интервалов.
Перед началом передачи данных как для передатчика так и для приемника следует (одинаково) настроить следующие параметры пакета: а) частота следования битовых интервалов б) количество информационных битов в) длина стопового интервала г) отсутствие или наличие контрольного бита д) если контрольный бит разрешен, правила его использования.
В реализациях интерфейса RS232C в персональных компьютерах IBMPC для задания частоты следования битовых интервалов была выбрана частота задающего генератора 1843200 Гц, а структура формирователя битовой частоты соответствовала только что описанной. При величине DL=1, частота следования битовых интервалов в стандартном COM-порте ПК равна (1843200/16)/1=115200 бит/с. Задавая делитель отличным от 1, можно получить более низкие скорости передачи. Отдельные скорости приняты как стандартные: 4800, 9600, 19200, 115200 и ряд других.
В некоторых реализациях последовательного асинхронного интерфейса возможно производить перечисленные настройки независимо и по-разному для находящихся в одном абоненте передатчика и приемника. Это позволяет вести передачу в разных направлениях с различными скоростями и в разных форматах.Где-то я такое встречал, но где, не помню. В i386EX сделано, как в станд.PC.
В микроконтроллере ADuC70xx, как и в COM-порте стандартного персонального компьютера, возможно задать лишь один набор параметров, который относится одновременно и к приемнику и к передатчику одного абонента, независимые и различные установки параметров для приема и передачи невозможны.