Spi программатор lpt



spi программатор для 25QXX и др.

С помощью старого доброго пентиума третьего и LPT порта пытаюсь лечить ЖК-телеки и матплаты,собрал навесом схему программатора

ДОБАВЛЕНО 01/04/2016 00:35

другие схемы spi-программатора

ДОБАВЛЕНО 01/04/2016 00:36

ДОБАВЛЕНО 01/04/2016 00:37

ДОБАВЛЕНО 01/04/2016 00:37

ДОБАВЛЕНО 01/04/2016 00:41

ДОБАВЛЕНО 01/04/2016 01:02

Текущая версия SPIpgm 2.1 поддерживает все семейство настольных ОС Windows, Linux и еще DOS. Очень сомневался, что на Win7/Vista все заработает, уж очень прихотливы LPT программаторы к этой ОСи. тем не менее все совпало с заявлением разработчика. не забываем, что UAC необходимо отключить (у меня отключен и так «по умолчанию»). Выключаем полностью ПК, подключаем программатор, включаем и используем командную строку. С помощью оператора cd переходим в нужную директорию, где находится программатор. Т.к. мы находимся в среде Windows, то использовать надо spipgmw, spipgm используется в DOS и Win9x, однако spipgmw можно тоже использовать в Win9x

Основные программы, которые нам понадобятся:

spipgm /i — идентификация микросхемы в программаторе. Если программатор сделан и подключен верно, то микросхема опознается и соответственно с ней можно будет дальше работать
spipgm /d dump.rom — чтение содержимого микросхемы в файл dump.rom
spipgm /e — полное стирание содержимого микросхемы, рекомендуется сделать перед записью
spipgm /p new.rom — прошивка, запись в микросхему данных из файла new.rom — целого и правильного файла прошивки для конкретной материнский платы, можно взять с сайта производителя или снять с другой микросхемы аналогичной платы
spipgm /u — анлок, т.е. разблокировка микросхемы для записи, если такая защита имеется

Итого для совершения задуманного с целью восстановления BIOS нам необходимо выполнить последовательность команд:

1. spipgm /i — идентифицируемся
2. spipgm /u — разблокируемся
3. spipgm /e — стираем микросхему с кривым содержимым
4. spipgm /p new.rom — зашиваем правильную прошивку

! Если мы все делаем в среде Windows, то вместо spipgm пользуемся командой spipgmw

После этого вырубаем ПК через кнопку выключения и отключаем программатор

Внимание! Все манипуляции с портом LPT необходимо производить только с отключенным питанием платы. Т.е. перед тем как подключить или отключить что-нибудь от LPT необходимо полностью выключить БП, поставить переключатель БП в положение Off (или вынуть кабель) подождать 10сек (разрядятся конденсаторы) и только потом что-то подключать или отключать. Если не следовать этому простому правилу, то велик шанс остаться без LPT, он очень капризен к подобным вещам в силу своей незащищенности

Spi программатор lpt

Программатор AVR SPI LPT
под управлением PonyProg.

Рис. 1 Программатор в сборе.
Фото прислал пользователь ASK

Так всё начиналось.
Но после многочисленных просьб пользователей выложить USB программатор (и при содействии автора — Petka ) мы выложили статью о USB программаторе ‘AvrUsb500 by Petka’.
Реализация программатора ‘AvrUsb500 by Petka’ позволит пользователям не имеющим LPT порта на компьютере, программировать МК через USB интерфейс.

В интернете очень много схем SPI программаторов для SPI, какие-то из них лучше, какие-то немного сложнее, некоторые под управлением встроенного MK (например ‘AvrUsb500 by Petka’ ). Очень много радиолюбителей изобретают свою модификацию схемы. В моих конструкциях порт SPI используется для обмена с ведомыми устройствами, для которых нужен сигнал выборки (в оригинальном шлейфе он отсутствует). Поэтому мне пришлось модифицировать схему подключения МК добавив сигнал выборки, благодаря чему я могу определять, из исполняемой программы, подключён ли программатор, что мне позволяет избежать конфликта с двумя ведущими устройствами на шине SPI.
Большинство простых схем программатора сделаны по принципу:
LPT порт микросхема драйвер интерфейс SPI.
При правильном использовании (описание читай ниже) такая конструкция защищает порт компьютера от повреждений, например статикой, и в самом крайнем случае (не путать с откровенным нарушением техники безопасности) выгорит только микросхема драйвера.
Пересмотрев множество схем подобных программаторов, я отобрал две из них: На Рис. 2 — с сайта разработчика программного обеспечения. И на Рис. 3 — модификация со светодиодами (отображают состояние устройства). А также на Рис. 4 приведена одна из схем Как НЕ НАДО делать .

