土星标志 CH341A 迷你闪存编程器
指示

CH341A 迷你闪存编程器

saturn CH341A 迷你闪存编程器

内容:[Dobrica PavlinuÅ¡iä 的随机非结构化内容]

这是5V设备,未经修改!它对我有用,但你已经被警告过 http://www.eevblog.com/forum/repair/ch341a-serial-memory-programmer-power-supply-fix/只需提起引脚 28 并在其下方放一些胶带即可防止短路。然后将一根导线从该引脚焊接到 AMS2 的引脚 1117 以及 C4。 C4 要连接的一侧是连接到 CH341A 引脚 9 的一侧。
CHM341A-3V3-修复.jpg

引脚上的跳线

1-2 SPI Flash 编程器模式
2-3 TTL串口模式
flashrom 支持开箱即用,可能是更好的选择,但无论如何:

https://github.com/setarcos/ch341prog

dpavlin@nuc:/nuc/ch341a$ git 克隆 https://github.com/setarcos/ch341prog
克隆到“ch341prog”...
远程:计数对象:104,完成。
远程:总计 104(增量 0),重用 0(增量 0),包重用 104
接收对象:100% (104/104),34.79 KiB | 0 字节/秒,完成。
解决增量:100%(61/61),完成。
检查连接...完成。
dpavlin@nuc:/nuc/ch341a$ cd ch341prog/
dpavlin@nuc:/nuc/ch341a/ch341prog$ 使
gcc -std=gnu99 -Wall ch341a.c main.c -o ch341prog -lusb-1.0
dpavlin@nuc:/nuc/ch341a/ch341prog$./ch341prog

用法:

-h, –help 显示此消息
-i, –info 读取芯片ID信息
-e, –erase 擦除整个芯片
-l, –length 手动设置长度
-w, –写入 <file名称> 将数据写入芯片 file姓名
-r, –读<file名称>读取芯片并保存数据到 file姓名
-t, –turbo 增加 i2c 总线速度(-tt 使用更快的速度)
-d, –double 双倍 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 – 用于 WCH CH2a IC 的 i341c EEPROM 编程工具
版本 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

不再需要,包含在主线 flashrom 中
git 克隆 https://github.com/urjaman/flashrom/
git checkout -b 原点/ch341a 原点/ch341a
dpavlin@nuc:/nuc/flashrom$ sudo apt-get install pciutils-dev

Linux内核spi模块

dpavlin@nuc:/nuc$ git 克隆 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$ 使
制作 -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
建筑模块,stag和2。
MODPOST 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

Linux内核i2c模块

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

root@nuc:/nuc# git 克隆 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
制作 -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’
抄送 [M] /nuc/i2c-ch341-usb/i2c-ch341-usb.o
建筑模块,stag和2。
MODPOST 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”
根@ 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:2] i341c-ch2-usb 2.1.4-1.0:341: ch0_cfg_probe: 输出 gpio0 gpio=0 irq=XNUMX
[7 年 16 月 37 日星期三 00:2018:2] i341c-ch2-usb 2.1.4-1.0:341: ch1_cfg_probe: 输出 gpio1 gpio=1 irq=XNUMX
[7 年 16 月 37 日星期三 00:2018:2] i341c-ch2-usb 2.1.4-1.0:341: ch2_cfg_probe: 输出 gpio2 gpio=2 irq=XNUMX
[7 年 16 月 37 日星期三 00:2018:2] i341c-ch2-usb 2.1.4-1.0:341: ch3_cfg_probe: 输出 gpio3 gpio=3 irq=XNUMX
[7 年 16 月 37 日星期三 00:2018:2] i341c-ch2-usb 2.1.4-1.0:341: ch4_cfg_probe: 输入 gpio4 gpio=4 irq=XNUMX (hwirq)
[7 年 16 月 37 日星期三 00:2018:2] i341c-ch2-usb 2.1.4-1.0:341: ch5_cfg_probe: 输入 gpio5 gpio=5 irq=XNUMX
[7 年 16 月 37 日星期三 00:2018:2] i341c-ch2-usb 2.1.4-1.0:341: ch6_cfg_probe: 输入 gpio6 gpio=6 irq=XNUMX
[7 年 16 月 37 日星期三 00:2018:2] i341c-ch2-usb 2.1.4-1.0:341: ch7_cfg_probe: 输入 gpio7 gpio=7 irq=XNUMX
[7 年 16 月 37 日星期三 00:2018:2] i341c-ch2-usb 2.1.4-1.0:341: ch2_i2c_probe: 创建 i2c 设备 /dev/i8c-XNUMX
[7 年 16 月 37 日星期三 00:2018:2] i341c-ch2-usb 2.1.4-1.0:341:ch2_i2c_set_speed:将 i100c 总线速度更改为 XNUMX kbps
[7 年 16 月 37 日星期三 00:2018:2] i341c-ch2-usb 2.1.4-1.0:341: chXNUMX_usb_probe: 已连接
[Wed Feb 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
我在 zif 插座上添加了 soic 8 引脚排列,因为引脚 1 的位置不明显(或在顶部的任何位置清晰标记)。我建议你用银锐修复这个问题。

saturn CH341A 迷你闪存编程器 - 图 1

onetransistor.blogspot.com

替代原理图

https://github.com/Upcycle-Electronics/CH341A-Pro
ch341Apro_示意图V01.pdf

文件/资源

saturn CH341A 迷你闪存编程器 [pdf] 指示
CH341A 迷你Flash编程器, CH341A, 迷你Flash编程器, Flash编程器, 编程器

参考

发表评论

您的电子邮件地址不会被公开。 必填字段已标记 *