Программатор romtool своими руками

Обновлено: 05.07.2024

Развитие человечества сопровождалось совершенствованием механизмов и техники. Устройства становились сложнее, управление ими также стало труднее. Для того чтобы не повторять одни и те же действия человеку потребовались запоминающие устройства. От них требовалась не только возможность хранения данных, но и возможность воспроизведения их.

Одним из первых устройств со встроенной памятью считается Антикитерский механизм (3 век до н.э.). Но большинству нам оно известно, как кулачковый валик. Он применяется в шарманках, музыкальных шкатулках, часах с боем и иных механизмах.

Время чтения: 18 минут

Программатор

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

Они получили широкое распространение в ремонтных работах, в разработке, конструировании схем и устройств на базе таких чипов памяти как: PROM, EPROM, EEPROM, Flash-память, eMMC, MRAM, FeRAM, NVRAM.

Появление устройств программируемой логики, таких как: PLD, PLA, PAL, GAL, CPLD, FPGA также потребовало разработки специализированных программаторов.

Рост производительности, уменьшение техпроцесса и цены сделали МК более доступными для рядовых потребителей. Поэтому потребовалось появление недорогих, конструктивно простых программаторов.

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

Программатор CH341A

Программаторы делят по следующим признакам:

  • По типу микросхем;
  • По способу подключения к компьютеру
  • Интерфейсу передачи данных
  • Наличию дополнительных функций.

По типу программируемых микросхем

В первую очередь это напрямую влияет как на возможности устройства, так на его цену.

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

  • Чтения/прошивки чипов энергонезависимой памяти;
  • Работы с ПЛИС;
  • Программирования МК одной или нескольких серий;
  • Работы со специализированными чипами.

Давайте подробнее рассмотрим их классификацию.

Работа программатора с чипами памяти

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

Наиболее популярными объектами, для прошивки которых приобретается прибор, являются микросхемы EPROM/EEPROM серий 24, 25 и 93, а также FLASH 25 серии. Это с вязано с тем, что чипы этих серий широко применяются в компьютерной технике, электронике для хранения BIOS (basic input/output system).

EEPROM

EEPROM (Electrically Erasable Programmable Read-Only Memory) — электрически стираемое перепрограммируемое постоянное запоминающее устройство (ПЗУ). Этот вид энергонезависимой памяти способен выдержать миллион циклов записи/стирания.

FLASH

FLASH – разновидность полупроводниковой технологии электрически перепрограммируемой памяти (EEPROM). Свое наименование (FLASH) получила из-за высокой скорости стирания записанной информации. Выделяют двумерную память – NOR с трехмерным массивом ячеек NAND, 3D NAND. Максимальное число циклов перезаписи памяти NAND не превышает 100 тысяч.

Программаторы EEPROM

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

Так как у большинства любителей требования не велики, то чаще они приобретают несколько приборов направленных на работу с конкретными устройствами. Универсальные, специализированные программаторы востребованы в мастерских и сервисных центрах по ремонту техники, электроники.

Работа программатора с ПЛИС

  • PAL (programmable array logic) — программируемый массив логики;
  • GAL (generic array logic) — универсальный логический массив;
  • CPLD (complex programmable logic device) — сложное программируемое логическое устройство.

Программаторы FPGA

ПЛИС обладает большим потенциалом, в первую очередь это возможность конструирования на его базе практически любой логической схемы или МК.

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

Популярными ПЛИС являются компании Intel (Altera) и Xilinx. Однако, в настоящее время число производителей, выпускающих FPGA значительно растет, что ведет к снижению цены, доступности этих устройств.

Работа программатора с MCU

Микроконтроллер или MCU (Micro Controller Unit) — это микросхема, способная управлять другими электронными устройствами. Её особенность — это не только процессор, но встроенная: оперативная и постоянная память (ОЗУ, ПЗУ), устройство ввода-вывода, таймер, иные периферийные устройства.