Рис. 3 Версия со светодиодами (пользуюсь сам).
Открыть оригинал с моего сайта.
Брал на http://evm.wallst.ru, но он часто бывает недоступен.
Но вот более понятно нарисованная его версия.

Рис. 4 В интернете есть упрощённые схемы,
которыми можно повредить порт компьютера.
Фактически это схема номер 3 но без микросхемы см. тут
Открыть оригинал с моего сайта.

Рис. 6 Плата программатора.
Фото и эскиз платы прислал пользователь ASK.
Архив с печатной платой — Тут.

Рис. 7 Версия под последовательный порт — RS232.
Для тех у кого есть RS232, но нет LPT порта.
Оригинальная от Pony Перерисованная .

Материал: Статья о PonyProg.
Искать в журнале «Радио» за 2001 N6 с.24; за 2001 N7 с.19 и за 2003 N5 с.25.
Если их ещё не списали, по прошествию 8 лет, то должны быть в радиотехнических библиотеках.
Так же данный материал можно обсудить на форуме.

Программатор очень простой — собирается за вечер из подручных средств. Отладки не требует. Только будьте внимательны — ошибка при сборке может привести к выгоранию порта компьютера.
После сборки и проверки скачивайте самую последнюю версию PonyProg. (на момент написания статьи Бэтты шли уже года два), а в старых версиях нет поддержки новых MК. Устанавливаете её.
При первом запуске она попросит откалиброваться и выбрать программатор. Колиброваться в меню Setup => Calibration. А программатор Setup => Interfeys Setup => Поставить галку Parallel и выбрать Avr ISP I/O.
Если на вашем компьютере нет порта LPT, то это не проблема — в компьютерных магазинах продаётся переходник с USB.

Что необходимо помнить при использовании.

Ещё раз напомню: Т.к. конструкция разъёма программатора и разъёма LPT не предусматривает заземление (обьединение масс) до подключения цифровых контактов, во избежание ВЫГОРАНИЯ порта, подключать к компьютеру сначала программатор, А только затем программатор подключать к устройству.
Устройство при этом должно быть ОТСОЕДИНЕНО от всех линий связи и интерфейсов, идущих к другим устройствам и модулям.
Источник питания устройства (на время программирования) должен иметь гальваническую развязку от сети.
Питание на устройство, во время программирования, можно подавать ТОЛЬКО после того, как на компьютере будет запущен и настроен софт программатора, во избежание управления вашим устройством ОС Windows, а не софтом программатора. При использовании управляющего файла автоматической прошивки, включать только после появления надписи «Готов?»

Материал выложен КАК ЕСТЬ и автор не несёт ответственности за явный (или не явный) ущерб, причинённый в результате повторения или за содержание документов скаченных с интернета.

То есть все эксперименты вы делаете на свой страх и риск.

Если у вас возникли вопросы и предложения — пишите мне по адресу внизу страницы

Технохрень

Рубрики

Еще по теме

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

В общем это нужно чтобы перепрошивать 8 ножные SPI флешки. А это в свою очередь нужно чтобы восстанавливать роутеры, сбрасывать пароли на биосы и восстанавливать их, и много чего еще.

Будем делать за 10 минут самый простой программатор своими руками на Ардуино 🙂 Понадобится Arduino Pro Micro ну или любая другая (будет отличаться только распиновка на ардуино). Собираем эту сложную схему:

Пофиг что 5 вольт, еще ничего не сгорело ни разу. Но только выпаивать флешки надо из платы, так как другие элементы могут быть не такими устойчивыми))))

Вот прошивка (скетч) для ардуины:

Metamorf

Распиновка Arduino nano v3.0
1 — d2
2 — 12
3,7,8 — vcc (5v)
4 — GND
5 — 11
6 — 13

Андрей

Привет, микросхема 25l8006e со скаллера (после кривой прошивки через усб, была не вовремя прервана). При запуске этого программатора, после выбора нужного ком-порта, открывается окно программы с белым экраном вместо данных и зависает — not responding. Куда копать? Большое Спасибо.

admin

