При программировании не забывайте про константу(osccal), которая записана в последней ячейке данных пика.

Оsccal - представляет собой 16-ти ричное значение калибровки внутреннего генератора МК, с помощью которого МК отчитывает время при выполнении своих программ...

При покупке микроконтроллера (МК) считайте с него данные и запишите константу на листочек или на микроконтроллер!

Это очень важно т.к. если удалите константу при следующем программировании, pic работать не будет либо будет, но не так как должен.

В МК старшего семейства константы нету, так, что не удивляйтесь.

На рисунке ниже показано место расположения этой константы:

Константа может не пригодится когда используется внешний кварц.

В процессе прошивки (когда нажали уже на кнопку "прошить") может (а может и не спросить) вылезти следущее сообщение (см. рис.ниже ), надо нажимать НЕТ. При использовании Icprog 1.06C (я ее использую) всегда спрашивает, заменить либо нет.

Когда вы загружаете прошивку в программу то в последней ячейке памяти выставляется "3FFF" т.к. в прошивке значение вашей константы не указано (она у каждого МК своя)!

Вот программа и спрашивает будете использовать константу "3FFF" или "3424".

Видео - как прошить PIC от начала до конца!

В микроконтроллерах PIC16F628, PIC16F628A, PIC16F630 константы нету, проверено на практике.

В PIC16F676 константа есть!

Видео о прошивке PIC16F676. В видео продемонстрирован бит защиты, прошивка с ним и без него.

 

При использовании внешнего кварца (или RC) константа ненужна, можно в таких схемах использовать pic в которых была утеряна константа!

Биты конфигурации:


WDT - сторожевой таймер
PWRT - задержка для стабилизации генератора при вкючении питания
MCLR - использовать вход внешнего сброса микроконтроллера (reset)
BODEN - задейств-ть сброс при снижении напр. питания
CP - защитить код программы от считывания
CPD - защитить содержимое EEPROM от считывания


  При написании программы для МК, программист, прежде всего, выставляет бит защиты, далее программа (исходник) компилируется (обычно в расширение .HEX) и зашивается в МК, следовательно в отличии от AVR, выставлять биты конфигурации при прошивке pic-ов НЕ НАДО!

В PIC предусмотрен бит защиты:

При прошивке микроконтроллера, если установить (включить) бит защиты , то при считывании данных (после прошивке) выдаст программа ошибку! В этом и заключается смысл бита защиты - невозможно передрать прошивку с микроконтроллера. Эта функция очень удобна для программистов. Добустим Вы написали прошивку и решили другим продавать ее, но если Вы продатите просто прошивку HEX то на следующий день она облетит весь интернет и Ваши авторские права будут нарушены, но а если Вы зашьете в ПИК прошивку и поставите бит защиты, то больше никто не сможет скопировать прошивку!

На рисунке ниже показан бит защиты и ошибка которая выскакивает после прошивки:

Если после прошивки, с использованием бита защиты, считать данные с МК то вот, что получится:

Код Защиты

Особенности для модификаций с буквой "А" pic16F84A (статья дописывается)

 

Если утеряна константа, что делать?

Способ первый: пробывать поставить от другого МК константу или наугад :) , мы знаем, что все константы начинаются на 34 далее две цифры xx которые надо угадать.

Способ второй: порадует владельцев программатора  PICKit 2, появилось приложение для восстановления калибровочной константы для PIC16F630/676, читать тут.

Способ третий: Восстановление OSSCAL для 12F629 & 12F675 (проверенный и простой )

С целью оказания помощи тем, кто потерял константу и хочет ее восстановить, оставляйте в комментариях тип МК и константу.

 

 

Для прошивки можно использовать бесплатную программу, наверное самая популярная - icprog, версия последняя 1,6В.

Скачать icprog106B + описание русс + драйвер для ХР (вообще и без него работает, но могут быть нюансы...)

Настраивается программа индивидуально к каждому программатору в отдельности!

Далее будет...

