Сохранение калибровочной константы для контроллеров PIC 12F629 и 12F675

Примечание: Программатор Microchip PICKit2 с версией программного обеспечения V2.61 вычислит и повторно занесет в память стертую константу OSCCAL за одну операцию. Потому настоятельно рекомендуется использовать программатор PICkit, благодаря которому вам больше не придется беспокоиться о случайно стертой константе OSCCAL.

Контроллеры PIC 12F629 и 12F675 имеют заводскую установочную калибровочную константу, которая записана в последнюю ячейку памяти программ во время процесса изготовления. При программировании контроллера программное обеспечение должно считать данную константу, сохранить вместе с данными основной программы, которые записаны в PIC контроллере, и далее повторно перезаписать в свою ячейку.

Поскольку данная калибровочная константа находится в обычной области памяти программ PIC контроллера, то ее можно легко затереть. Если вы случайно стерли эту константу, тогда будет нелегко определить, какая константа была на самом деле. Без этой константы внутренний тактовый генератор на 4МГц не будет правильно работать на заданной частоте. Хуже всего, что код прикладной программы, которому нужна данная калибровочная константа, в большинстве случаев будет приводить к общему сбою выполнения программы.

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

  • Возьмите новую микросхему контроллера PIC 12F629 или 12F675, вставьте в программатор и СЧИТАЙТЕ данные памяти программ.
  • Найдите последнюю ячейку памяти программ по адресу 0x3FF.
  • Запишите шестнадцатеричное значение по данному адресу. Оно должно быть в виде 34xx, как обведено красным кружочком на рисунке ниже.
  • 34 – это инструкция RETLW (возврат из подпрограммы с установленной константой), бит, который нас интересует, является калибровочной константой. На рисунке выше – это шестнадцатеричный код 8C. Но это значение не одинаковое для различных контроллеров. Потому важно знать фактическое значение калибровочной константы для каждого PIC контроллера.
  • Запишите значение этой калибровочной константы и конвертируйте в двоичное число. В нашем примере 8C – это двоичное число 10001100.
  • Очень удобно, что данные PIC контроллеры имеют 8 выводов, а двоичное число, которые мы в результате получили, имеет 8 бит.
  • Возьмите маркер и далее по часовой стрелке вокруг выводов контроллера пометьте каждый вывод, где в значении калибровочной константы встречается логическая единица «1».
  • Теперь если вы когда-либо сотрете калибровочную константу, вам всего лишь потребуется посмотреть на помеченные выводы контроллера, определить значение константы и с префиксом 34 повторно записать в последнюю ячейку памяти программ по адресу 0x3FF – Проще не бывает!

    Оригинал статьи

    Добавить комментарий

    Ваш адрес email не будет опубликован.