При программировании не забывайте про константу(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 + описание русс + драйвер для ХР (вообще и без него работает, но могут быть нюансы…)
Настраивается программа индивидуально к каждому программатору в отдельности!
в етом програматоре что записивал попробуй просто стереть!
Nikolai4
# 63
PIC12F629 - это контроллер с флеш памятью буква "F", так что стерайте смело и все будет ок! Попробуйте сразу перепрошить новой прошивкой.
uniko
# 64
когда стираешь пишет, что все стерто, проверяешь одни нули, пробовал записать пишет "ошибка проверки по адресу 0000h". Контроллер в помойку ?
Nikolai4
# 65
программатор рабочий? ранее прошивал им?
а когда пробывал записать то галочки сняты СР и CPD?
zaa-1978
# 66
ищи причину не в контроллере а в програматоре! попробуй стиреть два рза подряд! а записать пробуй другую прошывку ну с какого небудь пульта тут их много!
uniko
# 67
программатор точно рабочий собран вот по этой схеме http://radiokot.ru/circuit/digital/pcmod/13/01.gif , 16F628 только, что прошивал, а PIC12F629 на прошлой неделе. Когда записывал не помню точно вроде были сняты галочки, уже сомневаюсь. Нашел еще такой же пик только с попорченной константой, только у него как помню после пятой записи без константы, пик тоже напрочь отказался стираться и перезаписываться.
Nikolai4
# 68
теперь точно это программатор
zaa-1978
# 69
проверь сколько питание идет при считивании или при записи на контроллер 5вольт проверь и 13.2!
uniko
# 70
Nikolai4 и zaa-1978 большое спасибо! Завтра буду разбираться действительно вместо 13.2, всего 12.4 видать для этого пика маловато, о результатах сообщю.
zaa-1978
# 71
смотри больше нильзя спалиш контроллер!
uniko
# 72
поднял напряжение до 13.2, все равно не стирается
Dimasikk
# 73
Может комуто поможет:
PIC 16F676 константа 3438
haykaz
# 74
Привет! всем скажите в PIC18F2520 есть констант или нет, мне очень нужно помогите а если есть то кто знает какой констант потому что, я стирал до прошивание а сейчас не занаю ,что делать
Nikolai4
# 75
нету
haykaz
# 76
извени за глупый вопрос а как ты знаеш что,в PIC18F2520 константа нет
Nikolai4
# 77
PIC18F252 этот я сам прошивал, а PIC18F2520 точно нету, переспрашивал у тех кто знает наверняка, так что поверь
haykaz
# 78
спасибо
ASUS
# 79
А я как вставляю в программатор то сразу стираю, надеюсь на константу в прошивке, пока все гладко)))
--------------------
против лома нет приема, разве что законы ома, лом ужасен и велик, он хороший проводник)))
haykaz
# 80
ребята я прошил PIC18F2520 все пошло успешно
Sp@mmerset64bit
# 81
Это получается нормальное дело?Тогда может я уже давно прошил свой МК…
Morfei
# 82
привет всем я не магу прошить пик в конце прошивки вылазиет окно (0000h) что делать
faett
# 83
Привет! Просьба добавить яркости, тёмный шрифт на тёмном фоне.
Если не трудно.
ASUS
# 84
Ну дак можешь писать любым шрифтом)))
--------------------
против лома нет приема, разве что законы ома, лом ужасен и велик, он хороший проводник)))
Sp@mmerset64bit
# 85
У меня так вообще от этой программы либо комп зацикливается на ошибке,когда выбираю порт или ещё при запуске в reboot уходит.В чём причина неясно.
alary
# 86
Добрый день!
Собрал программатор EXTRA-PIC, поставил ic-prog, настроил, считал прошивку с PIC 16C711 и записал тут-же на чистый Пик. Потом прошивку сохранил. Через какое-то время купил еще Пики и опять попытался записать сохраненную прошивку, а Пик пишется только до середины и дальше 0000 во всех строчках. Убил так 7 Пиков. А оригинал и запрограммированый Пик уже отдал. Пробовал программировать Пик другой серии - все ок. Почему у меня не получается - может сохранил не так? И можно ли заменить PIC 16C711 на другой с буквой F - который можно будет стирать?
Спасибо
Viktor
# 87
Собрал программатор, настроил ic-prog. Попытался для пробы прошить PIC 12F675.
Константы в нем не было первоначально, да она мне и не нужна, так как по схеме будет работать от кварца. Правильно ? При проверке правильности прошивки прога выбрасывает все пустые ячейки но не "0000". Для проверки сейчас необходимо подцепить кварц (по аналогии с AVR), как перепрошить этот МК ?
Nikolai4
# 88
1) константа должна быть! попробуйте несколько раз считать, если нету то неисправен программатор
2) перепрошивка:
-стереть
-загрузить новую прошивку
-прошить
3) пустые ячейки говорят о том, что что-то не так.....!
P.S. думаю программатор не работает или неправильно настроен
Barik
# 89
А я начал читать контроллер,а там все нули,контроллер pic12f629
новый только,что купил.Это значит стоит бит защиты?
Nikolai4
# 90
это значит, что не работает программатор или неправильно настроена программа