AndrejChoo / USB-Programmer-parallel-flash-and-eeprom

USB programmer for parallel flash and eeprom with support for high-voltage parallel programming AVR, based on STM32.
Other
8 stars 0 forks source link
avr-hv-programmer eeprom-programmer linux mcs51 parallel-programmer programmer stm32 usb

USB-Programmer-parallel-flash-and-eeprom

USB программатор параллельных Flash, EPROM, EEPROM, микроконтроллеров AVR (в том числе AT89CXX) в режиме высоковольтного параллельного программирования основанный на STM32.

Screevshot

9.04.2023

На данный момент исправлено множество ошибок в основном в прошивке платы-программатора. Немного доработан софт, исправлены некоторые ошибки во вкладке "TestH/W", также там добавлена функция проверки старшего байта данных (D15:8). Исправлена ошибка вылета программы при отключении COM порта (при нажатии на "Disconnect"). Но многие исключения до сих пор ещё не обрабатываются, например при введении некорректных данных в окошки с HEX числами. Также добавлена прошивка для STM32F103Vxx (запускается также и на 103ZGT в 144 выводном корпусе). Возможно, добавлю прошивку для STM32F407V. Мною на данный момент лично протестированы запись/чтение/стирание следующих чипов памяти: 8bit: -W49F020; -SST39VF040; -AM29F040; -W29C040; -AT28C64; 16bit: -MX29L3211; -MX29LV320; -SST39VF1601; Протестирована работа программирования AVR в параллельном (высоковольтном) режиме, в том числе в 8-ногих корпусах.

10.04.2023

Добавлена поддержка: 8bit: -W39V040 HUB Flash; -AT49Fxxx; 16bit: -M29Wxxx; -S29ALxxx; Микросхемы памяти любых семейств большего или меньшего объёма легко добавляются путём редактирования xml файлов в папке программатора. Также теперь доступна возможность добавления новых чипов памяти без внесения изменений в код программы и прошивку программатора (каким образом это сделать, читайте в "help.txt" файле). Добавлять можно не любые чипы, а только те, у которых алгоритмы чтения/записи/стирания аналогичны с таковыми у уже поддерживаемых.

11.04.2023

Добавлена поддержка хабовой флешки PM29FLxxx. Также навёл порядок в папке адаптеров, добавил к ним минимальное описание.

18.04.2023

Изменён алгоритм работы кнопки "Compare", теперь нет необходимости читать чип перед сравнением, это делается автоматически. Добавлена функция "Blank check", теперь не надо рассматривать прочитанный hex на ячейки, отличные от 0xFF. Чтение также происходит автоматически по нажатию кнопки "Blank?".

19.04.2023

Добавлена функция "Swap Byte" для возможности менять местами каждые чётный и нечётный байт записываемого файла. Возможно пригодится для для работы с 16-битными флешками.

23.04.2023

Добавлена поддержка EPROM 27C256/27C512. Работа с 256 проверена на однократно программируеммой AM27C256, работа с 512 пока в железе на проверена, теоретически должны шиться. Пока не добавлена функция стирания для электрически стираемых моделей типа W27C, SST27SF. Добавлю позже, когда получу рабочие образцы. Также должны работать и УФ стираемые модели при условии установки нужного уровня напряжения VPP. Платы переходников также добавлены в папку "PCB/Adapters". Будьте внимательны с джамперами.

26.04.2023

Переработал основную плату программатора: добавлен один джампер (переключение адресной линии А18 между А18 и VPP для программирования некоторых EPROM 27С в корпусе DIP32 в переходнике DIP32 для флешек 29x); добавлена разводка для транзисторных ключей управления напряжением VPP параллельно с разводкой под реле; и самое интересное - добавлена разводка для преобразователя напряжения от ШИМ самого микроконтроллера с возможностью контроля напряжения по АЦП для автоматической установки уровня напряжения VPP (параллельно сохранена разводка для преобразователя на MC34063). Схему, прошивки и софт пока готовлю к релизу. Всё будет работать и на старой версии платы.

2.05.2023

Добавлена обработка некоторых внештатных событий в программе для предотвращения её "аварийного" завершения. Добавлен новый переходник DIP32 для EEPROM 27x010, 27x020, 27x040. Обновление софта и прошивки будут в ближайшее время, когда получу образцы для тестов.

3.05.2023

Проверена работа программатора с UV EPROM M27C256 и FM27C010 (новый адаптер DIP32 для EPROM). Всё шьётся отлично, внешнее питание VCC не потребовалось, прошивается и при 5 Вольтах. Прошивки и софт обновлены.

