В HTML      В PDF
микроэлектроника, микросхема, транзистор, диод, микроконтроллер, память, msp430, Atmel, Maxim, LCD, hd44780, t6963, sed1335, avr, mega128
Предприятия Компоненты Документация Применения Статьи Новости

 
Пересюхтюмя


13-я Международная выставка электронных компонентов и комплектующих для электронной промышленности





Выставка Передовые Технологии Автоматизации





Главная страница > Компоненты > Микроконтроллеры > MSP430 > Архитектура MSP430x1xx
Пересюхтюмя


13-я Международная выставка электронных компонентов и комплектующих для электронной промышленности





Выставка Передовые Технологии Автоматизации


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

В этом разделе описывается работа контроллера флэш-памяти семейства MSP430.

5.1 Введение в флэш-память

Флэш-память в MSP430 адресуется побитно, побайтно или пословно и может перепрограммироваться. Модуль флэш-памяти имеет интегрированный контроллер, управляющий процессом стирания и программирования. Контроллер имеет три регистра, тактовый генератор и генератор напряжения для обеспечения напряжений стирания и программирования.

Флэш-память в MSP430 обладает следующими возможностями:

  • внутренний генератор напряжения для программирования;
  • программирование битов, байтов или слов;
  • работа при ультранизком потреблении мощности;
  • стирание сегмента или массовое (полное) стирание.

Блок-схема флэш-памяти и контроллера показана на рис. 5.1.

Примечание: Минимальное напряжение VCC во время записи или стирания флэш-памяти
    Минимальное значение напряжения VCC во время записи или стирания флэш-памяти должно составлять 2,7В. Если VCC падает ниже 2,7В во время записи или стирания, результат записи или стирания будет непредсказуемым.

msp430 Микроконтроллеры семейства MSP430 фирмы Texas Instruments Рис.5-1 Блок-схема модуля флэш-памяти
Рис.5-1 Блок-схема модуля флэш-памяти

5.2 Сегментация флэш-памяти

Флэш-память в MSP430 разбита на сегменты. В неё может быть записан один бит, байт или слово, но сегмент – это минимальный размер флэш-памяти, который можно стереть. Три режима стирания позволяют стереть один сегмент, стереть все главные сегменты или стереть все сегменты (основные и информационные сегменты).

Флэш-память разделена на основной и информационный разделы памяти. Нет никаких различий в работе основного и информационного разделов памяти. Программный код или данные могут быть расположены в любом разделе. Различие между этими двумя разделами заключается в разных размерах сегмента и различных физических адресах.

Информационная память имеет два 128-байтных сегмента (в устройствах MSP430x1101 есть только один сегмент). Основная память имеет два или более 512-байтных сегмента. См. справочное руководство конкретного устройства для выяснения точной карты памяти.

На рис.5.2 показана сегментация памяти на основе примера 4 кБ флэш-памяти, имеющей восемь основных сегментов и оба информационных сегмента.

msp430 Микроконтроллеры семейства MSP430 фирмы Texas Instruments Рис.5-2 Сегменты флэш-памяти, пример для 4кБ
Рис.5-2 Сегменты флэш-памяти, пример для 4кБ

5.3 Функционирование флэш-памяти

Режим по умолчанию для флэш-памяти – режим чтения. В этом режиме флэш-память не может быть стерта или записана, тактовый генератор и генератор напряжения выключены – память работает подобно ПЗУ.

Флэш-память MSP430 поддерживает внутрисистемное программирование (ISP) и не нуждается в использовании дополнительного внешнего напряжения. ЦПУ может программировать собственную флэш-память. Приведенные ниже режимы записи/стирания флэш-памяти выбираются битами BLKWRT, WRT, MERAS, ERASE:

  • запись байта/слова
  • запись блока
  • стирание сегмента
  • массовое стирание (стирание всех сегментов основной памяти)
  • полное стирание (стирание всех сегментов)

Чтение или запись флэш-памяти во время программирования или стирания запрещены. Если требуется выполнение программы ЦПУ в течении записи или стирания, исполняемый код должен быть помещен в ОЗУ. Любое обновление флэш может инициироваться из флэш-памяти или ОЗУ.

5.3.1 Тактовый генератор флэш-памяти

Операции записи и стирания управляются тактовым генератором флэш-памяти, показанным на рис.5.3. Рабочая частота f(FTG) тактового генератора должна лежать в диапазоне от ~ 257 кГц до ~ 476 кГц (точные данные см. в руководстве по конкретному устройству).

