https://github.com/andrejchoo/uart_prog
Programmer spi flash 25xx, i2c eeprom 24xx and microwire eeprom 93xx on arduino
https://github.com/andrejchoo/uart_prog
arduino eeprom-programmer programmer spi-flash-programmers
Last synced: 3 months ago
JSON representation
Programmer spi flash 25xx, i2c eeprom 24xx and microwire eeprom 93xx on arduino
- Host: GitHub
- URL: https://github.com/andrejchoo/uart_prog
- Owner: AndrejChoo
- License: gpl-2.0
- Created: 2024-11-25T06:55:53.000Z (7 months ago)
- Default Branch: main
- Last Pushed: 2025-01-04T08:26:48.000Z (6 months ago)
- Last Synced: 2025-01-31T01:52:44.391Z (5 months ago)
- Topics: arduino, eeprom-programmer, programmer, spi-flash-programmers
- Language: C
- Homepage:
- Size: 11.4 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# uart_prog
Programmer spi flash 25xx, i2c eeprom 24xx and microwire eeprom 93xx on arduino.Проект позволяет сделать из arduino nano/uno (а при желании - из любого микроконтроллера, имеющего на борту UART,SPI,I2C и хотя бы 1Кб ОЗУ) программатор SPI-Flash 25-й серии, I2C-EEPROM 24-й серии и Microwire EEPROM 93-й серии. Программируемые микросхемы можно подключать прямо к ножкам ардуины проводами (для 24хх еепром, необходимо подтянуть линии SCL, SDA к плюсу питания) см. схему подключения:

Программа для ПК написана на C# для Windows и переписана на Qt для Linux и Windows. Она имеет графическую оболочку, что значительно упрощает работу. Внешний вид программы:
При работе на Linux потребуется установить некоторые пакеты Qt (qserialport, qt-base, возможно ещё какие-нибудь, можно проверить при запуске из терминала), также возможно потребуется предоставить права доступа для /dev/ttyUSB0 (chmod a+rw /dev/ttyUSB0). На Ubuntu возможны проблемы с ch340 USB-UART-преобразователем, он может конфликтовать с пакетом brltty, его можно удалить.
Скорость работы программатора с обоими типами ЕЕПРОМ достаточно высокая, чтение занимает секунды для самого ёмкого чипа 24С256, а вот скорость работы с флешками 25хх сильно ограничена UART-ом, чтение одного Мегабайта может занимать от 1,5 минут (исключение - микроконтроллеры с аппаратным USB и обменом по CDC, в этом случае чтение 1 Мегабайта занимает несколько секунд).
В списке поддерживаемых SPI-Flash 25-й серии указаны только флешки компании Winbond, но так как многие флешки разных производителей программируются однотипно, просто выбираем из списка флешку соответствующего объёма. В данной версии прошивки будут корректно работать флешки до 8 Мегабайт включительно (с трёхбайтной адресацией до w25q64 включительно), w25q128 и более я не проверял, да и время работы с такой флешкой будет неадекватное.
Касаемо моделей еепром обоих типов - в списке представлены универсальные модели без учёта производителя.В папке "source" находятся исходные коды проекта для atmega328p, написанные под avr-gcc. Проект можно легко переписать под любой другой микроконтроллер. Для этого необходимо переписать функции инициализации периферии (GPIO, USART, SPI, I2C) и реализовать прерывание по приёму байта по USART.
HEX-файл прошивки в папке "firmware" скомпилирован для atmega328p (arduino nano/uno), работающей от кварца на 16MHz. Плату ардуино можно прошить через встроенный USB с помощью программы "ArduinoUploader" и ей подобным.
Также добавлены скомпиллированные прошивки ещё для некоторых плат/микроконтроллеров как распространённых, так и экзотических (эти прошивки толком не проверялись, некоторые функции могут работать некорректно!). Все прошивки снабжены инструкцией по подключению программируемых чипов.