В настоящее время МК выпускаются многими производителями. Различные MCU различаются не только архитектурой, но рабочей частотой, объемом памяти, типом протокола обмена данных, шириной интерфейса ввода-вывода.

Можно выделить следующие, наиболее популярные, семейства микропроцессоров: ESP8266, ESP32, ARM, STM32, AVR, PIC, STM8.

Для микроконтроллеров выпускаются как в специализированном исполнении – для конкретного семейства МК, так в универсальном – для нескольких семейств.

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

По способу подключения к компьютеру

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

  • Параллельный порт;
  • Последовательный порт;
  • Интерфейсная плата, подключаемая через шину PCI;
  • USB порт;
  • Ethernet.

Параллельный порт

Параллельный порт предназначен для подключения к компьютеру различных периферийных устройств. Больше он известен как LPT. Интерфейс появился в 70-х годах в разных формах и числах контактов. К 80-м годам стандартизировался в двух вариантах: 36-контактный Centronics (IEEE 1284-B), 25-контактный DB-25 (IEEE 1284-A). Centronics чаще использовался на стороне оборудования, но постепенно от него отказались и оставили разъем DB-25 male/female.

Порт использует 8 сигнальных проводов для передачи данных, что позволяет передавать 8 сигналов параллельно друг другу, за это он получил свое название. Максимальная скорость передачи данных LPT достигает 16-20 Мбит/с.

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

На базе параллельного порта существует много схем самодельных программаторов различной сложности, которые можно использовать по сей день для прошивки некоторых E/EPROM, ряда MCU.

Последовательный порт

В настоящее время COM-порт чаще используется для обмена данными с устаревшими устройствами, а также в сочетании с преобразователями RS-232/RS-485 для создания промышленных сетей, используемых в промышленной автоматизации.

Программаторы с параллельным и последовательным портом

Программаторы с а) параллельным б) и последовательным портом

USB порт

Хорошо известный всем интерфейс обмена данными USB (Universal Serial Bus) появился в 1995 году. Как и СОМ-порт относится к последовательному интерфейсу передачи данных. Интерфейс использует всего четыре провода: два для питания устройства, два для передачи данных. За счёт высокой скорости передачи данных (от 1,5 Мбит/с для USB 1.0 до 20 Гбит/с для USB 3.2), простоты конструкции, малых размеров, он быстро вытеснил другие интерфейсы.

Интерфейс USB 3.2 имеет четыре пары дифференциальной сигнализации, используемых для высоких скоростей передачи данных: две пары для данных TX, две пары для данных RX. Они обеспечивают полнодуплексную связь на полной скорости. Также есть два новых сигнала SBU с одной боковой полосой для вспомогательной связи, а также линии конфигурации CC, которые могут использоваться для определения режимов работы, уровня мощности и скорости подключенного оборудования.

На данный момент USB-интерфейс активно развивается, большинство устройств используют именно его для обмена данными. А все современные программаторы используют именно его для обмена данными с компьютером. Однако некоторые могу сочетать USB-интерфейс с LPT или COM-портом.

LAN и WLAN соединение

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

Также преимуществом таких сетей являются: высокая скорость передачи данных до 10 Гбит/с (LAN соединение).

Интерфейсная плата

Интерфейсные платы или платы расширения применяются при отсутствии необходимых портов или нехватке существующих. Они подключаются к материнской плате компьютера через шину PCI или PCI-E. Плата расширения позволяет добавить не только устаревшие разъемы LPT или COM, но создать LAN или WLAN соединение..

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

Интерфейсные платы портов

Интерфейсные платы портов а) LPT, б) СОМ, в) LAN, г) Wi-Fi.

По способу подключения микросхем

Способ подключения важен при выборе. Это связано с тем, что не все чипы поддерживают программирование при том или ином способе подключения.

  • Параллельное программирование;
  • Последовательное или внутрисхемное программирование.

Параллельное программирование