msp430 Микроконтроллеры семейства MSP430 фирмы Texas Instruments Рис.5-3 Блок-схема тактового генератора флэш-памяти
Рис.5-3 Блок-схема тактового генератора флэш-памяти

Тактовый генератор флэш-памяти может тактироваться от ACLK, SMCLK или MCLK. Тактовый сигнал выбранного источника должен быть поделен с помощью битов FNx для обеспечения необходимых требований к частоте f(FTG). Если появляется девиация (отклонение) частоты f(FTG) от требуемого значения в ходе записи или стирания, результат записи или стирания может быть непредсказуемым или же флэш-память окажется подвергнутой ударной перегрузке сверх допустимых пределов, гарантирующих надежную работу.

5.3.2 Стирание флэш-памяти

После стирания бит флэш-памяти читается как «1». Можно программировать индивидуально каждый бит, меняя его значение с «1» на «0», но перепрограммирование от «0» к «1» требует выполнения цикла стирания. Сегмент – это наименьшее количество флэш-памяти, которое можно стереть. Существует три режима стирания, которые могут быть выбраны с помощью битов ERASE и MERAS в соответствии с таблицей 5-1.

Таблица 5-1. Режимы стирания

MERAS ERASE Режим стирания
0 1 Стирание сегмента
1 0 Массовое стирание (стирание всех сегментов основной памяти)
1 1 Стирание всей флэш-памяти (основных и информационных сегментов)

Любое стирание инициируется фиктивной2 записью в адресный диапазон, который будет стерт. Фиктивная запись запускает тактовый генератор флэш-памяти и процедуру стирания. На рис.5.4 показан временной цикл процесса стирания. Бит BUSY устанавливается немедленно после фиктивной записи и остается установленным в течение всего цикла стирания. Биты BUSY, MERAS и ERASE автоматически очищаются, когда цикл завершен. Временные параметры цикла стирания не зависят от объема представленной в устройстве флэш-памяти. Продолжительность цикла стирания одинакова для всех устройств MSP430.

msp430 Микроконтроллеры семейства MSP430 фирмы Texas Instruments Рис.5-4 Временная диаграмма цикла стирания
Рис.5-4 Временная диаграмма цикла стирания

Фиктивная запись по адресу, который лежит вне диапазона стирания не приводит к запуску цикла стирания, не воздействует на флэш-память и не влияет на флаги. Такая ошибочная фиктивная запись игнорируется.

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

Инициирование процедуры стирания из программы, находящейся в флэш-памяти

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

Когда цикл стирания инициируется программой их флэш-памяти, возможно стирание кода, необходимого для выполнения после завершения стирания. Если это произойдет, работа ЦПУ после окончания цикла стирания будет непредсказуема.

Программный поток, инициирующий стирание из флэш-памяти, показан на рис.5.5.

msp430 Микроконтроллеры семейства MSP430 фирмы Texas Instruments Рис.5-5. Цикл стирания, инициируемый программой из флэш-памяти
Рис.5-5. Цикл стирания, инициируемый программой из флэш-памяти

; Стирание сегмента из флэш. 514 кГц < SMCLK < 952 кГц
; Принимается ACCVIE = NMIIE = OFIE = 0.
MOV #WDTPW+WDTHOLD,&WDTCTL 	; Отключение WDT
DINT				; Запрещение прерываний
MOV #FWKEY+FSSEL1+FN0,&FCTL2 	; SMCLK/2
MOV #FWKEY,&FCTL3 		; Очистка LOCK
MOV #FWKEY+ERASE,&FCTL1 	; Разрешение стирания сегмента
CLR &0FC10h 			; Фиктивная запись, стирание S1
MOV #FWKEY+LOCK,&FCTL3 		; Выполнено, установка LOCK
... 				; Повторное включение WDT?
EINT				; Разрешение прерываний

Инициирование процедуры стирания программой из ОЗУ

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

Программный поток стирания из флэш-памяти программой из ОЗУ показан на рис.5.6.

msp430 Микроконтроллеры семейства MSP430 фирмы Texas Instruments Рис.5-6. Цикл стирания, инициируемый программой из ОЗУ
Рис.5-6. Цикл стирания, инициируемый программой из ОЗУ