Обсуждения на ФОРУМЕ


 
Дата: 20-10-2009, 21:06, Просмотров: 170379, Автор: Nikolai4
Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь. Мы рекомендуем Вам зарегистрироваться либо войти под своим именем.

   
Nikolai4 # 1
10 ноября 2009 21:34  
 
pic12F675 - 3438 или 3440

pic12F629 - 3488 или 343C

  •    •     


   
Дрич # 2
13 ноября 2009 20:04  
 
а я купил мк а там все нули,это чего его в магазине уже прошили?
  •    •     


   
Nikolai4 # 3
13 ноября 2009 20:56  
 
если вы купили новый МК, НОВЫЙ ! то при считывании данных все значения будут 3FFF (кроме последней ячейки с константой) см. первый рис.
  •    •     


   
Intenso # 4
14 ноября 2009 08:23  
 
у меня и последний 3FFF Мк PIC16F628A наугад теперь ставить а то выдаёт ошибку при программировании "Ошибка программирования Кода по адресу 000h"
  •    •     


   
Nikolai4 # 5
14 ноября 2009 09:36  
 
по поводу ошибки выше в статье есть, во общем пробуйте его в схеме, должен заработать, пробуйте и отпишите
  •    •     


   
Дрич # 6
15 ноября 2009 17:30  
 
я купил новый , нажимаю читать всё и у меня вылезают все 0 или все 3fff константы нигде не видно. пробовал pic 16f628 и pic 16F84a. прогромматор самодельный, не факт что правильно работает,наверное это из за прогромматора, да? wacko

программатор нерабочий

  •    •     


   
Nikolai4 # 7
16 ноября 2009 22:07  
 
если все 0 при первом (новый-чистый) считывании то программатор не рабочий или неправильно настроен.
при первом считывании должны все быть 3FFF
в 16f628 константы нету, про 16F84a не знаю.
  •    •     


   
Дрич # 8
17 ноября 2009 19:37  
 
спасибо, а то я уже 2 программатора собрал и разворотил из за константы в 628-мом
  •    •     


   
Дрич # 9
21 ноября 2009 10:47  
 
А что такое ОШИБКА ПРОГРАММИРОВАНИЯ КОДА по адресу 0000h ?
  •    •     


   
Nikolai4 # 10
21 ноября 2009 11:10  
 
ошибка программирования - не сталкивался
ошибка проверки - после прошивки программа проверяет как она прошила микроконтроллер...результат выдает,иногда даже после этой ошибки все работает
  •    •     


   
Дрич # 11
24 ноября 2009 12:21  
 
А на что влияет задержка ввода вывода?
  •    •     


   
Nikolai4 # 12
1 декабря 2009 21:08  
 
на качественное программирование МК...
  •    •     


   
Rodjer # 13
2 декабря 2009 11:28  
 
Сами проги расчитаны даже на самые "тормозные компы"... а задержка ввода - это грубо говоря подгон под Ваш комп. Сначало ставите МАКС. Если МК пишеться с ошибками понемногу уменьшаете... пока не будет нормально записываться.

"ОШИБКА ПРОГРАММИРОВАНИЯ КОДА по адресу 0000h ?" - причины такого сообщения:
-программатор не видит программу
-контроллер не может "связаться" программатором
-каюк контроллеру(сам с таким встречался,особенно с "простыми программаторами").

Я сам пользуюсь программой icprog, а программатор EXTRA-PIC. Кому надо могу выслать документацию.

  •    •     


   
Rodjer # 14
2 декабря 2009 11:36  
 
кстати...без "драйвера для ХР" - не сказать, что будет всё работать... покрайней мере большинство контроллеров пишуться с ошибками. Хотя программатор этого не "видит" при проверке кода... Win98(например) и ХР - используют разные библиотеки управления портами. В общем в работе разница незаметна, но иногда сказывается.... cry
  •    •     


   
Rodjer # 15
2 декабря 2009 11:39  
 
а разве при стирании контроллера константа не восстанавливается? Если честно первый раз про такую проблему слышу... просто не сталкивался... eye
  •    •     


   
