Портирование приложений с PIC18 на PIC24F. 1. 10. Встроенные функции энергопотребления

1.10. Встроенные функции

Рассмотренные ниже функции не являются отдельными модулями микроконтроллеров, однако их использование необходимо для безопасной и надежной работы системы. К таким функциям относятся:

· Возможность конфигурации устройства

· Защита программного кода

· Встроенный стабилизатор напряжения ядра

1.10.1. Конфигурация устройства

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

В семействе PIC18 слова конфигурации расположены по адресам от 0x300000 до 0x30000F включительно, то есть вне пространства памяти программ. Большинство микроконтроллеров PIC18 имеют программный доступ к этой области только на чтение и не могут ее программно изменять, т.е. изменение конфигурации может осуществляться только при помощи внешнего перепрограммирования. В ранних моделях PIC18 конфигурационная область представляла собой однократно программируемую память, т.е. запись слов конфигурации являлась одноразовой процедурой.

В последних версиях микроконтроллеров PIC18, таких как подсемейство PIC18FxxJ, слова конфигурации расположены в последних четырех словах программной памяти. При подаче питания информации из этой области переписывается в область конфигурации по адресам 0x300000 … 0x30000F, которая используются в дальнейшем и не может быть изменена программно или при помощи внешнего доступа. Если слова конфигурации в программной памяти изменены программно, то эта конфигурация не вступит в силу до следующего сброса по включению питания. Следует заметить, что бит защиты может быть изменен только в случае полного стирания и перепрограммирования Flash памяти. Область конфигурации (реальные регистры конфигурации по адресам 0x300000 … 0x30000F) защищена битом четности. При ошибке четности производится сброс микроконтроллера.

Так же как и в микроконтроллерах PIC18FxxJ слова конфигурации расположены в конце программной памяти PIC24F. Однако значение слов конфигурации переписывается в реальную область конфигурации при любом виде сброса, включая программный сброс (инструкцию RESET). Это означает, что конфигурация устройства (исключая бит защиты) может быть программно изменена и обновлена в любой момент. Бит защиты, как уже было сказано, может быть изменен только при полном стирании и перепрограммировании Flash памяти. Реальная область конфигурации, так же как и в PIC18FxxJ, защищена от случайного изменения.

1.10.2. Защита программного кода

Семейства PIC18 и PIC24F предоставляют похожую функцию защиты программного кода от чтения, исключая программный доступ во время выполнения кода.

Реализация защиты кода в семействе PIC18 различается для разных кристаллов в зависимости от деления программной памяти на специальные блоки. Некоторые микроконтроллеры PIC18 содержат загрузочный (boot) блок, который защищается от чтения индивидуальным битом, что позволяет закрыть код загрузчика (бутлоадера). Все устройства с областью EEPROM содержат индивидуальный бит защиты этого блока энергонезависимой памяти.

Защита блоков производится с помощью трех независимых битов:

· CPn – защита от внешнего чтения и записи

· WRTn – запрет записи с помощью инструкций табличной записи

· EBTRn – запрет использования инструкций табличного чтения из другого блока программной памяти

В отличие от PIC18, семейство PIC24F имеет возможность защиты только всей области энергонезависимой памяти. Используются следующие конфигурационные биты: GCP – аналогичен CPn в семействе PIC18 и GWRP – аналогичен WRTn.

1.10.3. Встроенный стабилизатор напряжения

Микроконтроллеры семейства PIC24F имеют встроенный стабилизатор напряжения, предназначенный для питания ядра. Встроенный стабилизатор позволяет использовать в системе источник питания с одним выходным напряжением с допустимым рабочим диапазоном. Стабилизатор конфигурируется аппаратно, подтяжкой определенного вывода к VDD или к земле. Для получения более подробной информации рекомендуем обратиться к литературе [1].

Микроконтроллеры PIC18 с максимальным напряжением питания 5 В не имеют встроенного стабилизатора. Подсемейство PIC18FxxJ имеет стабилизатор, аналогичный PIC24F. Следует заметить, что микроконтроллеры PIC18FxxJ и PIC24F в аналогичных корпусах совместимы по выводам питания.