Программатор своими руками для прошивки микросхем

Предлагаемая мной схема не является чем-то оригинальным, и я не претендую на изобретение велосипеда, а всего лишь хочу поделиться своим опытом. Так что не судите строго. Однажды я решил собрать несложный 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. Прилагаю свою печатную плату, но разводка там под те элементы, что были в наличии, каждый может перерисовать под себя.

2МК.Самый простой программатор для прошивки микроконтроллера своими руками.

Изготовление SPI FLASH программатора, ЛУТ.

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

В этой заметке пойдет речь об изготовлении программатора, предназначенного для прошивки микросхем в корпусе DIP-8. Устройство является клоном серийного программатора «BlackcatUSB», печатная плата, схема, прошивка контроллера и софт для работы с устройством взяты отсюда meandr.org/archives/12018.

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

Большая часть статьи посвящена изготовлению печатной платы методом ЛУТ (лазерно — утюжная технология). Метод является аккумуляцией коллективного опыта, что означает вариативность технологии, то есть разные этапы изготовления можно выполнять с использованием различного материала и оборудования. В этой статье используется все, что почти у всех есть под рукой, кое-что (станок для резки) лучше даже было бы заменить дремелем (гравером).
Это мой первый опыт изготовления печатной платы вообще и методом ЛУТ в частности. Также в первый раз осуществлял запайку микроконтроллера. Радиодетали поверхностного монтажа до этого паял, но опыта совсем немного. Раз даже у меня получилось, то это будет и под силу любому другому начинающему включая тебя, %drivername% 😉

Список используемого оборудования

1. Паяльная станция;
2. Паяльник ProSkit с модифицированным жалом «микроволна»;
3. Сверлильный станок;
4. Отрезной станок.

Список используемых материалов

1. Фольгированный текстолит (20р);
2. Хлорное железо 500 грамм (70р);
3. Сплав Розе 100 грамм (70р);
4. Флюс ЛТИ-120 с кисточкой(35р);
5. Радиодетали (~60-70р):
6. МК AT90USB162 (130р).

Хлорного железа и сплава хватит на большое количество плат — первого используются десятки грамм, второго — несколько грамм.

На приобретенный в магазине фольгированный текстолит мы будем переносить тонер, который формирует изображение печатной платы. Печать изображения ПП выполняется на лазерном принтере, жирность, насыщенность в настройках принтера и печати должны быть максимальным, для максимального же осаждения тонера на лист бумаги. Отмечу, что изображение ПП для печати должно быть в зеркальном отражении, подробнее об этом в следующем разделе. Для того, чтобы при переносе на текстолит на бумаге осталось наименьшее количество тонера (а в идеале вообще не осталось) бумага должна быть глянцевой и плотной.
Теперь о моем опыте. Естественно, идти/ехать за всеми рекомендуемой бумагой Lomond у меня не было никакого желания, то решил ограничиться тем что найду дома. Под руку попался каталог известный всем каталог AVON (рисунок 1).

Бумага глянцевая, но, увы недостаточно плотная 🙂

Пришлось из печного отсека принтера по кусочкам выдирать замятый лист каталога, результат не рисунке 2. Следующее что нашел — обложка папки от цветного картона. На этот раз печать прошла успешно, что видно на рисунке 3.

Теперь наша задача перенести полученный принт на фольгированный текстолит. Текстолит перед этим стоит обезжирить (спирт, ацетон), но я, впрочем, этого не делал 🙂 Отпечатанное изображение должно быть в зеркальном отражении (о чем упомянуто выше), так как оно будет переноситься и опять зеркально же отразится, таким образом, на текстолите мы получим правильное изображение.
Перенос выполняется следующим образом: вырезаем изображение ПП, прикладываем к текстолиту, прокладываем несколькими слоями газетной бумаги и греем/проглаживаем сверху утюгом в течении ~15 секунд. Вместо газет использовал каталог METRO C) Существуют различные способы лужения: механический и химические — сплав Розе и «жидкое олово». Первый не очень подходит для последующего поверхностного монтажа (SMD), а также по причине «как-всегда-не-не-хочется-возиться», «жидкое олово» в магазинах города найти не удалось, а от Алика ждать долго. Таким вот методом исключения был выбрано химическое лужение сплавом Розе. Покупать лучше в надежном месте — говорят бывает подделка.
Суть процесса: в металлической таре доводим воду до кипения, помещаем сплав Розе, он начинает плавиться, лицевой стороной кладем ПП на расплав сплава Розе, начинаем аккуратно водить платой, по визуальному контролю останавливаем процесс, достаем плату.
Как это было у меня. Из большой банки кофе Nescafe была вырезана тара с высотой стенки 4-5 см (бонусом годная крышка), рисунок 9. На рисунке 10 текстолит, сплав Розе, шпатель (который не пригодился).