; Стирание сегмента программой из ОЗУ. 514 кГц < SMCLK < 952 кГц
; Принимается ACCVIE = NMIIE = OFIE = 0.
MOV #WDTPW+WDTHOLD,&WDTCTL 	; Отключение WDT
DINT 				; Запрещение прерываний
L1 	BIT #BUSY,&FCTL3 	; Проверка BUSY
JNZ L1 				; Ожидание, пока занято
MOV #FWKEY+FSSEL1+FN0,&FCTL2 	; SMCLK/2
MOV #FWKEY,&FCTL3 		; Очистка LOCK
MOV #FWKEY+ERASE,&FCTL1 	; Разрешение стирания
CLR &0FC10h 			; Фиктивная запись, стирание S1
L2 	BIT #BUSY,&FCTL3 	; Проверка BUSY
JNZ L2 				; Ожидание, пока занято
MOV #FWKEY+LOCK,&FCTL3 		; Завершено, установка LOCK
... 				; Повторное включение WDT?
EINT 				; Разрешение прерываний

5.3.3 Запись в флэш-память

Режимы записи, задаваемые битами WRT и BLKWRT приведены в таблице 5.2.

Таблица 5-2. Режимы записи

BLKWRT WRT Режим записи
0 1 Запись байта/слова
1 1 Запись блока

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

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

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

Операция записи байта/слова может инициироваться программой из флэш-памяти или из ОЗУ. Когда инициирование происходит из флэш-памяти, все тактирование осуществляется контроллером флэш-памяти, а ЦПУ ожидает завершения записи. После выполнения записи ЦПУ продолжает выполнение кода с команды, следующей за командой записи. Временная диаграмма процедуры записи байта/слова показана на рис. 5.7.

msp430 Микроконтроллеры семейства MSP430 фирмы Texas Instruments Рис.5-7 Временная диаграмма операции записи байта/слова
Рис.5-7 Временная диаграмма операции записи байта/слова

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

Инициирование записи байта/слова программой из флэш-памяти

Программный поток, инициирующий запись байта/слова из флэш-памяти показан на рис.5.8.

msp430 Микроконтроллеры семейства MSP430 фирмы Texas Instruments Рис.5-8 Инициирование записи байта/слова из флэш-памяти
Рис.5-8 Инициирование записи байта/слова из флэш-памяти

; Запись байта/слова из флэш. 514 кГц < SMCLK < 952 кГц
; Принимается, что 0FF1Eh уже стерто
; Принимается ACCVIE = NMIIE = OFIE = 0.
MOV #WDTPW+WDTHOLD,&WDTCTL 	; Отключение сторожевого таймера
DINT 				; Запрещение прерываний
MOV #FWKEY+FSSEL1+FN0,&FCTL2 	; SMCLK/2
MOV #FWKEY,&FCTL3 		; Очистка LOCK
MOV #FWKEY+WRT,&FCTL1 		; Разрешение записи
MOV #0123h,&0FF1Eh 		; 0123h –> 0FF1Eh
MOV #FWKEY,&FCTL1 		; Выполнено. Очистка WRT
MOV #FWKEY+LOCK,&FCTL3 		; Установка LOCK
... 				; Повторный запуск сторожевого таймера?
EINT 				; Разрешение прерываний

Инициирование записи байта/слова программой из ОЗУ

Программный поток, инициирующий запись байта/слова из ОЗУ показан на рис.5.9.

msp430 Микроконтроллеры семейства MSP430 фирмы Texas Instruments Рис.5-9 Инициирование записи байта/слова из ОЗУ
Рис.5-9 Инициирование записи байта/слова из ОЗУ

; Запись байта/слова из ОЗУ. 514 кГц < SMCLK < 952 кГц
; Принимается, что 0FF1Eh уже стерто
; Принимается ACCVIE = NMIIE = OFIE = 0.
MOV #WDTPW+WDTHOLD,&WDTCTL 	; Отключение сторожевого таймера
DINT 				; Запрещение прерываний
L1 BIT #BUSY,&FCTL3 		; Проверка BUSY
JNZ L1 				; Ожидание в цикле, пока занято
MOV #FWKEY+FSSEL1+FN0,&FCTL2 	; SMCLK/2
MOV #FWKEY,&FCTL3	 	; Очистка LOCK
MOV #FWKEY+WRT,&FCTL1 		; Разрешение записи
MOV #0123h,&0FF1Eh 		; 0123h –> 0FF1Eh
L2 BIT #BUSY,&FCTL3 		; Проверка BUSY
JNZ L2 				; Ожидание в цикле, пока занято
MOV #FWKEY,&FCTL1 		; Очистка WRT
MOV #FWKEY+LOCK,&FCTL3 		; Установка LOCK
... 				; Повторный запуск сторожевого таймера?
EINT 				; Разрешение прерываний

