При программировании не забывайте про константу(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 + описание русс + драйвер для ХР (вообще и без него работает, но могут быть нюансы…)
Настраивается программа индивидуально к каждому программатору в отдельности!
linomax, читай описание на микроконтроллер, внешний кварц должен быть предусмотрен программистом т.к. настройки делаются при написании программы, какой кварц выбирать внутренний или внешний....
А вообще то вопросы на форуме задаем, ссылка в статье
linomax
# 122
Nikolai4,Спасибо за информацию!
Hungry fox
# 123
Всем привет! Кто нибудь знает адрес в интернете, где размещён список с подробным указанием, какие микроконтроллеры имеют константу OSCCAL, а у которых её нет в наличии? А то не где немогу найти подобные списки, чтобы лишний раз не опасаться покупая новый микроконтроллер. Продавцы магазина радио-электроники то-же этого не знают..
ANTIK7
# 124
спосибо Nikolai4, очень хорошая статья . сам впервый раз програмировал контролер затер осцилятор,нашел даную статью-зделал как тут расказано но на другом новом контролере pic12f629 и при считывании микросхемы выдает 3fff даже в последней клетке.как это можно понять? програматор заводской ПОНИ ПРО 2000 програма Icprog
Nikolai4
# 125
попробуй несколько раз подряд считать и посмотреть
ANTIK7
# 126
пробывал таже петрушка, немогу понять вчем дело везде пишется что данный програматор их шет . а где еще можно посмотреть данное значение осцилятора.
vanchellos
# 127
Nikolai4, к тебе обращаюсь за помощью. Прошил контроллер pic16f676, но потом хотел перепрошить и видимо как то прошляпил константу, либо куда то делась. Я знал про нее и записал 3420 на одном контроллере и второй потерпел видимо такое же крушение 3444. Суть в том что контроллеры после этого перестали считыватся и пишет fff во всех ячейках. И я не могу записать константу обратно в контроллер. Программатор Extra Pic - работает нармально, прошивал им pic16f628 - все работает. Программы использовал pony prog 1.06 и WINPIC800, все тоже.
Nikolai4
# 128
vanchellos, сотри контроллер и считай, если ffff попробуй еще раз считать, загрузи прошивку и потом вручную впиши константу и прошивай . если после считывания все ffff то может бит защиты стоит, после можешь попробовать проверить в схеме контроллер да же после ffff
vanchellos
# 129
Nikolai4,
щас попробую и отпишусь
Nikolai4, В общем рассказываю: эти все бокопорства производились на работе, там стоит комп очень старенький, и он то видит то не видит контроллер, то читает - то не читает, и там все напоролось с прошивкой этих констант. Сгреб все домой на выходные и все пошло как по маслу, все прошилось с первого раза подставляя ихние константы. Так что это все виноват комп. Спасибо Nikolai4, за помощь
virus-error
# 130
помогите , 16F676 , забыл вписать константу прошивал выбил ошибка , после не определялся микрокантролер просто не видел , использовал WinPic и IC Prog . програматор завадской, помогите востоновить микрокантролер
помогите , 16F676 , забыл вписать константу прошивал выбил ошибка , после не определялся микрокантролер просто не видел , использовал WinPic и IC Prog . програматор завадской, помогите востоновить микрокантролер
есть идея поцепить кварц на 2 и 3 вывод с кандерами мне кажется оживет
вот нашол статью http://radio-hobby.org/modules/news/article.php?storyid=934
и если ево применять в програматоре например в EXTRAPIC где проблематично прошивать 16F676
Nikolai4
# 131
virus-error, если он будет использоваться в схемах где стоит внешний кварц то константа не нужна
virus-error
# 132
в схеме не будет кварца , это просто попытка воскресить микрокантролер
NIK-4444
# 133
Та же картина с 16F873 при стирании 0-ли, есть ли константа. Программатор G-540.
Alexey_st
# 134
У 16F676 константа 3414
sergeu25
# 135
после чтения выдает ошибку не найденно значение установки осцылляторе
выдает ошибку ненайденно значение установки осцыллятора
Nikolai4
# 136
1) опробуй еще раз считать, повторно т.е. два раза подряд
2) попробуй другую программу
3) …раз потерял то читай статью
kov0404
# 137
Подскажите ,пожалуйста, есть программатор PONYProg2000 . смогу ли я им прошить PIC16F74 или не стоит и пробовать?
sergeu876
# 138
cкажите Я новичёк прошиваю 12f629 програмой IC-Prog выдоет сообщение
1 вы хотите загрузить по байтно что нужно отвечать
2 не найденно значение установки осцыллятора вы настаиваете на использование установки файла 3490
3 ошибка програмирования по адресу 0000
да кстати после прошивки когда контроллер сую в устройство неработает и напряжение резко падает от 5 до 1 новерное я сполил уже 3 пощету
програматор у меня EXTPA-PI C02
qwert615
# 139
Подскажите пожалуйста, из каких соображений выбирается параметр в окошке осциллятора? Я понимаю, что он отвечает за тактовый генератор, и как то зашивается в программу при ее написании. Но когда я хочу повторить какое то устройство и беру готовую программу, как мне узнать, что именно выбрать из раскрывающегося списка? Пробовал с разными параметрами - устройство не запускается, если этот параметр выбран не правильно.
Nikolai4
# 140
qwert615, ничего выбирать не надо, просто открываешь прошивку и прошиваешь.
qwert615
# 141
Nikolai4,
Большое спасибо за совет. Буду пробовать.
Правда хотел бы уточнить. Это как то зависит от программы? В недавнем прошлом я делал генератор импульсов на pic16f628a, прошивал с помощью icprog105 - это был мой самый первый опыт работы с микроконтроллерами. Так он не заработал, когда я оставил там тот параметр, который стоял по умолчанию. И лишь после того, как разработчик мне посоветовал указать там HS устройство начало работать.
Вот я теперь и думаю, как бы снова на грабли не наступить.
Еще раз спасибо!!!
Nikolai4
# 142
qwert615, все настройки делает программист когда пишет программу, значит он не все сделал.
qwert615
# 143
Nikolai4,
Теперь ясно. Еще раз спасибо!
Уже делаю плату для таймера. Скоро будет торжественный запуск.
denis-80
# 144
pic 12f629 341C
vital357
# 145
программатор EXTRA PIC программа для программирования PICPgm Programmer пик опознаётся автоматом, никакую константу не стирает и пишет всё за первый раз если конечно рабочая паршивка и пик (12f629,16f628a,16f676,16f690,16f876a,18f2520) есть небольшая доработка екстра пика для прошивки авров и атмег. всякие вин пики 800 айсипроги (все версии )полная бредятина кто хоть раз попробует данный программер поверит и убедится в моих словах (все биты конфигурации для пик написаны в прошивке)
PIC12F629 константа 3440.Ребята прошиваю PIC12F629 с битом CPD ,у меня вылазит ошибка по адресу 0000H, а как только убираю галочку и прошиваю без CPD то все ОК.Вопрос обязательно ли нужен ,этот бит защиты при программировании?
wanya00
# 148
pic16f676 думаю что утеряна константа помогите восстановить, sliijb739@gmail.com для связи
также winpic пишет вот так:
Инициализация PIC программатора: Успешно.
Тестирование: задержка(500ms) заняла 0.50 секунд, timer_freq=1600.0200 МГц … ok
Чтение 0x000000 - 0x0003FF …
Чтение 0x002100 - 0x00217F …
Чтение 0x002000 - 0x002007 …
Слово калибровки генератора выглядит плохо (0x00FFFF) !
Чтение PIC не удалось (или он пустой).
а ic prog выдает ошибку чтения 0000h при прошивке
balbes
# 149
Купил 4шт PIC16F676. Все считал не в одной небыло константы.Считывал MiniPro Programmer
tsg0158
# 150
Помогите! Есть прошитая PIC16F877A-I/P,нужно сделать копию.
Как это лучше сделать? Мой mail: tsg0158@mail.ru