pic12F629 и pic12F675, для работы этих микроконтроллеров от внутреннего генератора завод изготовитель задает внутреннюю калибровочную константу (OSSCAL) это необходимо для большей точности внутреннего генератора. Если ее удалить то микроконтроллер либо не будет работать либо будет но некорректно. Можно использовать pic с упятеренными константами в схемах где используется внешний кварц или другой генератор. Но теперь можно и восстановить эту константу!

 

Многие часы поддерживают точное время благодаря частоте сети 50 или 60Гц. Для восстановления pic мы будем использовать этот простой генератор частоты - сеть, что упрощает конструкцию и не требует создания отдельного генератора.

Схема:

Очень важно не выпрямлять напряжение после трансформатора! Напряжение вторичное 6-12В. Плата должна быть собрана в точности как на схеме.

Конденсатор 100n должен быть размещен как можно ближе к микроконтроллеру!

S1 разомкнут - калибровка происходит на 3,4 вольта 
S1 замкнут - калибровка происходит на 5 Вольт

Частота внутреннего генератора в ПИК зависит от изменения температуры и напряжения питания. Когда переключатель S1 разомкнут 5 вольт питания подается на ПИК, напряжение падает через два диода примерно 3,4 Вольта получается. S1 замкнут - ПИК работает на 5 вольт.

Перед началом работы необходимо зашить в 12F629 или 12F675 (будет работать и стем и тем).

Эта прошивка  требуется только для вычисления нового значения калибровки.

Скачать прошивку

Скачать печатку в LEY от shpuntic

 

Выполнение калибровки:

 

1) Замкнуть J1, если частота вашей сети 60 Гц и оставьте ее разомкнутой, если она 50Hz.  
 
2) Опорный сигнал переменного тока должен присутствовать перед включением pic при калибровке для обеспечения стабильного сигнала и работы. 

3) Вставьте
pic в панельку (предварительно он должен быть зашит прошивкой см.выше), разомкнуть ключ S1 . 


4) Когда
pic начинает работать светодиоды будут мигать одновременно. 


5) Если ни один опорный сигнал (50 или 60Гц) не обнаружен на ноге GP2 (пин 5), светодиод будет мигать . (Если это произойдет, выключите питание
pic и перепроверьте правильность монтажа и т.д.) 


6) В процессе калибровки светодиоды не горят. Калибровки происходит менее чем за 5 секунд.

 
7) Если калибровка не удалось, красный светодиод загорится. 


8) Если калибровка успешна зеленый загорится, и 5 кГц тестового сигнала будут созданы на GPIO1. Если у вас есть частотомер вы можете использовать это для проверки калибровки. 


9) После калибровки, вы можете размыкать и замыкать переключатель S1 в ходе мониторинга сигнала 5 кГц тест, чтобы увидеть изменения частоты против напряжения питания. 


10) Выключите, удалить ПИК из панельки, и считать с него данные с помощью вашего программатора. 


11) Когда вы считаете EEPROM оно будет содержать один из трех пар значений адреса 0x00 и 0x01 следующим образом:


EEPROM адреса 0x00 и 0x01 содержать 0xFF 
код не смог нормально работать. 

EEPROM адреса 0x00 и 0x01 0x00 содержат 
код не был запущен, не удалось установить калибровку . Убедитесь, что J1 установлена правильно и повторите попытку. 

Адрес 0x00 0x34 EEPROM содержит 0x01 и адрес, где содержатся 0xNN НН "новое значение калибровки.
код с успехом завершен и калибровка OSCCAL прошла правильно. Используйте 0xNN значение в адрес 0x01 для калибровки памяти.



1 - оба светодиода будут мигать, питание есть

2 - зеленый мигает, красный горит, не найдено опорное напряжение (50-60Гц)

3 - светодиоды не горят, идет процесс калибровки, менее 5 сек

4- калибровка прошла правильно

5 - калибровка не прошла



В случае возникновения следующей проблемы необходимо пользоваться модифицированной прошивкой: при прохождении успешной калибровки, загорается зеленый светодиод но при считывании информации с микроконтроллера, с адреса 0x00 и 0x01 содержать 0xFF.

Модифицированный вариант прошивки, скачать


Если калибровка выполнена успешно, вытянуть из панельки pic и поместить его обратно в программатор. Считываются данные из EEPROM памяти (а не программной памяти), где только что вычисленное значение было сохранено. (См. пример ниже)