Запись блока

Блочную запись можно использовать для ускорения процесса записи во флэш-память большой последовательности байт или слов. Блок – это 64 байта, начиная с 0xx00h, 0xx40h, 0xx80h или 0xxС0h и заканчивая 0xx3Fh, 0xx7Fh, 0xxBFh или 0xxFFh, как показано на рис.5.10. Напряжение программирования флэш-памяти остается поданным в течение записи блока из 64-байт.

msp430 Микроконтроллеры семейства MSP430 фирмы Texas Instruments Рис.5-10 Блоки флэш-памяти
Рис.5-10 Блоки флэш-памяти

Блочная запись не может быть инициирована из флэш-памяти. Блочная запись должна инициироваться только из ОЗУ или ПЗУ. Бит BUSY остается установленным в течение всего цикла записи блока. Бит WAIT должен проверяться между записью каждого байта или слова в блоке. Очередной байт или слово блока могут быть записаны, когда бит WAIT установлен. При записи последовательности блоков бит BLKWRT необходимо очищать после завершения записи текущего блока. Бит BLKWRT может быть установлен для инициирования записи следующего блока после выдержки заданного времени восстановления флэш t(end). Бит BUSY очищается после завершения записи каждого блока, информируя о возможности записи следующего блока. На рис.5.11 показана временная диаграмма процедуры блочной записи.

msp430 Микроконтроллеры семейства MSP430 фирмы Texas Instruments Рис.5-11 Временная диаграмма цикла блочной записи
Рис.5-11 Временная диаграмма цикла блочной записи

Программный поток записи блока и пример

Программный поток записи блока показан на рис.5.12, а ниже приводится соответствующий пример.

msp430 Микроконтроллеры семейства MSP430 фирмы Texas Instruments Рис.5-12 Программный поток блочной записи
Рис.5-12 Программный поток блочной записи

; Запись одного блока, начиная с адреса 0F000h.
; Запись должна выполняться из ОЗУ; предполагается, что
  флэш-память уже стерта.
; 514 кГц < SMCLK < 952 кГц
; Принимается ACCVIE = NMIIE = OFIE = 0.
MOV #32,R5 			; Используется как счетчик записи
MOV #0F000h,R6 			; Указатель записи
MOV #WDTPW+WDTHOLD,&WDTCTL 	; Отключение сторожевого таймера
DINT 				; Запрещение прерываний
L1	BIT #BUSY,&FCTL3 	; Проверка BUSY
JNZ L1 				; Ожидание в цикле, пока занято
MOV #FWKEY+FSSEL1+FN0,&FCTL2	; SMCLK/2
MOV #FWKEY,&FCTL3 		; Очистка LOCK
MOV #FWKEY+BLKWRT+WRT,&FCTL1	; Разрешение записи блока
L2	MOV Write_Value,0(R6) 	; Месторасположение записи
L3	BIT #WAIT,&FCTL3 	; Проверка WAIT
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. Запись игнорируется
Выборка команды 0 ACCVIFG = 0. CPU считывает код 03FFFh. Это команда JMP PC.
Запись блока Любой 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. Чтение не приведет к нарушению прав доступа.

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 Flash-Based MSP430 Using the JTAG Interface2» на сайте www.ti.com/sc/msp430.

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

Каждое MSP430 устройство с флэш-памятью содержит самозагрузчик BSL. Он позволяет пользователю читать или программировать флэш-память или ОЗУ с помощью последовательного интерфейса UART3. Доступ к флэш-памяти MSP430 через BSL защищен 256-разрядным паролем, определяемым пользователем. Подробности см. в приложении «Features of the MSP430 Bootstrap Loader4» на сайте www.ti.com/sc/msp430.

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

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

msp430 Микроконтроллеры семейства MSP430 фирмы Texas Instruments Рис.5-13 Решение по программированию, разработанное пользователем
Рис.5-13 Решение по программированию, разработанное пользователем

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

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

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

Регистр Краткое обозначение Тип регистра Адрес Исходное состояние
Регистр 1 управления флэш-памятью FCTL1 Чтение/запись 0128h 09600h с PUC
Регистр 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


