
- •Микроконтроллеры msp430 Введение
- •1. Центральный процессор msp430
- •1.1. Адресное пространство микроконтроллеров msp430f1xx
- •1.2. Регистровый файл
- •1.3. Байтовая и словная формы инструкций.
- •1.4. Режимы адресации
- •1.4.1 Регистровая адресация
- •1.4.2. Индексная адресация
- •1.4.3 Символьная адресация
- •1.4.4 Абсолютная адресация
- •1.4.5. Косвенная адресация
- •1.4.6. Косвенная адресация с автоинкрементом
- •1.4.7 Непосредственная адресация
- •2. Система команд msp микроконтроллеров
- •2.1. Двухадресные команды
- •2.2 Одноадресные команды
- •2.3 Команды переходов
- •2.4. Эмулируемые команды
- •3. Периферийные устройства микроконтроллеров msp430f1xx
- •3.1 Внешние выводы микроконтроллера msp430f149
- •3.2 Система прерываний
- •3.3 Система тактирования
- •3.4 Сторожевой таймер
- •3.5 Аппаратный умножитель
- •3.6 Порты ввода/вывода
- •3.7 Таймер a3
- •3.8 Таймер b7
- •3.9 Интерфейс usart
- •3.9.1 Режим uart
- •3.9.1.1 Передача данных
- •3.9.1.2 Передача данных
- •3.9.1.3 Поддержка коммуникации в многопроцессорных системах
- •3.9.1.4 Обнаружение стартового бита при приеме
- •3.9.1.5 Скорость передачи
- •3.9.1.6 Регистры usart
- •3.9.2 Режим spi
- •3.9.3 Режим i2c
- •3.10 Аналоговый компаратор
- •3.11 Аналого-цифровой преобразователь adc12
- •3.12 Flash контроллер
- •3.12.1 Стирание Flash памяти
- •3.12.2 Запись Flash памяти
- •3.12.3 Регистры Flash контроллера
3.9.1 Режим uart
В этом режиме USART обеспечивает работу согласно популярным протоколам RS232, RS485 и др. USART подключается к внешним устройствам через два вывода: URXD – вход приемника, UTXD – выход передатчика.
В этом режиме обеспечиваются следующие характеристики:
Кадр данных длинной 7 или 8 бит с контролем или без контроля четности;
Независимые сдвиговые регистры для приемника и передатчика;
Независимые буферные регистры для приемника и передатчика;
Аппаратная поддержка коммуникационных протоколов для многопроцессорных систем;
Программируемая скорость передачи;
Внутреннее или внешнее тактирование;
Независимые вектора прерывания для приемника и передатчика.
Данные передаются/принимаются с помощью кадров, состоящих из следующей последовательности бит:
Стартовый бит – всегда низкий уровень;
7 или 8 информационных бит;
Адресный бит, используемый для коммуникации в многопроцессорных системах (опционально);
Бит паритета – устанавливается в зависимости от того четное или нечетное количество логических единиц содержит информационное поле (опционально);
Один или два стоповых битов – всегда высокий уровень.
3.9.1.1 Передача данных
Передача данных инициируется записью передаваемых данных в буферный регистр передатчика UTXBUF. Из буферного регистра данные автоматически перезаписываются в выходной сдвиговый регистр, который выдвигает их через вывод микроконтроллера UTXD младшим битом вперед, опционально дополняя информационные биты адресным битом и/или битом паритета и обрамляя кадр стартовым и стоповым битами. На линии UTXD каждый бит удерживается в течение времени, определяемой текущей битовой скоростью, которая, в свою очередь, зависит от частоты тактирования UART и содержимого регистра UBR (USART Baud Rate).
После копирования данных в сдвиговый регистр аппаратно устанавливается флаг UTXIFGx в регистрах IFG1 или IFG2 (см. п.3.2), информируя пользователя, что буфер свободен и может принять следующий байт. Не дожидаясь окончания физической передачи первого кадра, в буфер UTXBUF может быть записан следующий байт. Как только первый байт, включая стоп-биты, будет выдвинут через вывод UTXD, второй байт, находящийся в UTXBUF, будет автоматически скопирован в сдвиговый регистр и начнется передача следующего кадра. Таким образом, за счет буферирования, осуществляется непрерывная передача данных кадр за кадром.
3.9.1.2 Передача данных
Прием последовательных данных производится через вывод URXD микроконтроллера. Приемник UART ожидает перепад напряжения 1→ 0 на входе URXD. После того, как перепад обнаружен, приемник включает свой тактовый генератор и выдерживает время, равное половине длительности одного бита. По прошествии этого интервала времени приемник трижды измеряет напряжение на линии. Если хотя бы два результата измерения оказались нулевыми, принимается решение, что зафиксирован стартовый бит. Если были зарегистрировано две или более логические единицы, принимается решение, что перепад на входе URXD является следствием шумов на линии. В этом случае приемник переходит в фазу ожидания следующего старт-бита.
В том случае, если был опознан правильный старт-бит, сдвиговый регистр приемника начинает принимать данные. Через время, равное длительности одного бита, производится троекратное измерение потенциала на линии. Решение о состоянии бита производится по мажоритарному принципу. После приема всего кадра данных производится контроль стоп-бита. Если его значение оказалось равным нулю, в регистре управления приемника UART выставляется флаг ошибки кадра FE. Если использовался бит паритета и зафиксирована ошибка четности, выставляется флаг ошибки четности PE.
После приема всего кадра, данные из сдвигового регистра переписываются в буфер приемника URXBUF, а в регистре IFG1/IFG2 устанавливается флаг URXIFGx, сигнализирующий о принятом байте. До того как полученный байт будет вычитан из буфера, сдвиговый регистр способен принимать следующие данные. Однако если данные из буфера не будут вычитаны к моменту перезаписи байта из сдвигового регистра в буфер приемника, в статусном регистре приемника устанавливается флаг OE, сигнализируя о потере данных.