При программировании не забывайте про константу(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 + описание русс + драйвер для ХР (вообще и без него работает, но могут быть нюансы…)

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

Далее будет…

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



   
uniko # 61
 
 
PIC 12F629 константа 3420


   
zaa-1978 # 62
 
 
в етом програматоре что записивал попробуй просто стереть! biggrin


   
Nikolai4 # 63
 
 
PIC12F629 - это контроллер с флеш памятью буква "F", так что стерайте смело и все будет ок! Попробуйте сразу перепрошить новой прошивкой.


   
uniko # 64
 
 
когда стираешь пишет, что все стерто, проверяешь одни нули, пробовал записать пишет "ошибка проверки по адресу 0000h". Контроллер в помойку cry ?


   
Nikolai4 # 65
 
 
программатор рабочий? ранее прошивал им?
а когда пробывал записать то галочки сняты СР и CPD?


   
zaa-1978 # 66
 
 
ищи причину не в контроллере а в програматоре! попробуй стиреть два рза подряд! а записать пробуй другую прошывку ну с какого небудь пульта тут их много!


   
uniko # 67
 
 
программатор точно рабочий собран вот по этой схеме http://radiokot.ru/circuit/digital/pcmod/13/01.gif , 16F628 только, что прошивал, а PIC12F629 на прошлой неделе. Когда записывал не помню точно вроде были сняты галочки, уже сомневаюсь. Нашел еще такой же пик только с попорченной константой, только у него как помню после пятой записи без константы, пик тоже напрочь отказался стираться и перезаписываться. cry


   
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 есть констант или нет, мне очень нужно помогите cry cry а если есть то кто знает какой констант потому что, я стирал до прошивание а сейчас не занаю ,что делать cry cry


   
Nikolai4 # 75
 
 
нету


   
haykaz # 76
 
 
извени за глупый вопрос а как ты знаеш что,в PIC18F2520 константа нет


   
Nikolai4 # 77
 
 
PIC18F252 этот я сам прошивал, а PIC18F2520 точно нету, переспрашивал у тех кто знает наверняка, так что поверь


   
haykaz # 78
 
 
спасибо hello


   
ASUS # 79
 
 
А я как вставляю в программатор то сразу стираю, надеюсь на константу в прошивке, пока все гладко)))
barbarian
--------------------
против лома нет приема, разве что законы ома, лом ужасен и велик, он хороший проводник)))


   
haykaz # 80
 
 
ребята я прошил PIC18F2520 все пошло успешно good


   
Sp@mmerset64bit # 81
 
 
Это получается нормальное дело?Тогда может я уже давно прошил свой МК…


   
Morfei # 82
 
 
привет всем я не магу прошить пик в конце прошивки вылазиет окно (0000h) что делать


   
faett # 83
 
 
Привет! Просьба добавить яркости, тёмный шрифт на тёмном фоне.
Если не трудно.


   
ASUS # 84
 
 
Ну дак можешь писать любым шрифтом)))
--------------------
против лома нет приема, разве что законы ома, лом ужасен и велик, он хороший проводник)))


   
Sp@mmerset64bit # 85
 
 
У меня так вообще от этой программы либо комп зацикливается на ошибке,когда выбираю порт или ещё при запуске в reboot уходит.В чём причина неясно. cool


   
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
 
 
это значит, что не работает программатор или неправильно настроена программа


Обновления

Сообщения ФорумаОтветов
3D Модели для Авто0
Бакометр 2335
Touch Start-Stop Engine.587
Кодграберр17
Исправляем AVR фьюзы при помощ …109
Бакометр - измеритель остатка…4
IR конструктор на PIC12F62977
Универсальное зарядное устройство103
бaкoмeтр1974
Двунаправленный автомобильный…2
Программатор GENIUS G8401
Светодиодный тахометр34
Индикаторы ГРИ ИН1 - ИН141
Multiprog1
Управляющая программа LED CUB959
Универсальное зарядное устройство9
Изготовлю печатные платы29
Простой автоматический выключа…25