Flash память программ МК PIC18XXXX

Автор: Super User Просмотров: 6984

 

Стирание Flash памяти программ производится блоками по 64 байта, последние 6 бит регистра TBLPTR (TBLPTRL) сбрасываются и соответственно в адресации не участвуют, а значит граница стираемого блока всегда на границе  адреса мл.байта  TBLPTRL  ХХ00 0000. Для стирания блока необходимо выполнить следующие действия:

  1. Загрузить в указатель адрес стираемого блока
  2. Установить  бит EEPGD для  выбора Flash памяти  программ; сбросить бит CFGS  для обращения к памяти программ; установить  бит WREN для  разрешения записи; установить бит FREE для разрешения стирания 
  3. Выключить прерывания 
  4. Записать 55h в регистр EECON2
  5. Записать AAh в регистр EECON2
  6. Установить бит WR для инициализации цикла стирания
  7. CPU о становит выполнение программы до завершения цикла стирания (ориентировочно 2мс)
  8. Выполнить команду NOP
  9. Разрешить прерывания

В даташитах при переводе бывают "опечатки". Так и в нашем случае бит  WR  регистра EECON1 приписали  к EECON2 и практически везде пропущена команда сброса бита CFGS , для обращения к памяти программ. Дело в том, что при сбросе бит принимает неизвестное состояние и ПП стирания как и записи, чтения может просто не работать.

Вот так выглядит ПП стирания Flash памяти программ.

;-----------------------------------
; ПП стирания  памяти программ.           
;------------------ -----------------
Clr_TAB    bsf        EECON1,EEPGD ; Работа с Flash-памятью программ.
           bcf         EECON1,CFGS ; Обращение к Flash памяти программ
           bsf         EECON1,WREN ; Разрешение записи.
           bsf         EECON1,FREE ; Разрешение стирания.
           bcf          INTCON,GIE ; Запретить прерывания
           movlw               55h ; =
           movwf            EECON2 ; Обязательная
           movlw              0AAh ; процедура.
           movwf            EECON2 ; =         
           bsf           EECON1,WR ; Инициализация стирания
           nop                     ; Обязательная процедура
           bsf          INTCON,GIE ; Разрешить прерывания
           return                  ; Возврат из ПП.

 

Смотреть видеоурок по теме....


Все права принадлежат ChipMK.ru. При копировании материала ссылка обязательна. 2011-2017 © ChipMK.ru

ChipMk.ru Яндекс.Метрика
PRCY.ru