Параллельное программирование было достаточно популярным методом прошивки микросхем. Его особенность заключается в высокой скорости передачи данных, однако для его реализации требуется 8 линий для передачи данных, примерно столько же служебных. Поэтому физически такой способ программирования можно осуществить только через параллельный порт LPT или его эмуляцию. При этом программируемая микросхема должна иметь соответствующее число ножек.

Параллельное программирование сохранилось в промышленности для массового производства, прошивки большого числа чипов памяти, микроконтроллеров и для перепрошивки неверно сконфигурированных MSU.

Последовательное или внутрисхемное программирование

  • Появление FLASH-памяти;
  • Миниатюризацией чипов;
  • Повышение скорости интерфейса.

Появление флэш-памяти позволило быстро стирать данные. Уменьшение технологического процесса потребовало уменьшения размеров чипа, снижения числа рабочих контактов. Все это в сочетании с увеличением скорости передачи сигналов нивелировало недостатки данного способа программирования.

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

В микропроцессорах, за интерпретацию последовательного интерфейса также отвечают внутренние блоки логики. Они определяют способ загрузки напрямую или через внутренний загрузчик – bootloader (не у всех MCU реализовано).

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

Виды разъемов для подключения микросхем к программатору

Тип применяемого разъема напрямую зависит от протокола передачи данных, от типа, модели EEPROM/MCU.

Разъем ZIF (Zero Insertion Force) наиболее часто встречается. Он предназначен для прошивки микрочипов в корпусе DIP. В бюджетных версиях чаще встречаются 16 контактные ZIF-разъемы. В более дорогих моделях устанавливают 40 контактные.

ZIF разъем в программаторах

ZIF разъем в программаторах

JTAG (Joint Test Action Group) применяют для внутрисхемного программирования. Разъем можно встретить в различных исполнениях, но чаще это 10 и 20-пиновые разъемы.

JTAG разъем в программаторах

JTAG разъем в программаторах

SWD – штыревой разъем. Он часто встречается в бюджетных программаторах, представлен 4 или 5 штырями, однако его можно встретить в 20-пиновом исполнении.

Специализированные разъемы

Такие разъемы применяются для подключения конкретных устройств. Можно выделить такие, как:

VGA, HDMI – для внутрисхемного программирования аудио, видео приборов;

Контактные площадки – для параллельного программирования чипов в корпусах SOP, BGA;

Адаптеры – для параллельного программирования чипов в корпусах SOP, PLCC, TSOP и других;

Прищепки – для подключения к чипам без их выпаивания с платы;

Специализированные кабели - для присоединения специализированных устройств (LED матрицы, экраны).

По дополнительным функциям

  • Наличие программного обеспечения (ПО) под различные операционные системы;
  • Поддержка стороннего ПО;
  • Возможность самостоятельного обновления прошивки;
  • Проверка исправности;
  • Проверка правильности подключения микросхемы;
  • Возможность подключения адаптеров;
  • Наличие функции быстрого стирания, проверки записи/стирания микрочипа;
  • Наличие функции копирования;
  • Возможность автономной работы;
  • Наличие встроенного HEX-редактора.

ТОП программаторов для прошивки памяти

    (EEPROM FLASH, EMMC, NAND, NOR, MCU); (BIOS, EPROM, FLASH, AVR, GAL, PIC); (25 FLASH, 24 EEPROM, 25 EEPROM, 93 EEPROM); – (25 FLASH, 24 EEPROM, 25 EEPROM, 93 EEPROM); – (25 FLASH, 24 EEPROM, 25 EEPROM).

ТОП программаторов для ПЛИС

    – (Virtex и Spartan); – (Lattice); – (MAX, Stratix, Cyclone, EPCS); – (MAX, Stratix, StratixII, Cyclone, CycloneII, Acex, APEX, FLEX, EPCS, EPC); – (MAX, Stratix, StratixII, Cyclone, CycloneII, Acex, APEX, FLEX, EPCS, EPC).

