УНИВЕРСАЛЬНЫЙ ПРОГРАММАТОР
Сейчас без микроконтроллеров не обходится ни одна серьёзная конструкция. Где-то ставят ПИК, где-то АВР. И для работы с ними нужен программатор. А чтоб не делать несколько разных — соберите один для различных типов МК. Предлагаю вашему вниманию универсальный программатор EXTRA-PIC v3.2, с возможностью программирования как PIC, так и AVR контроллеров.
С помощью EXTRA-PIC+ можно программировать следующие чипы:
- 10F серии: PIC10F206 PIC10F204 PIC10F202 PIC10F200
- 12F серии: PIC12F683 PIC12F675 PIC12F635 PIC12F635 PIC12F629 PIC12F510 PIC12F509 PIC12F508
- 16F/С серии: PIC16F627 PIC16F627A PIC16F628 PIC16F628A PIC16F630 PIC16F636 PIC16F639 PIC16F648A PIC16F676 PIC16F684 PIC16F685 PIC16F687 PIC16F688 PIC16F689 PIC16F690 PIC16F73 PIC16F74 PIC16F76 PIC16F77 PIC16F716 PIC16F737 PIC16F747 PIC16F767 PIC16F777 PIC16F83 PIC16F84 PIC16F84A PIC16F87 PIC16F88 PIC16F818 PIC16F819 PIC16F870 PIC16F871 PIC16F872 PIC16F873 PIC16F873A PIC16F874 PIC16F874A PIC16F876 PIC16F876A PIC16F877 PIC16F877A PIC16C61 PIC16C62 PIC16C62A/B PIC16C63 PIC16C63A PIC16C64 PIC16C64A PIC16C65 PIC16C65A/B PIC16C66 PIC16C67 PIC16C620/A PIC16C621/A PIC16C622/A PIC16CE623 PIC16CE624 PIC16CE625 PIC16C71 PIC16C72 PIC16C72A PIC16C73 PIC16C73A/B PIC16C74 PIC16C74A/B PIC16C76 PIC16C77 PIC16C710 PIC16C711 PIC16C712 PIC16C716 PIC16C745 PIC16C765 PIC16C773 PIC16C774 PIC16C923 PIC16C924 PIC16C925 PIC16C926
- 18F серии: PIC18F1220 PIC18F2220 PIC18F2320 PIC18F2331 PIC18F2410 PIC18F242-2439 PIC18F2420 PIC18F2431 PIC18F2455 PIC18F248 PIC18F2480 PIC18F2510 PIC18F2515 PIC18F252-2539 PIC18F2520 PIC18F2525 PIC18F2550 PIC18F258 PIC18F2580 PIC18F2585 PIC18F2610 PIC18F2620 PIC18F2680 PIC18F4220 PIC18F4320 PIC18F4331 PIC18F4410 PIC18F442-4439 PIC18F4420 PIC18F4431 PIC18F4455 PIC18F448 PIC18F4480 PIC18F4510 PIC18F4515 PIC18F452-4539 PIC18F4520 PIC18F4525 PIC18F4550 PIC18F458 PIC18F4580 PIC18F4585 PIC18F4610 PIC18F4620 PIC18F4680
- EEPROM 24C серии: 24C512 24C256 24C128 24C64 24C32 24C16 24C08 24C04 24C02 24C01
- EEPROM 93хх серии
Данный перечень программируемых микросхем постоянно расширяется, их можно без труда программировать, только перед программированием, обязательно найдите datasheet на чип и проверьте расположение выводов.
Схема универсального программатора
Теперь немного о значении джамперов и выключателя. Выключатель, как это и должно быть по логике, управляет питанием. Контактные штырьки J3 отвечают за возможность повторного программирования некоторых микроконтроллеров (так как после подачи напряжения на запрограммированный чип, он сразу же начинает выполнять свою программу, и из-за чего не поддается перепрограммированию). J3 – положение: 1-2 – режим первого программирования, 2-3 – режим повторного программирования (если первый выдает ошибки). Контактные штырьки J4 переключение между MISO и MOSI. Десятипиновый разъем предназначен для подключения адаптеров.
Источник
Простой программатор для микроконтроллеров PIC и AVR
Автор: Александр Елисеев |
E-mail: ase (at) takas.lt
(замените (at) на @)
- Файл программы (zip архив 4,6 МB)
Бесплатные программаторы, которые можно найти в интернете безнадежно отстают от разработчиков чипов и не предлагают способов быстрой модернизации для программирования новых микроконтроллеров.
В данном случае была сделана попытка разработать программную оболочку в рамках которой легко было бы наращивать возможности по программированию различных чипов хотя бы для предопределенных семейств.
Программатор характеризуется тем, что:
Рис.1. Окно програмной оболочки
Программирование PIC-ов
Рис.1. Схема программатора PIC-ов
Особой оригинальностью не отличается поскольку в основном повторяет схему из известного программатора PonyProg. Следует уделять внимание уровню сигнала на выводе CLOCK чипа, он не должен быть меньше 4 В при высоком уровне, что может случиться при неправильном подборе стабилитрона
Программирование AVR-ов
Рис.2. Схема программирования AVR-ов
Здесь показан способ как организовать программирование AT90S8535 прямо на плате с помощью RS232 и небольшого аппаратного дополнения. Микросхема DD1 служит для изоляции сигналов программирования от чипа в режиме работы. Разводка микросхемы показана в колодке c расположением контактов типа PGA44. Испытания показали, что большинство микросхем AT90S8535 и AT90S8515 можно программировать при частоте кварца 11,0592 МГц.
Структура конфигурационных файлов
Конфигурационные файлы имеют расширение chp и должны находиться в директории программы. Программа при запуске производит поиск в своей директории всех конфигурационных файлов и их объединение во внутреннем буфере. Идея таких файлов взята из программатора ComPic и немного изменена. Каждому чипу соответствует своя секция. Возможность наследования свойств не предусмотренна, так как это ухудшает прозрачность описания.
Пример структуры конфигурационного файла для PIC16F84
[Chip PIC16F84_ICP] | Секция чипа c уникальным названием чипа |
Level1=MicroChip | Название пункта меню верхнего уровня |
Level2=PIC | Название пункта меню 2-го уровня вложения |
ItemCaption=PIC16F84 | Название конечного пункта меню |
InitClass=TfrmMICROCHIP_PIC_ICP | Название класса окна-фрейма программирующего данное семейство чипов по определенному протоколу Названия классов предопределены в программе: TfrmMICROCHIP_PIC_ICP и TfrmATMEL_AVR_ICP |
Здесь идет определение программируемых областей, в пунктах Content разные параметры отделяются символом «|» | |
Area_1_Content= Code | 0..3FFh (1KW) | Название и описание области программирования |
Area_1_data=CODE, 0, $3FF, 14 | Данные связанные с областью программирования — уникальный идентификатор, начальный адрес, конечный адрес, размер слова данных в битах |
Area_2_Content=EEPROM | 0..3Fh (64B) Area_2_Data=EEPROM,0,$3F,8 Area_3_Content=Configuration word | CP, PWRTE, WDTE, FOSC Area_3_Data=CONFIG,$2007,$2007,14 Area_4_Content=ID Locations | 2000H-2003H Area_4_Data=ID,$2000,$2003,8 | и т. д. для других областей |
Здесь идет определение установок для некоторых областей программирования определенных выше | |
Param_1_Content=CP | CP | CONFIG | Определение установки с названием CP, с уникальным идентификатором CP из области CONFIG. По умолчанию установка принимает значение с номером 1 в суффиксе идентификатора |
Описание возможных значений установки | |
Param_1_Choice1=1 — Code protection OFF | Название 1-го значения установки CP |
Param_1_Choice1_icon=4 | Номер во внутреннем списке отображаемой иконы для 1-го значения |
Param_1_Choice1_data=1111111111xxxx | маска 1-го значения |
Param_1_Choice2=0 — Code protection ON Param_1_Choice2_icon=3 Param_1_Choice2_data=0000000000xxxx | Описание 2-го значения установки |
Param_2_Content=PWRTE | PWRTE | CONFIG Param_2_Choice1=1 — Power up timer disabled Param_2_Choice1_icon=2 Param_2_Choice1_data=xxxxxxxxxx1xxx Param_2_Choice2=0 — Power up timer enabled Param_2_Choice2_icon=1 Param_2_Choice2_data=xxxxxxxxxx0xxx | Описание следующей установки и ее значений |
Param_3_Content=WDTE | WDTE | CONFIG Param_3_Choice1=1 — WDT enabled Param_3_Choice1_icon=1 Param_3_Choice1_data=xxxxxxxxxxx1xx Param_3_Choice2=0 — WDT disabled Param_3_Choice2_icon=2 Param_3_Choice2_data=xxxxxxxxxxx0xx Param_4_Content=Oscilator | FOSC | CONFIG Param_5_Content=ID | ID | ID Источник Самодельный программатор для PIC-контроллеровРазвитие электроники идёт стремительными темпами, и всё чаще главным элементом того или иного устройства является микроконтроллер. Он выполняет основную работу и освобождает проектировщика от необходимости создания изощрённых схемных решений, тем самым уменьшая размер печатной платы до минимального. Как всем известно, микроконтроллером управляет программа, записанная в его внутреннюю память. И если опытный программист-электронщик не испытывает проблем с использованием микроконтроллеров в своих устройствах, то для начинающего радиолюбителя попытка записать программу в контроллер (особенно PIC) может обернуться большим разочарованием, а иногда и небольшим пиротехническим шоу в виде дымящей микросхемы. Как ни странно, но при всём величии сети Интернет в нём очень мало информации о прошивке PIC-контроллеров, а тот материал что удаётся найти — очень сомнительного качества. Конечно, можно купить заводской программатор за неадекватную цену и шить сколько душе угодно, но что делать, если человек не занимается серийным производством. Для этих целей можно собрать несложную и не дорогую в реализации самоделку, именуемую JDM-программатором по приведенной ниже схеме (рисунок №1): Как можно догадаться, в схеме моего программатора использован корпус DIP8. При большом желании можно изготовить универсальный переходник под каждый тип микросхемы, получив тем самым универсальный программатор. Но так как с PIC-контроллерами работаю редко, для меня хватит и этого. Хоть сама схема довольно проста и не вызовет трудностей в сборке, но она тоже требует уважения. Поэтому неплохо было бы сделать под неё печатную плату. После некоторых манипуляций с программой SprintLayout, текстолитом, дрелью и утюгом, на свет родилась вот такая заготовка (фото №3). Первым делом выбираем тип программатора — JDM Programmer. Далее выставляем радиокнопку использования драйвера Windows. Следующий шаг подразумевает выбор COM-порта, к которому подключен ваш программатор. Если он один, вопросов вообще нет, а если более одного — посмотрите в диспетчере устройств, какой на данным момент используется. Ползунок задержки ввода/вывода предназначен для регулирования скорости записи и чтения. Это может понадобится на быстрых компьютерах и при возникновении проблем с прошивкой — этот параметр необходимо увеличить. В моём случае он остался по умолчанию равным 10 и всё нормально отработало. На этом настройка программы IC-Prog окончена и можно переходить к процессу самой прошивки, но для начала считаем данные с микроконтроллера и посмотрим что в него записано. Для этого на панели инструментов нажимаем на значок микросхемы с зелёной стрелкой, как показано на скриншоте №11. Источник Простой USB программатор PICПредлагаемая мной схема не является чем-то оригинальным, и я не претендую на изобретение велосипеда, а всего лишь хочу поделиться своим опытом. Так что не судите строго. Однажды я решил собрать несложный LC-метр на pic16f628a и естественно его надо было чем-то прошить. Раньше у меня был компьютер с физическим com-портом, но сейчас в моём распоряжении только usb и плата pci-lpt-2com. Для начала я собрал простой JDM программатор, но как оказалось ни с платой pci-lpt-com, ни с usb-com переходником он работать не захотел (низкое напряжение сигналов RS-232). Тогда я бросился искать usb программаторы pic, но там, как оказалось всё ограничено использованием дорогих pic18f2550/4550, которых у меня естественно не было, да и жалко такие дорогие МК использовать, если на пиках я очень редко что-то делаю (предпочитаю авр-ы, их прошить проблем не составляет, они намного дешевле, да и программы писать мне кажется, на них проще). Долго копавшись на просторах интернета в одной из множества статей про программатор EXTRA-PIC и его всевозможные варианты один из авторов написал, что extrapic работает с любыми com-портами и даже переходником usb-com. В схеме данного программатора используется преобразователь логических уровней max232. Я подумал, если использовать usb адаптер, то будет очень глупо делать два раза преобразование уровней usb в usart TTL, TTL в RS232, RS232 обратно в TTL, если можно просто взять TTL сигналы порта RS232 из микросхемы usb-usart преобразователя. Так и сделал. Взял микросхему CH340G (в которой есть все 8 сигналов com-порта) и подключил её вместо max232. И вот что получилось. В моей схеме есть перемычка jp1, которой нет в экстрапике, её я поставил потому что, не знал, как себя поведёт вывод TX на ТТЛ уровне, поэтому сделал возможность его инвертировать на оставшемся свободном элементе И-НЕ и не прогадал, как оказалось, напрямую на выводе TX логическая единица, и поэтому на выводе VPP при включении присутствует 12 вольт, а при программировании ничего не будет (хотя можно инвертировать TX программно). После сборки платы пришло время испытаний. И тут настало главное разочарование. Программатор определился сразу (программой ic-prog) и заработал, но очень медленно! В принципе — ожидаемо. Тогда в настройках com порта я выставил максимальную скорость (128 килобод) начал испытания всех найденных программ для JDM. В итоге, самой быстрой оказалась PicPgm. Мой pic16f628a прошивался полностью (hex, eeprom и config) плюс верификация где-то 4-6 минут (причём чтение идёт медленнее записи). IcProg тоже работает, но медленнее. Ошибок про программировании не возникло. Также я попробовал прошить eeprom 24с08, результат тот же — всё шьёт, но очень медленно. Выводы: программатор достаточно простой, в нём нет дорогостоящих деталей (CH340 — 0.3-0.5$, к1533ла3 можно вообще найти среди радиохлама), работает на любом компьютере, ноутбуке (и даже можно использовать планшеты на windows 8/10). Минусы: он очень медленный. Также он требует внешнее питание для сигнала VPP. В итоге, как мне показалось, для нечастой прошивки пиков — это несложный для повторения и недорогой вариант для тех, у кого нет под рукой древнего компьютера с нужными портами. Вот фото готового девайса: Как поётся в песне «я его слепила из того, что было». Набор деталей самый разнообразный: и smd, и DIP. Для тех, кто рискнёт повторить схему, в качестве usb-uart конвертера подойдёт почти любой (ft232, pl2303, cp2101 и др), вместо к1533ла3 подойдёт к555, думаю даже к155 серия или зарубежный аналог 74als00, возможно даже будет работать с логическими НЕ элементами типа к1533лн1. Прилагаю свою печатную плату, но разводка там под те элементы, что были в наличии, каждый может перерисовать под себя. Источник |