Главная » Микроконтроллеры
Призовой фонд
на январь 2017 г.
1. 5000 руб.
Академия Благородных Металлов
2. 1000 руб.
Radio-Sale
3. Регулируемый паяльник 60 Вт
Паяльник
4. 600 руб.
От пользователей
5. Тестер компонентов LCR-T4
Паяльник

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

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

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

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

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

  1. Возьмите новую микросхему контроллера PIC 12F629 или 12F675, вставьте в программатор и СЧИТАЙТЕ данные памяти программ.
  2. Найдите последнюю ячейку памяти программ по адресу 0x3FF.
  3. Запишите шестнадцатеричное значение по данному адресу. Оно должно быть в виде 34xx, как обведено красным кружочком на рисунке ниже.

piccal2.jpg

  1. 34 – это инструкция RETLW (возврат из подпрограммы с установленной константой), бит, который нас интересует, является калибровочной константой. На рисунке выше – это шестнадцатеричный код 8C. Однако это значение не одинаковое для различных контроллеров. Поэтому важно знать фактическое значение калибровочной константы для каждого PIC контроллера.
  2. Запишите значение этой калибровочной константы и конвертируйте в двоичное число. В нашем примере 8C – это двоичное число 10001100.
  3. Очень удобно, что данные PIC контроллеры имеют 8 выводов, а двоичное число, которые мы в результате получили, имеет 8 бит.
  4. Возьмите маркер и далее по часовой стрелке вокруг выводов контроллера пометьте каждый вывод, где в значении калибровочной константы встречается логическая единица «1».

piccal1.jpg

Теперь если вы когда-либо сотрете калибровочную константу, вам всего лишь потребуется посмотреть на помеченные выводы контроллера, определить значение константы и с префиксом 34 повторно записать в последнюю ячейку памяти программ по адресу 0x3FF – Проще не бывает!

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

Теги:

Опубликована: 24.02.2013 0 1
Я собрал 0 0
x

Оценить статью

  • Техническая грамотность
  • Актуальность материала
  • Изложение материала
  • Полезность устройства
  • Повторяемость устройства
  • Орфография
0

Средний балл статьи: 0 Проголосовало: 0 чел.

Комментарии (5) | Я собрал (0) | Подписаться

0
Николай #
Статья очень хорошая для всех, кто только начинает своё знакомство с PIC-ми. Не плохо бы дополнить её материалом, в котором пояснить как ввести (снова вернуть на место) значение константы после записи программы в контроллер, если приходиться пользоваться любыми другими программаторами. Однажды встречал в инете схему восстановления константы от сети 220V. Схема показалась мне простой и доступной для повторения. Но связь прервалась (пользовался модемом в дороге) и отыскать не удалось её снова.
Ответить
0
viciok #
Против часовой стрелки, по номерам ног.
Ответить
0
Андрей #
Хорошо и просто написано.
Ответить
0
Алексей #
... определить значение константы и с префиксом 34 повторно записать в последнюю ячейку памяти программ по адресу 0x3FF – Проще не бывает!
Подключаю чистую PIC12F675 но со стертой константой,значение ее я знаю(341С). Программа microbrn,программатор К-150. Читаю МК , Редактирую последнюю ячейку как в статье,но после перезаписи все равно остается 3FFF или 34FF. Я начинающий
Ответить
0
Евгений #
Абсолютно, тоже что и Алексея! Пытаюсь вписать, но результат 3FFF или 34FF. Программатор К-150, может кто в курсе, подскажите!
Ответить
Добавить комментарий
Имя:
E-mail:
не публикуется
Текст:
Защита от спама:
В чем измеряется электрическое сопротивление?
Файлы:
 
Для выбора нескольких файлов использйте CTRL

AVR-программатор USB ASP
AVR-программатор USB ASP
Катушка Тесла Модуль измерения тока на ACS712 (30А)
вверх