ТОП программаторов для микроконтроллеров

    – (AVR, ATMEGA, Attiny, PIC, AT90, AT89S); – MC9S08, MC68HC(9)12, MC9S12, V850, H8X, R8C, PCF79XX, контроллеры Atmega, микросхемы памяти EEPROM); – (микроконтроллеры NuMicro); – (микроконтроллеры PIC); – (микроконтроллеры STM8 и STM32); – (микроконтроллеры AVR); – (микроконтроллеры STC).

Компания Суперайс предлагает программаторы различного функционала и цены. Выбрать вы можете в нашем каталоге или проконсультироваться у менеджера.

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

Разработка данного USB-программатора ведется на компьютере с использованием библиотек от фирмы FTDI Chip.

Схема универсального программатора

Питается устройство от интерфейса USB. При правильной сборке схема не нуждается в настройке. Функционирование устройства зависит от мастерства разработчика ПО. Резисторы R8, R9, R12, R13, R14, R15, R16 являются токоограничивающими при неправильном соединении с устройством, соответственно, выводы программируемого устройства не должны соединяться с другими элементами в схеме, или иметь такие подтяжки, которые при образовании делителей напряжения не искажали бы логические уровни. Микросхема U1 используется для сохранения пользовательских настроек.

Выводы U2 (канал А):
24 — ADBUS0 – выход- в режиме JTAG TCK, в режиме SPI SK;
23 — ADBUS1 – выход- в режиме JTAG TDI, в режиме SPI DO;
22 — ADBUS2 – вход- в режиме JTAG TDO, в режиме SPI DI;
21 — ADBUS3 – выход- в режиме JTAG TMS, в режиме SPI как вспомогательный сигнал(CS);
20 — ADBUS4 – в режиме JTAG вход\выход, в режиме SPI вспомогательный выход. Этот вывод используется для подачи сигнала RESET в микроконтроллер;
15 — AСBUS0 – свободно программируемый вход\выход во всех режимах (опционно используется для подачи питания в программируемое устройство);
13 — AСBUS1 – свободно программируемый вход\выход во всех режимах.

В принципе, эти выводы многофункциональные. Их поведение определяется выбранным режимом при открытии порта.

Канал В используется для отладки программируемого устройства. Для этого нужно только иметь незадействованный порт UART в микроконтроллере. Далее дело техники. В программе микроконтроллера в нужных местах используем функцию форматированного вывода printf().

40 —BDBUS0 – выход- в режиме UART TXD;
39 —BDBUS1 – вход- в режиме UART RXD;
28 — BСBUS2 – выход- в режиме UART LED-индикатор (зажигается при передаче данных через USB);
27 — BСBUS3 – выход- в режиме UART LED-индикатор (зажигается при приеме данных через USB).

Ниже приведена печатная плата программатора

Печатная плата программатора. Верх.
Печатная плата программатора. Низ.

Рабочая форма для программирования

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

Я впервые столкнулся с микроконтроллерами, когда собирал свой первый импульсный металлоискатель Клон. Вот тогда-то и выяснилось, что контроллер без прошивки - это просто кусок пластмассы с ножками.

А чтобы залить нужную прошивку в АТМЕГу, никак не обойтись без программатора. Далее мы рассмотрим две самые простые и проверенные временем схемы программаторов.

Схема первая

Программатор для ATMEGA8

С помощью этого программатора можно прошивать практически любой AVR-контроллер от ATMEL, надо только свериться с распиновкой микросхемы.

СОМ-разъем на схеме - это "мама".

Простейший программатор для ATmega8

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

Файл печатной платы открывать с помощью популярной программы Sprint Layout (если она у вас еще не установлена, то качайте 5-ую версию или лучше сразу 6-ую).

Детали для сборки AVR-программатора

Как понятно из схемы, для сборки программатора потребуется ничтожно малое количество деталек:

Вместо КТ315 я воткнул SMD-транзистор BFR93A, которые у меня остались после сборки микромощных радиомикрофонов.

Программатор для АТмега8

