Руководство пользователя MSP430 (1041606), страница 10
Текст из файла (страница 10)
4.2.6 Надежность работы основного модуля тактирования
В основном модуле тактирования имеется возможность определения возникновения неисправности осциллятора. Детектор неисправности осциллятора представляет собой аналоговую схему мониторинга сигналов LFXT1CLK (в режиме HF) и XT2CLK. Неисправность осциллятора определяется, когда любой из этих тактовых сигналов отсутствует в течение приблизительно 50 мкС. Когда обнаруживается неисправность осциллятора, а источником для сигнала MCLK выступает либо LFXT1 в режиме HF, либо XT2, происходит автоматическое переключение MCLK на работу от DCO, как от источника тактовых импульсов. Это позволяет продолжить выполнение программного кода, даже в ситуации, когда кварцевый генератор остановился.
Если установлены флаги OFIFG и OFIE, происходит запрос немаскируемого прерывания NMI. Процедура обработки NMI-прерывания может проверить флаг OFIFG, что позволит выявить возникшую неисправность осциллятора. Очистка флага OFIFG должна производиться программным обеспечением.
Примечание: определение неисправности осциллятора LFXT1 в режиме LF не производится. |
Флаг OFIFG устанавливается сигналом неисправности осциллятора XT_OscFault. Сигнал XT_OscFault устанавливается при POR, когда модули XT2 или LFXT1 в режиме HF имеют неисправность осциллятора. Когда XT2 или LFXT1 в режиме HF останавливаются программным обеспечением, сигнал XT_OscFault вырабатывается немедленно, и остается активным пока осциллятор не будет перезапущен, и снимается примерно через 50 мкС после рестарта осциллятора, как показано на рис. 4.8.
Рис.4-8 Сигнал неисправности осциллятора
Определение неисправности осциллятора
Сигнал XT_OscFault переключает флаг OFIFG так, как показано на рис. 4.9. Сигнал LFXT1_OscFault имеет низкий уровень, когда LFXT1 находится в LF режиме.
В устройствах, у которых модуль XT2 отсутствует, флаг OFIFG не может быть очищен, когда LFXT1 в режиме LF. Источником для сигнала MCLK может являться LFXT1CLK в режиме LF при установке битов SELMx, даже если флаг OFIFG остается поднятым.
В устройствах, имеющих XT2, флаг OFIFG может очищаться программно, когда LFXT1 находится в режиме LF и далее остается очищенным. Источником для сигнала MCLK может являться LFXT1CKL в режиме LF независимо от состояния флага OFIFG.
Рис.4-9 Прерывание при неисправности осциллятора
Использование кварцевого резонатора для формирования MCLK
После сигнала PUC основной модуль тактирования использует DCOCLK для формирования MCLK. Если необходимо, в качестве источника сигнала для MCLK можно использовать LFXT1 или XT2. Для смены источника тактирования сигнала MCLK с модуля DCO на тактирование от кварцевого резонатора (LFXT1CLK или XT2CLK) используется следующая последовательность команд:
-
Переключение на кварцевый резонатор
-
Очистка флага OFIFG
-
Ожидание в течение примерно 50 мкС
-
Проверка OFIFG и повторение шагов с 1-4 до тех пор, пока OFIFG остается очищенным.
; Выбор LFXT1 (в режиме HF) для MCLK
BIC #OSCOFF,SR ; включение осциллятора
BIS.B #XTS,BCSCTL1 ; установка режима HF
L1 BIC.B #OFIFG,&IFG1 ; очистка OFIFG
MOV #0FFh,R15 ; задержка
L2 DEC R15 ;
JNZ L2 ;
BIT.B #OFIFG,&IFG1 ; повторная проверка OFIFG
JNZ L1 ; повторение проверки, если необходимо
BIS.B #SELM1+SELM0,&BCSCTL2 ; выбор LFXT1CLK
4.2.7 Синхронизация сигналов тактирования
Когда происходит переключение MCLK или SMCLK на другой источник опорной тактовой частоты, переключатель синхронизируется, чтобы избежать критических состояний «гонки» сигналов. Это показано на рис. 4.10:
-
Текущий тактовый цикл продолжается до следующего фронта сигнала исходного источника.
-
Уровень тактового сигнала (MCLK) остается высоким до следующего фронта сигнала нового источника.
-
Выбирается новый источник тактирования и далее MCLK продолжает работать от него, начиная с полного периода нового источника.
Рис.4-10 Переключение MCLK с DCOCLK на LFXT1CLK
4.3 Регистры основного модуля тактирования
Перечень регистров основного модуля тактирования приведен в таблице 4.1.
Таблица 4-1. Регистры основного модуля тактирования
Регистр | Обозначение | Тип регистра | Адрес | Исходное состояние |
Регистр управления DCO | DCOCTL | Чтение / запись | 056h | 056h после PUC |
Регистр 1 управления системой основного тактирования | BCSCTL1 | Чтение / запись | 057h | 084h после PUC |
Регистр 2 управления системой основного тактирования | BCSCTL2 | Чтение / запись | 058h | Сбрасывается после POR |
Регистр 1 разрешения прерываний SFR | IE1 | Чтение / запись | 0000h | Сбрасывается после PUC |
Регистр 1 флагов прерываний SFR | IFG1 | Чтение / запись | 0002h | Сбрасывается после PUC |
DCOCTL, регистр управления DCO
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
DCOx | MODx |
rw-0 | rw-1 | rw-1 | rw-0 | rw-0 | rw-0 | rw-0 | rw-0 |
DCOx | Биты 7-5 | Выбор частоты DCO. Эти биты определяют, какая из восьми дискретных частот DCO будет использоваться при выбранных установках RSELx. |
MODx | Биты 4-0 | Выбор модулятора. Эти биты определяют, как часто частота fDCO+1 используется в течение периода 32 циклов DCOCLK. В течение оставшихся циклов (32-MOD) используется частота fDCO. Эти биты не задействуются, когда DCOx=7. |
BCSCTL1, регистр 1 управления системой основного тактирования
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
XT2OFF | XTS | DIVAx | XT5V | RSELx |
rw-(1) | rw-(0) | rw-(0) | rw-(0) | rw-0 | rw-1 | rw-0 | rw-0 |
XT2OFF | Бит 7 | Выключение XT2. Этот бит выключает осциллятор XT2.
| ||||||||
XTS | Бит 6 | Выбор режима LFXT1
| ||||||||
DIVAx | Биты 5-4 | Делитель для ACLK
| ||||||||
XT5V | Бит 3 | Не задействован. XT5V должен быть всегда сброшен. | ||||||||
RSELx | Биты 2-0 | Выбор резистора. Внутренний резистор имеет восемь различных величин сопротивления. Значение сопротивления резистора определяет номинальную частоту. Низшая номинальная частота выбирается при установке RSELx=0. |
BCSCTL2, регистр 2 управления системой основного тактирования
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
SELMx | DIVMx | SELS | DIVSx | DCOR |
rw-(0) | rw-(0) | rw-(0) | rw-(0) | rw-0 | rw-0 | rw-0 | rw-0 |
SELMx | Биты 7-6 | Выбор MCLK. Эти биты позволяют выбрать источник для MCLK.
| ||||||||
DIVMx | Биты 5-4 | Делитель для MCLK
| ||||||||
SELS | Бит 3 | Выбор SMCLK. Эти биты позволяют выбрать источник для SMCLK.
| ||||||||
DIVSx | Биты 2-1 | Делитель для SMCLK
| ||||||||
DCOR | Бит 0 | Выбор резистора для DCO.
|
IE1, регистр 1 разрешения прерываний
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
|
|
|
|
|
| OFIE |
|
rw-0 |
Биты 7-2 | Эти биты могут быть использованы другими модулями. См. справочное руководство конкретной микросхемы. | |||||
OFIE | Бит 1 | Разрешение прерывания при возникновении ошибки осциллятора. Этот бит разрешает прерывание OFIFG. Поскольку другие биты в регистре IE1 могут использоваться для других устройств, рекомендуется вместо команд MOV.B или CLR.B применять команды BIS.B или BIC.B.
| ||||
Бит 0 | Этот бит может быть использован другими модулями. См. справочное руководство конкретной микросхемы. |
IFG1, регистр 1 флагов прерываний
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
|
|
|
|
|
| OFIFG |
|
rw-0 |
Биты 7-2 | Эти биты могут быть использованы другими модулями. См. справочное руководство конкретной микросхемы. | |||||
OFIFG | Бит 1 | Флаг прерывания при возникновении ошибки осциллятора. Поскольку остальные биты в регистре IFG1 могут использоваться для других устройств, рекомендуется вместо команд MOV.B или CLR.B применять команды BIS.B или BIC.B.
| ||||
Бит 0 | Этот бит может быть использован другими модулями. См. справочное руководство конкретной микросхемы. |
Раздел 5 Контроллер флэш-памяти
В этом разделе описывается работа контроллера флэш-памяти семейства MSP430.
5.1 Введение в флэш-память
Флэш-память в MSP430 адресуется побитно, побайтно или пословно и может перепрограммироваться. Модуль флэш-памяти имеет интегрированный контроллер, управляющий процессом стирания и программирования. Контроллер имеет три регистра, тактовый генератор и генератор напряжения для обеспечения напряжений стирания и программирования.