Прошиваем pic со значение константы, записываем ее как положено в последнюю ячейку:


Фото от пользователя rastamanoff :


Обсуждения на форуме



Источник

   
Dimm # 31
 
 
Прошиваю 629-е с помощью JDM Ultra с доработкой японца. Шьётся без проблем.
В контроллере в последней ячейке обязательно должна быть константа. Поэтому перед любыми манипуляциями с контроллером обязательно следует его прочитать и нацарапать на корпусе значение последней ячейки.
Если в новом контроллере в последней ячейке значения 3FFF или 0000 не стоит его прошивать пока не получите уверенного считывания константы.

Статья нужная.



   
Gipsy # 32
 
 
По поводу константы в PIC - не заморачивайтесь с ней так, как будто она пуп контроллера. Все будет работать даже если вы ее сотрете при первом же програмировании. Единственно для чего нужна - это часы и частотомеры. Да и то, чтоб все было хорошо ПРОГРАМА должна прочитать даную константу из памяти. Сам контроллер НЕ ЧИТАЕТ ее, он по включению выставляет регистр OSCCAL в среднее значение (старший бит=1, остальные=0), и если не сделать програмно приблизительно так

BSF STATUS, RP0
CALL 3FFh
MOVWF OSCCAL
BCF STATUS, RP0

то контроллер так и будет работать на этой "средней" частоте.
И еще - если у вас в схеме стоит кварц - то вам тем более должно быть поф. на ОСЦКАЛ.

А по поводу програмирования рекомендую собрать PICKIT2 и забыть про проблемы прошивки через СОМ и ЛПТ. Подключается через ЮСБ, имеет функции логического пробника, не сложный и недорогой. Даный програматор кстати умеет восстанавливать константу калибровки самостоятельно, тоже методом измерения частоты.



   
al19 # 33
 
 
дай ссылку на схему PICKIT2


   
Gipsy # 34
 
 
https://bezkz.su/publ/pickit_2/9-1-0-281


   
zaa-1978 # 35
 
 
может!


   
Saol # 36
 
 
Собрал схемку генератора на PIC12F629, контроллер до этого прошивался. Стёр. Прошил контроллер новой прошивкой, а не работает. Прописал константу как написал al19 - 3480 и о чудо всё прекрасно заработало.


   
Volodya215 # 37
 
 
Если я правильно понял схему то нужно к этому девайсу ещё генератор внешнего сигнала на 5KHz воять или я ошибаюсь.

В догонку:
Я ошибся, не внимательно взгянул на схему (это выход А НЕ ВХОД)


   
Nikolai4 # 38
 
 
Volodya215, правильно понял, так можно проверить, что
все собрано и прошито правильно


   
Volodya215 # 39
 
 
Правильно то правильно, но аднака ета штуковина работать не хосет. Печатку брал отсюда вроде всё проверил и монтаж и испровномть элементов, Мк прошил безпроблем. но аднака все равно не хосет работать. В статье сказано что ету схему нужно воять один в один а не печтке (ну которая отсюда ) токоограничивующие резюки стоят не от GND а от МК до сетодиодов. Не ужели иза такой херни не запускется, как я думаю это уж совсем не принципиально это ведь просто индикащия процесса. Вобщем нихрена понять не могу . Посоветуте уж чего-нибудь лодно. Плииз!!!?????


   
Nikolai4 # 40
 
 
Volodya215,
светодиоды хоть как то горят?


   
Volodya215 # 41
 
 
Горит зелённый. Но это ровным счётом ничего не значит, так-как 629 пробит накоротко ( Между VDD(1) и VSS(8) всего 3 Omа). Когда успел коротануть хрен знает, (надо порядок на столе навести) так что проверка работоспособности сего девайся пока временно отменяется. Всем большое СПАСИБО!!!!


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


   
куко # 43
 
 
Может мне кто то помочь и подсказать в чем причина.При реанимации PIC12F675 схемой приведенной выше и применением обоих прошивок-светодиоды парно мигают.При проверке (считывании) константы -она не обнаруживается.Контроллер в топку?


   
PredatorFT # 44
 
 
Всем здрасьте. Хочу выразить благодарность, всем участникам форума за эту статью. Мне лично она очень помогла. Если все выполнено правильно, то генератор работает. Для меня проблема заключалась в том что в схеме указанно заземление там куда должно быть подано +5в, нашел ответ на этом форуме. СПАСИБО ВСЕМ ГРОМАДНОЕ. )))


   
Margon # 45
 
 
Большое спасибо за статью! Всё получилось!


   
Элвин # 46
 
 
Спасибо за статью, восстановил затёртую константу с полпинка. решил поэксперементировать с новой м/с с известной константой 344С. пикушку затёр, зашил прогу. При замкнутых диодах питание на 629 пикушке +4,64В, частоту на выходе выдало 5047гц и считалась константа 3453! Опять затёр зашил м/с. разомкнул диоды - питание на м/с +3,33В. выдало частоту 5003Гц и константу 344С. кстати питание от транса через диод плюс кондёр 1000мкФ (пульсация до 200мВ на питании м/с) и от блока питания (пульсация 5мВ) не влияет на результат.


   
Дев9тыЙ # 47
 
 
а на PIC16F676 прошивку можете сделать?


   
LAZER # 48
 
 
Автору зачет и уважуха! Правда у меня не получилось восстановить… Всё работает как в описании, а константу (OSSCAL) не вернуло))). Лечил PIC12F629 программатор PICkit2. Решил проблему при помощи мусорки))))


   
LAZER # 49
 
 
Хотя не, я достал его из мусорки… Проблема решается так: поскольку я использую программатор PICkit2, сделал я следующее : в утилите Tools выбираем OSCCAL жмём Auto Regenerate и всё срослось))))


   
tsb # 50
 
 
Дев9тыЙ,
а на PIC16F676 прошивку можете сделать?

