Файл: Семейство микроконтроллеров MSP430X1XX, руководство пользователя (2004).pdf
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 16.06.2025
Просмотров: 2859
Скачиваний: 1
MSP430x1xxFamily
Выбор SMCLK. Эти биты позволяют выбрать источник для SMCLK. |
|||
SELS |
Бит 3 |
0 |
– DCOCLK |
1 – XT2CLK, когда XT2 имеется в микросхеме. LFXT1CLK, когда XT2 отсутствует. |
|||
Делитель для SMCLK |
|||
00 – /1 |
|||
DIVSx |
Биты 2-1 |
01 – /2 |
|
10 – /4 |
|||
11 – /8 |
|||
Выбор резистора для DCO. |
|||
DCOR |
Бит 0 |
0 |
– Внутренний резистор |
1 |
– Внешний резистор |
||
IE1, регистр 1 разрешения прерываний
Биты 7-2 |
Эти биты могут быть использованы другими модулями. См. справочное |
||||||||||
руководство конкретной микросхемы. |
|||||||||||
Разрешение прерывания при возникновении ошибки осциллятора. Этот |
|||||||||||
бит разрешает прерывание OFIFG. Поскольку другие биты в регистре |
|||||||||||
OFIE |
Бит 1 |
IE1 могут использоваться для других устройств, рекомендуется вместо |
|||||||||
команд MOV.B или CLR.B применять команды BIS.B или BIC.B. |
|||||||||||
0 – Прерывание запрещено |
|||||||||||
1 – Прерывание разрешено |
|||||||||||
Бит 0 |
Этот бит может быть использован другими модулями. См. справочное |
||||||||||
руководство конкретной микросхемы. |
|||||||||||
IFG1, регистр 1 флагов прерываний
Биты 7-2 |
Эти биты могут быть использованы другими модулями. См. справочное |
||||||||||
руководство конкретной микросхемы. |
|||||||||||
Флаг прерывания при возникновении ошибки осциллятора. Поскольку |
|||||||||||
остальные биты в регистре IFG1 могут использоваться для других |
|||||||||||
OFIFG |
Бит 1 |
устройств, рекомендуется вместо команд MOV.B или CLR.B применять |
|||||||||
команды BIS.B или BIC.B. |
|||||||||||
0 – Прерывание не ожидается |
|||||||||||
1 – Прерывание ожидается |
|||||||||||
Бит 0 |
Этот бит может быть использован другими модулями. См. справочное |
||||||||||
руководство конкретной микросхемы. |
|||||||||||
110 |
Библиотека Компэла |
|
Контроллер флэш-памяти
Раздел V.
MSP430x1xxFamily
MSP430x1xxFamily
Контроллер флэш-памяти
В этом разделе описывается работа контроллера флэш-памяти семейства MSP430.
5.1. Введение в флэш-память
Флэш-память в MSP430 адресуется побитно, побайтно или пословно и может перепрограммироваться. Модуль флэш-памяти имеет интегрированный контроллер, управляющий процессом стирания и программирования. Контроллер имеет три регистра, тактовый генератор и генератор напряжения для обеспечения напряжений стирания и программирования.
Флэш-память в MSP430 обладает следующими возможностями:
•внутренний генератор напряжения для программирования;
•программирование битов, байтов или слов;
•работа при ультранизком потреблении мощности;
•стирание сегмента или массовое (полное) стирание.
Блок-схема флэш-памяти и контроллера показана на рис. 5.1.
Рис. 5-1. Блок-схема модуля флэш-памяти
112 |
Библиотека Компэла |
|
Раздел V. |
Контроллер флэш-памяти |
Примечание: Минимальное напряжение VCC во время записи или стирания флэш-памяти
Минимальное значение напряжения VCC во время записи или стирания флэш-памяти должно составлять 2,7 В. Если VCC падает ниже 2,7 В во время записи или стирания, результат записи или стирания будет непредсказуемым.
5.2. Сегментация флэш-памяти
Флэш-память в MSP430 разбита на сегменты. В неё может быть записан один бит, байт или слово, но сегмент – это минимальный размер флэш-памяти, который можно стереть. Три режима стирания позволяют стереть один сегмент, стереть все главные сегменты или стереть все сегменты (основные и информационные сегменты).
Флэш-память разделена на основной и информационный разделы памяти. Нет никаких различий в работе основного и информационного разделов памяти. Программный код или данные могут быть расположены в любом разделе. Различие между этими двумя разделами заключается в разных размерах сегмента и различных физических адресах.
Информационная память имеет два 128-байтных сегмента (в устройствах MSP430F1101 есть только один сегмент). Основная память имеет два или более 512-байтных сегмента. См. справочное руководство конкретного устройства для выяснения точной карты памяти.
На рис.5.2 показана сегментация памяти на основе примера 4 кБ флэш-па- мяти, имеющей восемь основных сегментов и оба информационных сегмента.
5.3. Функционирование флэш-памяти
Режим по умолчанию для флэш-памяти – режим чтения. В этом режиме флэш-память не может быть стерта или записана, тактовый генератор и генератор напряжения выключены – память работает подобно ПЗУ.
Флэш-память MSP430 поддерживает внутрисистемное программирование (ISP) и не нуждается в использовании дополнительного внешнего напряжения. ЦПУ может программировать собственную флэш-память. Приведенные ниже режимы записи/стирания флэш-памяти выбираются битами BLKWRT, WRT, MERAS, ERASE:
•запись байта/слова
•запись блока
•стирание сегмента
•массовое стирание (стирание всех сегментов основной памяти)
•полное стирание (стирание всех сегментов)
Библиотека Компэла |
113 |
|
MSP430x1xxFamily
Рис. 5-2. Сегменты флэш-памяти, пример для 4кБ
Чтение или запись флэш-памяти во время программирования или стирания запрещены. Если требуется выполнение программы ЦПУ в течении записи или стирания, исполняемый код должен быть помещен в ОЗУ. Любое обновление флэш может инициироваться из флэш-памяти или ОЗУ.
5.3.1. Тактовый генератор флэш-памяти
Операции записи и стирания управляются тактовым генератором флэшпамяти, показанным на рис. 5.3. Рабочая частота f(FTG) тактового генератора
Рис. 5-3. Блок-схема тактового генератора флэш-памяти
114 |
Библиотека Компэла |
|
Раздел V. |
Контроллер флэш-памяти |
должна лежать в диапазоне от ~ 257 кГц до ~ 476 кГц (точные данные см. в руководстве по конкретному устройству).
Тактовый генератор флэш-памяти может тактироваться от ACLK, SMCLK или MCLK. Тактовый сигнал выбранного источника должен быть поделен с помощью битов FNx для обеспечения необходимых требований к частоте f(FTG). Если появляется девиация (отклонение) частоты f(FTG) от требуемого значения в ходе записи или стирания, результат записи или стирания может быть непредсказуемым или же флэш-память окажется подвергнутой ударной перегрузке сверх допустимых пределов, гарантирующих надежную работу.
5.3.2. Стирание флэш-памяти
После стирания бит флэш-памяти читается как «1». Можно программировать индивидуально каждый бит, меняя его значение с «1» на «0», но перепрограммирование от «0» к «1» требует выполнения цикла стирания. Сегмент – это наименьшее количество флэш-памяти, которое можно стереть. Существует три режима стирания, которые могут быть выбраны с помощью битов ERASE и MERAS в соответствии с таблицей 5-1.
Таблица 5-1. Режимы стирания
MERAS ERASE |
Режим стирания |
01 Стирание сегмента
10 Массовое стирание (стирание всех сегментов основной памяти)
11 Стирание всей флэш-памяти (основных и информационных сегментов)
Любое стирание инициируется фиктивной записью1 в адресный диапазон, который будет стерт. Фиктивная запись запускает тактовый генератор флэш-па- мяти и процедуру стирания. На рис. 5.4 показан временной цикл процесса стира-
Генерация |
Операция стирания |
Снятие |
|
напряжения |
напряжения |
программирования |
программирования |
Время стирания, от VCC потребляется повышенный ток
BUSY
t (полное стирание) = t(массовое стирание) = 5297/f(FTG), t(стирание сегмента) = 4819/f(FTG)
Рис. 5-4. Временная диаграмма цикла стирания
1 Имеется ввиду выполнение реальной команды записи в флэш-память любых незначащих данных для запуска процедуры стирания.
Библиотека Компэла |
115 |
|
MSP430x1xxFamily
ния. Бит BUSY устанавливается немедленно после фиктивной записи и остается установленным в течение всего цикла стирания. Биты BUSY, MERAS и ERASE автоматически очищаются, когда цикл завершен. Временные параметры цикла стирания не зависят от объема представленной в устройстве флэш-памяти. Продолжительность цикла стирания одинакова для всех устройств MSP430.
Фиктивная запись по адресу, который лежит вне диапазона стирания не приводит к запуску цикла стирания, не воздействует на флэш-память и не влияет на флаги. Такая ошибочная фиктивная запись игнорируется.
Прерывания должны быть отключены перед началом цикла стирания флэш-памяти. После завершения цикла стирания прерывания могут быть разрешены вновь. Любое прерывание, произошедшее во время цикла стирания, вызовет установку соответствующего флага, а после разрешения прерываний будет сгенерирован запрос на обработку прерывания.
Инициирование процедуры стирания из программы, находящейся в флэшпамяти
Любой цикл стирания может быть инициирован программой, находящейся как во флэш-памяти, так и в ОЗУ. Когда стирание сегмента инициировано программой из флэш-памяти, все тактирование выполняется контроллером флэш-памяти, а ЦПУ останавливается до завершения цикла стирания. После окончания цикла стирания ЦПУ продолжает выполнение программного кода с команды, следующей за фиктивной записью.
Когда цикл стирания инициируется программой их флэш-памяти, возможно стирание кода, необходимого для выполнения после завершения
Рис. 5-5. Цикл стирания, инициируемый программой из флэш-памяти
116 |
Библиотека Компэла |
|
Раздел V. |
Контроллер флэш-памяти |
стирания. Если это произойдет, работа ЦПУ после окончания цикла стирания будет непредсказуема.
Программный поток, инициирующий стирание из флэш-памяти, показан на рис. 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.
;Стирание сегмента программой из ОЗУ. 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 |
|||
Библиотека Компэла |
|||
117 |
|||