Программатор к 150 стирает калибровочную константу

SssaHeKkk

 
Постов: 4136=»unp»>  Offline

Друзья 

Микроконтроллеры PIC12F629 и PIC12F675 имеют внутренний генератор 4 МГц, что позволяет работать им без внешнего кварцевого резонатора или RC-цепи. Это освобождает один или два контакта для использования их в качестве ввода/вывода и позволяет устройству иметь в конструкции минимальное количество компонентов.

Внутренний генератор должен быть откалиброван, это достигается путем подбора на заводе значения калибровки и записи его в регистр OSCCAL при инициализации устройства перед запуском рабочей программы. Значение калибровки находится в последнем адресе памяти программ — 0x3FF.

Проблемы возникают если случайно значение по адресу 0x3FF стирается при программировании микроконтроллера. После калибровки значение является уникальным для каждого отдельного микроконтроллера, нет никакого способа узнать какое оно было, но можно восстановить его путем сравнивая с известной частотой.

Для этого создана эта программа и схема. Загрузите в микроконтроллер код, который находится в архиве и поместите его в устройство описанное ниже, и в течение нескольких секунд Вы получите новое значение калибровки для работы внутреннего генератора частотой 4 МГц и точностью 1%.

Как это работает

Для калибровки внутреннего генератора требуется опорная частота. К счастью, нам не нужны генераторы сигналов или другое измерительное оборудование. На самом деле точный сигнал можно получить из электрической сети переменного тока. В большинстве частей мира поставки электроэнергии производится на частоте 50 или 60 Гц (многие цифровые часы пользуются этим, чтобы сохранить точность хода). Используя практически любой трансформатор с выходным напряжением от 6 до 12 вольт переменного тока можно получить точный источник для калибровки генератора микроконтроллера.

Программатор к 150 стирает калибровочную константу
Частота внутреннего генератора микроконтроллера зависит от изменения температуры и напряжения питания. При увеличении напряжение питания частота немного уменьшается. Когда выключатель S1 разомкнут напряжение 5 Вольт подается через два диода, в итоге около 3,4 Вольт поступает на контроллер. Если S1 замкнут, то контроллер работает от 5 Вольт. Microchip калибрует партии при 3,5 Вольт и температуре 25°C. В этой схеме есть возможность калибровки при напряжении 3,4 Вольт и 5 Вольт, но желательно откалибровать контроллер с разомкнутым S1 (3,4 Вольт).

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

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

S1 не является выключателем питания

Два 1N4148 диода обеспечивают падение напряжения, резистор 150R обеспечивает стабильное напряжение на диодах. 100nF фильтрующий конденсатор должен быть размещен как можно ближе к выводам контроллера(1 и 8).

Сигнал опорной частоты подается в контроллер с использованием транзистора BC548, резистора 10K, диода 1N4148 и трансформатора. Можно использовать любой NPN транзистор, характеристики его не являются критическими. Трансформатор также можно использовать любой, но с выходным напряжением в пределах от 6 до 12 Вольт переменного тока.

Важно, подавать на вход транзистора только сигнал переменного тока. Не использовать постоянный ток, даже без фильтрующего конденсатора.

ПРИ РАБОТЕ С ВЫСОКИМ НАПРЯЖЕНИЕМ СОБЛЮДАЙТЕ ТЕХНИКУ БЕЗОПАСНОСТИ!

Код для калибровки

Далее необходимо запрограммировать микроконтроллер кодом, который находится в архиве под именем «recal1.hex». Код будет работать и с PIC12F629 и 12F675. Загрузите этот код перед началом операции калибровки.

После того как Вы успешно выполнили калибровку микроконтроллера и считали новое значение калибровки можно перепрограммировать контроллер используя свой код. Это программное обеспечение необходимо только для расчета нового значения калибровки, и не должно оставаться в памяти микроконтроллера потом. (Кто-то спросит поверьте!)

Запуск калибровки

1. Установить перемычку J1, если частота электросети в вашем районе равна 60 Гц и снять прермычку если частота 50 Гц. Убедитесь в правильности установки перемычки J1, т.к. это влияет на правильность калибровки.

J1 снята — частота питания сети 50Гц
J1 установлена — частота питания сети 60Гц