Набрал пару сантиметров воды, поставил на огонь. Довел до кипения и добавил лимонной кислоты, которая выступает в роли активатора поверхности и убирает окисел. Кинул горошины четыре сплава, подождал, лицевой стороной опустил ПП. Сначала хотел на ПП поместить сплав и размазывать шпателем, но пар, горячо, и ни в какую не плавился этот легкоплавкий сплав Розе. Потому тер лицевой стороной платы о горошины сплава. Даже получилось. Результат можно видеть на рисунках 11 и 12 — на свету и на просвет соответственно. По картинке на просвет можно видеть, что термоперенос и лужение прошли не идеально, но замыканий нет, площадки и дорожки целые. Должно работать.

Следующий шаг волнительного изготовления программатора — запайка микроконтроллера. МК Atmel AT90USB162 выполнена в корпусе TQFP32. Проще говоря: с каждой из четырех сторон восемь ножек с весбма небольшим расстоянием между ними. Можно было бы запаять каждую ногу в отдельности, но я предпочел опять-таки обратиться к коллективному разуму — решение конечно же есть. Для пайки МК используют паяльное жало типа «микроволна». Оно представляет собой обычное жало в виде усеченного конуса, но, в отличии от последнего, имеет углубление диаметром около 1 мм и глубиной около 0.5 мм. Т.к. на рабочую паяльную станцию искать и покупать дорогое подходящее жало нужного типа не хотелось было решено взять свой старый-старый паяльник ProSkit (рублей он стоил 100-120) и из обычного жала в форме усеченного конуса сделать «микроволну». О процессе изготовления будет в одной из следующих заметок. «Фишкой» этого жала является использование эффекта поверхностного натяжения (чуть ниже о нем на практике). Будем паять. Помещаем МК на площадки (обращаем внимание на ориентацию ключа МК), выравниваем и прижимаем. Смачиваем одну сторону флюсом (я использовал ЛТИ-120), запаиваем паяльником крайние ножки, смачиваем противоположную сторону и также запаиваем крайние ножки. Все, теперь МК никуда не денется. Смачиваем флюсом запаиваемую сторону, набираем олово на жало, а конкретно оно окажется в углублении, и достаточно быстро проводим по всем ногам одной стороны. Если делать это аккуратно и быстро, то слипания ножек не произойдет. У меня, естественно, произошло 🙂 «Соплю» между ногами нагреваем паяльником и собираем либо на жало, либо оловоотсосом. Повторяем четыре раза. Готово! Результат можно видеть на рисунке 13, съемка под оптическим микроскопом. На рисунке 14 обычная фотография.

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

Сверление отверстий

Параллельно изготовлению платы я занимался и самодельным сверлильным станком. Но все руки никак не доходили его доделать и на мою удачу на работе отыскался настоящий сверлильный станок, хоть и изрядно уставший от жизни. Сверла использовались диаметром 0.8 мм, как выяснилось позже, для джамперов (контактов), отверстия были малы и пришлось использовать сверла диаметром 1 мм. Номинально кулачковый патрон сверлильного станка зажимает 0.8 мм, но факту этого не случилось. Потому была взятая тонкая проволока и аккуратна намотана на сверло. Это позволило нормально закрепить сверло, визуально биений не было.

На рисунке 17 плата с отверстиями. Ни одно сверло не пострадало 🙂

Изначально планировал вырезать плату посредством дремеля, но, увы, в день когда дошли руки до программатора дремель остался дома 🙂 Потому привожу фотографию станка (рисунок 17) на котором пришлось вырезать плату, что получилось — рисунок 17. Одно могу сказать — страшно было 🙂 Толщина текстолита недостаточна, чтобы программатор плотно вошел в USB-разъем. Из обрезков текстолита вырезал подкладку и сточил на наждачной бумаги, пока программатор не стал плотно входить в разъем.

Распайка элементов, прошивка, проверка

Завершающий этап — распайка элементов. Сложностей не возникло. Распайка SMD-элемента занимает одну минуту. Выставляем по площадкам пинцетом, выравниванием пальцем, прижимаем пинцетом, смачиваем флюсом, запаиваем. Вторая сторона проблем не вызывает тем более. Фотографии готового устройства: рисунок 18, рисунок 19.

Подключаем к компьютеру, устройство обнаруживается как AT90USB162. Ставим драйвер, запускаем комплектный софт, прошиваем, устройство определяется как «BlackcatUSB» (подробнее об этом в первой ссылке). Можно работать дальше.

Буду рад услышать советы, рекомендации, критику.

Материалы

