Сатурн логотип Мини-флеш-программатор CH341A
Инструкции

Мини-флеш-программатор CH341A

Saturn CH341A Мини-флэш-программатор

Содержание: [Случайные неструктурированные вещи Добрицы Павлинушайча]

Это устройство 5В без доработок! У меня это работает (тм), но вас предупредили http://www.eevblog.com/forum/repair/ch341a-serial-memory-programmer-power-supply-fix/Просто поднимите контакт 28 и подложите под него изоленту, чтобы предотвратить короткое замыкание. Затем припаяйте один провод от этого контакта к контакту 2 AMS1117, а также к C4. Подключаемая сторона C4 — это та, которая подключена к контакту 341 CH9A.
CHM341A-3V3-fix.jpg

перемычка на булавках

1-2 режим программатора флэш-памяти SPI
2-3 TTL последовательный режим
встроенная поддержка flashrom, возможно, лучший вариант, но все равно:

https://github.com/setarcos/ch341prog

dpavlin@nuc:/nuc/ch341a$ git clone https://github.com/setarcos/ch341prog
Клонирование в «ch341prog»…
удаленно: Подсчет объектов: 104, выполнено.
удаленно: всего 104 (дельта 0), повторно использовано 0 (дельта 0), повторно использовано в пакете 104
Получение объектов: 100% (104/104), 34.79 КиБ | 0 байт/с, готово.
Разрешение дельт: 100% (61/61), выполнено.
Проверка подключения… завершена.
dpavlin@nuc:/nuc/ch341a$ cd ch341prog/
dpavlin@nuc:/nuc/ch341a/ch341prog$ make
gcc -std=gnu99 -Wall ch341a.c main.c -o ch341prog -lusb-1.0
dpavlin@nuc:/nuc/ch341a/ch341prog$ ./ch341prog

Использование:

-h, –help отобразить это сообщение
-i, –info прочитать информацию об идентификаторе чипа
-e, –erase стереть весь чип
-l, –length вручную установить длину
-w, – напишиfileимя> записать чип с данными из fileимя
-r, –читать <fileимя> прочитать чип и сохранить данные в fileимя
-t, –turbo увеличивает скорость шины i2c (-tt для использования гораздо более высокой скорости)
-d, – удвоить скорость шины spi

I2C в пользовательском пространстве

https://sourceforge.net/projects/ch341eepromtool/

dpavlin@nuc:/nuc/ch341a/ch341eepromtool_0.5$ gcc -o ch341eeprom ch341eeprom.c ch341funcs.c -lusb-1.0
dpavlin@nuc:/nuc/ch341a/ch341eepromtool_0.5$
dpavlin@nuc:/nuc/ch341a/ch341eepromtool_0.5$ ./ch341eeprom
ch341eeprom - инструмент программирования EEPROM i2c для микросхемы WCH CH341a.
Авторские права на версию 0.5 (c) 2011 asbokid
Эта программа не имеет никаких гарантий; Это бесплатное программное обеспечение,
и вы можете распространять его при определенных условиях:
Лицензия GNU GPL v3: http://www.gnu.org/licenses/gpl.html

Использование:
-h, –help отобразить этот текст
-v, –verbose подробный вывод
-d, –debug отладочный вывод
-s, –size размер EEPROM {24c32|24c64}
-e, –erase стереть EEPROM (заполнить 0xff)
-w, – напишиfileимя> записать EEPROM с образом из fileимя
-r, –читать <fileимя> прочитать EEPROM и сохранить изображение в fileимя
Example: ch341eeprom -v -s 24c64 -w bootrom.bin

флэш-память SPI

Больше не нужен, включен в основной флэшром.
git-клон https://github.com/urjaman/flashrom/
git checkout -b происхождение/ch341a происхождение/ch341a
dpavlin@nuc:/nuc/flashrom$ sudo apt-get install pciutils-dev

модуль spi ядра Linux

dpavlin@nuc:/nuc$ git clone https://github.com/gschorcht/spi-ch341-usb.git
Клонирование в «spi-ch341-usb»…
удаленно: Подсчет объектов: 63, выполнено.
удаленно: всего 63 (дельта 0), повторно использовано 0 (дельта 0), повторно использовано в пакете 63
Распаковка объектов: 100% (63/63), выполнено.
dpavlin@nuc:/nuc$ cd spi-ch341-usb
dpavlin@nuc:/nuc/spi-ch341-usb$ make
make -C /usr/src/linux-headers-4.14.0-3-amd64/ M=/nuc/spi-ch341-usb модули
make[1]: вход в каталог «/usr/src/linux-headers-4.14.0-3-amd64»
CC [M] /nuc/spi-ch341-usb/spi-ch341-usb.o
Строительные модули, секtagи 2.
Модули МОДПОСТ 1
CC /nuc/spi-ch341-usb/spi-ch341-usb.mod.o
LD [M] /nuc/spi-ch341-usb/spi-ch341-usb.ko
make[1]: Выход из каталога «/usr/src/linux-headers-4.14.0-3-amd64»
dpavlin@nuc:/nuc/spi-ch341-usb$
dpavlin@nuc:/nuc/spi-ch341-usb$ sudo make install
[sudo] пароль для dpavlin:
dpavlin@nuc:/nuc/spi-ch341-usb$ sudo modprobe spi-ch341-usb
[525021.048281] spi-ch341-usb 2-2.1.4:1.0: ch341_cfg_probe: выход cs0 подчиненное устройство SPI с cs=0
[525021.048285] spi-ch341-usb 2-2.1.4:1.0: ch341_cfg_probe: выход cs1 подчиненное устройство SPI с cs=1
[525021.048287] spi-ch341-usb 2-2.1.4:1.0: ch341_cfg_probe: выход cs2 подчиненное устройство SPI с cs=2
[525021.048290] spi-ch341-usb 2-2.1.4:1.0: ch341_cfg_probe: вход gpio4 gpio=0 irq=0 (hwirq)
[525021.048292] spi-ch341-usb 2-2.1.4:1.0: ch341_cfg_probe: вход gpio5 gpio=1 irq=1
[525021.048296] spi-ch341-usb 2-2.1.4:1.0: ch341_spi_probe: Мастер SPI подключен к шине SPI 0
[525021.048426] spi-ch341-usb 2-2.1.4:1.0: ch341_spi_probe: создано устройство SPI /dev/spidev0.0
[525021.048516] spi-ch341-usb 2-2.1.4:1.0: ch341_spi_probe: создано устройство SPI /dev/spidev0.1
[525021.048596] spi-ch341-usb 2-2.1.4:1.0: ch341_spi_probe: создано устройство SPI /dev/spidev0.2
[525021.049147] spi-ch341-usb 2-2.1.4:1.0: ch341_usb_probe: подключено
[525021.049194] usbcore: зарегистрирован новый драйвер интерфейса spi-ch341-usb

