Как прошить контроллер pci 12f675
Перейти к содержимому

Как прошить контроллер pci 12f675

  • автор:

Как прошить контроллер 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.

radiohlam.ru

anre25 Читатель
ЧитательСообщения: 5 Зарегистрирован: 20 янв 2015, 22:29

pic12f675 как изменить прошивку

Сообщение anre25 » 26 апр 2016, 11:31

rhf-admin администратор, спонсор, писатель, дизайнер, инженер, программист, идеолог
администратор, спонсор, писатель, дизайнер, инженер, программист, идеологСообщения: 3048 Зарегистрирован: 25 авг 2009, 23:19 Откуда: Уфа Контактная информация:

Re: pic12f675 как изменить прошивку

Сообщение rhf-admin » 26 апр 2016, 13:09

anre25 Читатель
ЧитательСообщения: 5 Зарегистрирован: 20 янв 2015, 22:29

Re: pic12f675 как изменить прошивку

Сообщение anre25 » 27 апр 2016, 12:54

rhf-admin администратор, спонсор, писатель, дизайнер, инженер, программист, идеолог
администратор, спонсор, писатель, дизайнер, инженер, программист, идеологСообщения: 3048 Зарегистрирован: 25 авг 2009, 23:19 Откуда: Уфа Контактная информация:

Re: pic12f675 как изменить прошивку

Сообщение rhf-admin » 27 апр 2016, 21:28

Тут придётся дизассемблировать, раз исходников нет.
Самый простой метод дизассемблировать код для PIC-контроллеров — это использовать MPLAB.
Создаём новый проект, выбираем в настройках нужную модель контроллера, делаем импорт hex-файла (File->Import->Import to memory) и открываем загруженный в память код (Window->Program memory)
Чтобы всё получилось — название проекта должно совпадать с названием hex-файла.

Восстановление калибровочной константы PIC12f629 и PIC12f675

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

Однако для каждого экземпляра микроконтроллера требуется калибровка этого генератора. Производитель в процессе изготовления проводит данную калибровку, и значение полученной константы помещает в последнюю ячейку памяти по адресу 0х3FF.

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

Восстановление калибровочной константы PIC12f629 и PIC12f675

Собрав ниже приведенную схему и установив в панельку исследуемый микроконтроллер PIC12f629 или PIC12f675 можно с точностью до 1% определить КК.

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

Частота внутреннего генератора в микроконтроллере PIC12F629 и PIC12F675 может незначительно меняется от изменения температуры и напряжения питания. По мере увеличения напряжения питания, частота его немного уменьшается. Когда переключатель SB1 не замкнут, напряжение питания 5 вольт, пройдя через два диода, которые создают падение напряжения около 1,6 вольта, поступает на вывод питания ПИКа (3,4 вольт). С замкнутыми контактами SB1, микроконтроллер работает от 5 вольт. С помощью данной схемы появляется возможность для калибровки либо на 3,4 вольт, либо на 5 вольт питания.

  • SB1 разомкнут — калибровка происходит при 3,4 вольта.
  • SB1 замкнут — калибровка происходит при 5 вольт.

Два диода создают падение напряжения, а резистор R1 создает достаточный ток для стабильности напряжения на диодах.

Опорный сигнал подается с вторичной обмотки трансформатора (от 6 до 12 вольт) через диод VD3, резистор R4 и транзистор VT1. Транзистор любой типа NPN.

Внимание. Переменное напряжение на транзистор следует подавать только через трансформатор. Ни в коем случае не напрямую от электросети!

Как прошить контроллер pci 12f675

Как прошить микроконтроллер PIC?

Если вы уже собрали USB программатор PIC своими руками, то пора научиться им пользоваться. Для этого нам необходимо установить программную оболочку "PICkit 2 Programmer", которая разрабатывалась специально для управления программатором PICkit2.

Для работы программы требуется «.NET Framework». Если этот пакет не установлен на компьютере, то его нужно установить. Также можно воспользоваться дистрибутивом "PICkit 2 Programmer" с интегрированным пакетом – PicKit 2 V2.61 Install with .NET Framework. Скачать его можно здесь.

Итак, если программа установлена, приступим к изучению её возможностей.

Устанавливаем микроконтроллер в панель программации, подключаем программатор к компьютеру и запускаем "PICkit 2 Programmer".

Программирование микроконтроллера PIC16F628A

При запуске программа производит опрос программатора и автоматически определяет тип программируемого микроконтроллера по идентификационным битам (так называемому device ID). Внимание! Микросхемы семейства Baseline, а также микросхемы EEPROM и KeeLOG не имеют device ID. Чтобы программа смогла работать с этими микросхемами, нужно выбрать конкретное изделие через меню "Device Family".

Программатор найден и подключен

Если вместо такой дружелюбной картинки покажется вот такая.

Программатор не подключен!

. то нужно проверить корректно ли подключен usb-кабель, и через меню "Tools" – "Check Communication" произвести переподключение устройства.

Открытие файла с прошивкой.

Чтобы записать программу МК в его память, необходимо выбрать в меню пункт "File" — "Import Hex".