Программатор pic контроллеров Extrapic

  • Стабилизатор 78L05 – 2 шт.
  • Стабилизатор 78L12 – 1 шт.
  • Светодиод на 3 в. зелёный – 1 шт.
  • Светодиод на 3 в. красный – 1 шт.
  • Диод 1N4007 – 1 шт.
  • Диод 1N4148 – 2 шт.
  • Резистор 0,125 Вт 4,7 кОм – 2 шт.
  • Резистор 0,125 Вт 1 кОм – 6 шт.
  • Конденсатор 10 мкФ 16В – 4 шт.
  • Конденсатор 220 мкФ 25В – 1 шт.
  • Конденсатор 100 нФ – 3 шт.
  • Транзистор КТ3102 – 1 шт.
  • Транзистор КТ502 – 1 шт.
  • Микросхема MAX232 – 1 шт.
  • Микросхема КР1533ЛА3 – 1 шт.
  • Разъём питания – 1 шт
  • Разъём COM порта «мама» — 1 шт.
  • Панелька DIP40 – 1 шт.
  • Панелька DIP8 – 2 шт.
  • Панелька DIP14 – 1 шт.
  • Панелька DIP16 – 1 шт.
  • Панелька DIP18 – 1 шт.
  • Панелька DIP28 – 1 шт.

Кроме того, необходим паяльник и умение им пользоваться.

Изготовление печатной платы

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

Программатор pic контроллеров Extrapic

Скачать плату:
pechatnaya-plata.zip [25.33 Kb] (cкачиваний: 1555)

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

Прогресс не стоит на месте и время от времени компания 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 Lite найден и подключен

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

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

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

Определение типа МК в панели программатора

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

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

  • Прошивка USB-программатора (PK2V023200.hex);
  • Рисунок печатной платы в формате .lay;
  • Программа PicKit2 Programmer;
  • Руководство пользователя PICkit2 (рус., формат PDF, объём ~1,5 Мб) берём здесь.

Схема первая

Программатор для 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 на противоположный — результат будет тот же (к доктору).

Простой внутрисхемный программатор ARM микроконтроллеров серии LPC своими руками. Схемотехника. Часть первая

В последнее время, как среди профессиональных разработчиков, так и в рядах начинающих электронщиков широкое распространение получили ARM микроконтроллеры. Очень большой популярностью пользуются разработки фирмы NXP. Эта фирма производит огромный спектр изделий – от дешёвых и малопотребляющих до высокопроизводительных, поддерживающих такие интерфейсы как USB и Ethernet.

Хочу предложить вниманию читателей свою разработку, которой лично я пользуюсь, пожалуй, чаще всего. Это простой внутрисхемный программатор, который легко можно изготовить собственными руками. Программатор предназначен для программирования широкораспространённых ARM микроконтроллеров фирмы NXP серии LPC2xxx. Это микроконтроллеры с ядрами ARM7, Cortex-M0 и Cortex-M3. Кроме этого, с его помощью можно программировать недорогие 8-битные микроконтроллеры из серии LPC9xx, за исключением самых простейших из серии LPC901.
Подробнее со списком можно ознакомиться здесь.
www.ru.nxp.com/products/microcontrollers
Программатор подключается к порту USB и не требует дополнительного питания. Он собран всего на двух микросхемах и одном транзисторе.
Устройство может использоваться не только для программирования платы с микроконтроллером, но и для связи с ней по эмулируемому последовательному порту.

Рис. 1. Схема принципиальная электрическая, часть первая.

Программатор собран на основе микросхемы фирмы FTDI – FT232RL
www.ftdichip.com/Products/ICs/FT232R.htm
Для успешного программирования не забудьте скачать и установить драйвер микросхемы, который подходит для применяемой Вами операционной системы.
Ищите его здесь:
www.ftdichip.com/FTDrivers.htm
Фильтр L1 можно заменить на резистор сопротивлением 10 … 22 Ом.
Светодиоды VD1, VD3, сопротивления R3, R4 можно исключить, если не требуется индикация передачи и приёма пакетов данных по USB.

Рис. 2. Схема принципиальная электрическая, часть вторая.

Для программирования микроконтроллеров серии LPC2000 используется разъём X3, для программирования LPC900 X1.

Рис. 3. Схема принципиальная электрическая, часть вторая для программирования микроконтроллеров только серии LPC2000.

Микроконтроллеры серии LPC900 используются не часто, если Вам требуется программировать только ARMы LPC2000 вторую часть схемы можно очень сильно упростить. Упрощённая часть показана на рисунке 3.

Рис.4. Монтажная схема.

Рис.5. Внешний вид программатора.
В качестве светодиодов можно применить как SMD, так и выводные.
В качестве транзистора подойдёт практически любой, прямой проводимости, подходящий по цоколёвке.