модуль i2c ядра Linux

https://github.com/gschorcht/i2c-ch341-usb

root@nuc:/nuc# git clone https://github.com/gschorcht/i2c-ch341-usb.git
Клонирование в «i2c-ch341-usb»…
удаленно: Подсчет объектов: 39, выполнено.
удаленно: всего 39 (дельта 0), повторно использовано 0 (дельта 0), повторно использовано в пакете 39
Распаковка объектов: 100% (39/39), выполнено.
root@nuc:/nuc# cd i2c-ch341-usb
root@nuc:/nuc/i2c-ch341-usb# make
make -C /usr/src/linux-headers-4.14.0-3-amd64/ M=/nuc/i2c-ch341-usb модули
make[1]: вход в каталог «/usr/src/linux-headers-4.14.0-3-amd64»
CC [M] /nuc/i2c-ch341-usb/i2c-ch341-usb.o
Строительные модули, секtagи 2.
Модули МОДПОСТ 1
CC /nuc/i2c-ch341-usb/i2c-ch341-usb.mod.o
LD [M] /nuc/i2c-ch341-usb/i2c-ch341-usb.ko
make[1]: Выход из каталога «/usr/src/linux-headers-4.14.0-3-amd64»
root@nuc:/nuc/i2c-ch341-usb#
root@nuc:/nuc/i2c-ch341-usb# sudo make install
root@nuc:/nuc/i2c-ch341-usb# modprobe i2c-ch341-usb

[Ср, 7 февраля, 16:37:00 2018] i2c-ch341-usb 2-2.1.4:1.0: ch341_cfg_probe: вывод gpio0 gpio=0 irq=0
[Ср, 7 февраля, 16:37:00 2018] i2c-ch341-usb 2-2.1.4:1.0: ch341_cfg_probe: вывод gpio1 gpio=1 irq=1
[Ср, 7 февраля, 16:37:00 2018] i2c-ch341-usb 2-2.1.4:1.0: ch341_cfg_probe: вывод gpio2 gpio=2 irq=2
[Ср, 7 февраля, 16:37:00 2018] i2c-ch341-usb 2-2.1.4:1.0: ch341_cfg_probe: вывод gpio3 gpio=3 irq=3
[Ср, 7 февраля, 16:37:00 2018] i2c-ch341-usb 2-2.1.4:1.0: ch341_cfg_probe: input gpio4 gpio=4 irq=4 (hwirq)
[Ср, 7 февраля, 16:37:00 2018] i2c-ch341-usb 2-2.1.4:1.0: ch341_cfg_probe: input gpio5 gpio=5 irq=5
[Ср, 7 февраля, 16:37:00 2018] i2c-ch341-usb 2-2.1.4:1.0: ch341_cfg_probe: input gpio6 gpio=6 irq=6
[Ср, 7 февраля, 16:37:00 2018] i2c-ch341-usb 2-2.1.4:1.0: ch341_cfg_probe: input gpio7 gpio=7 irq=7
[Ср, 7 февраля, 16:37:00 2018] i2c-ch341-usb 2-2.1.4:1.0: ch341_i2c_probe: создано устройство i2c /dev/i2c-8
[Ср, 7 февраля, 16:37:00 2018] i2c-ch341-usb 2-2.1.4:1.0: ch341_i2c_set_speed: изменить скорость шины i2c на 100 кбит/с
[Ср, 7 февраля, 16:37:00 2018] i2c-ch341-usb 2-2.1.4:1.0: ch341_usb_probe: подключено
[Ср, 7 февраля, 16:37:00 2018] usbcore: зарегистрирован новый драйвер интерфейса i2c-ch341-usb

схемы и информация

http://onetransistor.blogspot.hr/2017/08/ch341a-mini-programmer-schematic.html
http://www.zoobab.com/ch341-usb-spi-i2c-uart-isp-dongle
Я добавил распиновку soic 8 поверх разъема zif, потому что положение контакта 1 неочевидно (или четко отмечено где-нибудь сверху). Я предлагаю вам исправить это с помощью серебряного шарпика.

Saturn CH341A Мини-флэш-программатор — рис.1

onetransistor.blogspot.com

альтернативные схемы

https://github.com/Upcycle-Electronics/CH341A-Pro
ch341Apro_schematicV01.pdf

Документы/Ресурсы

Saturn CH341A Мини-флэш-программатор [pdf] Инструкции
CH341A Mini Flash Programmer, CH341A, Мини-программатор Flash, Программатор Flash, Программатор

Ссылки

Оставьте комментарий

Ваш адрес электронной почты не будет опубликован. Обязательные поля отмечены *