Привет, ну либо провода слишком длинные либо что то с ардуиной не то. попробуйте подключится к ней через монитор порта на скорости 115200 и отправить букву t — если напишет COM ok то проблемы между флешкой и ардуиной или с самой флешкой. Если не напишет COM ok тогда что то не то с ардуиной 🙂
Если с флешкой проблема попробуйте укоротить провода к ней, ну или другую флешку, может какая-то несовместимость 🙂 Еще почему то не всегда программатор с arduino mini работает

Андрей

Получилось с Мегой! С Nano v3 на отрез отказывается работать. Спасибище. 🙂

Сергей

Всё отлично, хороший программатор на скорую руку получается. Автору огромное спасибо. Только вот я его нагуглил, когда хотел прошить 93C56… А такие маленькие он не шьет(

admin

прошьет))поставьте минимальный размер при прошивке. если нужно считать — фулфлеш потом обрежете просто. а если нужно записать — курсор ставьте на первый байт и записывайте файл нужного размера, хоть 64 байта ))

Алексей

Спасибо автору! Если внимательно прочитать и сделать как описано, то все получится! Впервые решил перепрошить роутер. Была под рукой запылившаяся Ардуино Нано. Соединил провода. Скачал последний IDE. Прошил успешно.

Павел

Спасибо автору огромное! Очень помогло! Вот только не решил проблему: на меге 2560 первые 128 байт заливаются сплошные FF.

admin

Может флеш не исправна?

Константин

Все собрал. ID читает. После нажатия на считывание фулфлеш программа перестает отвечать. Как с этим бороться? Заранее спасибо

admin

Вариантов несколько:
— либо слишком длинные провода к флешке
— либо слишком китайская ардуина (например нано в3)
— либо дохлая флешка

Огромное спасибо автору! Восстановил камеру Soocoo C30 после неудачной прошивки. Все супер !

Wikly

Автор молодец! Спасибо! Было бы прям совсем отлично, если бы сама прога на ПК была под 32х разрядную систему!

Wikly

И еще, при попытке скачать фулфлеш, почему то сохраняется только 4 КБ из 4096. Хм.
Arduino UNO,
flash: Winbond w25q32bv

Коротко о чипе

CH341 — мультифункциональный конвертер из USB 2.0 в UART, EPP, I2C и SPI.
В режиме UART поддерживаются не только RX/TX, но и остальные сигналы управления, поэтому на чипе можно сделать USB-модем. В режиме параллельного порта реализован интерфейс EPP и эмуляция принтера (позволяющая подключать принтеры с интерфейсом LPT напрямую к USB без написания дополнительных драйверов). В последовательном режиме поддерживаются интерфейсы I2C и SPI.

Чип требует минимальной дополнительной обвязки (внешний кварц и несколько конденсаторов). Возможно использование внешней EEPROM для хранения пользовательских Vendor ID, Device ID и некоторых настроек чипа. Питание от 5 В (через встроенный LDO-регулятор), либо от 3.3 В напрямую.

Кроме CH341A в корпусе SOP-28 имеются два варианта в SSOP-20 — CH341T и CH341H, первый лишен поддержки SPI, в второй — I2C, поэтому рассматривать их в этой статье я не стану.

Возможные применения

Описаны в статье про FT232H, повторяться не стану, только замечу, что на CH341A я проверял только работоспособность TX и RX, а не всего UART-интерфейса целиком, если вдруг найдутся какие-то внезапные подводные грабли, как это было с I2C на FT232H — напишите комментарий, буду рад добавить его в статью.

Готовые изделия

Китайская промышленность предлагает миллион и один вариант универсального I2C/SPI-программатора на этом чипе, один другого дешевле.

Доставшийся мне за 3,5 евро вариант, по заверениям его производителя умеет программировать чипы серий 24хх (I2C) и 25xx (SPI), которые предполагается вставлять в ZIF-сокет (если они в корпусе DIP-8-300), либо прижимать/припаивать к посадочной площадке на обратной стороне платы (если они в SOIC-8 или SOIC-16), либо подключать проводами. На гребенку выведены только UART и SPI, а I2C придется брать из ZIF-сокета, если нужен (эта недоработка устранена в более новых версиях, но они дороже).


Схема программатора отличается от референсной из даташита только использованием внешнего LDO-регулятора вместо встроенного, видимо, встроенный оказался не очень надежным. На моем экземпляре сэкономлено на всем подряд, и кроме CH341A на плате 2 светодиода (Power и Run), 2 резистора, 5 конденсаторов (2 для кварца и 3 для LDO-регулятора), кварц на 12 Мгц, LDO-регулятор AMS1117 на 1 А и ZIF-сокет на два чипа в корпусе DIP-8-300. Из настроек имеется единственный джампер, переключающий программатор между I2C/SPI и USB-UART, при этом у него меняется Device ID.

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