PIC16F630/676 являются почти полными аналогами PIC12F629/675 только с бОльшим количеством ножек. Но есть и отличия: регистр ANSEL расположен по другому адресу. Вот этот адрес в прошивке и надо исправить. Остальное вроде бы должно совпадать. Даже ножки (питание и порт А). Так что его можно вставлять в ту же панельку, что и 12F629 (со стороны ключа).
Хотел приложить скорректированную прошивку, но что-то не вижу как это сделать…


   
vir8181 # 51
 
 
НЕ РАБОТАЕТ

Не РАБОТАЕТ


   
Nikolai4 # 52
 
 
vir8181, очень содержательный комментарий


   
vir8181 # 53
 
 
Не один светодиод не горит


   
Nikolai4 # 54
 
 
vir8181, pic прошил ? питание проверь


   
vir8181 # 55
 
 
Стоит трансформатор как на схеме переменка
но на ноге PIC-a нету постоянного напряжения вывод 1 -vcc 8 -gnd
PIC прошил
я просто случайно затер константу хотя программатор K150 он ее не затирает но если нажать когда выскакивает окно то то стерта
Ставил 3180 среднее значение не работает,собираю устройство защиты от перенапряжения на pic12f675 там нету кварца


   
Nikolai4 # 56
 
 
Цитата: vir8181
но на ноге PIC-a нету постоянного напряжения вывод 1 -vcc 8 -gnd

ты сам ответил на свой вопрос. Должно быть напряжение 5В примерно


   
master777 # 57
 
 
Проверил схему. работает.



   
Ingvar # 58
 
 
Доброе утро, коллеги! С наступающим! Схемка работает супер! При калибровке на 5 вольтах последняя цифра не определяется, на 3 вольтах - все ОК. Транс использовал от дежурки УПИМЦТ, программатор самодельный EKSTRAPic.

Доброе утро! С наступающим! Схемка работает супер! При калибровке на 5 вольтах последняя цифра не читается, на 3 вольтах - все ОК. Транс от дежурки УПИМЦТ, программатор EKSTRAPic.

master777,
Доброе утро! С наступающим! Схемка работает супер! При калибровке на 5 вольтах последняя цифра не читается, на 3 вольтах - все ОК. Транс от дежурки УПИМЦТ, программатор EKSTRAPic.


   
Ingvar # 59
 
 
Ребята, извините бестолкового, первый раз пишу… Трудно быть бестолковым, но я не боюсь трудностей…


   
dim # 60
 
 
Цитата: Ingvar
Ребята, извините бестолкового, первый раз пишу… Трудно быть бестолковым, но я не боюсь трудностей…

ребят так ведь не прошивается эта прошивка -опять требует код -как вы зашивали технологический нех


Обновления

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