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

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

Далее будет…

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



   
Ustes # 151
 
 
Цитата: balbes
Купил 4шт PIC16F676. Все считал не в одной небыло константы.Считывал MiniPro Programmer

MiniPro Programmer - не показывает константы. Надо считать PicKit-ом или Extra-Pic или на подобие.


   
mnjak # 152
 
 
Цитата: Андрей Змиевской
слушай а почему сом9? ведь он только до сом4 токо опредиляет.
да и провод лудше покороче. или используй удлинитель.


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


На подчеркнутые слова нужно обращать внимание.

Цитата: vanchellos
Nikolai4,
щас попробую и отпишусь

Nikolai4, В общем рассказываю: эти все бокопорства производились на работе, там стоит комп очень старенький, и он то видит то не видит контроллер, то читает - то не читает, и там все напоролось с прошивкой этих констант. Сгреб все домой на выходные и все пошло как по маслу, все прошилось с первого раза подставляя ихние константы. Так что это все виноват комп. Спасибо Nikolai4, за помощь


Нет такого слова ИХНИЕ, есть слово ИХ.


   
Акма # 153
 
 
Всем привет, выручите советом.
Прочел всю ветку но ответ на мой вопрос не нашел.
Программа IC-PROG 1.06В, М\К 16F628A. Программатор универсальный и для PIC и AVR переключается фишками.
С AVR проблем нет а вот PIC задолбал.
Делаю все как описано в статье, а получается вот что! М\К читается, выскакивает 3FFF как и должно быть.
Перед тем как прошивать я прочитал М\К и сохранил HEX.
Открываю нужный мне HEX, включаю запись но он не прошивается, через пару тройку секунд программа выдает ошибку "Ошибка программирования Кода по адресу 0000h!"
Открываю сохраненный hex. включаю запись и вот чудо!!! запись пошла, проверка тоже на ура. Открываю опять нужный мне hex включаю запись нихрена не идет ОПЯТЬ ОШИБКА!!
Думаю может файл не подходит, беру другой hex от другой приспособы но под этот же М\К, начинаю прошивать и этот не шьется, беру опять сохраненный мною оригинальный hex. шьется!с проверкой на ура.
Зашиту, все фьюзы, проверял по нескольку раз, чтоб не напороть боков.
Другого М\К нет чтоб провести эксперимент
Вот от сюда возник вопрос что это может быть


   
Nikolai4 # 154
 
 
Цитата: Акма
Всем привет, выручите советом.
Прочел всю ветку но ответ на мой вопрос не нашел.
Программа IC-PROG 1.06В, М\К 16F628A. Программатор универсальный и для PIC и AVR переключается фишками.
С AVR проблем нет а вот PIC задолбал.
Делаю все как описано в статье, а получается вот что! М\К читается, выскакивает 3FFF как и должно быть.
Перед тем как прошивать я прочитал М\К и сохранил HEX.
Открываю нужный мне HEX, включаю запись но он не прошивается, через пару тройку секунд программа выдает ошибку "Ошибка программирования Кода по адресу 0000h!"
Открываю сохраненный hex. включаю запись и вот чудо!!! запись пошла, проверка тоже на ура. Открываю опять нужный мне hex включаю запись нихрена не идет ОПЯТЬ ОШИБКА!!
Думаю может файл не подходит, беру другой hex от другой приспособы но под этот же М\К, начинаю прошивать и этот не шьется, беру опять сохраненный мною оригинальный hex. шьется!с проверкой на ура.
Зашиту, все фьюзы, проверял по нескольку раз, чтоб не напороть боков.
Другого М\К нет чтоб провести эксперимент
Вот от сюда возник вопрос что это может быть