2. Сигнал переменного тока должен присутствовать перед включением питания микроконтроллера при калибровке, необходимо обеспечить стабильный сигнал должного уровня.

3. Вставьте микроконтроллер в панельку, разомкнуть переключатель S1 и тем самым подать напряжение 3.4 Вольт.

4. Когда микроконтроллер запустится светодиоды мигнут один раз.

5. Если сигнал опорной частоты не будет обнаружен на GP2 (вывод 5) загорится красный светодиод «Ошибка» и будет мигать зеленый светодиод «Завершено». (Если это произойдет, выключите питание схемы и убедитесь в правильности подключения)

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

7. Если калибровка завершилась неудачно загорится красный светодиод «Ошибка», и выполнение программы будет остановлено.

8. Если калибровка завершилась успешно загорится зеленый светодиод «Завершено» и на GPIO1 появится тестовый сигнал частотой 5 кHz. Если у вас есть частотомер, то можно проверить правильность калибровки.

9. После завершения калибровки, Вы можете включать/выключать переключатель S1 и следить за тестовым сигналом, чтобы увидеть изменения частоты сигнала по сравнению с напряжением питания.

Читайте также:  Индия чем стирают белье

10. Выключите питание схемы, удалите микроконтроллер из панельки и подключите его к программатору. Далее прочитайте данные микроконтроллера и проверьте содержимое памяти EEPROM

Когда Вы считаете EEPROM там должны быть одно из трех пар значений по адресам 0x00 и 0x01: Назначение индикаторов

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

Если в EEPROM по адресам 0x00 и 0x01 содержит 0x00, то программа не смогла установить калибровочное слово правильно (горел красный светодиод «Ошибка»). Убедитесь, что сигнал опорной частоты имеет правильное значение, J1 установлена правильно и повторите попытку.

Если в EEPROM адрес 0x00 содержит значение 0x34 и адрес 0x01 содержит 0xNN, где NN является новым значением калибровки, то программа завершилась успешно (горел зеленый светодиод «Завершено») и OSCCAL был правильно откалиброван. Используйте значение 0xNN по адресу 0x01 для калибровки памяти.

Измененная версия прошивки

Некоторые программаторы или программное обеспечение повышают сигнал VDD перед включеним VPP. Это позволяет начать работу программе до того когда микроконтроллер войдет в режим программирования предварительно считав EEPROM. Если зеленый светодиод указывает на успешное завершение калибровки, а прочитав EEPROM Вы найдете в нем 0xFF по адресам 0x00 и 0x01, то Ваш программатор работает в таком режиме.

Если у Вас возникла эта проблема, Вы можете скачать модифицированную версию оригинальной программы, которая находится в архиве под именем «recal2.hex». Эта версия не производит инициализацию EEPROM при запуске, так что данные калибровки не очищаютя, когда программатор считывает данные из микроконтроллера. Используйте эту прошивку только тогда когда возникает такая проблема.

Использование нового значения калибровки

ВАЖНО: Эта схема/программа только рассчитывает правильное значение калибровки и не может сохранить его обратно в память контроллера — Вы должны сделать это вручную с помощью программатора.

Если Вы хотите проверить калибровочную константу микроконтроллера, зная заводское значение, востановленное этой схемой значение калибровки может незначительно отличаться от заводского. Это нормально, так как есть различия в напряжении питания и температуре. Вы можете проверить значение тестового сигнала на GP1 с помощью частотомера после завершения калибровки, эта частота должна быть в пределах 1% от 5 кГц.

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

Отредактировал SssaHeKkk — Вт, 10.06.2014, 14:00

Источник

Форум РадиоКот :: Просмотр темы — K150 не записывает константу PIC

Автор:  crashtrash [ Пт ноя 16, 2012 12:32:07 ]
Заголовок сообщения: K150 не записывает константу PIC
Здравствуйте уважаемые коты!
У меня имеется простенький программатор K150 от китайских соседей. Для прошивки используется родная программа MicroBrn. Ну и соответственно им я пытаюсь прошить PIC10F202. И всё хорошо шьётся, да вот только последняя ячейка не правильно пишется.

