Журнал Компоненты TI , Выпуск 1, 2015 г
В статье описывается реализация недорогого интерфейса начального загрузчика (BSL) для микроконтроллера MSP430 на основе LaunchPad, использующего протокол UART. Целью этой разработки является внедрение устройств MSP430 Value Line, имеющих менее двух модулей последовательного интерфейса, в качестве моста между программным инструментом начальной загрузки BSL Scripter и устройством MSP430, куда осуществляется загрузка. Дополнительные материалы по проекту и исходный код программы, относящиеся к данной статье, можно загрузить с сайта.
Введение
Начальный загрузчик MSP430
Начальный загрузчик (BSL) микроконтроллера MSP430 — это программа, которая встроена в устройства MSP430 для считывания и изменения содержимого памяти MSP430, и которую можно использовать для изменения встроенного программного обеспечения. Большинство устройств MSP430 имеют возможность доступа к UART BSL через интерфейс UART. Исключение составляют устройства MSP430 с интерфейсом USB, которые имеют встроенную программу USB BSL [1].
UART BSL
Программу UART BSL можно вызвать, подав специальную входную последовательность сигналов BSL на контакты RST и TEST (в случае устройств, в которых контакты интерфейса JTAG объединены с другими контактами) или на контакт TCK (в случае устройств, имеющих отдельные контакты JTAG). Входная последовательность сигналов BSL будет разной для устройств MSP430, в которых контакты JTAG объединены с контактами другого назначения, и устройств, имеющих специально выделенные контакты JTAG. Отличие входных последовательностей сигналов BSL для этих двух типов устройств отражены на Рисунках 1 и 2.
![]() |
|
Рисунок 1. | Входная последовательность сигналов BSL для устройств с контактами JTAG, объединёнными с другими контактами. |
Кадры данных протокола UART BSL принципиально различны в случае BSL на основе ПЗУ и BSL на основе flash-памяти. Программа BSL на основе ПЗУ доступна в устройствах 1xx, 2xx, и 4xx, а BSL на основе flash-памяти имеется в устройствах 5xx и 6xx. Подробнее о протоколе BSL обоих типов программного обеспечения BSL в [2].
![]() |
|
Рисунок 2. | Входная последовательность сигналов BSL для устройств со специально выделенными контактами JTAG. |
Универсальный асинхронный приёмопередатчик (UART)
Универсальный асинхронный приёмопередатчик (UART) — это стандарт последовательной связи, который широко используется во встроенных системах. Поскольку данные передаются последовательно и асинхронно (без всякого тактового сигнала), и приёмная, и передающая стороны вынуждены использовать одинаковые настройки скорости передачи данных (обычно она определяется как скорость передачи в бодах), количества битов данных и использования бита чётности. Стандартный кадр UART показан на Рисунке 3.
![]() |
|
Рисунок 3. | Кадр UART. |
По умолчанию линия связи UART находится в состоянии отсутствия передачи, имея логический уровень «ВЫСОКИЙ». Обычно сигналом СТАРТОВОГО бита является первый переход из состояния «ВЫСОКОГО» логического уровня в состояние «НИЗКОГО» логического уровня. После передачи СТАРТОВОГО бита передаются биты данных. В большинстве систем данные отправляются в формате с прямым порядком байтов (первым следует младший байт), а битов данных может быть 7 или 8. Перед СТОПОВЫМ битом может, при необходимости, отправляться бит чётности для проверки кадра. Наконец, СТОПОВЫЙ бит обозначает конец кадра UART, представляя собой переход из состояния «НИЗКОГО» логического уровня в состояние «ВЫСОКОГО» логического уровня.
Комплект разработчика MSP-EXP430G2 Launchpad
Комплект разработчика MSPEXP430G2, известный под названием «Launchpad» — это недорогой комплект разработчика устройств MSP430G2xxx Value Line. Комплект разработчика имеет встроенный эмулятор интерфейса USB, который также можно использовать в качестве интерфейса UART (COM-ПОРТА) со скоростью передачи данных 9600 бод.
Реализация
В статье рассматривается микроконтроллер MSP430G2231 на плате MSP-EXP430G2 Launchpad и микроконтроллер MSP430F5438A, версии E, имеющий ошибку SYS10 (время между импульсами на контактах TEST и TCK должно быть менее 15 мкс), в качестве устройства MSP430 в комплекте разработчика MSP-TS430PZ5x100, куда осуществляется загрузка. На Рисунке 4 показана испытательная установка, представляющая собой соединение плат Launchpad и MSP-TS430PZ5x100.
![]() |
|
Рисунок 4. | Испытательная установка для интерфейса UART BSL на основе Launchpad. |
Аппаратная реализация
Подключение аппаратного обеспечения
На Рис. 5 показано типовое аппаратное соединение между ПК, на котором работает программа BSL Scripter, платой MSP- EXP430G2 Launchpad и устройством MSP430, куда осуществляется начальная загрузка; в данном случае это MSP430F5438A на плате MSP- TS430PZ5x100.
![]() |
|
Рисунок 5. | Типовое аппаратное подключение интерфейса BSL на основе Launchpad. |
Назначение контактов
Эта реализация системы требует использования всех контактов порта 1 (P1) микроконтроллера MSP430G2231. Помимо шести контактов, показанных на Рисунке 5, в Launchpad есть два других контакта, которые нужны для реализации интерфейса BSL. Один контакт используется для определения типа устройства MSP430, куда осуществляется загрузка, указывая, является ли оно устройством, в котором контакты JTAG объединены с другими контактами, или же устройством со специально выделенными контактами JTAG. Другой контакт, который подключается к кнопочному выключателю на плате, используется в качестве входа для формирования входной последовательности BSL. Изначально программа BSL Scripter использовала контакты DTR и RTS для формирования входной последовательности BSL в устройстве MSP430, куда осуществляется загрузка. Но эти контакты не доступны в UART- соединении комплекта разработчика MSP-EXP430G2 Launchpad, поэтому необходимо использовать другой вход, чтобы заставить MSP430G2231 на плате Launchpad формировать входную последовательность BSL для устройства MSP430, в которое осуществляется загрузка. В Таблице 1 указано назначение контактов ввода/ вывода общего назначения (GPIO) MSP430G2231.
Таблица 1. | Назначение контактов MSP430G2231. | ||||||||||||||||||
|
Программное обеспечение
Технология мостового соединения
Как указано в аннотации, цель данной работы заключается в реализации интерфейса BSL, которые служит мостом между интерфейсом UART ПК, на котором работает программный инструмент BSL Scripter, и устройством MSP430, куда осуществляется загрузка, при этом устройство MSP430 имеет менее двух последовательных интерфейсов.
Поэтому в данном случае не используется механизм передачи с промежуточным накоплением, когда MSP430 на плате Launchpad принимает данные байт за байтом, а затем отправляет их на противоположную сторону. Вместо этого используется механизм прерываний GPIO, когда приёмные контакты настраиваются как входные с прерыванием для управления соответствующими контактами передачи, настроенными как выходные, в соответствии с логическим состоянием входного контакта. Чтобы лучше понять этот механизм, смотрите следующий раздел, где показана блок-схема реализации программного обеспечения.
Блок-схема
Реализация программного обеспечения интерфейса BSL на основе Launchpad показана на Рисунке 6.
![]() |
|
Рисунок 6. | Блок-схема реализации программного обеспечения интерфейса BSL на основе Launchpad. |
Использование интерфейса BSL на основе Launchpad
При использовании интерфейса BSL на основе Launchpad необходимо учитывать несколько аспектов:
- Для правильной работы необходимо снять перемычки J5, соединяющие контакты P1.0 и P1.6 со встроенными светодиодами платы.
- По умолчанию программный инструмент BSL Scripter использует линии DTR и RTS для формирования входной последовательности BSL. В UART-соединении MSPEXP430G2 эти линии не предусмотрены, поэтому необходимо нажать переключатель S2 перед запуском программы BSL Scripter, чтобы сформировать входную последовательность BSL.
- UART-соединение MSP-EXP430G2 работает только со скоростью передачи данных 9600 бод. Поэтому невозможно запустить BSL Scripter со скоростями передачи данных, отличающимися от 9600 бод.