Файл: Семейство микроконтроллеров MSP430X1XX, руководство пользователя (2004).pdf

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 16.06.2025

Просмотров: 2821

Скачиваний: 1

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

MSP430x1xxFamily

Запрещение всех прерываний

и отключение сторожевого таймера

да

BUSY = 1

Установка контроллера флэш

Установка BLKWRT = WRT = 1

Запись байта или слова

да

WAIT=0?

нет

Граница блока?

Установка BLKWRT = 0

да BUSY = 1

да Другой блок?

Установка WRT = 0, LOCK = 1 разрешение прерываний

и включение сторожевого таймера

Рис. 5-12. Программный поток блочной записи

124

Библиотека Компэла

Раздел V.

Контроллер флэш-памяти

JZ L3

;Ожидание в цикле,

;пока WAIT=0

INCD R6

;Указание на следующее слово

DEC R5

;Декремент счетчика записи

JNZ L2

;Конец блока?

MOV #FWKEY,&FCTL1

;Очистка WRT,BLKWRT

L4 BIT #BUSY,&FCTL3

;Проверка BUSY

JNZ L4

;Ожидание в цикле,

;пока занято

MOV #FWKEY+LOCK,&FCTL3 ;Установка LOCK

...

;Повторный запуск

;сторожевого таймера,

;если необходимо

EINT

;Разрешение прерываний

5.3.4. Доступ к флэш-памяти во время записи или стирания

Когда выполняется любая операция записи или стирания, инициированная из ОЗУ и BUSY=1, ЦПУ не может выполнять чтение или запись любой ячейки флэш-памяти. В противном случае произойдет нарушение прав доступа, будет установлен флаг ACCVIFG и результат окажется непредсказуемым. Также, если запись во флэш-память предпринята с WRT=0, устанавливается флаг прерывания ACCVIFG, а содержимое флэш-памяти не изменяется.

Когда инициируется запись байта/слова или любая операция стирания программой из флэш-памяти, контроллер флэш возвращает ЦПУ код операции 03FFFh при выборке следующей команды. Код операции 03FFFh – это команда JMP PC. Это приведет к зацикливанию ЦПУ, пока работа с флэш не будет закончена. Когда операция с флэш-памятью закончена и BUSY=0, контроллер флэш позволяет ЦПУ выполнить выборку правильного кода операции и выполнение программы возобновляется.

Условия доступа к флэш-памяти, когда BUSY=1 приведены в таблице 5.3.

Таблица 5-3. Доступ к флэш-памяти при BUSY=1

Операция

Доступ

WAIT

Результат

с флэш-памятью

к флэш-памяти

Чтение

0

ACCVIFG = 1, читается значение 03FFFh

Любой режим стирания

Запись

0

ACCVIFG = 1. Запись игнорируется

или запись байта/

ACCVIFG = 0. CPU считывает код 03FFFh.

слова

Выборка команды

0

Это команда JMP PC.

Библиотека Компэла

125


MSP430x1xxFamily

Операция

Доступ

WAIT

Результат

с флэш-памятью

к флэш-памяти

Любой

0

ACCVIFG = 1, LOCK = 1

Запись блока

Чтение

1

ACCVIFG = 0, читается значение 03FFFh

Запись

1

ACCVIFG = 0. Запись игнорируется

Выборка команды

1

ACCVIFG = 1, LOCK = 1

Все источники прерываний необходимо заблокировать перед инициализацией любой операции с флэш-памятью. Если бы разрешенное прерывание произошло во время операции с флэш-памятью, ЦПУ сделало бы выборку кода 03FFFh в качестве адреса процедуры обработки прерывания. ЦПУ выполнило бы команду JMP PC при BUSY=1. После завершения операции с флэш-памя- тью, ЦПУ начало бы выполнение кода с адреса 03FFFh, который не является правильным адресом процедуры обработки прерывания.

5.3.5. Останов цикла записи или стирания