Nikolai4 # 16
2 декабря 2009 18:57  
 
не восстанавливается!!! все зависит от программы...но лучше перестраховатся и записать ее на листик бумаги wink
  •    •     


   
Sivik # 17
6 декабря 2009 17:51  
 
контроллер pic16f628a прошитый с битом защиты CP, его возможно перепрошить другой прошивкой?
  •    •     


   
Nikolai4 # 18
6 декабря 2009 20:03  
 
CP - защищает pic от чтения данных, перепрошивать после такой защиты можно!
  •    •     


   
Sivik # 19
8 декабря 2009 21:07  
 
Пытался собрать часы-термометр http://shemopay.do.am/publ/33-1-0-174 в прошивке есть бит защиты, после прошивки в пони читаю все 0000. Схема не работает. Контроллер перепрошить не получается. Сначала думал неисправная микросхема, в результате четыре одинаково не дышащих контроллера. Програматор исправен, прошил уже пару 628 с другими прошивками. Как вы думаете что-то можно сделать?
  •    •     


   
Nikolai4 # 20
8 декабря 2009 22:34  
 
Такая лажа - там стоит "Код защиты" см. рис в статье (добавил)
  •    •     


   
Nikolai4 # 21
8 декабря 2009 22:43  
 
Код защиты в этой прошивке и выставлен су....
  •    •     


   
Sivik # 22
9 декабря 2009 19:15  
 
Так PIC прошитый с CP можно выбросить?
  •    •     


   
Sivik # 23
9 декабря 2009 19:41  
 
Пытаюсь перепрошить PIC - программа IC-Prog 1.05D. Загружаю прошивку, процесс прошивки все как обычно, при проверке ошибка 0000F. Затем пытаюсь прочитать - все 3FFFF.
  •    •     


   
Nikolai4 # 24
9 декабря 2009 20:34  
 
про CP я уже говорил -все ок, перепрошивать можно, а вот "Защитный код" фото есть в статье там еще выделено красным квадратом и статью в которой упоминалось про "Защитный код" я тебе писал в личку. С "Защитный код" сам еще доконца не понял...

Я всегда при прошивке отключаю все защиты, чего и вам рекомендую!

Ошибка 0000F выплывает обычно при включенном СР

  •    •     


   
Дрич # 25
9 января 2010 22:55  
 
купил Pic 16f628a-l/p за 68 рублей, потом нащёл другой ,на нём написанно Pic 16f628a-20/р, стоил он в 2 раза дороже.В чём у них раздница?
  •    •     


   
Nikolai4 # 26
9 января 2010 23:00  
 
  •    •     


   
megavolt85 # 27
10 января 2010 01:28  
 
Nikolai4 респект и уважуха +1000000. Шил впервые микроконтролёр и естественно затёр OSCAL. pic12f675 ,значение 3438 решило мою проблему smile smile smile
  •    •     


   
Дрич # 28
10 января 2010 10:03  
 
Что такое ОСЦИЛЛЯТОР?
  •    •     


   
Nikolai4 # 29
10 января 2010 18:48  
 
  •    •     


   
Дрич # 30
10 января 2010 22:31  
 
ясно
  •    •     


Обновления

Сообщения Форума Ответов
3D Модели для Авто 0
Бакометр 2 335
Touch Start-Stop Engine. 587
Кодграберр 17
Исправляем AVR фьюзы при помощ ... 109
Автоматическая зарядка для Ni- ... 84
LEDstairs 0
Бакометр - измеритель остатка ... 4
IR конструктор на PIC12F629 77
Универсальное зарядное устройс ... 103
бaкoмeтр 1974
Двунаправленный автомобильный ... 2
Программатор GENIUS G840 1
Светодиодный тахометр 34
Индикаторы ГРИ ИН1 - ИН14 1
Multiprog 1
Управляющая программа LED CUB 959
Универсальное зарядное устройс ... 9
Изготовлю печатные платы. 29
Простой автоматический выключа ... 25