Значит порядок действий был таков:
1. Считал свежий PIC, узнал что константа равна C12.
2. Стёр чип. Открыл прошивку, изменил в ней константу с C10 на C12.
3. Нажал прошить. Выходить ошибка калибровки. Всё прошилось, о чём меня информировала программа.
4. Проверяю последнюю ячейку с константой а в ней записано CFF, вместо C12.

Из-за этого, вся схема работает неверно и наводит на меня лютую печальку. Надеюсь на вашу помощь уважаемые коты!

P.S. Фьюзы выставлены верно, так как в записано в прошевке.
P.P.S. Вот 2 ссылки на видео с ютуба, где я в первом видео считываю чип, и узнаю константу. А во втором видео прошиваю.

https://www.youtube.com/watch?v=wZ-Os1Ekdfs
https://www.youtube.com/watch?v=5MembamqqqU

Автор:  otest [ Пт ноя 16, 2012 13:00:41 ]
Заголовок сообщения: Re: K150 не записывает константу PIC
Тогда в редакторе поменяй в дампе ячейку сохрани и этим дампом прошей.

Автор:  crashtrash [ Пт ноя 16, 2012 14:01:03 ]
Заголовок сообщения: Re: K150 не записывает константу PIC
Только что попробовал — не помогает. Также записывает CFF.
Ещё ради интереса стёр чип полностью, потом ввёл в пустую последнюю ячейку C12. Записалось как CFF. Ну соответственно, после этого попробовал записать сохранённый дамп, записалось CFF, с той лишь разницей, что отсутствовала ошибки калибровки(константа пусть и не правильно, но записалась).

Попробовал записать в предпоследнюю ячейку запись, записалось нормально. Последнюю не хочет.

Автор:  otest [ Пт ноя 16, 2012 14:18:22 ]
Заголовок сообщения: Re: K150 не записывает константу PIC
СFF -это все 1 возможно неисправная ячейка.
Загрузи програмно OSCCAL.

Автор:  crashtrash [ Пт ноя 16, 2012 14:53:08 ]
Заголовок сообщения: Re: K150 не записывает константу PIC
То что, это битая ячейка маловероятно, я пробовал уже 4 пика. Разве что, битая вся партия.
OSCCAL не могу открыть, нет такой функции

Гугл подсказывает, что не у одного меня проблема с OSCCAL при программировании 10F

Вот тут в последних 2х постах описано решение. Но я не совсем понял, как я могу применить это к себе, если у меня нет исходников. И даже если я дизассемблирую программу, применимо ли будет это решение ко моему случаю?

https://diykit.websitetoolbox.com/post/P … 150-924715

Читайте также:  Почему одеяла из овечьей шерсти нельзя стирать
Автор:  otest [ Пт ноя 16, 2012 15:06:59 ]
Заголовок сообщения: Re: K150 не записывает константу PIC
давай дамп может помогу

Автор:  crashtrash [ Пт ноя 16, 2012 19:17:26 ]
Заголовок сообщения: Re: K150 не записывает константу PIC
otest, спасибо. Я был бы очень Вам благодарен!

Автор:  otest [ Пт ноя 16, 2012 20:22:27 ]
Заголовок сообщения: Re: K150 не записывает константу PIC
Не совсем понятно какое значение нужно. В дампе стоит 10 ты пишеш 12. Я поставил 12 ,если надо другую поменяю. Программа не работает по другой причине.
ТМР0 — не включен и есть неправильные команды.

Автор:  crashtrash [ Пт ноя 16, 2012 21:18:41 ]
Заголовок сообщения: Re: K150 не записывает константу PIC
Спасибо за помощь. Да, это мой косяк, я скинул исходный файл, в котором стоит 10, а не тот, который я изменял.
В любом случае, я сейчас открыл через редактор, первый байт стал C12, а потом последовали остальные так же как и в оригинальном, ну т.е. он сместил программу. Последний байт остался С10, изменил на С12, но результат тот же CFF.

Цитата:

ТМР0 — не включен и есть неправильные команды.

В смысле, не включен таймер? Что делать в этой ситуации?

Автор:  otest [ Сб ноя 17, 2012 04:51:59 ]
Заголовок сообщения: Re: K150 не записывает константу PIC
В моём дампе забей на последний байт. OSCCAL загружается в другом месте.

Цитата:

Что делать в этой ситуации?