Пункт "File" - "Import Hex"

Затем выбрать в открывшемся окне нужный файл прошивки.

Выбор .hex файла прошивки

После этого в окне памяти программ (Program Memory) и данных (EEPROM Data) отобразится содержимое .hex файла.

Окна памяти программ и данных

Запись программы в МК.

Теперь можно программировать МК. Для этого жмём кнопку "Write". Процесс записи занимает 3 — 5 секунд.

Запись программы в микроконтроллер

Об успешном выполнении процедуры записи уведомит надпись "Programming Successful".

Программирование завершено успешно!

Для большей уверенности можно провести процедуру проверки. При нажатии на кнопку "Verify" программа сравнивает данные hex-файла и данные, записанные в МК. Если верификация прошла успешно, то в окне сообщений появится надпись "Verification Successful".

Внимание! Если вы прошиваете микроконтроллеры PIC12F675, PIC12F629 и аналогичные с внутренним тактовым генератором, то при верификации может выскакивать ошибка. Дело в том, что PICkit2 Programmer (версии 6.21) сохраняет калибровочную константу, а затем записывает её в последнюю ячейку памяти МК. Понятно, что исходный файл прошивки и записанные данные в памяти будут отличаться. О калибровочной константе будет рассказано далее.

Быстрые кнопки.

Кнопка "Auto Import Hex + Write Device" понравиться тем, кто хочет "загонять прошивку" в МК нажатием одной кнопки. Один щелчок и программа предложит выбрать файл прошивки, а затем незамедлительно запишет её в МК.

Кнопка Auto Import Hex + Write Device

Кнопка "Read Device + Export Hex File" выполняет обратную функцию — производит считывание данных с МК и предлагает сохранить файл прошивки в .hex файл.

Кнопка Read Device + Export Hex File

Изменение битов конфигурации.

Биты конфигурации задают основные параметры работы МК. Это и тип генератора (кварц, RC-цепь), включение/отключение так называемого "сторожевого таймера", установка защиты от считывания памяти программ и некоторые другие. Как правило, при написании алгоритма работы МК (программы) прописываются значения, которые нужно записать в биты конфигурации. При "прошивке" программная оболочка берёт данные о конфигурации из самого файла прошивки и принудительно указывать эти данные не требуется.

Но, нам, как начинающим не будет лишним знать, как можно просмотреть или изменить конкретные биты конфигурации. Для этого щёлкаем по надписи "Configuration". Откроется окно редактирования битов конфигурации.

Окно редактирования битов конфигурации

Если нужно поменять 0 на 1, то меняем – жмём "Save". Естественно, менять надо осознанно. Повторяю, при использовании готового файла прошивки менять ничего не надо, программа сделает всё автоматически.

Выбор модели микроконтроллера.

Микроконтроллеры бывают разные. Поэтому при программировании МК бывает необходимость указать конкретную модель микроконтроллера. При выборе пункта меню "Device Family" выпадает список семейств микроконтроллеров. Есть среди этого списка и микросхемы памяти EEPROM.

Выбор типа микроконтроллера

В отличие от микроконтроллеров, микросхемы памяти EEPROM не определяются автоматически по команде "Tools" – "Check Communication". Поэтому при считывании/записи микросхем EEPROM в программе необходимо указать маркировку микросхемы.

В меню выбираем пункт "Device Family" – "EEPROMS" – "24LC".

Далее выбираем конкретную марку микросхемы в выпадающем списке "-Select Part-". Как видим, у нас микросхема 24LC08B (аналоги 24C08, 24WC08L и др.).

Выбираем тип микросхемы EEPROM

Чтобы считать данные с микросхемы EEPROM жмём "Read". Если в памяти записаны данные, то в окне "Program Memory" значения обновятся.

Считывание данных с микросхемы EEPROM

Кнопки "Write" (считать), "Erase" (стереть) выполняют соответствующие функции.

Калибровочная константа.

Как известно, для работы микроконтроллера требуется тактовый генератор. Элементом, который задаёт частоту работы этого генератора, может быть внешний кварцевый резонатор, RC — цепь. Но среди микроконтроллеров PIC есть такие, которые содержат необходимые задающие цепи внутри самой микросхемы. К таким МК относятся, например PIC12F629, PIC12F675.

На заводе в память таких микроконтроллеров записывается специальная константа, которая задаёт параметры встроенного генератора на 4 МГц. Эта калибровочная константа вида 34хх записывается в последнюю ячейку памяти программ по адресу 0x3FF.

При программировании микроконтроллера эту константу легко стереть. И хоть PICkit2 Programmer версии 2.61 автоматически сохраняет эту константу и затем записывает её при программации, не лишним будет записать значение константы OSCCAL.

Значение калибровочной константы микроконтроллера

При необходимости константу легко указать вручную. Для этого в меню выбираем пункт "Tools" – "OSCCAL" – "Set Manually".

Ручная установка константы OSCCAL

В поле "OSCCAL value" указываем ранее записанное значение константы. Жмём кнопку "Set" (установить).