Для программирования в Windows используется китайский софт авторства некоего SkyGz, который большинством продавцов с EBAY распространяется нелегально, но работать от этого не перестает. Вот ссылка на него — malthus.mooo.com/download/file.php?id=893 — только не забудьте потом покормить попугая-матершинника и поправить повязку на глазу.

Для Linux имеются открытые проекты ch341prog (SPI) и ch341eepromtool (I2C), оба работают достаточно хорошо, но весьма неплохо было бы добавить поддержку обоих режимов в flashrom (гляди, xvilka, народные программаторы по цене грязи, а FR их до сих пор не умеет).

Я проверял работу программатора в Windows 8.1 x64 и Xubuntu Core 15.04 x64 на I2C-чипе OnSemi 24C16 и SPI-чипе Winbond W25Q64CV, работа с I2C занимает секунды (т.к. на чипе 2 Кб памяти и его, при желании, можно читать и писать чуть ли не руками), а вот восьмимегабайтный SPI-чип читается за минуту, а пишется за две, что, конечно, далеко не рекорд, но и не слишком долго для устройства за 5 долларов.

Заключение

Если вам не нужна поддержка JTAG, десятков тысяч различных чипов и ICSP, зато нужно средство быстрого резервного копирования/восстановления прошивок различных устройств от роутеров до ПК и серверов — рекомендую программатор на CH341A к приобретению, свои 5 баксов он отрабатывает сполна. А когда его поддержку добавят в flashrom — станет совсем хорошо.

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

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

Клон программатора SPI-Flash «BlackcatUSB»

Возможно, Вам это будет интересно:

Постоянная ссылка на это сообщение: http://meandr.org/archives/12018

16 комментариев
  • DmitryKap к 29.11.2013 в 23:45
  • Войдите, чтобы ответить

Большое спасибо за статью!
Собрал устройство, всё работает отлично!
К сожаления в магазине не было ATmega32U2, поэтому поставил AT90USB162.
Новая прошивка SPI с сайта FCUSB.3.05.SPI.hex заливается, но устройство с ней не работает 🙁 (USB устройство не определено)

  • Vetal561 к 30.11.2013 в 19:43
  • Войдите, чтобы ответить

Какую Вы прошивку заливали?

  • Gena к 04.12.2013 в 13:44
  • Войдите, чтобы ответить
  • DmitryKap к 05.12.2013 в 08:01
  • Войдите, чтобы ответить

Спасибо Gena! Прошил BCUSB.3.04.SPI.hex, теперь Build 330 работает ))

  • DmitryKap к 02.12.2013 в 18:52
  • Войдите, чтобы ответить

Пробовал заливать все подряд. В итоге пока остановился на прошивке SPI из архива с этой статьи.

  • Gena к 04.12.2013 в 13:41
  • Войдите, чтобы ответить

Win 8.1 х64 при перемычке 3.3в не опознается системой (неизвестное USB устройство) , при 5.0в все нормально. Без перемычки на J1 напряжения (отн. земли) 1- 5.0в, 2- 4.0в, 3-3.2в. Какое напряжение у Вас на 2 контакте J1 без перемычки (32+4 пин AVCC+VCC на контроллере)?

  • DmitryKap к 05.12.2013 в 08:07
  • Войдите, чтобы ответить

Gena,
Win 8 не пробовал за неимением, но на Win 7 x64 и Win XP у меня работает.
На 2 контакте J1 без перемычки 0 вольт.

  • Gena к 28.08.2014 в 00:45
  • Войдите, чтобы ответить

Вот оригинал на ATmega32U2 PCB 1.8

  • Gena к 29.08.2014 в 11:04
  • Войдите, чтобы ответить

По поводу оригинальной схемы PCB 1.8: контакты 3 и 4 SA2 и Анод VD2 лучше подключить на контакт 2 X2.

  • DanYwil к 25.02.2015 в 21:54
  • Войдите, чтобы ответить

Здравствуйте, а как к нему подключить CFI flash: 29LV400BB? Нигде не могу найти какие пины куда на флеш, только про SPI есть информация.

Отправить ответ

avatar
  Подписаться  
Уведомление о