logotipo de saturno Miniprogramador flash CH341A
Instrucciones

Miniprogramador flash CH341A

Programador Mini Flash Saturn CH341A

Contenido: [Cosas aleatorias y no estructuradas de Dobrica PavlinuÅ¡iÄ]

¡Este es un dispositivo de 5V sin modificaciones! A mi me funciona(tm) pero estas advertido http://www.eevblog.com/forum/repair/ch341a-serial-memory-programmer-power-supply-fix/Simplemente levante el pasador 28 y coloque un poco de cinta adhesiva debajo para evitar cortocircuitos. Luego suelde un cable de este pin al pin 2 de AMS1117 y también al C4. El lado del C4 a conectar es el que está conectado al pin 341 del CH9A.
CHM341A-3V3-fix.jpg

jersey con alfileres

Modo programador flash 1-2 SPI
2-3 modo serie TTL
compatible de fábrica con flashrom, probablemente una mejor opción, pero de todos modos:

https://github.com/setarcos/ch341prog

dpavlin@nuc:/nuc/ch341a$ git clon https://github.com/setarcos/ch341prog
Clonando en 'ch341prog'...
remoto: Contando objetos: 104, listo.
remoto: Total 104 (delta 0), reutilizado 0 (delta 0), paquete reutilizado 104
Recepción de objetos: 100% (104/104), 34.79 KiB | 0 bytes/s, listo.
Resolviendo deltas: 100% (61/61), listo.
Comprobando conectividad… hecho.
dpavlin@nuc:/nuc/ch341a$ cd ch341prog/
dpavlin@nuc:/nuc/ch341a/ch341prog$ hacer
gcc -std=gnu99 -Wall ch341a.c main.c -o ch341prog -lusb-1.0
dpavlin@nuc:/nuc/ch341a/ch341prog$ ./ch341prog

Uso:

-h, –ayuda a mostrar este mensaje
-i, –info lee la información de identificación del chip
-e, –erase borra todo el chip
-l, –length longitud establecida manualmente
-w, –escribir <filenombre> escribir chip con datos de filenombre
-r, –leer <filenombre> leer chip y guardar datos en filenombre
-t, –turbo aumenta la velocidad del bus i2c (-tt para usar una velocidad mucho más rápida)
-d, –doblar el doble de la velocidad del bus spi

I2C en el espacio de usuario

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: una herramienta de programación EEPROM i2c para el IC WCH CH341a
Versión 0.5 copyright (c) 2011 asbokid
Este programa no tiene ninguna garantía; Este es un software gratuito,
y puedes redistribuirlo bajo ciertas condiciones:
Licencia GNU GPL v3: http://www.gnu.org/licenses/gpl.html

Uso:
-h, –ayuda a mostrar este texto
-v, –salida detallada detallada
-d, –debug salida de depuración
-s, –tamaño tamaño de EEPROM {24c32|24c64}
-e, –erase borrar EEPROM (rellenar con 0xff)
-w, –escribir <filenombre> escribir EEPROM con imagen de filenombre
-r, –leer <filenombre> leer EEPROM y guardar la imagen en filenombre
Examparchivo: ch341eeprom -v -s 24c64 -w bootrom.bin

flash ROM SPI

Ya no es necesario, incluido en la flashrom principal.
clon de git https://github.com/urjaman/flashrom/
git checkout -b origen/ch341a origen/ch341a
dpavlin@nuc:/nuc/flashrom$ sudo apt-get install pciutils-dev

módulo spi del kernel de Linux

dpavlin@nuc:/nuc$ git clon https://github.com/gschorcht/spi-ch341-usb.git
Clonando en 'spi-ch341-usb'...
remoto: Contando objetos: 63, listo.
remoto: Total 63 (delta 0), reutilizado 0 (delta 0), paquete reutilizado 63
Desembalaje de objetos: 100% (63/63), listo.
dpavlin@nuc:/nuc$ cd spi-ch341-usb
dpavlin@nuc:/nuc/spi-ch341-usb$ hacer
hacer -C /usr/src/linux-headers-4.14.0-3-amd64/ M=/nuc/spi-ch341-módulos usb
make[1]: Ingresando al directorio '/usr/src/linux-headers-4.14.0-3-amd64'
CC [M] /nuc/spi-ch341-usb/spi-ch341-usb.o
Módulos de construcción, stage 2.
MODPOST 1 módulos
CC /nuc/spi-ch341-usb/spi-ch341-usb.mod.o
LD [M] /nuc/spi-ch341-usb/spi-ch341-usb.ko
make[1]: Saliendo del directorio ‘/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] contraseña para 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: salida cs0 esclavo SPI con cs=0
[525021.048285] spi-ch341-usb 2-2.1.4:1.0: ch341_cfg_probe: salida cs1 esclavo SPI con cs=1
[525021.048287] spi-ch341-usb 2-2.1.4:1.0: ch341_cfg_probe: salida cs2 esclavo SPI con cs=2
[525021.048290] spi-ch341-usb 2-2.1.4:1.0: ch341_cfg_probe: entrada gpio4 gpio=0 irq=0 (hwirq)
[525021.048292] spi-ch341-usb 2-2.1.4:1.0: ch341_cfg_probe: entrada gpio5 gpio=1 irq=1
[525021.048296] spi-ch341-usb 2-2.1.4:1.0: ch341_spi_probe: maestro SPI conectado al bus SPI 0
[525021.048426] spi-ch341-usb 2-2.1.4:1.0: ch341_spi_probe: dispositivo SPI /dev/spidev0.0 creado
[525021.048516] spi-ch341-usb 2-2.1.4:1.0: ch341_spi_probe: dispositivo SPI /dev/spidev0.1 creado
[525021.048596] spi-ch341-usb 2-2.1.4:1.0: ch341_spi_probe: dispositivo SPI /dev/spidev0.2 creado
[525021.049147] spi-ch341-usb 2-2.1.4:1.0: ch341_usb_probe: conectado
[525021.049194] usbcore: nuevo controlador de interfaz registrado spi-ch341-usb