Теперь, когда вы знакомы с основными возможностями PICkit2 Programmer, можно смело начать сборку какого-нибудь устройства на микроконтроллере, например, RGB-светильника на PIC12F629/675.

Как прошить контроллер 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.

КАК ПРОШИТЬ PIC КОНТРОЛЛЕР

В данной статье мы разберемся, как же прошить pic-контроллер, на примере металлоискателя Малыш FM. Для достижения данной цели нам потребуется:

1) Компьютер, в котором есть COM порт (ноутбуки не подходят).

3) Прошивающий софт.

Начнем разбираться по порядку.

Поиск схемы программатора провел по буржуйским сайтам. В итоге нашёл вот эту схему, развел под нее плату. Схема программатора:

Для более качественного просмотра схемы кликните на изображение. Единственный элемент управления в данной схеме – это переключатель S1, которым включается режим высоковольтного программирования. Хочу заметить то, что в данной схеме программатора общий провод схемы ни в коем случае нельзя объединять с 5 выводом (GND) COM порта. У меня получилась вот такая штуковина.

Печатная плата прошивки pic-контроллеров

При подключении программатора к COM порту через удлиняющий кабель, длина последнего не должна превышать 0,5 метра. Прошивающего софта в Интернете навалом, но решил использовать IC-Prog – бесплатная программа. Последняя версия 1.06С от 05.04.2011. На официальном сайте можно скачать и драйвера IC-Prog NT/2000 (не думаю, что кто-то ещё пользуется 98-ми форточками или миллениумом). Если уж хочется поковыряться в данной софтине, то там же можно качнуть русский help. Итак, скачали, разархивировали все в одну папку. Запускаем экзешник, и лезем в настройки программатора Настройки>>Программатор. У меня они выглядят следующим образом.

Далее выполняем настройку самой программы Настройки>>Опции, где важны следующие закладки.

прошивка pic-контроллера 2

константа pic-контроллера 1

прошивка pic-контроллера 3

Когда все будет настроено, приступаем к самому процессу прошивки.

Прошивка pic-контроллера

У контроллера PIC12F629 на заводе записана калибровочная константа внутреннего тактового генератора. Ее желательно сохранить, а то вдруг припрет использовать микросхему в другом девайсе, в котором нет кварца. Для этого в IC-Prog выбираем тип контроллера и нажимаем кнопку «Читать микросхему». Константу ищем здесь.

мк1

Теперь выбираем файл прошивки Файл>>Открыть файл. В итоге все будет выглядеть вот так.

мк-2

Небольшое отступление по поводу конфигурации (правая часть окна). Значение конфигурационных битов прописано в даташите на данный контроллер в разделе 9.1, русский перевод качать отсюда www.microchip.ru. Галочки напротив битов конфигурации в IC-Prog означают установку бита в 0. Не трогайте состояние бита MCLR если это не предусмотрено прошивкой! Все значения конфигурации прописываются при написании прошивки. Итак, продолжим. Загрузили прошивку, теперь нажимаем кнопку «Программировать микросхему» и пойдет процесс прошивки. На такой вопрос отвечать «Нет», иначе затрется калибровочная константа.

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

Осталось дождаться вот такой надписи.

прошивка pic-контроллера 6

А у кого нет COM порта, то можно прикупить такую штуковину или просто собрать ее самому.

программирование контроллера

Объяснил как сумел – думаю всем всё понятно. Если появились вопросы – пишите на форум. Рисунок печатной платы программатора и схему в формате SPL7 качаем здесь. Автор: skateman.

radiohlam.ru

anre25 Читатель
ЧитательСообщения: 5 Зарегистрирован: 20 янв 2015, 22:29

pic12f675 как изменить прошивку

Сообщение anre25 » 26 апр 2016, 11:31

rhf-admin администратор, спонсор, писатель, дизайнер, инженер, программист, идеолог
администратор, спонсор, писатель, дизайнер, инженер, программист, идеологСообщения: 3045 Зарегистрирован: 25 авг 2009, 23:19 Откуда: Уфа Контактная информация:

Re: pic12f675 как изменить прошивку

Сообщение rhf-admin » 26 апр 2016, 13:09

anre25 Читатель
ЧитательСообщения: 5 Зарегистрирован: 20 янв 2015, 22:29

Re: pic12f675 как изменить прошивку

Сообщение anre25 » 27 апр 2016, 12:54

rhf-admin администратор, спонсор, писатель, дизайнер, инженер, программист, идеолог
администратор, спонсор, писатель, дизайнер, инженер, программист, идеологСообщения: 3045 Зарегистрирован: 25 авг 2009, 23:19 Откуда: Уфа Контактная информация:

Re: pic12f675 как изменить прошивку

Сообщение rhf-admin » 27 апр 2016, 21:28

Тут придётся дизассемблировать, раз исходников нет.
Самый простой метод дизассемблировать код для PIC-контроллеров — это использовать MPLAB.
Создаём новый проект, выбираем в настройках нужную модель контроллера, делаем импорт hex-файла (File->Import->Import to memory) и открываем загруженный в память код (Window->Program memory)
Чтобы всё получилось — название проекта должно совпадать с названием hex-файла.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *