Восстановление калибровочной константы |
Для работы микроконтроллеров 12F629 и 12F675 от внутреннего генератора, завод-изготовитель задает внутреннюю калибровочную константу (OSSCAL). Это необходимо для большей точности внутреннего генератора. При некорректном значении калибровочной константы микроконтроллер либо не будет работать, либо будет работать неправильно. Если данная константа каким-либо образом оказалась утеряной, то вполне возможно её восстановить. Для восстановления калибровочной константы мы будем использовать простой генератор частоты - сеть, что упрощает конструкцию и не требует создания отдельного генератора. Схема устройства для выполнения операции восстановления показана на рис. 1.

Рис. 1. Схема для восстановления калибровочной константы.
Очень важно не выпрямлять напряжение после трансформатора! Напряжение вторичное 6-12В. Конденсатор 100n должен быть размещен как можно ближе к микроконтроллеру!
S1 разомкнут - калибровка происходит при 3,4В
S1 замкнут - калибровка происходит при 5В
Частота внутреннего генератора в ПИК зависит от изменения температуры и напряжения питания. Когда переключатель S1 разомкнут, то 5 вольт питания подается на микроконтроллер через два диода, следовательно, на выходе получается примерно 3, В. Если S1 замкнут - на микроконтроллер подаётся 5В. Перед началом работы необходимо залить в 12F629 или 12F675 (ссылка в конце статьи). Устройство собирается на печатной плате. Его внешний вид показан на рис. 2

Рис. 2. Внешний вид устройства
Порядок выполнения калибровки:
- Замкнуть джампер J1, если частота сети 60 Гц и оставить ее разомкнутой, если частота сети 50Hz.
- Вставить микроконтроллер в панельку (предварительно он должен быть прошит).
- Разомкнуть ключ S1.
- Когда микроконтроллер начнёт работать, светодиоды будут мигать одновременно.
- Если ни один опорный сигнал (50 или 60Гц) не обнаружен на ноге GP2 (пин 5), светодиод будет мигать . (Если это произойдет, выключите питание pic и перепроверьте правильность монтажа и т.д.)
- В процессе калибровки светодиоды не горят. Калибровки происходит менее чем за 5 секунд.
- Если калибровка не удалось, то загорится красный светодиод.
- Если калибровка прошла успешно, то зеленый светодиод загорится, и на выводе GPIO1 появится тестовый сигнал частотой 5 кГц, который можно проконтролировать частотомером.
- После выполнения калибровки, можно размыкать и замыкать переключатель S1, чтобы увидеть изменения частоты относительно напряжения питания.
- Выключите устройство, удалить микроконтроллер из панельки, и считать с него данные с помощью программатора.
- После считывания памяти EEPROM, она будет содержать одну из трех пар значений адреса 0x00 и 0x01:
- EEPROM адреса 0x00 и 0x01 содержат 0xFF - код не смог нормально работать.
- EEPROM адреса содержат 0x00 и 0x01 0x00 - код не был запущен, не удалось установить калибровку . Убедитесь, что J1 установлена правильно и повторите попытку.
- Адрес 0x00 0x34 EEPROM содержит 0x01 и адрес, где содержатся 0xNN - новое значение калибровки - выполнение программы успешно завершено и калибровка OSCCAL прошла правильно. Эти значение - в ячеке и 0x01 0xNN и будут калибровочной константой. Например значение первой ячейки - 34, а второй - 80. Следовательно, калибровочная константа будет иметь вид 3480.
Печатную плату и прошивку для микроконтроллера можно скачать по этой ссылке.
C этой схемой также часто просматривают: |
Зарядка и восстановление аккумулятора
Частотомер на микроконтроллере
Автомобильный охранный сигнализатор на микроконтроллере
Автоматическое зарядное устройство
Автомат стеклоподъемника автомобиля
|  |
LPT программатор PIC микроконтроллеров
LPT программатор PIC микроконтроллеров
Отладочная плата для микроконтроллеров PIC
NTV программатор PIC микроконтроллеров (JDM совместимый)
LPT Программатор PIC микроконтроллеров
Простейший программатор для PIC
Коммутатор панели ZIF для программирования микроконтроллеров PIC
Плата для программатора PICkit3
RCD-программатор для PIC-контроллеров
RCD-программатор для EEPROM (93Cxx, 24Cxx, 25Cxxx)
|