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

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

Далее будет…

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



   
Barik # 91
 
 
Программатор PoniProg я проверял как указано в инструкции к нему.
Т.е.при подаче на транзисторы напряжения,они открываются и все напряжения присутствуют на панельке контроллера.
А вот насчет настройки,не знаю,я просто запускал IcProg и ,что там выставлять понятия не имею.Просветите с настройкой программы.


   
Barik # 92
 
 
Все работает,просто в компе были отключены порты.


   
vexa # 93
 
 
А кто подскажет как программировать pic в линукс ??? Какие проги юзать? Ни ICProg ни PonyProg не работают (запускал в Wine) Неужели придётся ставить винду cool


   
Nikolai4 # 94
 
 
не видел программ для linux. Ставь вторую винду XP, при запуске компа будешь выбирать какую винду запустить.


   
vasilijj # 95
 
 
Купил новый PIC 16F73, при считывании программой WinPic800, были все нули. Проверил программатор на других микросхемах, все работает. Попробовал записать прошивку прибора, с странички https://bezkz.su/publ....-0-216, на MK PIC 16F73, всё записалось. Вопрос, есть ли константа в этом МК, теперь её точно нет, и будет ли работать прибор без константы. Заранее спасибо.


   
Nikolai4 # 96
 
 
PIC 16F73 константы нету, переходим обсуждать на форум, ссылка в статье


   
Ильдар # 97
 
 
PIC12F629 - 3430


   
sasha19722201 # 98
 
 
Здравствуйте!
Купил планарную PIC16F676 и при считывании Тритоном последний байт вообще пуст это нормально?


   
Nikolai4 # 99
 
 
sasha19722201, должна быть константа попробуй несколько раз подряд считать


   
sasha19722201 # 100
 
 
Nikolai4,Пробовал несколько раз и даже на двух пиках - последний байт вообще пуст!


   
Nikolai4 # 101
 
 
значит два варианта:
1) либо проверить на другом программаторе
2) либо использовать в схемах с внешним кварцем

можно попробовать восстановить....


   
dmi680 # 102
 
 
как снять код защиты с PIC12C508A, пробежался по форуму посмотрел советы, не помогает.


   
yevhen # 103
 
 
Доброго дня!
Попал в руки программатор PicKit 2
Пытаюсь немного разобратся в программировании на ASM с помощю MPLAB IDE
Запрограммировал PIC12F629 простой программкой:

LIST P=12F629 ; list directive to define processor
#INCLUDE <P12F629.INC> ; processor specific variable definitions

__config _WDT_OFF & _XT_OSC & _CP_ON & _CPD_OFF & _BODEN_OFF & _MCLRE_OFF & _PWRTE_ON

org 000
Start:
bsf STATUS,RP0 ; select Register Page 1
bcf GPIO,0 ; make IO Pin C0 an output
bcf STATUS,RP0 ; back to Register Page 0
bsf GPIO,0 ; turn on LED C0 (DS1)
goto $ ; wait here
end