А вот весь программатор в сборе:

Питание (+5В) я решил брать с USB-порта.

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

Если же ваша микросхема б/у-шная, то без внешнего кварца она может и не запуститься. Тогда лучше ставьте кварц на 4 МГц, а конденсаторы лучше на 33 пФ.

Как видите, я кварц с конденсаторами не ставил, но на всякий случай предусмотрел под них места на плате.

Заливать прошивку лучше всего с помощью программы PonyProg (скачать).

Прошивка с помощью PonyProg

Заходим в меню Setup -> Calibration -> Yes. Должно появиться окошко "Calibration OK".

Далее Setup -> Interface Setup. Выбираем "SI Prog API" и нужный порт, внизу нажимаем "Probe", должно появиться окно "Test OK". Далее выбираем микроконтроллер "Device -> AVR micro ATmega8".

Теперь втыкаем микроконтроллер в панельку программатора, и подаем питание 5 вольт (можно, например, от отдельного источника питания или порта ЮСБ). Затем жмем Command -> Read All.

После чтения появляется окно "Read successful". Если все ок, то выбираем файл с нужной прошивкой для заливки: File -> Open Device File. Жмем "Открыть".

Теперь жмем Command -> Security and Configuration Bits и выставляем фьюзы, какие нужно.

Тщательно все проверяем и жмем "OK". Далее нажимаем Command -> Write All -> Yes. Идет прошивка и проверка. По окончании проверки появляется окно "Write Successful".

Вот и все, МК прошит и готов к использованию!

Имейте в виду, что при прошивке с помощью других программ (не PonyProg) биты могут быть инверсными! Тогда их надо выставлять с точностью до наоборот. Определить это можно, считав фьюзы и посмотрев на галку "SPIEN".

Схема вторая

Программатор для Клона

Еще одна версия программатора, с помощью которого можно залить прошивку в микроконтроллер АТМЕГа (так называемый программатор Геннадия Громова). Схема состоит всего из 10 детатей:Диоды можно взять любые импульсные (например, наши КД510, КД522). Разъем - "мама". Питание на МК (+5В) нужно подавать отдельно, например, от того же компьютера с выхода USB.

Собранная плата программатора для АТмега8

Все это можно собрать навесным монтажом прямо на разъеме, но если вы крутой паяльник и знаете, что такое smd-монтаж, то можете сделать красиво:

Алгоритм прошивки с помощью программатора Громова

Программатор с установленной микросхемой подключаем к СОМ-порту компьютера, затем запускаем Uniprof, затем подаем питание на микроконтроллер. И первым делом проверяем, читаются ли фьюз-биты.

Если все ок, выбираем файл с нужной прошивкой и жмем запись.

Будьте предельно внимательны и осторожны, потому что если глюканет при записи фьюзов, то МК либо на выброс, либо паять схему доктора (а она сложная). Если поменяете бит SPIEN на противоположный - результат будет тот же (к доктору).

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

Разработка данного USB-программатора ведется на компьютере с использованием библиотек от фирмы FTDI Chip.


Питается устройство от интерфейса USB. При правильной сборке схема не нуждается в настройке. Функционирование устройства зависит от мастерства разработчика ПО. Резисторы R8, R9, R12, R13, R14, R15, R16 являются токоограничивающими при неправильном соединении с устройством, соответственно, выводы программируемого устройства не должны соединяться с другими элементами в схеме, или иметь такие подтяжки, которые при образовании делителей напряжения не искажали бы логические уровни. Микросхема U1 используется для сохранения пользовательских настроек.

Выводы U2 (канал А):
24 — ADBUS0 – выход- в режиме JTAG TCK, в режиме SPI SK;
23 — ADBUS1 – выход- в режиме JTAG TDI, в режиме SPI DO;
22 — ADBUS2 – вход- в режиме JTAG TDO, в режиме SPI DI;
21 — ADBUS3 – выход- в режиме JTAG TMS, в режиме SPI как вспомогательный сигнал(CS);
20 — ADBUS4 – в режиме JTAG входвыход, в режиме SPI вспомогательный выход. Этот вывод используется для подачи сигнала RESET в микроконтроллер;
15 — AСBUS0 – свободно программируемый входвыход во всех режимах (опционно используется для подачи питания в программируемое устройство);
13 — AСBUS1 – свободно программируемый входвыход во всех режимах.

