НПО Системы Безопасности
(499)340-94-73 График работы:
ПН-ПТ: 10:00-19:00
СБ-ВС: выходной

Главная » Периодика » Безопасность

0 ... 9596979899100101 ... 159


загрузчика. Эта последовательность представлена на рис. 9.8. При выходе из режима программирования напряжение с вывода MCLR должно сниматься по крайней мере на 10 мс раньше, чем отключается напряжение питания PIC-микроконтроллера. После снятия напряжения с вывода MCLR на линию Test подается низкий уровень.

При программировании вывод RAO переводится в высокое состояние по меньшей мере на 10 командных циклов (это составляет 10 мкс в случае PIC-микроконтроллера, работающего на частоте 4 МГц). В это время PIC-микроконтроллер выдает адреса и данные для их проверки. После того как данные проверены, вывод RAO переводится в высокое состояние на 100 мкс, в течение которых происходит программирование новых данных. Программный счетчик PIC-микроконтроллера инкрементируется, если вывод RA1 находится в низком состоянии, пока на RAO присутствует импульс. Если, напротив, во время импульса состояние вывода высокое, то внутренний программный счетчик не инкрементируется. При этом содержимое слова инструкции может быть считано в момент следующего цикла сигнала на линии RA1 без загрузки нового адреса.

Последней операции отдается предпочтение. Диаграмма сигналов для нее представлена на рис. 9.9. Подобный цикл должен повторяться

MCLR

TEST

RAO - RA3

/ Vpp

/.....

RA4 PORTB

OxOEl

Рис. 9.8

Запуск режима параллельного программирования PIC 17Схх



PORTB

PORTC

Старш! байт адреса

Младший байт адреса

Загрузка адреса

1ИЙ \ /СчиТываемыеХ >-( данные (стар- У-I \ шийбайт) /

\ /считываемыеХ >-( данные (млад-Ь / \ шийбайт) /

I Данные, считываемые I из микроконтроллера

/новые данныеу/считываемые Д (старший /~\ данные (стар-. \ байт) / \ шийбайт)

/новые данные\/считываемые -( (старший М данные (млад-\ байт) / \ шийбайт)

Программирование Проверка

Данные, записываемые в микроконтроллер

Рис. 9.9

Диаграммы сигналов при программировании PIC 17Схх

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

Процесс записи и чтения по адресам от OxOFEOO до OxOFEOF обеспечивает программирование и проверку слова конфигурации. Считывание слова конфигурации подразумевает чтение с использованием первых трех циклов сигналов линии RA1, приведенных на рис. 9.9. При чтении по адресам OxOFEOO - OxOFEO? считывается младший байт слова конфигурации через порт PORTC (на линиях порта PORTB при этом будет код OxOFF). В свою очередь, при считывании по адресам с OxOFEOS по OxOFEOF происходит считывание старшего байта слова конфигурации через порт PORTC.

Соответствие разрядов слова конфигурации ячейкам памяти дано в табл. 9.8. Назначение разрядов слова конфигурации приведено в табл. 9.9.

Запись в ячейки конфигурации должна производиться в порядке возрастания адресов. Программирование в убываюш;ем порядке приводит к непредсказуемым последствиям, поскольку, например, бит режима процессора может быть записан вместо бита режима защиты кода.



Адрес

OxOFEOO

FOSCO

OxOFEOI

F0SC1

0X0FE02

WOTPSO

ОхОЕЕОЗ

WDTPS1

0X0FE04

ОхОРЕОб

0X0FE08

Таблица 9.9

Назначение разрядов слова конфигурации микроконтроллера PIC 17Схх

Биты

Назначение

РИ2 - РНО

Режимы работы микроконтроллера

Режим микропроцессора

Режим микроконтроллера

Расширенный режим микроконтроллера

Режим микроконтроллера защиты кода

MTPS1 -WDTPSO

Режимы сторожевого таймера (WDT)

и постскалера

WDT разрешен, постскалер = IT

WDT разрешен, постскалер = 256:1

WDT разрешен, постскалер = 641

WDT запрещен, 16-бигный таймер

F0SC1 -FOSCO

Режимы генератора

Внешний генератор

ХТ-генератор

RC-генератор

LF-генератор

ВНУТРИСХЕМНОЕ ПРОГРАММИРОВАНИЕ PIC 17СХХ

Микроконтроллеры PIC 17Схх допускают внутрисхемное программирование через последовательный интерфейс (ICSP). Для этого к выводу MCLR прикладывается напряжение, превышающее 13 В, И выполняется команда табличной записи tablwt. По этой команде Данные, загруженные в регистры TABLATH и TABLATL, записываются fi ячейки программной памяти.

Команда tablwt продолжает выполняться (то есть она не завершается после двух циклов, как в случае, если регистры TBLPRH и TBLPTRL указывают адрес вне внутреннего EPROM) до тех пор, пока не возникнет прерывание или не будет снят высокий уровень вывода MCLR.

Запись слова производится с помощью следующих действий:

1. Блокируются прерывания таймера TMRO.

2. В регистры TABPTRH и TABPTRL загружаются адреса.



0 ... 9596979899100101 ... 159