Пройти пошагово в любом симуляторе и убедиться в работоспособносте программы.

Автор:  DOKA [ Ср апр 22, 2015 14:10:04 ]
Заголовок сообщения: Re: K150 не записывает константу PIC
Добрый вечер помогите.!!!! решил собрать вольтметр на pic начал с программатора спаял EXTRA-pic работает нормально только вот без знаний подошел засунул туда PIC 16f628а от сторожевика считал ее а после нажал стереть а после пытаюсь прогу закачать после програмирования выдает ОШИБКА ПРОВЕРКИ ПО АДРЕСУ 0000h ЧТО НЕ ТАК Я ДЕЛАЮ

Страница 1 из 1Часовой пояс: UTC
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
https://www.phpbb.com/

Источник

Форум РадиоКот • Просмотр темы — K150 не записывает константу PIC

Сообщения без ответов | Активные темы

Часовой пояс: UTC + 3 часа

АвторСообщение

crashtrash

 Заголовок сообщения: K150 не записывает константу PIC

Добавлено: Пт ноя 16, 2012 15:32:07 

Родился

Зарегистрирован: Ср окт 10, 2012 21:27:52
Сообщений: 7

Рейтинг сообщения: 0

Здравствуйте уважаемые коты!
У меня имеется простенький программатор K150 от китайских соседей. Для прошивки используется родная программа MicroBrn. Ну и соответственно им я пытаюсь прошить PIC10F202. И всё хорошо шьётся, да вот только последняя ячейка не правильно пишется.

Значит порядок действий был таков:
1. Считал свежий PIC, узнал что константа равна C12.
2. Стёр чип. Открыл прошивку, изменил в ней константу с C10 на C12.
3. Нажал прошить. Выходить ошибка калибровки. Всё прошилось, о чём меня информировала программа.
4. Проверяю последнюю ячейку с константой а в ней записано CFF, вместо C12.

Из-за этого, вся схема работает неверно и наводит на меня лютую печальку. Надеюсь на вашу помощь уважаемые коты!

P.S. Фьюзы выставлены верно, так как в записано в прошевке.
P.P.S. Вот 2 ссылки на видео с ютуба, где я в первом видео считываю чип, и узнаю константу. А во втором видео прошиваю.

https://www.youtube.com/watch?v=wZ-Os1Ekdfs
https://www.youtube.com/watch?v=5MembamqqqU

Вернуться наверх

 Профиль

 

Реклама

otest

 Заголовок сообщения: Re: K150 не записывает константу PIC

Добавлено: Пт ноя 16, 2012 16:00:41 

Карма: 23

Рейтинг сообщений: 1028

Зарегистрирован: Ср фев 11, 2009 20:35:58
Сообщений: 6422

Рейтинг сообщения: 0

Тогда в редакторе поменяй в дампе ячейку сохрани и этим дампом прошей.

Вернуться наверх

crashtrash

 Заголовок сообщения: Re: K150 не записывает константу PIC

Добавлено: Пт ноя 16, 2012 17:01:03 

Зарегистрирован: Ср окт 10, 2012 21:27:52
Сообщений: 7

Рейтинг сообщения: 0

Только что попробовал — не помогает. Также записывает CFF.
Ещё ради интереса стёр чип полностью, потом ввёл в пустую последнюю ячейку C12. Записалось как CFF. Ну соответственно, после этого попробовал записать сохранённый дамп, записалось CFF, с той лишь разницей, что отсутствовала ошибки калибровки(константа пусть и не правильно, но записалась).

Попробовал записать в предпоследнюю ячейку запись, записалось нормально. Последнюю не хочет.

Вернуться наверх
Читайте также:  На сколько градусов можно стирать куртку

otest

 Заголовок сообщения: Re: K150 не записывает константу PIC

Добавлено: Пт ноя 16, 2012 17:18:22 

Карма: 23

Рейтинг сообщений: 1028

Зарегистрирован: Ср фев 11, 2009 20:35:58
Сообщений: 6422

Рейтинг сообщения: 0

СFF -это все 1 возможно неисправная ячейка.
Загрузи програмно OSCCAL.

Вернуться наверх
Реклама

Обзор линейки драйверов затвора компании Infineon

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