В принципе, эти выводы многофункциональные. Их поведение определяется выбранным режимом при открытии порта.

Канал В используется для отладки программируемого устройства. Для этого нужно только иметь незадействованный порт UART в микроконтроллере. Далее дело техники. В программе микроконтроллера в нужных местах используем функцию форматированного вывода printf().

40 —BDBUS0 – выход- в режиме UART TXD;
39 —BDBUS1 – вход- в режиме UART RXD;
28 — BСBUS2 – выход- в режиме UART LED-индикатор (зажигается при передаче данных через USB);
27 — BСBUS3 – выход- в режиме UART LED-индикатор (зажигается при приеме данных через USB).

Ниже приведена печатная плата программатора





Борисов Алексей (Albor) г.Сызрань, Самарская обл.

Собираем программатор для микроконтроллеров PIC и микросхем EEPROM


Какие первые шаги должен сделать радиолюбитель, решивший собрать схему на микроконтроллере? Естественно, необходима управляющая программа – "прошивка", а также программатор.

И если с первым пунктом нет проблем – готовую "прошивку" обычно выкладывают авторы схем, то вот с программатором дела обстоят сложнее.

Цена готовых USB-программаторов довольно высока и лучшим решением будет собрать его самостоятельно. Вот схема предлагаемого устройства (картинки кликабельны).


Панель установки МК.


Исходная схема взята с сайта LabKit.ru с разрешения автора, за что ему большое спасибо. Это так называемый клон фирменного программатора PICkit2. Так как вариант устройства является "облегчённой" копией фирменного PICkit2, то автор назвал свою разработку PICkit-2 Lite, что подчёркивает простоту сборки такого устройства для начинающих радиолюбителей.

Что может программатор? С помощью программатора можно будет прошить большинство легкодоступных и популярных МК серии PIC (PIC16F84A, PIC16F628A, PIC12F629, PIC12F675, PIC16F877A и др.), а также микросхемы памяти EEPROM серии 24LC. Кроме этого программатор может работать в режиме USB-UART преобразователя, имеет часть функций логического анализатора. Особо важная функция, которой обладает программатор – это расчёт калибровочной константы встроенного RC-генератора некоторых МК (например, таких как PIC12F629 и PIC12F675).


Необходимые изменения.

В схеме есть некоторые изменения, которые необходимы для того, чтобы с помощью программатора PICkit-2 Lite была возможность записывать/стирать/считывать данные у микросхем памяти EEPROM серии 24Cxx.

Также добавлен "подтягивающий" резистор на 2 кОм, который включается между выводом SDA и Vcc микросхем памяти.

Все эти доработки я уже делал на печатной плате, после сборки PICkit-2 Lite по исходной схеме автора.

Микросхемы памяти 24Cxx (24C08 и др.) широко используются в бытовой радиоаппаратуре, и их иногда приходится прошивать, например, при ремонте кинескопных телевизоров. В них память 24Cxx применяется для хранения настроек.

В ЖК-телевизорах применяется уже другой тип памяти (Flash-память). О том, как прошить память ЖК-телевизора я уже рассказывал. Кому интересно, загляните.

В связи с необходимостью работы с микросхемами серии 24Cxx мне и пришлось "допиливать" программатор. Травить новую печатную плату я не стал, просто добавил необходимые элементы на печатной плате. Вот что получилось.


Ядром устройства является микроконтроллер PIC18F2550-I/SP.


Это единственная микросхема в устройстве. МК PIC18F2550 необходимо "прошить". Эта простая операция у многих вызывает ступор, так как возникает так называемая проблема "курицы и яйца". Как её решил я, расскажу чуть позднее.