Список используемых деталей, схема и трассировки платы в формате PCAD 2006, расположены в прилагаемом архиве.
docs.google.com/open?id=0B8EEcNDjnzhhUUZJbjc2cEx3NHM
Программирование можно производить с помощью бесплатно распространяемой программы Flash Magic
www.flashmagictool.com
Подробнее о подключении разных микроконтроллеров к программатору и процессе внутрисхемного программирования я расскажу в следующем посте.

  • Электроника для начинающих*
  • Программинг микроконтроллеров*
  • Программирование микроконтроллеров
  • Схемотехника

Внутрисхемный программатор 3.3V SPI EEPROM из Arduino

EEPROM 25 серии в наше время не редкость. Программаторы на основе CH341 для них — тоже, и стоят недорого, но не всегда оказываются под руками в нужный момент.
Что делать, когда прошить микросхему надо срочно, а нечем?

Можно собрать программатор под LPT порт:

Он прост и предельно дешёв, вот только LPT в современном компьютере встречается уже примерно никогда.
Если под руками есть старый ПК с таким портом — повезло, иначе придётся искать другие варианты.
Например, можно воспользоваться Arduino.
Обычно для такого применения рекомендуют использовать довольно редкую Arduino Micro Pro на основе МК ATMega32U4, но можно обойтись и намного более дешёвой китайской Arduino Nano V3:

Так как память 25 серии рассчитана на питание напряжением 3,3В, а МК в Arduino питается напряжением 5 В, то плату придётся немного доработать, чтобы не сжечь микросхему памяти:

Перевернём плату Arduino нижней стороной вверх:

Диод Шоттки, обозначенный на принципиальной схеме D1, нужно аккуратно отпаять и заменить на стабилизатор напряжения 3,3В типа 1117 или аналогичный:

Стабилизатор напряжения можно добыть из негодной ЖК матрицы от настольного монитора, вырезав его оттуда вместе с куском платы и обвязкой из конденсаторов. Только предварительно проверьте его выходное напряжение — иногда они в матрицах попадаются на 1,8В или 2,5В — нам такое не пойдёт. Матрица от ноутбука тоже не подойдёт — она вся питается напряжением 3,3В и дополнительного внутреннего стабилизатора этого напряжения в них нет.

Припаиваем провода к контактам D10, D11, D12, D13, 5V, GND платы Arduino, дополнительный стабилизатор изолируем и прикрепляем к ней каптоновым скотчем:
:
Интерфейс SPI довольно скоростной, поэтому провода длиннее 5-7 см делать не надо — меньше будет проблем с помехами.
На этом аппаратная часть программатора готова — пора переходить к программной.
Создаём на жёстком диске папку, в которую кидаем прошивку программатора, распаковываем программу XLoader, прошивку целевого устройства и программу FlashROM.
Запускаем XLoader, указываем в нем тип используемого в Arduino МК, порт, к которому она подключена и файл «frser-duino.hex»:

Нажимаем кнопку Upload и, если все в порядке, в нижней строке будет сообщение «1368 bytes uploaded». Загрузчик Arduino при этом затирается и если захотите вернуть плату в исходноесостояние — его надо будет восстанавливать.
Для проверки программатора сначала нужно измерить напряжение на выводах D10 и D11, оно должно равняться напряжению питания(3,3В).
Затем запускаем командную строку и вводим следующее:

c:rcvmingw32-w64-flashrom-r1781.exe —programmer serprog_dev=COM3:115200

Если все работает нормально, должен получиться ответ:

Наличие строки «serprog: Programmer name is „frser-duino“ свидетельствует о том, что программатор воспринимается программой и можно отключить его от USB и подключать его к целевому устройству.
Если прошиваемая микросхема припаяна напрямую к плате, то провода от программатора можно паять напрямую к её выводам согласно рисунку:

Если она съёмная, то к проводам для программатора можно припаять панельку:

При этом надо дополнительно соединить на панельке перемычками выводы 3,7 и 8.
Подключив программатор к микросхеме и USB, набираем в командной строке:

c:rcvmingw32-w64-flashrom-r1781.exe —programmer serprog_dev=COM3:115200 -c MX25L1605 -w c:rcvfirmware.hex

Наименование микросхемы памяти надо указывать точно, иначе программа откажется её прошивать.
Результат работы должен быть таким:

flashrom v0.9.7-r1781 on Windows 6.1 (x86) flashrom is free software, get the source code at http://www.flashrom.org Calibrating delay loop. OK. serprog: Programmer name is «frser-duino» Found Macronix flash chip «MX25L1605» (2048 kB, SPI) on serprog. Reading old flash chip contents. done. Erasing and writing flash chip. Warning: Chip content is identical to the requested image. Erase/write done.

После этого можно отключать питание и отпаивать провода — процедура прошивки успешно завершена.

Добавить в избранное Понравилось +46 +62

  • 24 ноября 2022, 01:00
  • автор: oleg235
  • просмотры: 8935
Оцените статью
TutShema
Добавить комментарий