Любая операция записи или стирания может быть остановлена до момента нормального завершения путем установки бита аварийного выхода EMEX. Установка бита EMEX немедленно останавливает активную операцию и контроллер флэш-памяти. Все операции с флэш-памятью прекращаются, она возвращается в режим чтения, а все биты в регистре FCTL1 сбрасываются. Результат предполагавшейся операции с флэш-памятью будет непредсказуем.

5.3.6. Конфигурирование и доступ к контроллеру флэш-памяти

FCTLx – это 16-разрядные регистры записи/чтения, защищенные паролем. Любая операция чтения или записи доступна только при использовании коман- ды-слова, а запись возможна только при наличии в старшем байте пароля записи 0A5h. Любая запись в любой FCTLx регистр с любым значением в старшем байте, отличном от 0A5h вызовет нарушение ключа защиты, установку флага KEYV и запуск системного сброса PUC. При любом чтении любого регистра FCTLx результат содержит в старшем байте значение 096h.

Любая запись в FCTL1 во время стирания или операции записи байта/слова приведет к нарушению прав доступа и установке флага ACCVIFG. Запись в FCTL1 возможна в режиме блочной записи, когда WAIT=1, однако запись в FCTL1 в режиме блочной записи, когда WAIT=0 приведет к нарушению прав доступа и установке флага ACCVIFG.

Любая запись в FCTL2, когда BUSY=1 приведет к нарушению прав доступа. Любой FCTLx регистр может быть прочитан, когда BUSY=1. Чтение не при-

ведет к нарушению прав доступа.

126

Библиотека Компэла


Раздел V.

Контроллер флэш-памяти

5.3.7. Прерывания контроллера флэш-памяти

Контроллер флэш имеет два источника прерывания: KEYV и ACCVIFG. Флаг ACCVIFG устанавливается, когда происходит нарушение прав доступа. Когда бит ACCVIE устанавливается вновь после записи или стирания флэш-памя- ти, установленный флаг ACCVIFG будет генерировать запрос прерывания. Флаг ACCVIFG – источник вектора немаскируемого прерывания NMI, поэтому нет необходимости устанавливать GIE для запроса прерывания по флагу ACCVIFG. Помимо этого, ACCVIFG можно проверить программно, чтобы определить, было ли нарушение прав доступа. Флаг ACCVIFG должен сбрасываться программно.

Флаг нарушения ключа KEYV устанавливается, когда выполняется запись в любой управляющий регистр контроллера флэш с неправильным паролем. Когда это происходит, генерируется сигнал PUC, немедленно сбрасывая устройство.

5.3.8. Программирование устройств с флэш-памятью

Имеется три способа программирования флэш-устройств MSP430. Все способы поддерживают внутрисистемное программирование (ISP):

Программирование через JTAG1

Программирование через самозагрузчик

Программирование через пользовательское решение

Программирование флэш-памяти через JTAG

Устройства MSP430 могут программироваться через JTAG-порт. Для JTAGинтерфейса нужны четыре сигнальных линии (5 сигнальных линий у 20 и 28выводных устройств), общий провод и опционально VCC и nonRST/NMI.

JTAG-порт защищен с помощью предохранителей. Перегорание предохранителей явление необратимое – в результате срабатывания предохранителя JTAG-порт отключается. Последующий доступ к устройству через JTAG-порт становится невозможен. Подробности см. в приложении «Programming a FlashBased MSP430 Using the JTAG Interface2» на сайте www.ti.com/sc/msp430.

Программирование флэш-памяти через самозагрузчик (BSL)

Каждое MSP430 устройство с флэш-памятью содержит самозагрузчик BSL. Он позволяет пользователю читать или программировать флэш-память или ОЗУ с помощью последовательного интерфейса UART3. Доступ к флэшпамяти MSP430 через BSL защищен 256-разрядным паролем, определяе-

