USB программатор параллельных Flash, EPROM, EEPROM, микроконтроллеров AVR (в том числе AT89CXX) в режиме высоковольтного параллельного программирования основанный на STM32.
На данный момент исправлено множество ошибок в основном в прошивке платы-программатора. Немного доработан софт, исправлены некоторые ошибки во вкладке "TestH/W", также там добавлена функция проверки старшего байта данных (D15:8). Исправлена ошибка вылета программы при отключении COM порта (при нажатии на "Disconnect"). Но многие исключения до сих пор ещё не обрабатываются, например при введении некорректных данных в окошки с HEX числами. Также добавлена прошивка для STM32F103Vxx (запускается также и на 103ZGT в 144 выводном корпусе). Возможно, добавлю прошивку для STM32F407V. Мною на данный момент лично протестированы запись/чтение/стирание следующих чипов памяти: 8bit: -W49F020; -SST39VF040; -AM29F040; -W29C040; -AT28C64; 16bit: -MX29L3211; -MX29LV320; -SST39VF1601; Протестирована работа программирования AVR в параллельном (высоковольтном) режиме, в том числе в 8-ногих корпусах.
Добавлена поддержка: 8bit: -W39V040 HUB Flash; -AT49Fxxx; 16bit: -M29Wxxx; -S29ALxxx; Микросхемы памяти любых семейств большего или меньшего объёма легко добавляются путём редактирования xml файлов в папке программатора. Также теперь доступна возможность добавления новых чипов памяти без внесения изменений в код программы и прошивку программатора (каким образом это сделать, читайте в "help.txt" файле). Добавлять можно не любые чипы, а только те, у которых алгоритмы чтения/записи/стирания аналогичны с таковыми у уже поддерживаемых.
Добавлена поддержка хабовой флешки PM29FLxxx. Также навёл порядок в папке адаптеров, добавил к ним минимальное описание.
Изменён алгоритм работы кнопки "Compare", теперь нет необходимости читать чип перед сравнением, это делается автоматически. Добавлена функция "Blank check", теперь не надо рассматривать прочитанный hex на ячейки, отличные от 0xFF. Чтение также происходит автоматически по нажатию кнопки "Blank?".
Добавлена функция "Swap Byte" для возможности менять местами каждые чётный и нечётный байт записываемого файла. Возможно пригодится для для работы с 16-битными флешками.
Добавлена поддержка EPROM 27C256/27C512. Работа с 256 проверена на однократно программируеммой AM27C256, работа с 512 пока в железе на проверена, теоретически должны шиться. Пока не добавлена функция стирания для электрически стираемых моделей типа W27C, SST27SF. Добавлю позже, когда получу рабочие образцы. Также должны работать и УФ стираемые модели при условии установки нужного уровня напряжения VPP. Платы переходников также добавлены в папку "PCB/Adapters". Будьте внимательны с джамперами.
Переработал основную плату программатора: добавлен один джампер (переключение адресной линии А18 между А18 и VPP для программирования некоторых EPROM 27С в корпусе DIP32 в переходнике DIP32 для флешек 29x); добавлена разводка для транзисторных ключей управления напряжением VPP параллельно с разводкой под реле; и самое интересное - добавлена разводка для преобразователя напряжения от ШИМ самого микроконтроллера с возможностью контроля напряжения по АЦП для автоматической установки уровня напряжения VPP (параллельно сохранена разводка для преобразователя на MC34063). Схему, прошивки и софт пока готовлю к релизу. Всё будет работать и на старой версии платы.
Добавлена обработка некоторых внештатных событий в программе для предотвращения её "аварийного" завершения. Добавлен новый переходник DIP32 для EEPROM 27x010, 27x020, 27x040. Обновление софта и прошивки будут в ближайшее время, когда получу образцы для тестов.
Проверена работа программатора с UV EPROM M27C256 и FM27C010 (новый адаптер DIP32 для EPROM). Всё шьётся отлично, внешнее питание VCC не потребовалось, прошивается и при 5 Вольтах. Прошивки и софт обновлены.
Добавлен новый адаптер для 16-битных EPROM и EEPROM типа M27C800, MX29F1615 в корпусе DIP42. В софт и прошивку добавлена поддержка MX29F1615, позже добавлю поддержку M27С800, когда получу образец на тесты.
Добавлена поддержка микроконтроллеров AT89C51/52 в режиме высоковольтного параллельного программирования. Также добавлен адаптер для данных микроконтроллеров в корпусе DIP40 и схема адаптера. Проверена работа с UV EPROM AM27C010 - прошивается корректно.
Добавлена поддержка микроконтроллеров AT89C1051/2051/4051. Также добавлен адаптер для этих МК в корпусе DIP20.
На этот раз - масштабное обновление. Добавлен и опробован новый дискретный модуль повышающего DC-DC преобразователя с цифровым управлением для автоматической установки напряжения VPP. От идеи преобразователя на самом STM я решил отказаться, так как непрерывная коррекция напряжения отнимала бы валовую долю процессорного времени. Поэтому преобразователь был выполнен в виде отдельного модуля, который устанавливается на основную плату в виде "бутерброда" (смотрите инструкцию по модификации основной платы в папке "Hardware"). Позже добавлю новую разводку платы уже с новым преобразователем. Софт и прошивки обновлены. Старые версии платы также будут без проблем работать с новым софтом и прошивками. В программе добавлена новая функция во вкладке "Test HW", которая позволяет установить уровень напряжения VPP и проверить корректность его установки. Работа нового преобразователя проверена на, наверное, самом "прожорливом" из имеющихся у меня чипе памяти MBM2764, который программируется при уровне VPP - 21 Вольт, прошился успешно. Также проверил работу на AT89C52, тоже всё отлично. Просадок напряжения во время процесса записи нет.
Добавлена новая версия платы (v2.1) с разводкой под новый автоматический преобразователь напряжения. Также исправлены некоторые ошибки. Сделана разводка под транзисторные ключи для коммутации OE и A9 вместо реле (ещё не тестировал, разводка под реле осталась). Также подписал практически все компоненты. Проверена работа с M27C2001 (2Mx8) - прошилась с первого раза без ошибок.
Наконец-то окончательно избавился от реле. Теперь вместо реле используются транзисторные ключи, что значительно снижает помехи по питанию во время срабатывания реле. Работа опробована на самых требовательных к VPP микросхемах EPROM. Схему модификации смотрите в разделе "Hardware". В последних двух версиях платы разводка под ключи вместо реле уже есть. Также была проверена работа с электрически стираемыми EEPROM SST27SF512, всё работает отлично. Должны также работать W27C512, они программируются точно также. К сожалению те образцы, что я получил от китайских "товарищей" с Али оказались нерабочими, так что проверить не на чем. Прошивка и софт остались прежними, за исключением файла "x27x512.xml", он дополнен новыми моделями микросхем памяти.
Немного подкорректировал разводку последней версии платы: перенёс USB разъём на верхнюю сторону платы (разводка под разъём на нижней стороне также осталась). Правда, его расположение не очень удобное - на углу платы. Добавлены перемычки на пины питания для возможности установки STM32F407 (есть отличия по 1 пину на стороне 1-25). Также сделал по толще некоторые линии питания. Подправил кое-где маску. В остальном без изменений.
Получил платы версии v2.1 с pcbway, собрал и протестировал. Это окончательный вариант платы, больше никаких изменений не будет. Фото платы есть в папке HARDWARE/IMAGES.
Переписал софт на 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# версия программы.
Разработал упрощённую версию программатора на stm32f103c8t6.
Для формирования шины адреса используются три сдвиговых регистра 74hc595. Шина данных только 8 бит, используется всего один буффер 74lvc8t245. Источник высокого напряжения аналогичный "полной версии" программатора - с автоматической установкой уровня VPP. Адаптеры также подходят от "большого брата", кроме 16-битных. Скорость работы программатора несколько ниже, чем у старшей версии ввиду нового последовательного метода формирования сигналов шины адреса, но не критично. Функционал данной версии программатора, естественно, урезан. Поддерживаются только 8-битные микросхемы памяти. На данный момент прошивка находится в стадии разработки, пока поддерживаются только флешки типа W29Cxxx, AM29Fxxx и им подобные. Буду постепенно добавлять поддержку других микросхем памяти, в первую очередь УФ-стираемых EPROM.
На сегодня в Light-версии программатора опробованы и работают: параллельные флешки W29CXXX, параллельные EEPROM AT28C64/C256, параллельные EEPROM W27C512 (должны работать и УФ-стираемые EPROM типа M27C512), I2C EEPROM серии 24ХХХ (на разъёме I2C). Не проверял, но должны работать флешки типа AM29F010/020/040, SST39F512/010/020/040, AT29FXXX и им подобные восьмибитные.