Ремонт принтеров, сканнеров, факсов и остальной офисной техники


назад Оглавление вперед




[38]

MOV #FWKEY+WRT,&FCTL1 MOV #0123h,&0FF1Eh L2 BIT #BUSY,&FCTL3

MOV #FWKEY,&FCTL1

MOV #FWKEY+LOCK,&FCTL3

;Разрешение записи

;0123h -> 0FF1Eh ;Проверка BUSY ;Ожидание в цикле, ;пока занято ;Очистка WRT ;Установка LOCK ;Повторный запуск ;сторожевого таймера? ;Разрешение прерываний

Запись блока

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

Флеш-память

Рис. 5-10. Блоки флэш-памяти

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


Запись в флэш, например MOV #123h, &Flash

i-«~i-

Генерация

напряжения

программирования

t(запись блока, байт 0) = 30/f(FGT)

Выполнение операции программирования

Общее время программирования =< 3 мс, потребление reV повышено

t(байтl 1-63) = 20/f(FGT)

Снятие напряжения программирования I

байты1-63) = 20/f(FGT)

t(окончание) = 6/f(FGT)

Рис. 5-11. Временная диаграмма цикла блочной записи

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

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

/Запись одного блока, начиная с адреса 0F000h. /Запись должна выполняться из ОЗУ/ предполагается, что флэш-память уже стерта.

/514 кГц < SMCLK < 952 кГц

/Принимается ACCVIE = NMIIE = OFIE = 0.

MOV #32,R5/Используется как

/счетчик записи /Указатель записи /Отключение /сторожевого таймера /Запрещение прерываний /Проверка BUSY /Ожидание в цикле, /пока занято MOV #FWKEY+FSSEL1+FN0,&FCTL2 /SMCLK/2 MOV #FWKEY,&FCTL3/Очистка LOCK

/Разрешение записи /блока

/Месторасположение /записи

MOV #0F000h,R6

MOV #WDTPW+WDTHOLD,&WDTCTL

BIT #BUSY,&FCTL3

MOV #FWKEY+BLKWRT+WRT,&FCTL1 MOV Write Value,0(R6) BIT #WAIT,&FCTL3

/Проверка WAIT

Бит BLKWRT


Запрещение всех прерываний и отключение сторожевого таймера

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

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

-►

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

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

Установка WRT = 0, LOCK = 1 разрешение прерываний и включение сторожевого таймера

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



[стр.Начало] [стр.1] [стр.2] [стр.3] [стр.4] [стр.5] [стр.6] [стр.7] [стр.8] [стр.9] [стр.10] [стр.11] [стр.12] [стр.13] [стр.14] [стр.15] [стр.16] [стр.17] [стр.18] [стр.19] [стр.20] [стр.21] [стр.22] [стр.23] [стр.24] [стр.25] [стр.26] [стр.27] [стр.28] [стр.29] [стр.30] [стр.31] [стр.32] [стр.33] [стр.34] [стр.35] [стр.36] [стр.37] [стр.38] [стр.39] [стр.40] [стр.41] [стр.42] [стр.43] [стр.44] [стр.45] [стр.46] [стр.47] [стр.48] [стр.49] [стр.50] [стр.51] [стр.52] [стр.53] [стр.54] [стр.55] [стр.56] [стр.57] [стр.58] [стр.59] [стр.60] [стр.61] [стр.62] [стр.63] [стр.64] [стр.65] [стр.66] [стр.67] [стр.68] [стр.69] [стр.70] [стр.71] [стр.72] [стр.73] [стр.74] [стр.75] [стр.76] [стр.77] [стр.78] [стр.79] [стр.80] [стр.81] [стр.82] [стр.83] [стр.84] [стр.85] [стр.86] [стр.87] [стр.88] [стр.89] [стр.90] [стр.91] [стр.92] [стр.93] [стр.94] [стр.95] [стр.96] [стр.97] [стр.98] [стр.99] [стр.100] [стр.101] [стр.102] [стр.103] [стр.104] [стр.105] [стр.106] [стр.107] [стр.108] [стр.109] [стр.110] [стр.111] [стр.112] [стр.113] [стр.114] [стр.115] [стр.116] [стр.117] [стр.118] [стр.119] [стр.120]