Список деталей для сборки программатора. В мобильной версии потяните таблицу влево (свайп влево-вправо), чтобы увидеть все её столбцы.

Теперь немного о деталях и их назначении.

Зелёный светодиод HL1 светится, когда на программатор подано питание, а красный светодиод HL2 излучает в момент передачи данных между компьютером и программатором.

Для придания устройству универсальности и надёжности используется USB-розетка XS1 типа "B" (квадратная). В компьютере же используется USB-розетка типа "А". Поэтому перепутать гнёзда соединительного кабеля невозможно. Также такое решение способствует надёжности устройства. Если кабель придёт в негодность, то его легко заменить новым не прибегая к пайке и монтажным работам.

В качестве дросселя L1 на 680 мкГн лучше применить готовый (например, типов EC24 или CECL). Но если готовое изделие найти не удастся, то дроссель можно изготовить самостоятельно. Для этого нужно намотать 250 – 300 витков провода ПЭЛ-0,1 на сердечник из феррита от дросселя типа CW68. Стоит учесть, что благодаря наличию ШИМ с обратной связью, заботиться о точности номинала индуктивности не стоит.

Напряжение для высоковольтного программирования (Vpp) от +8,5 до 14 вольт создаётся ключевым стабилизатором. В него входят элементы VT1, VD1, L1, C4, R4, R10, R11. С 12 вывода PIC18F2550 на базу VT1 поступают импульсы ШИМ. Обратная связь осуществляется делителем R10, R11.

Чтобы защитить элементы схемы от обратного напряжения с линий программирования в случае использования USB-программатора в режиме внутрисхемного программирования ICSP (In-Circuit Serial Programming) применён диод VD2. VD2 – это диод Шоттки. Его стоит подобрать с падением напряжения на P-N переходе не более 0,45 вольт. Также диод VD2 защищает элементы от обратного напряжения, когда программатор применяется в режиме USB-UART преобразования и логического анализатора.

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

Компактность устройству придаёт универсальная ZIF-панель (Zero Insertion Force – с нулевым усилием установки).


Благодаря ей можно "зашить" МК практически в любом корпусе DIP.

На схеме "Панель установки микроконтроллера (МК)" указано, как необходимо устанавливать микроконтроллеры с разными корпусами в панель. При установке МК следует обращать внимание на то, чтобы микроконтроллер в панели позиционируется так, чтобы ключ на микросхеме был со стороны фиксирующего рычага ZIF-панели.



Если есть нужда прошить микроконтроллер в корпусе для поверхностного монтажа (SOIC), то можно воспользоваться переходником или просто подпаять к микроконтроллеру 5 выводов, которые обычно требуются для программирования (Vpp, Clock, Data, Vcc, GND).


Готовый рисунок печатной платы со всеми изменениями вы найдёте по ссылке в конце статьи. Открыв файл в программе Sprint Layout 5.0 можно с помощью режима "Печать" не только распечатать слой с рисунком печатных проводников, но и просмотреть позиционирование элементов на печатной плате. Обратите внимание на изолированную перемычку, которая связывает 6 вывод DD1 и 21 вывод ZIF-панели. Печатать рисунок платы необходимо в зеркальном отображении.

Изготовить печатную плату можно методом ЛУТ, а также маркером для печатных плат, с помощью цапонлака (так делал я) или "карандашным" методом.


Вот рисунок позиционирования элементов на печатной плате (кликабельно).


При монтаже первым делом необходимо запаять перемычки из медного лужёного провода, затем установить низкопрофильные элементы (резисторы, конденсаторы, кварц, штыревой разъём ISCP), затем транзисторы и запрограммированный МК. Последним шагом будет установка ZIF-панели, USB-розетки и запайка провода в изоляции (перемычки).

"Прошивка" микроконтроллера PIC18F2550.

