Відмінні риси програматора на основі завантажувального сектора msp430

Програматор на основі завантажувального сектора MSP430 (BSL) дозволяє користувачеві звертатися до внутрішньої пам'яті мікроконтролера MSP430 в процесі макетування, виробництва чи обслуговування. Для модифікації доступні як програмна (флеш) пам'ять, так і пам'ять даних (ОЗУ).

Для зв'язку використовується загальновідомий протокол УАПП (UART) з інтерфейсом RS232, що забезпечує гнучке використання як програмного, так і апаратного забезпечення.

Звернення до даних в пам'яті MSP430 через програматор на основі завантажувального сектора захищеності від несанкціонованого доступу призначеним для користувача паролем.

Програматор на основі завантажувального сектора (BSL) представляє можливість програмування флеш-пам'яті мікроконтролера MSP430 в процесі розробки або для оновлень. Активізація такого режиму може бути здійснена утилітою, що передає команди по широкоизвестному протоколу УАПП (UART). BSL дає можливість користувачеві контролювати функціонування MSP430 і здійснювати обмін даними з персональним комп'ютером або іншим пристроєм, що підтримує протокол UART.

Для захисту програми BSL від випадкового стирання вона міститься в спеціальному, масковий запрограмованому на заводі завантажувального сектору ПЗУ. Програма BSL не може бути стерта ніякими методами. Код завантажувача ретельно оптимізований під потреби BSL, доступ до нього здійснюється за допомогою команд, описаних нижче в даному документі. З метою безпеки було звернуто велику увагу на захист призначеного для користувача коду від несанкціонованого зчитування. Будь-яка команда BSL, що дозволяє безпосереднє або опосередковане читання даних захищена паролем.

Для активізації програматора на основі завантажувального сектора слід подати спеціальну послідовність сигналів BSL на певні висновки процесора. Після цього, передається символ синхронізації, супроводжуваний посилкою даних, що визначають виконання бажаної операції.

2 Стандартна функція скидання (RESET) і активізація BSL

2.1 Мікроконтролери з флеш-пам'яттю MSP430 в 20- і 28-вивідному корпусі з висновками JTAG, об'єднаними з портами загального призначення

Виконання програми BSL починається з того моменту, як на вхід TEST буде подано як мінімум 2 позитивних імпульсу і тільки в тому випадку, якщо вхід TEST знаходився в стані лог. «1» під час фронту 0? 1 на вході -RST / NMI (метод активізації BSL, див. Рис 2). Така схема активізації підвищує надійність запуску BSL.

Мал. 1. Стандартна послідовність сигналів скидання (RESET)

Вхід TEST зазвичай використовується тільки для перемикання висновків порту P1.7 - P1.4 між їх звичайними функціями і функціями інтерфейсу JTAG. Якщо по входу TEST прийнятий другий позитивний імпульс під час того, як вхід -RST / NMI знаходиться в стані лог. «0», сигнал на вході TEST перекладається в лог. «0» внутрішньою схемою (прикладної режим).

Рис.2 Процедура активізації BSL з використанням висновків JTAG, об'єднаних з портами загального призначення

2.2 Мікроконтролери з флеш-пам'яттю MSP430 з відокремленими висновками JTAG

Пристрої з відокремленими висновками інтерфейсу JTAG використовують висновок TCK замість виведення TEST.

Виконання програми BSL починається після того, як на вході TCK з'являться як мінімум два негативних перепаду 1. 0 і, крім цього, вхід TCK знаходиться в стані лог. «0» під час переходу 0. 1 на вході -RST / NMI (процедура активізації BSL, див. Рис. 3). Така схема активізації підвищує надійність запуску BSL.

Рис.3 Процедура активізації BSL з використанням відокремлених висновків JTAG

3 Протокол УАПП (UART)

Використовуваний в цьому випадку протокол УАПП має наступні параметри:
  • Швидкість обміну 9600 бод, режим полудуплекс (один передавач в будь-який момент часу).
  • Стартовий біт, 8 біт даних (першим передається МЗР), біт контролю по парності (even), 1 стоп-біт.
  • Успішний прийом підтверджується передачею відповідного символу (acknowledge).

Примітка: Використання швидкостей обміну вище, ніж 9600 бод може привести до збоїв в зв'язку або помилок запису флеш-пам'яті через недотримання часових параметрів. Флеш-пам'ять в результаті цього може бути піддана неприпустимим навантажень, а операції стирання / записі не будуть надійно виконуватися.

4 Послідовність синхронізації

Перед передачею будь-який з команд, слід відіслати в BSL символ синхронізації (SYNC), рівний 80h. Цей символ необхідний для обчислення необхідних внутрішніх параметрів, що визначають часові параметри УАПП і стирання / програмування флеш-пам'яті. Ця операція формує опорне системний час BSL.

