Читаем PIC-микроконтроллеры. Все, что вам необходимо знать полностью

В моделях с суффиксом «А» защита содержимого памяти программ осуществляется несколько иначе, как можно увидеть из Рис. 15.6. В этих моделях имеется единственный бит защиты СР, предназначенный для защиты всей памяти программ от считывания или от записи извне. Причем даже при включенной защите памяти программ внутренние операции записи и чтения FLASH-памяти разрешены. Для предотвращения внутренней записи в указанные выше участки памяти программ используются два бита WRT[1:0]. Внутренние операции чтения памяти программ разрешены всегда.

За исключением самой старой модели PIC16F84, во всех микроконтроллерах с модулем EEPROM имеется бит CPD, при записи 0 в который запрещается доступ извне к внутренней EEPROM-памяти данных.

Модели группы PIC16F87X могут осуществлять запись в память программ отдельными словами. Однако в микроконтроллерах PIC16F87XA внутренняя организация FLASH-памяти программ была изменена. Вследствие этого запись в память программ указанных моделей осуществляется блоками по 4 подряд идущих слова. Младшие биты адреса первого слова блока должны быть равны 00. К примеру, если программист собирается записать новое 14-битное слово в память программ по адресу h’500’, ему также придется выполнить запись по адресам h’501’, h’502’ и h’503’. В процессоре имеется четыре внутренних 14-битных буферных регистра, как показано на Рис. 15.7. При каждой операции записи данные просто копируются в соответствующий буфер, определяемый значением двух младших битов адреса. После записи в последний буферный регистр при EEADR[1:0] = 11 (в нашем примере это соответствует адресу h’503’) блок из четырех слов по адресам h’500’.h’503’ стирается, а затем содержимое всех четырех буферных регистров одновременно заносится в память программ.

Внутренние буферные регистры недоступны из программы при помощи обычных команд пересылки данных. Вместо этого запись каждого слова блока осуществляется точно так же, как запись отдельного слова, реализованная в подпрограмме FLASH_PUT (Программа 15.6). При выполнении первых трех операций записи данные просто сохраняются в буферных регистрах, а задержки длительностью 4 мс не происходит. Вызов этой же подпрограммы с адресом, равным последнему адресу блока, запускает «реальную» запись с приостановкой работы процессора.

Рис. 15.7. Запись в FLASH-память программ в моделях PIC16F87XA

Чтобы проиллюстрировать процедуру блочной записи, рассмотрим следующий пример. Имеется четыре 2-байтных значения, размещенные в РОН с названиями DATA_ARRAY…DATA_ARRAY+7 в порядке от старшего байта к младшему, которые необходимо записать в память программ микроконтроллера PIC16F877A.

Подпрограмма, код которой приведен в Программе 15.7, написана в предположении, что данные уже находятся в ОЗУ и что адрес первой из ячеек памяти программ уже занесен в регистры EEADRH: EEADR. Запись каждого слова в буферные регистры и инициирование цикла записи осуществляются в цикле. В качестве указателя для работы с массивом в памяти данных используется регистр FSR, как это было показано на Рис. 5.8 (стр. 126). Каждое двухбайтное значение по очереди копируется в регистры EEDATH: EEDATA, после чего подпрограмма FLASH_PUT из Программы 15.6 запускает цикл псевдозаписи. После каждого прохода цикла адрес ячейки памяти программ, находящийся в регистре EEADR, инкрементируется (EEADRH не трогаем). После четвертого прохода запускается реальный цикл записи. К сожалению, в регистре EECONl отсутствует флаг, по которому можно было бы отличить этот цикл записи от трех предыдущих. Вместо этого мы проверяем состояние двух младших битов регистра EEADR. Когда они снова становятся равными Ь’00’, процесс завершается.

Несмотря на то что записывать необходимо полный блок, можно изменять значение только одного, двух или трех слов блока. Для этого все данные, которые нужно оставить неизменными, сначала считываются из памяти программ в память данных, а затем записываются вместе с изменяемыми данными.

Программа 15.7. Блочная запись FLASH-памяти программ в моделях PIC16F87XA

Перейти на страницу:

Все книги серии Программируемые системы

PIC-микроконтроллеры. Все, что вам необходимо знать
PIC-микроконтроллеры. Все, что вам необходимо знать

Данная книга представляет собой исчерпывающее руководство по микроконтроллерам семейства PIC компании Microchip, являющегося промышленным стандартом в области встраиваемых цифровых устройств. В книге подробно описывается архитектура и система команд 8-битных микроконтроллеров PIC, на конкретных примерах изучается работа их периферийных модулей.В первой части излагаются основы цифровой схемотехники, математической логики и архитектуры вычислительных систем. Вторая часть посвящена различным аспектам программирования PIC-микроконтроллеров среднего уровня: описывается набор команд, рассматривается написание программ на ассемблере и языке высокого уровня (Си), а также поддержка подпрограмм и прерываний. В третьей части изучаются аппаратные аспекты взаимодействия микроконтроллера с окружающим миром и обработки прерываний. Рассматриваются такие вопросы, как параллельный и последовательный ввод/вывод данных, временные соотношения, обработка аналоговых сигналов и использование EEPROM. В заключение приводится пример разработки реального устройства. На этом примере также демонстрируются простейшие методики отладки и тестирования, применяемые при разработке реальных устройств.Книга рассчитана на самый широкий круг читателей — от любителей до инженеров, при этом для понимания содержащегося в ней материала вовсе не требуется каких-то специальных знаний в области программирования, электроники или цифровой схемотехники. Эта книга будет также полезна студентам, обучающимся по специальностям «Радиоэлектроника» и «Вычислительная техника», которые смогут использовать ее в качестве учебного пособия при прослушивании соответствующих курсов или выполнении курсовых проектов.

Сид Катцен

Радиоэлектроника

Похожие книги

Электроника для начинающих (2-е издание)
Электроника для начинающих (2-е издание)

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

Чарльз Платт

Радиоэлектроника / Технические науки
Электроника для начинающих
Электроника для начинающих

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

Паоло Аливерти , Чарльз Платт

Радиоэлектроника / Технические науки
Искусство схемотехники. Том 3 (Изд.4-е)
Искусство схемотехники. Том 3 (Изд.4-е)

Широко известная читателю по предыдущим изданиям монография известных американских специалистов посвящена быстро развивающимся областям электроники. В ней приведены наиболее интересные технические решения, а также анализируются ошибки разработчиков аппаратуры: внимание читателя сосредотачивается на тонких аспектах проектирования и применения электронных схем. На русском языке издается в трех томах. Том 3 содержит сведения о микропроцессорах, радиотехнических схемах, методах измерения и обработки сигналов, принципах конструирования аппаратуры и проектирования маломощных устройств, а также обширные приложения. Для специалистов в области электроники, автоматики, вычислительной техники, а также студентов соответствующих специальностей вузов и техникумов.

Пауль Хоровиц , Уинфилд Хилл

Техника / Радиоэлектроника