4.05.2023

Добавлен новый адаптер для 16-битных EPROM и EEPROM типа M27C800, MX29F1615 в корпусе DIP42. В софт и прошивку добавлена поддержка MX29F1615, позже добавлю поддержку M27С800, когда получу образец на тесты.

6.05.2023

Добавлена поддержка микроконтроллеров AT89C51/52 в режиме высоковольтного параллельного программирования. Также добавлен адаптер для данных микроконтроллеров в корпусе DIP40 и схема адаптера. Проверена работа с UV EPROM AM27C010 - прошивается корректно.

7.05.2023

Добавлена поддержка микроконтроллеров AT89C1051/2051/4051. Также добавлен адаптер для этих МК в корпусе DIP20.

11.05.2023

На этот раз - масштабное обновление. Добавлен и опробован новый дискретный модуль повышающего DC-DC преобразователя с цифровым управлением для автоматической установки напряжения VPP. От идеи преобразователя на самом STM я решил отказаться, так как непрерывная коррекция напряжения отнимала бы валовую долю процессорного времени. Поэтому преобразователь был выполнен в виде отдельного модуля, который устанавливается на основную плату в виде "бутерброда" (смотрите инструкцию по модификации основной платы в папке "Hardware"). Позже добавлю новую разводку платы уже с новым преобразователем. Софт и прошивки обновлены. Старые версии платы также будут без проблем работать с новым софтом и прошивками. В программе добавлена новая функция во вкладке "Test HW", которая позволяет установить уровень напряжения VPP и проверить корректность его установки. Работа нового преобразователя проверена на, наверное, самом "прожорливом" из имеющихся у меня чипе памяти MBM2764, который программируется при уровне VPP - 21 Вольт, прошился успешно. Также проверил работу на AT89C52, тоже всё отлично. Просадок напряжения во время процесса записи нет.

12.05.2023

Добавлена новая версия платы (v2.1) с разводкой под новый автоматический преобразователь напряжения. Также исправлены некоторые ошибки. Сделана разводка под транзисторные ключи для коммутации OE и A9 вместо реле (ещё не тестировал, разводка под реле осталась). Также подписал практически все компоненты. Проверена работа с M27C2001 (2Mx8) - прошилась с первого раза без ошибок.

28.05.2023

Наконец-то окончательно избавился от реле. Теперь вместо реле используются транзисторные ключи, что значительно снижает помехи по питанию во время срабатывания реле. Работа опробована на самых требовательных к VPP микросхемах EPROM. Схему модификации смотрите в разделе "Hardware". В последних двух версиях платы разводка под ключи вместо реле уже есть. Также была проверена работа с электрически стираемыми EEPROM SST27SF512, всё работает отлично. Должны также работать W27C512, они программируются точно также. К сожалению те образцы, что я получил от китайских "товарищей" с Али оказались нерабочими, так что проверить не на чем. Прошивка и софт остались прежними, за исключением файла "x27x512.xml", он дополнен новыми моделями микросхем памяти.

1.06.2023

Немного подкорректировал разводку последней версии платы: перенёс USB разъём на верхнюю сторону платы (разводка под разъём на нижней стороне также осталась). Правда, его расположение не очень удобное - на углу платы. Добавлены перемычки на пины питания для возможности установки STM32F407 (есть отличия по 1 пину на стороне 1-25). Также сделал по толще некоторые линии питания. Подправил кое-где маску. В остальном без изменений.

24.06.23

Получил платы версии v2.1 с pcbway, собрал и протестировал. Это окончательный вариант платы, больше никаких изменений не будет. Фото платы есть в папке HARDWARE/IMAGES.

25.02.24

Переписал софт на Qt. Теперь есть возможность использовать на Linux. Скомпилировал под Linux x64, Linux aarch64, Windows x64. В Qt версии не реализованы функции вкладки "Test HW". Для запуска на Linux необходимо установить QSerialport, qt-base. Возможно, потребуются ещё какие-то недостающие пакеты. Проверить не могу, так как у меня на всех ОС установлен Qt-creator со всем необходимым. Qt версия для Windows скомпилирована со статическими библиотеками, должна работать "из коробки". Возможно, особенно на Fedora, будет необходимо предоставит права доступа к /dev/ttyACM0 - пишем в терминале: sudo chmod a+rw /dev/ttyACM0. На Windows Qt-версия работает точно так же, но мне больше нравится C# версия программы.