Проверить напряжение программирования, около 13В и настройки программы, другую программу или другую версию испрог. Далее желательно 32 разрядную винду, на 64 глюки. В идеале Хр


   
Акма # 155
 
 
Проверить напряжение программирования, около 13В и настройки программы, другую программу или другую версию испрог. Далее желательно 32 разрядную винду, на 64 глюки. В идеале Хр
Была мысль что напряжение не совпадает.
По схеме должна КР142ЕН8В, когда собирал программатор влепил 7812, после того как столкнулся с непонятками,решил поменять КРЕНку сегодня днем поменял на 7815 результат тот же.
Есть еще одно но, по схеме стоит стабилитрон VD5 д814д по даташиту у него 10-14вольт стабилизации, я поставил импортный 13вольтовый анлог и еще вместо кт315 и кт361 я поставил кт3102 и кт3107 соответственно, но мне кажется это не из за этого.
У меня на компе две системы 7х64 для форса, и ХPх32 для программ которые не работают на семерке. Все прграммы КодеВизион, Понька, uniprof,IC-PROG. WinPic800_V3_64H, не хотят в семерке работать с моим программатором. Попробывал в ХР, работает только ПОНЬКА, (вообще безотказная) и IC-PROG которая работает с непонятками. Ну и есть еще ДУДКА, она на очереди, на завтра, уже поздно, все спят а я по батонам долблю.
Выкладываю схему моего программатора для PIC. Когда коснулось настроек, заметил что автор немного описался, пишет что в точке соединения VT2 и R8 (ОТМЕЧЕНО КРАСНЫМ) должно меняться напряжение от 0 до 5 а в реальности все наоборот от 5 до 0, по другому там быть не может, но вот такие описки загоняют в непонятки.
Посмотрите на схемку, может увидите ошибки в ней.
Фото: http://i75.fastpic.ru/big/2016/0326/24/4d62e6cd5a431a30fd946c5b3aacf024.png
Сайт: http://proteus-download.narod.ru/pony.html


   
Nikolai4 # 156
 
 
Проверь на самой панельке микросхемы, что при нажатии на кнопку программировать приходит 13В (если ничего не нажимать то ОВ )

в точке VT2 и R8 когда транзистор открывается приходит "0"


   
Акма # 157
 
 
Промерял напряжения в точке vt2 и r8 4.07вольта, когда включаю на прошивку падает 3.42вольта!! хотя должна падать в ноль, мне кажется вот здесь какая то беда.
ваше мнение, и из за чего это может происходить, резистор или транзистор сдох?


   
Акма # 158
 
 
Цитата: Акма
Промерял напряжения в точке vt2 и r8 4.07вольта, когда включаю на прошивку падает 3.42вольта!! хотя должна падать в ноль, мне кажется вот здесь какая то беда.
ваше мнение, и из за чего это может происходить, резистор или транзистор сдох?

После эксперементов оказалось все целым!!
А то что падает напряжение с 4.07 до 3.42, думаю что напряжение всетаки падает в 0 и поднимается до 4.07 но с большой частотой в итоге получается усредненное напряжение 3.42.
Решил прикупить еще какой нибудь pic, для экспериментов. Какой посоветуете я имею в виду чтоб был распространенным, ну чтоб не валялся без дела, а куда нибудь можно было воткнуть.


   
Акма # 159
 
 
Но не целое!!! после долгого ковыряния решил проверить блок питания, оказалось один диодик в мостике был на утечке (совсем немного)а с виду все работает напряжения в норме, ни каких предпосылок что блок питания дохлый и после его замены все ожило и зашевилилось.


   
redder07 # 160
 
 
Здравствуйте уважаемые гуру. Помогите разобраться с прошивкой контроллера pic16F690. Пробую шить программой PICPgm + NTV программатор Носова. Ранее пользовался Icprog но он не поддерживает 690.Прошивка и верификация проходят успешно, однако дамп считанный с контроллера и открытый с помощью блокнота отличается от исходной прошивки. Что делаю не так?


   
alex2019 # 161
 
 
Простите что может не в тему , но , контроллеры старшей серии не имеют константу Это касается pic16f628 сегодня его купил и считал содержимое Нет в нем никакой константы Да и она то по сути и не нужна если в схемах применении контроллера есть внешний кварц. Я прошивал программаторам тритон плюс. В начале статьи сказано что в пик контроллерах старшей серии нет константы


Обновления

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