Далі, BSL відправляє символ підтвердження DATA_ACK = 90h, повідомляє про успішне прийомі.

Примітка: Символ синхронізації не входить в послідовність даних Data Frame, описану нижче.

Існують два типи команд: вимагають і не вимагають пароля. Всі команди, потенційно допускають прямий або непрямий доступ до даних захищені паролем.

5.1 Незахищені команди
  • прийняти пароль
  • Повне стирання (стирає всю флеш-пам'ять, як основну, так і пам'ять даних)
  • Вважати версію BSL (команда підтримується в BSL версії V1.60 або вище, або в завантажується версії BL_150S_14x.txt)
  • Змінити швидкість обміну (команда підтримується в BSL версії V1.60 або вище, або в завантажується версії BL_150S_14x.txt)
5.2 Команди, захищені паролем
  • Прийняти блок даних для програмування флеш-пам'яті, ОЗУ або периферійних модулів
  • Передати блок даних
  • стерти сегмент
  • Перевірка стирання (команда підтримується в BSL версії V1.60 або вище, або в завантажується версії BL_150S_14x.txt)
  • Завантажити програмний лічильник і запустити призначену для користувача програму

6 Процес програмування

Процес запису (команда «Прийняти блок даних» (RX data block)) у флеш-пам'ять, ОЗУ або в периферійні модулі виконується в режимі реального часу. Це означає, що байт або слово даних обробляється безпосередньо відразу після їх прийняття, а процес запису завершується до того, як повністю прийнятий наступний байт / слово. Таким чином, загальна тривалість запису визначається швидкістю обміну, ніякі способи буферизації не застосовуються.

Примітка: при втраті зв'язку з УАПП в результаті перешкод на лінії або порушення часових вимог до передачі блоків даних, єдиним способом відновлення обміну є повторна ініціалізація BSL.

7 Формат посилки

Формат посилки даних, використовуваний программатором, являє собою стандартний послідовний протокол (SSP) фірми TI для MSP430, доповнений яка випереджає сінхропоследовательностью (SS), як було описано вище. У таблиці 1 BSL є приймачем.

Очевидна надмірність деяких параметрів є наслідком адаптації під SSP а також служить для економії обсягу ПЗУ завантажувача.

Додаткова інформація за стандартним послідовному протоколу (SSP) міститься в документі «Застосування програми початкового завантаження в мікроконтролери MSP430 з флеш-пам'яттю: програмні і апаратні пропозиції (версія B)», Application of Bootstrap Loader in MSP430 With Flash Hardware and Software Proposal (SLAA096) .

7.1 Структура даних
  • Перші 8 байт (від HDR до LH), які є обов'язковими (xx означає, що дані не є значущими).
  • Необов'язкові байти даних від D1 до Dn.
  • Два байти (CKL і CKH) контрольної суми (є необхідними).

Підтвердження від BSL, необхідне для всіх команд, крім передачі блоку даних і передачі версії BSL.

7.2 Контрольна сума

16-бітна (2 байта) контрольна сума обчислюється по всіх прийнятих / переданих байтів B1 ... Bn в посилці за винятком власне байт контрольної суми шляхом виконання операції XOR над операндами-словами (2 байта) і інверсією результату.

CHECKSUM = INV [(B1 + 256 * B2) XOR (B3 + 256 * B4) XOR ... XOR (Bn-1 + 256 * Bn)]

CKL = INV [B1 XOR B3 XOR ... XOR Bn-1]; CKH = INV [B2 XOR B4 XOR ... XOR Bn]

Таблиця 1. Формат посилки команд BSL

Примітки: Всі цифри в таблиці - байти в шістнадцятковому вигляді
ACK передається назад від BSL.
Сінхропоследовательность не входить в блок посилки.
Команди «Перевірка стирання» і «Передати версію BSL» не входять в стандартний набір команд (V1.50 або вище).
Команда «Змінити швидкість обміну» не входить в стандартний набір команд (V1.60 або вище або завантаження BL_150S_14x.txt).

HDR DATA_FRAME = 80h означає очікується посилка даних відповідно до стандартного послідовним протоколом (SSP) фірми TI для MSP430.

CMD Ідентифікатор команди

L1, L2 Число байт в посилці від AL до Dn Обмеження: L1 = L2, L1 1KБ ОЗУ)

Завантажити файл BL_150S_14x.txt, що дозволить використовувати всі можливості версії V1.60 і коректно використовувати команду «Стерти сегмент» (Erase segment)
Див. Розділ «Офлайн BSL»

Опциональная доопрацювання для F1x4 ... F1x9:
використовувати маленький завантаження BSL
(потрібно <512Б ОЗУ)

Завантажити файл BS_150S_14x.txt. що дозволить використовувати частину можливостей версії V1.60. Див. Розділ «Офлайн BSL»

Таблиця 4. Версія BSL 1.30 в мікроконтролерах серій F41x, F11x, і F11x1