Пока контроллер в программаторе все работает (правда не всегда подозревю что где-то плохои контакт).
Ставлю его в макетницу ничего не работает :(

Может кто подскажет что не так?
Зарание спасибо!


   
Nikolai4 # 104
 
 
yevhen, такие вопросы только на ФОРУМЕ!!!


   
virus-error # 105
 
 
нужна константа на 16F84A


   
Nikolai4 # 106
 
 
virus-error, ее там нет.


   
virus-error # 107
 
 
да спасибо я уже разобрался , я вот у вас читал что если читает 0000 то она закрыта можно как то всетаки прошить можно


   
Nikolai4 # 108
 
 
virus-error, он прошивает, но считать не может, еще такие нули выводит когда неправильно работает программатор…


   
virus-error # 109
 
 
WinPic800 выдает 3FFF . програматор пакупной в камплекте ишол WinPic800 он у меня не прошивал у друга прошил , думал винда у меня кривая переустановил такая же шляпа, пробывал на других кампах не хера , програматор от USB
WinPic800 когда шьет на 93% останавливается и спустя время выдает ошибку , микросхему определяет проходит тест
ЧТО ДЕЛОТЬ


   
styxbbc # 110
 
 
всем доброго дня!

помогите разобраться в чем проблема. собрал программатор PonyProg, проверил железо все нормально. Пытаюсь прошить 16F628A. С родной прогой выдается ошибка -24 устройство необноруженно. В IC-prog 1.6B, скачена по ссылке в статье, выдает ошибку:
Ошибка проверки данных по адресу 0000h!
CPD и CP галочки убранны.

настройки программы сделал согласно инструкции прилагаемой к архиву. Единственное не совсем понятно примечание относительно соединения PGM c GMD


   
Nikolai4 # 111
 
 
решение проблем на форуме! не работает программатор


   
Hungry fox # 112
 
 
no recourse Не могу прочитать константу у недавно купленных микроконтроллеров Pic16F877A-I/P.. Одни нули (0000) в обоих окнах после чтения! Не знаю даже что делать.. Может быть на заводе поставили защиту от чтения, но зачем?

no Привет всем! Скажите пожалуйста: а Pic16F877A-I/P имеет вообще эту константу которую нужно записать на листочек или нет?

wassat Программатор PX-200 OEM-PIC kit2 Programmer/
Программатор исправен. Способен писать и читать. Это я знаю из того, что загружаю программу и читаю её с одного микроконтроллера который был прошит мною в ущерб затирания константы. Программы можно писать, читать, стирать. Только не работает интервал времени таймера (светодиод моргнёт и выключается до нового включения комплекса, или по другой программе может включится и постоянно гореть, а команду Pause и GOTO выполнять уже не способен..). Но как быть с ещё не затёртыми мною новыми микроконтроллерами, на которых вместо 3FFF одни 0000? Константу-то в конце новых не видно, такие-же нули, что и в начале..

winked С нитерпением жду совета. За раннее спасибо!


   
Nikolai4 # 113
 
 
Hungry fox, константы нет, но все равно должно быть все 3FFF а не 0000, скорее всего программатор не работает или не настроен или неправильно подключен к микроконтроллеру.


   
Hungry fox # 114
 
 
no wassat Всем доброго дня. Программатор PX-200 OEM-PIC kit2 Programmer.
Если он не исправен, как-же с него удаётся читать другие микроконтроллеры той-же серии и Pic16F874A? А ведь он пишет, читает, стирает. Да и как-же подругому подключить программатор к микроконтроллеру, если там стандартный провод? А если там стоит бит защиты на чтение кода программы и данных Eeprom. Данные ведь тоже можно защитить как-то? Может быть в магазине мне подсунули не новые микроконтроллеры? Ведь не удаётся прочитать данные именно с этих, новых микроконтроллеров! Но я не могу до сих пор поверить в то что при покупке в магазине радиоэлектронники, можно купить что-то не надлежащего качества. Может всё-таки как-то удасться перименить нули на 3FFF без перепрошивки. Или мне нужно поменять их в магазине. Гарантия на них 2-недели, а до истечении срока осталось 1-неделя.

no Программатор PX-200 OEM-PIC kit2 Programmer
А как-же на нём удается читать информацию с других микроконтроллеров той-же серии и Pic16F874A? Может быть мне в магазине продали просто не новые микроконтроллеры? У меня гарантия на них осталась неделя. Может-быть мне их поменять на другие? Вообще, могут-ли быть такие казусы с микроконтроллерами купленными в официальном магазине электронных компонентов?


   
Nikolai4 # 115
 
 
Ну , давайте рассуждать логично - если программатор рабочий, подключен микроконтроллер правильно, программа настроена правильно, то остается проблема только в микроконтроллере! Попробуйте записать на него , что-то и считать, что получится.


   
Hungry fox # 116
 
 
angry Можно записать, можно считать.. Программа записывается, программа читается.., программа стирается и вновь записывается.. Но константу на нём не найти! Микроконтроллер инвалид.. Он не способен выполнять не одну программу. Он читается, пишется, стирается, но не работает! Боюсь теперь покупать микроконтроллеры, их отказываются проверять при продаже.. Вообще, нужно производителям писать константу на каком-нибудь сопроводительном товар (микроконтроллер) листе! Жаль что они не хотят облегчить жизнь тем, кто интересуется их товаром..


   
Nikolai4 # 117
 
 
Hungry fox, так ты статью читал, первое - константы в твоем мк нету, и не во всех контроллерах она есть, второе - даже если запорол константу собираешь схемы с внешним кварцем или пробуешь восстановить константу


   
linomax # 118
 
 
Подскажите,кто-нибудь,пожалуйста константу на PIC16F676,хоть приблизительно!Какие могут быть?


   
Nikolai4 # 119
 
 
linomax, поставь 3434


   
linomax # 120
 
 
Nikolai4,
Спасибо за подсказку.Если не трудно,объясни,где ставится внешний кварц на PIC16F676?Или может какую-нибудь ссылочку подскажешь?Буду очень благодарен!


Обновления

Сообщения ФорумаОтветов
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