Файл "прошивки" — PK2V023200.hex необходимо записать в память МК PIC18F2550I-SP при помощи любого программатора, который поддерживает PIC микроконтроллеры (например, Extra-PIC). Я воспользовался JDM Programmator’ом JONIC PROG и программой WinPic800.


Ссылка на файл PK2V023200.hex, запакованный в архив rar, дана в конце статьи.

Залить "прошивку" в МК PIC18F2550 можно и с помощью всё того же фирменного программатора PICkit2 или его новой версии PICkit3. Естественно, сделать это можно и самодельным PICkit-2 Lite, если кто-либо из друзей успел собрать его раньше вас:).

Ну, а если разрешить проблему "курицы и яйца" не удалось предложенными способами, то можно купить уже готовый программатор PICkit3 на сайте AliExpress. Там он стоит гораздо дешевле. О том, как покупать детали и электронные наборы на AliExpress я писал тут.

Обновление "прошивки" программатора.

Прогресс не стоит на месте и время от времени компания Microchip выпускает обновления для своего ПО, в том числе и для программатора PICkit2, PICkit3. Естественно, и мы можем обновить управляющую программу своего самодельного PICkit-2 Lite. Для этого понадобится программа PICkit2 Programmer. Что это такое и как пользоваться — чуть позднее. А пока пару слов о том, что нужно сделать, чтобы обновить "прошивку".

Для обновления ПО программатора необходимо замкнуть перемычку XT1 на программаторе, когда он отключен от компьютера. Затем подключить программатор к ПК и запустить PICkit2 Programmer. При замкнутой XT1 активируется режим bootloader для загрузки новой версии прошивки. Затем в PICkit2 Programmer через меню "Tools" — "Download PICkit 2 Operation System" открываем заранее подготовленный hex-файл обновлённой прошивки. Далее произойдёт процесс обновления ПО программатора.

После обновления нужно отключить программатор от ПК и снять перемычку XT1. В обычном режиме перемычка разомкнута. Узнать версию ПО программатора можно через меню "Help" — "About" в программе PICkit2 Programmer.

Это всё по техническим моментам. А теперь о софте.

Работа с программатором. Программа PICkit2 Programmer.

Для работы с USB-программатором нам потребуется установить на компьютер программу PICkit2 Programmer. Это специальная программа обладает простым интерфейсом, легко устанавливается и не требует особой настройки. Стоит отметить, что работать с программатором можно и с помощью среды разработки MPLAB IDE, но для того, чтобы прошить/стереть/считать МК достаточно простой программы – PICkit2 Programmer. Рекомендую.

После установки программы PICkit2 Programmer подключаем к компьютеру собранный USB-программатор. При этом засветится зелёный светодиод ("питание"), а операционная система опознает устройство как "PICkit2 Microcontroller Programmer" и установит драйвера.

Запускаем программу PICkit2 Programmer. В окне программы должна отобразиться надпись.


Если программатор не подключен, то в окне программы отобразится страшная надпись и краткие инструкции "Что делать?" на английском.


Если же программатор подключить к компьютеру с установленным МК, то программа при запуске определить его и сообщит нам об этом в окне PICkit2 Programmer.


Поздравляю! Первый шаг сделан. А о том, как пользоваться программой PICkit2 Programmer, я рассказал в отдельной статье. Следующий шаг.

Необходимые файлы:

Руководство пользователя PICkit2 (рус.) берём здесь или здесь.


Самый простой и доступный способ прошить микроконтроллер Atmel, например ATtiny13 или ATmega8, это собрать собственными силами программатор stk200. Очень хорошо и подробно об этом написано здесь и еще здесь. Главный недостаток программатора — это порт подключения LPT, которого на вашем компьютере может и не быть. Но есть один неоспоримый плюс — это его доступность! Также стоит отметить высокую скорость работы программатора.

Ну приступим к делу! Для сборки программатора нам понадобится немного радиодеталей и один начинающий электронщик goga26rus , жаждущий научиться программировать МК!

Читайте также: