Как прошить контроллер pci 12f675
Выводы VPP(4), VCC(1), PGD(7), PGC(6) называются так как раз таки в TL866, названий PGD и PGC нет даже в официальном даташите!
А теперь рассмотрим другие названия выводов 12F675
4. VPP, он же MCLR. Таких названий у RT809H нет. Возможно CMD.
1. VCC, он же VDD, питание +5V. Такой вывод у RT809H есть.
7. PGD, он же DATA. Таких названий у RT809H нет. Возможно D0.
6. PGC, он же CLOCK. Такой вывод у RT809H есть.
8. GND. Такой вывод у RT809H есть.
Итого по первому же запросу в гугл у 12F675 обнаружилось альтернативное название выводов, из которых теперь только 2 из 5 не соответствуют названию RT809H.
Как прошить контроллер pci 12f675
cохранение калибровочной константы для контроллеров PIC 12F629 и 12F675
Примечание: Программатор Microchip PICKit2 с версией программного обеспечения V2.61 вычислит и повторно занесет в память стертую константу OSCCAL за одну операцию. Поэтому настоятельно рекомендуется использовать программатор PICkit, благодаря которому вам больше не придется беспокоиться о случайно стертой константе OSCCAL.
Контроллеры PIC 12F629 и 12F675 имеют заводскую установочную калибровочную константу, которая записана в последнюю ячейку памяти программ во время процесса изготовления. При программировании контроллера программное обеспечение должно считать данную константу, сохранить вместе с данными основной программы, которые записаны в PIC контроллере, и затем повторно перезаписать в свою ячейку.
Поскольку данная калибровочная константа находится в обычной области памяти программ PIC контроллера, то ее можно легко затереть. Если вы случайно стерли эту константу, тогда будет нелегко определить, какая константа была на самом деле. Без этой константы внутренний тактовый генератор на 4МГц не будет правильно работать на заданной частоте. Хуже всего, что код прикладной программы, которому нужна данная калибровочная константа, в большинстве случаев будет приводить к общему сбою выполнения программы.
Поэтому важно знать правильное значение данной константы для калибровочных настроек тактового генератора. Ниже указана процедура сохранения правильной калибровочной константы тактового генератора, благодаря которой вы сможете восстановить и повторно записать случайно стертую константу.
Возьмите новую микросхему контроллера PIC 12F629 или 12F675, вставьте в программатор и СЧИТАЙТЕ данные памяти программ.
Найдите последнюю ячейку памяти программ по адресу 0x3FF.
djsanya123, ну схему возьму самую простую
семисегментник подключенный через анод к мк пик 16ф877
код тоже не сложный
x var byte
numb var byte
init:
trisb = %00000000
portb = %00000000
loop:
for x = 9 to 0 step -1
gosub convert
portb = numb
pause 1000
next
ligh:
high 0
pause 1000
low 0
goto loop
convert:
lookup x, [здесь данные о подключение портов чтоб высвечивалась цифра ], numb
return
end
язык бэйсик как уже поняли и вот какая проблема после выполнение цикла программы она соответственно начинает выполнять ее заново ну как видно из программы но не выполняет ее а в данном случае высвечивает все 8 сегментов с мерцанием причем заметно что мерцании начинают учащаться . то ли с кодом то ли со схемой то ли уже мк навернулся . но раньше такого не было . Я сам учу программирование по мере возможного и частенько перепрошивал эти мк может из за многочисленных прошивок они так себя начали вести . djsanya123, спасибо что откликнулись !
Восстановление калибровочной константы микроконтроллеров PIC12F629/675
Микроконтроллеры PIC12F629 и PIC12F675 имеют внутренний генератор 4 МГц, что позволяет работать им без внешнего кварцевого резонатора или RC-цепи. Это освобождает один или два контакта для использования их в качестве ввода/вывода и позволяет устройству иметь в конструкции минимальное количество компонентов.
Внутренний генератор должен быть откалиброван, это достигается путем подбора на заводе значения калибровки и записи его в регистр OSCCAL при инициализации устройства перед запуском рабочей программы. Значение калибровки находится в последнем адресе памяти программ — 0x3FF.
Проблемы возникают если случайно значение по адресу 0x3FF стирается при программировании микроконтроллера. После калибровки значение является уникальным для каждого отдельного микроконтроллера, нет никакого способа узнать какое оно было, но можно восстановить его путем сравнивая с известной частотой.
Для этого создана эта программа и схема. Загрузите в микроконтроллер код, который находится в архиве и поместите его в устройство описанное ниже, и в течение нескольких секунд Вы получите новое значение калибровки для работы внутреннего генератора частотой 4 МГц и точностью 1%.
Как это работает
Для калибровки внутреннего генератора требуется опорная частота. К счастью, нам не нужны генераторы сигналов или другое измерительное оборудование. На самом деле точный сигнал можно получить из электрической сети переменного тока. В большинстве частей мира поставки электроэнергии производится на частоте 50 или 60 Гц (многие цифровые часы пользуются этим, чтобы сохранить точность хода). Используя практически любой трансформатор с выходным напряжением от 6 до 12 вольт переменного тока можно получить точный источник для калибровки генератора микроконтроллера.
Частота внутреннего генератора микроконтроллера зависит от изменения температуры и напряжения питания. При увеличении напряжение питания частота немного уменьшается. Когда выключатель 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 и тем самым подать напряжение 5 Вольт.
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 контроллера (это не память программ), где только что вычисленное значение было сохранено. (См. пример ниже)
Адрес 0x00 будет содержать значение 0x34, а адрес 0x01 будет содержать значение калибровки. Именно это значение должно быть записано памяти программ по адресу 0x3FF. Некоторые программаторы позволяют считывать значение калибровки и потом записывать его обратно в контроллер. Если программатор не делает этого, то нужно прописать вручную значение 0xNN по адресу 0x3FF, где «NN» является шестнадцатеричное значение калибровки считанное из EEPROM.