módulo i2c del kernel de linux

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

raíz@nuc:/nuc# git clon https://github.com/gschorcht/i2c-ch341-usb.git
Clonando en 'i2c-ch341-usb'...
remoto: Contando objetos: 39, listo.
remoto: Total 39 (delta 0), reutilizado 0 (delta 0), paquete reutilizado 39
Desembalaje de objetos: 100% (39/39), listo.
raíz@nuc:/nuc# cd i2c-ch341-usb
raíz@nuc:/nuc/i2c-ch341-usb# hacer
hacer -C /usr/src/linux-headers-4.14.0-3-amd64/ M=/nuc/i2c-ch341-módulos usb
make[1]: Ingresando al directorio '/usr/src/linux-headers-4.14.0-3-amd64'
CC [M] /nuc/i2c-ch341-usb/i2c-ch341-usb.o
Módulos de construcción, stage 2.
MODPOST 1 módulos
CC /nuc/i2c-ch341-usb/i2c-ch341-usb.mod.o
LD [M] /nuc/i2c-ch341-usb/i2c-ch341-usb.ko
make[1]: Saliendo del directorio ‘/usr/src/linux-headers-4.14.0-3-amd64’
raíz@nuc:/nuc/i2c-ch341-usb#
root@nuc:/nuc/i2c-ch341-usb# sudo make install
raíz@nuc:/nuc/i2c-ch341-usb# modprobe i2c-ch341-usb

[Miércoles 7 de febrero 16:37:00 2018] i2c-ch341-usb 2-2.1.4:1.0: ch341_cfg_probe: salida gpio0 gpio=0 irq=0
[Miércoles 7 de febrero 16:37:00 2018] i2c-ch341-usb 2-2.1.4:1.0: ch341_cfg_probe: salida gpio1 gpio=1 irq=1
[Miércoles 7 de febrero 16:37:00 2018] i2c-ch341-usb 2-2.1.4:1.0: ch341_cfg_probe: salida gpio2 gpio=2 irq=2
[Miércoles 7 de febrero 16:37:00 2018] i2c-ch341-usb 2-2.1.4:1.0: ch341_cfg_probe: salida gpio3 gpio=3 irq=3
[Miércoles 7 de febrero 16:37:00 2018] i2c-ch341-usb 2-2.1.4:1.0: ch341_cfg_probe: entrada gpio4 gpio=4 irq=4 (hwirq)
[Miércoles 7 de febrero 16:37:00 2018] i2c-ch341-usb 2-2.1.4:1.0: ch341_cfg_probe: entrada gpio5 gpio=5 irq=5
[Miércoles 7 de febrero 16:37:00 2018] i2c-ch341-usb 2-2.1.4:1.0: ch341_cfg_probe: entrada gpio6 gpio=6 irq=6
[Miércoles 7 de febrero 16:37:00 2018] i2c-ch341-usb 2-2.1.4:1.0: ch341_cfg_probe: entrada gpio7 gpio=7 irq=7
[Miércoles 7 de febrero 16:37:00 2018] i2c-ch341-usb 2-2.1.4:1.0: ch341_i2c_probe: dispositivo i2c creado /dev/i2c-8
[Miércoles 7 de febrero 16:37:00 2018] i2c-ch341-usb 2-2.1.4:1.0: ch341_i2c_set_speed: cambie la velocidad del bus i2c a 100 kbps
[Miércoles 7 de febrero 16:37:00 2018] i2c-ch341-usb 2-2.1.4:1.0: ch341_usb_probe: conectado
[Miércoles 7 de febrero 16:37:00 2018] usbcore: nuevo controlador de interfaz registrado i2c-ch341-usb

esquemas e informacion

http://onetransistor.blogspot.hr/2017/08/ch341a-mini-programmer-schematic.html
http://www.zoobab.com/ch341-usb-spi-i2c-uart-isp-dongle
Agregué la distribución de pines soic 8 sobre el zócalo zif, porque la posición del pin 1 no es obvia (ni está claramente marcada en ninguna parte de la parte superior). Te sugiero que arregles eso con plata.

Programador Mini Flash Saturn CH341A - fig1

onetransistor.blogspot.com

esquemas alternativos

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

Documentos / Recursos

Programador Mini Flash Saturn CH341A [pdf] Instrucciones
Programador Mini Flash CH341A, CH341A, Programador Mini Flash, Programador Flash, Programador

Referencias

Deja un comentario

Su dirección de correo electrónico no será publicada. Los campos obligatorios están marcados *