Читать статью>>

crashtrash

 Заголовок сообщения: Re: K150 не записывает константу PIC

Добавлено: Пт ноя 16, 2012 17:53:08 

Зарегистрирован: Ср окт 10, 2012 21:27:52
Сообщений: 7

Рейтинг сообщения: 0

То что, это битая ячейка маловероятно, я пробовал уже 4 пика. Разве что, битая вся партия.
OSCCAL не могу открыть, нет такой функции

Гугл подсказывает, что не у одного меня проблема с OSCCAL при программировании 10F

Вот тут в последних 2х постах описано решение. Но я не совсем понял, как я могу применить это к себе, если у меня нет исходников. И даже если я дизассемблирую программу, применимо ли будет это решение ко моему случаю?

https://diykit.websitetoolbox.com/post/P … 150-924715

Вернуться наверх
Реклама

otest

 Заголовок сообщения: Re: K150 не записывает константу PIC

Добавлено: Пт ноя 16, 2012 18:06:59 

Карма: 23

Рейтинг сообщений: 1028

Зарегистрирован: Ср фев 11, 2009 20:35:58
Сообщений: 6422

Рейтинг сообщения: 0

Вернуться наверх
Реклама

crashtrash

 Заголовок сообщения: Re: K150 не записывает константу PIC

Добавлено: Пт ноя 16, 2012 22:17:26 

Зарегистрирован: Ср окт 10, 2012 21:27:52
Сообщений: 7

Рейтинг сообщения: 0

otest, спасибо. Я был бы очень Вам благодарен!

Вернуться наверх
Реклама

otest

 Заголовок сообщения: Re: K150 не записывает константу PIC

Добавлено: Пт ноя 16, 2012 23:22:27 

Карма: 23

Рейтинг сообщений: 1028

Зарегистрирован: Ср фев 11, 2009 20:35:58
Сообщений: 6422

Рейтинг сообщения: 0

Не совсем понятно какое значение нужно. В дампе стоит 10 ты пишеш 12. Я поставил 12 ,если надо другую поменяю. Программа не работает по другой причине.
ТМР0 — не включен и есть неправильные команды.

Вернуться наверх

crashtrash

 Заголовок сообщения: Re: K150 не записывает константу PIC

Добавлено: Сб ноя 17, 2012 00:18:41 

Зарегистрирован: Ср окт 10, 2012 21:27:52
Сообщений: 7

Рейтинг сообщения: 0

Спасибо за помощь. Да, это мой косяк, я скинул исходный файл, в котором стоит 10, а не тот, который я изменял.
В любом случае, я сейчас открыл через редактор, первый байт стал C12, а потом последовали остальные так же как и в оригинальном, ну т.е. он сместил программу. Последний байт остался С10, изменил на С12, но результат тот же CFF.

Цитата:

ТМР0 — не включен и есть неправильные команды.

В смысле, не включен таймер? Что делать в этой ситуации?

Вернуться наверх

otest

 Заголовок сообщения: Re: K150 не записывает константу PIC

Добавлено: Сб ноя 17, 2012 07:51:59 

Карма: 23

Рейтинг сообщений: 1028

Зарегистрирован: Ср фев 11, 2009 20:35:58
Сообщений: 6422

Рейтинг сообщения: 0

В моём дампе забей на последний байт. OSCCAL загружается в другом месте.

Цитата:

Что делать в этой ситуации?

Пройти пошагово в любом симуляторе и убедиться в работоспособносте программы.

Вернуться наверх

DOKA

 Заголовок сообщения: Re: K150 не записывает константу PIC

Добавлено: Ср апр 22, 2015 17:10:04 

Зарегистрирован: Ср апр 22, 2015 17:02:34
Сообщений: 1

Рейтинг сообщения: 0

Добрый вечер помогите.!!!! решил собрать вольтметр на pic начал с программатора спаял EXTRA-pic работает нормально только вот без знаний подошел засунул туда PIC 16f628а от сторожевика считал ее а после нажал стереть а после пытаюсь прогу закачать после програмирования выдает ОШИБКА ПРОВЕРКИ ПО АДРЕСУ 0000h ЧТО НЕ ТАК Я ДЕЛАЮ

Вернуться наверх


Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3


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


Источник