1JTAG (Joint Test Automation Group) interface – интерфейс «объединенной рабочей группы по автоматизации тестирования»

2

«Программирование MSP430 с флэш-памятью через JTAG-интерфейс»

3

UART (Universal Asynchronous Receiver / Transmitter) - универсальный асинхронный приемопередатчик

Библиотека Компэла

127


MSP430x1xxFamily

Флэш•память

Команды, данные и пр.

Головное

UART,

ЦПУ

Px.x,

выполняет

устройство

MSP430

SPI,

программу

(хост)

и пр.

пользователя

Чтение•запись флэш•памяти

Рис. 5-13. Решение по программированию, разработанное пользователем

мым пользователем. Подробности см. в приложении «Features of the MSP430 Bootstrap Loader1» на сайте www.ti.com/sc/msp430.

Программирование флэш-памяти через пользовательское решение

Способность ЦПУ в MSP430 записывать собственную флэш-память позволяет реализовать внутрисистемное программирование внешними пользовательскими решениями, как показано на рис. 5.13. Пользователь может выбрать, каким образом данные будут поступать в MSP430 с использованием любого имеющегося доступного способа (UART, SPI и пр.). Разработанное пользователем программное обеспечение может получать данные и программировать флэш-память. Так как этот тип решения разработан пользователем, его можно настроить таким образом, чтобы наиболее полно удовлетворялись потребности в программировании, стирании и обновлении флэш-памяти.

5.4. Регистры флэш-памяти

Перечень регистров флэш-памяти приведен в таблице 5.4.

Таблица 5-4. Регистры флэш-памяти

Регистр

Краткое

Тип регистра

Адрес

Исходное

обозначение

состояние

Регистр 1 управления

FCTL1

Чтение/запись

0128h

09600h с PUC

флэш-памятью

1 «Возможности самозагрузчика MSP430»

Библиотека Компэла

128


Раздел V. Контроллер флэш-памяти

Таблица 5-4. (Окончание)

Регистр

Краткое

Тип регистра

Адрес

Исходное

обозначение

состояние

Регистр 2

управления

FCTL2

Чтение/запись

012Ah

09642h с PUC

флэш-памятью

Регистр 3

управления

FCTL3

Чтение/запись

012Ch

09618h с PUC

флэш-памятью

Регистр 1

разрешения

IE1

Чтение/запись

000h

Сброс с PUC

прерывания

FCTL1, регистр управления флэш-памятью

15

14

13

12

11

10

9

8

FRKEY, читается как 096h

FWKEY, должен записываться как 0A5h

7

6

5

4

3

2

1

0

BLKWRT

WRT

Зарезервировано

Зарезервировано

Зарезервировано

MERAS

ERASE

Зарезервировано

rw–0

rw–0

r0

r0

r0

rw–0

rw–0

r0

Биты

Пароль FCTLx. Всегда читается как 096h. Должен записываться

FRKEY/FWKEY

как 0A5h, в противном случае будет генерироваться сигнал

15-8

PUC.

Режим блочной записи. Для режима блочной записи также

должен быть установлен WRT. Бит BLKWRT автоматически

BLKWRT

Бит 7

сбрасывается при установке EMEX.

0 – Режим блочной записи выключен

1 – Режим блочной записи включен

Запись. Этот бит используется для выбора любого режима

записи. Бит WRT автоматически сбрасывается при установке

WRT

Бит 6

EMEX.

0 – Режим записи выключен

1 – Режим записи включен

Зарезервировано

Биты

Зарезервировано. Всегда читается как 0.

5-3

MERAS

Бит 2

Массовое стирание и обычное стирание. Эти биты использу-

ются совместно для выбора режима стирания. Биты MERAS и

ERASE

Бит 1

ERASE автоматически сбрасываются, когда устанавливается

EMEX.

Зарезервировано

Бит 0

Зарезервировано. Всегда читается как 0.

Библиотека Компэла

129