Збереження калібрувальної константи для контролерів 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 – Простішого не буває!

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

Top