При программировании не забывайте про константу(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 + описание русс + драйвер для ХР (вообще и без него работает, но могут быть нюансы…)
Настраивается программа индивидуально к каждому программатору в отдельности!
підкажіть будьласка що неправильно роблю - программатор jdm extra pic v 2.0
pic16f628a, ic-prog 1.06b, настройкі программи робив по інструкціїївсе як книжка пише! при програмуванні процес проходить 100% а при читанні всі 0
ср - виключене, меню вибра када защити як на скріншоті… ненахожу в своїй программі хоч і версії тіж самі по. нашов в інтернеті що для даної мс потрібно pgm посадити на землю… - результат той же
Не найдено значение установки Осциллятора.
Вы настаиваете на использовании Установок из файла (3FFFh) ? такая надпись при програмировании выскакивает а потом -ошибка програмирования кода по адресу 0000h! это с pic12f629 все три микрухи причём после прочтения все константы 3FFF как ивсё остальное.Програматор icprog105 , перед этим прошил без всяких проблем pic16f628 , термометр сразу зафурычил ,на радостях выписал три 629 и вот бьюсь с ними без успеха . И ещё длина кабеля может повлиять (COM9 ,80 сантиметров),выручайте опыта ещё не нароботал .
javascript://
LDZ-UI
# 39
таже проблема и с pic16f876
zaa-1978
# 40
слушай а почему сом9? ведь он только до сом4 токо опредиляет.
да и провод лудше покороче. или используй удлинитель.
LDZ-UI
# 41
Дружище в смысле до COM4 ,не знаю как добавить фото так-бы выложил .Вот поднял журнал радио за 2004 там подробно с самых азов програмирование через LPT , завтра собиру и попробую что получится ,отпишусь потом , если есть, что подсказать буду рад.
zaa-1978
# 42
спроси в чате у Nikolai4. ему скинеш а он сюда добавит!!!
Leosis
# 43
Спасибки за ссылку!
Буду пробовать!
А этот прог точно Пик16Ф628 пишет?
zaa-1978
# 44
да точно там есть подключение.вобщем нада читать что расказивать.
Ребята собрал ДУ на 3 команды на 150 метров там стоит pic12f675 незнаю как ее прошить. может у кого есть программатор что-бы прошить. Кому интересно есть очень много схем по ДУ от 3х до 12 команд дальностью до 1км. я с города Киеваю
Nikolai4
# 47
в таком случае надо писать в мини чате, там тебя больше людей увидет! и может найдется кто-то из Киева. по поводу проблем то обсуждать надо на ФОРУМЕ!!!!! будешь обсуждать тут забаню.
ArturasRam
# 48
спасибо за статью
kaut
# 49
Народ, собрал программатор, правда по схеме ДУБРОВЕНКО из журнала Радио. Extra-PIC. Прошил PIC16F628A - нормально. Прошил PIC12F675 - нормально. А PIC16F84A не прошивается. Может есть какой-то секрет?
Pony ваще не шьет ничего, win800 тоже. А IC-PROGом нормально, кроме PIC16F84A. Кто что скажет?
jheka
# 50
Подскажите кто может купил PIC16F84A при считывании выдает 3FFF ? Вопрос есть ли у него константа вообще или нет
Nikolai4
# 51
нету
jheka
# 52
Еще такой вопросик возник! Начинал прошивать PIC16F84A прошиват выдает ошибку в конце 0000h ?что делать , после того как он прошивает я его начинаю считывать он мне выдает все 3FFF что это может быть или он на самом деле прошивает
Nikolai4
# 53
программатор точно рабочий? все настройки правильные, вообще рыть надо в программаторе
jheka
# 54
ДА ВРОДЕПРАВИЛЬНО А ЕСТЬ СХЕМА ПРОГРАММАТОРА НА ПОДОБЕ ЧО НИБУДЬ ПРОСТЕНЬКОЕ (ПРОГРАММАТОР ) ТАК ЧТОБ УБЕДИТСЯ ЧТО ТОТ НЕ ГЛЮЧИТ
там почему то резисторов на плате нет а на схеме они есть или они smd
-=Neo=-
# 58
Как прошить PIC16F73??? аналогично???
zaa-1978
# 59
да!
uniko
# 60
помогите пожалуйта с пиком, случайно поставил галочку на СР и CPD на PIC12F629. Как я понял бит защиты должен стирется как и вся память, но на практике не получилось. Вроде пик то дешевый просто до Нового года не получится преобрести для эксперементов, а в переди 10 дней каникул. Как выйти из положения спасибо заранее.