FRKEY/FWKEY Биты 15-8 Пароль FCTLx. Всегда читается как 096h. Должен записываться как 0A5h, в противном случае будет генерироваться сигнал PUC.
BLKWRT Бит 7 Режим блочной записи. Для режима блочной записи также должен быть установлен WRT. Бит BLKWRT автоматически сбрасывается при установке EMEX.
0 Режим блочной записи выключен
1 Режим блочной записи включен
WRT Бит 6 Запись. Этот бит используется для выбора любого режима записи. Бит WRT автоматически сбрасывается при установке EMEX.
0 Режим записи выключен
1 Режим записи включен
Резерв Биты 5-3 Зарезервировано. Всегда читается как 0.
MERAS Бит 2 Массовое стирание и обычное стирание. Эти биты используются совместно для выбора режима стирания. Биты MERAS и ERASE автоматически сбрасываются, когда устанавливается EMEX.
ERASE Бит 1
MERAS ERASE Цикл стирания
0 0 Нет стирания
0 1 Стирание только конкретного сегмента
1 0 Стирание всех сегментов основной памяти
1 1 Стирание всех сегментов основной и информационной памяти
Резерв Биты 5-3 Зарезервировано. Всегда читается как 0.

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

15 14 13 12 11 10 9 8
FWKEYx, читается как 096h
должен записываться как 0A5h


7 6 5 4 3 2 1 0
FSSELx FNx
rw-0 rw-1 rw-0 rw-0 rw-0 rw-0 rw-1 rw-0


FWKEY Биты 15-8 Пароль FCTLx. Всегда читается как 096h. Должен записываться как 0A5h, в противном случае будет генерироваться сигнал PUC.
FSSELx Биты 7-6 Выбор источника тактирования контроллера флэш
00 ACLK
01 MCLK
10 SMCLK
11 SMCLK
FNx Биты 5-0 Делитель тактовой частоты для контроллера флэш. Эти шесть битов позволяют установить необходимый коэффициент деления для тактирования контроллера флэш. Значение коэффициента деления равно FNx+1. К примеру, когда FNx=00h, коэффициент деления равен 1. Когда FNx=02Fh, коэффициент деления равен 64.

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

15 14 13 12 11 10 9 8
FWKEYx, читается как 096h
должен записываться как 0A5h


7 6 5 4 3 2 1 0
Резерв EMEX LOCK WAIT ACCVIFG KEYV BUSY
r0 r0 rw-0 rw-1 r-1 rw-0 rw-(0) r(w)-0


FWKEY Биты 15-8 Пароль FCTLx. Всегда читается как 096h. Должен записываться как 0A5h, в противном случае будет генерироваться сигнал PUC.
Резерв Биты 7-6 Зарезервировано. Всегда читается как 0.
EMEX Бит 5 Аварийный выход
0 Нет аварийного выхода
1 Аварийный выход
LOCK Бит 4 Блокировка. Этот бит разблокирует флэш-память для выполнения записи или стирания. Бит LOCK может быть установлен в любой момент во время записи байта/слова или операции стирания, при этом выполняемая операция будет нормально завершена. В режиме блочной записи, если бит LOCK устанавливается, когда BLKWRT=WAIT=1, биты BLKWRT и WAIT сбрасываются и режим нормально заканчивается.
0 Разблокировано
1 Заблокировано
WAIT Бит 3 Ожидание. Указывает, что происходит запись флэш-памяти.
0 Флэш-память не готова для записи следующего байта/слова.
1 Флэш-память готова для записи следующего байта/слова.
ACCVIFG Бит 2 Флаг прерывания при нарушении прав доступа
0 Прерывание не ожидается
1 Ожидание прерывание
KEYV Бит 1 Ключ нарушения безопасности флэш. Этот бит показывает, что был записан неправильный пароль FCTLx в любой регистр управления флэш-памятью и при его установке генерируется сигнал PUC. Бит KEYV должен быть сброшен программно.
0 Был записан корректный пароль FCTLx
1 Был записан некорректный пароль FCTLx
BUSY Бит 0 Занято. Этот бит показывает состояние тактового генератора флэш.
0 Не занят
1 Занят

IE1, регистр 1 разрешения прерывания
7 6 5 4 3 2 1 0
    ACCVIE          
    rw-0          


  Биты 7-6, 4-0 Эти биты могут быть использованы для других модулей. См. справочной руководство конкретного устройства.
ACCVIE Бит 5 Разрешение прерывания при нарушении доступа к флэш-памяти. Этот бит разрешает прерывание от ACCVIFG. Поскольку остальные биты в IE1 могут быть использованы для других модулей, рекомендуется устанавливать и очищать этот бит с помощью команд BIS.B или BIC.B, вместо команд MOV.B или CLR.B.
0 Прерывание запрещено
1 Прерывание разрешено


<-- Предыдущая страница Оглавление Следующая страница -->