CH341A-nextProgrammer 多电压双模式编程器
简介
基于经典的WCH CH341A的具有多电压(1.8/3.3/5V)目标器件支持和编程器和串口2种模式切换的USB-C接口Flash/EEPROM/FRAM/NAND/AVR编程器。
简介:基于经典的WCH CH341A的具有多电压(1.8/3.3/5V)目标器件支持和编程器和串口2种模式切换的USB-C接口Flash/EEPROM/FRAM/NAND/AVR编程器。开源协议
:CC-BY-NC-SA 3.0
描述
CH341A nextProgrammer 多电压双模式编程器
-
-
-
-
- 采用经典WCH CH341A主控,完全兼容已有上位机。
- USB Type-C接口,A2C或C2C数据线轻松延长,不再束缚。
- ZIF16编程座+13Pin排针,多样化接口支持各种目标板需求。
- 支持1.8/3.3/5.0V目标器件电压,低压芯片无需电平转换板。
- 可选编程和串口2种模式,在线切换不必插拔USB。
- 更好的限流保护功能,改善在板烧录兼容性。
- 轻量化设计,U盘相当尺寸,收纳便携。
-
-
-
⚠注意! ATTENTION!⚠
-
-
-
-
- 此开源项目仅供DIY以及学习之用,禁止任何未经授权以商业目的售卖,传播,复制此开源工程。
- 追究一切盗版,冒充行为。基于此项目的二次创作必须开源且保留原作者署名。
-
-
-
CH341A nextProgrammer 编程器功能和使用方法
CH341A nextProgrammer 限量版采用了紫色沉金2层PCB,正面提供了1个USB-C
接口用于连接PC上位机,1组2.54(100mil)间距排针和ZIF16芯片座用于连接目标器件。
ZIF16芯片座附近的PCB箭头分别指向了采用I²C
协议的器件(例如24系列EEPROM)和采用SPI
协议的器件(例如25系列NOR FLASH)对应芯片座的1脚位位置,安放芯片或者DIP8转接板时仅需要将1脚位与箭头对齐即可,大大降低芯片摆放错误的可能(93系列需要配合转接板)。13Pin排针提供了3组1.8/3.3/5.0V电压输出(每组300ma 可同时供电),SPI
、I²C
和UART
3组接口,LVTTL电平。支持杜邦线,测试针或者ISP等接口的转接。
提供了独立的I²C
和SPI
通信指示灯,读写对应接口时会闪烁,便于观察编程器的工作状态。
CH341A nextProgrammer 背面2组开关分别用于切换目标器件电压和编程器模式。
- 目标器件电压切换
位于PCB边缘的SW1可以切换目标器件需要的VCC电压,将摇杆拨到对应电压位置即可,需要注意的是由于上位机不支持自适应电压切换,因此对于低压Flash(1.8V),需要手动切换到1.8V然后再识别和读写。
- 编程器工作模式切换
位于PCB中央的SW2用于切换CH341A的工作模式,UART模式下MODE指示灯红色,PROG模式下MODE指示灯绿色。UART代表异步串口模式,此模式下在PC上位机中编程器接口是COM口,可以通过串口助手或者STC烧录软件对串口进行调试或者对51单片机进行烧录;PROG代表编程器模式,此模式下在PC上位机中编程器接口是EPP/并口,推荐使用NeoProgrammer
编程器上位机软件。
技术指标 Technical specifications
电源 Power supply USB供电 最大300mA 每通道 USB powered 300 mA per rail USB接口 USB host interface USB2.0 (Full-Speed 12Mbps) USB Type-C 目标器件接口 Target interface DIP16 芯片测试座+13Pin 2.54mm排针 SPI/I²C UART ZIF type DIP16 IC test socket & 13Pin 0.1" terminal strips SPI/I²C UART 串口波特率 Serial baud rate 50bps - 2Mbps 最大编程速度 Max programming speed 400kbps 目标器件电压 Supported Target voltage 1.8V/3.3V/5.0V 工作环境温度 Operating temperature -40 ~ 85℃ 工作环境相对湿度 Relative humidity < 90 % rH 产品尺寸 Size (without cables) 60.5mm x 25.5mm x 16mm 产品质量 Weight 50g 支持操作系统 Supported OS Microsoft Windows (x86/x64), Linux (x86/x64/Arm), macOS (x86/Apple M1) 编程软件 Software Asprogrammer/NeoProgrammer (Windows GUI)
Plume Adapter 羽型芯片转接扩展板
目前Flash/EPPROM芯片封装正在朝着小型化和SMD的趋势发展,显然仅仅支持DIP封装的ZIF芯片座无法满足开发和维护的需求,同时芯片夹、简易牛角连接器、测试针和老化座的安装也需要双排针或者FPC接口。整合这些需求我们设计了一款全新的用于转接SMD封装的24/25/93系列Flash或EEPROM,支持从USON8到SOIC16数十种封装同时具有2*4Pin双排针和JSPI 12Pin FPC接口的超小尺寸(24.4x23.4mm)芯片转接扩展板Plume Adapter。
- Top View 正面
- Bottom View 背面
Plume Adapter | 支持目标芯片类型 Supported Target ICs | 支持目标芯片封装 Supported Target IC Packages |
---|---|---|
正面 (Top) |
SPI Flash NOR(25系列Flash); SPI EEPROM(25系列EEPROM); SPI Flash NAND; SPI FRAM; SPI MRAM; I²C 24 EEPROM(24系列EEPROM); | SOP8(SOIC8); SOP16(SOIC16); WSON8-8x6; WSON8-6x5; TSSOP8; USON8-2x3(DFN8-2x3); |
背面 (Bottom) |
I²C 24 EEPROM(SOT23-5); MICROWIRE EEPROM(93系列EEPROM); 支持93系列EEPROM 8bit/16bit切换† | 24系列EEPROM: SOT23-5; 93系列EEPROM; SOIC8; SOT23-6; |
背面 DIP8排针 |
编程器ZIF座 | 24或25系列DIP8芯片对应位置 |
正面 双排针 |
SPI Flash NOR(25系列Flash); SPI EEPROM(25系列EEPROM); SPI Flash NAND; SPI FRAM; SPI MRAM; I²C 24 EEPROM(24系列EEPROM); | 芯片夹、简易牛角连接器、测试针 |
JSPI FPC | SPI Flash NOR(25系列Flash) | TBD 笔记本和台式机主板JSPI接口 |
†16Bit模式: 0603贴片电阻空焊; 8Bit模式0603贴片电阻1-10kΩ。
将芯片测试座焊接在Plume Adpt.上获得一个可用于批量量产SOP8/16芯片烧录座
推荐采用LOTES SPI0001-P001A(SOP8 150mil窄体) ACA-SPI-004-K01(SOP8 208mil宽体) ACA-SPI-006-K01(SOIC16 300mil)芯片测试座
请使用回流焊、热风枪或者加热板从PCB背面加热焊接 LOTES代理商提供的多种芯片测试座购买链接
双排针通过简牛连接芯片测试夹或者测试探针可以直接进行Flash/EEPROM在板烧录,无需拆焊
CH341A nextProgrammer+Plume Adapter 搭配SOP8测试夹进行主板BIOS Flash读写
那么一个具有如此多功能的超小型转接板需要多少钱呢?答案是: FREE
Plume Adapter 羽型芯片转接扩展板作为CH341A nextProgrammer紫金限量版的特典免费赠送
CH341A编程器的历史回顾与硬件设计细节
WCH(沁恒微电子)数十年前推出的CH341A USB总线转接芯片可以说是非常经典且廉价的编程器方案,直至今天以这款芯片为主控的编程器依旧占领着某宝/Aliexpress/Amazon/eBay的销售榜首(例如魔改主板圈内几乎人手一个的土豪金)。尽管CH341A编程器声名在外,最早的开发者风铃夜思雨却极少为人所知。目前我们仍然可以在数码之家老站上看到这位dalao在2011-07-13发布的第一代CH341A编程器的页面,以及几乎每个用过CH341A编程器的朋友都熟悉的上位机UI。是的,淘宝卖家和某度搜索到的CH341A编程器上位机均为风铃夜思雨开发的免费版本或者非法破解版本。原作者正版CH341A编程器可以从某宝的这个链接购得,原版提供了红外串口功能,芯片兼容性要比缩水后的土豪金之类的廉价版本好得多。
正版CH341A编程器上位机
CH341A编程器元件易得,BOM简单,容易"复刻",我们可以在开源平台找到各种各样基于CH341A的编程器设计,不过由于时代限制,这些开源设计不少仍然采用A口甚至打印机B口,不便于使用。同时有些项目存在一些小问题,包括但不限于1117的输出电容仅仅使用了MLCC而没有采用钽电容、没有考虑LDO供电能力和在板烧录的需求进行限流保护、push-pull不应该存在上拉电阻、模式选择下拉电阻阻值错误等等。为了减少后续使用者和开发者反复踩坑,浪费时间,我解决了过去这些开源的CH341A编程器存在的这些问题,并以尽量低的BOM成本实现了全新USB-C接口的CH341A nextProgrammer编程器设计,具体改进如下:
- USB接口采用了USB Type-C,支持A2C和C2C数据线,支持C2C自动翻面;
- 目标器件供电由固定的3.3V改为1.8-3.3-5.0V可调,支持绝大部分低压器件读写:
- 增加PTC限流自恢复保险丝,增加限流电阻,降低在板烧录大电流将LDO拉到保护的可能;
- 增加了I²C和SPI通信指示灯,便于观察CH341A和目标器件之间的通信状态;
- 增加了编程和串口热切换开关和指示灯,切换编程和串口模式不再需要插拔USB;
- 更小的元件封装(0402),2层板实现了U盘尺寸的便携体积;
Tips for DIY
CH341A nextProgrammer的元件除了ZIF16芯片座以外均可在立创商城完成采购,100PCS的平均BOM成本约为20元。不建议购买拆机翻新CH341A芯片,这类芯片很多是故障板拆下的,根据我们抽样的结果来看,不良率高达85%以上,即使只需要2元/PCS,15%的良率意味着高达13元的成本,还不包括测试需要的人力成本。CH341A nextProgrammer的控制和复位电路完全由74逻辑门构成,不会因为MCU涨价成本暴涨,同时逻辑门电路有更好的鲁棒性,不容易因为温度或者固件问题发生故障,经过测试-40-85℃编程器均能正常工作。
阻容封装较小(0603 0402),建议使用性能较好的电烙铁以及合适的烙铁头,或者可以用热风枪吹焊。USB Type-C和开关需要注意一下焊接温度 ,可以从背面加热避免塑料融化。U2位于ZIF16编程座下方,需要将编程座对应的位置打磨一下避免元件结构冲突。如果没有合适的电烙铁或者热风枪,对自己的焊接技术没有把握,不妨考虑一下咱的量产成品,限量赠送Plume Adapter。
NeoProgrammer by TTAV134 CH341A编程器开源上位机软件
某宝仿制CH341A奸商提供的盗版CH341A编程器上位机软件不仅侵犯了原作者版权,同时也有芯片支持不够、报错闪退等各种问题,不建议使用。推荐大家使用由Alexander开发的开源软件AsProgrammer (dsanke汉化版|原版|github)或者支持更多器件的基于AsProgrammer由TTAV134再开发的NeoProgrammer CH341A编程器上位机软件(misslee&dsanke汉化版|原版)。
如何使用编程器进行烧录
如果您对NOR Flash和EEPROM没有了解,不清楚这类芯片的存储原理的话,可以自行搜索相关资料学习一下,在此我们不再赘述这类芯片的物理层原理。与NAND不同的是写入这类芯片首先要清空芯片的内容,确保芯片内数据都是FF然后才能写入数据,写入结束以后再次读取芯片的内容与缓冲区的内容进行对比校验。读写这类存储芯片的硬件工具通常被叫做编程器(Programmer)。
"稍微写一点给小白看的说明: 首先你要明白,什么是编程器/烧录器。 BIOS芯片就是一个FLASH芯片,往里写入数据的过程就叫做编程,又可以叫做烧录。不是编译,也不是编写,英文是Program。 那么用编程器刷BIOS,就是利用编程器往这个FLASH芯片里写入数据。-------by dsanke"
- 对于编程器/烧录器来说,首先要做的是通过I²C、SPI或者Microwire总线尝试读取芯片的ID,获取ID之后通过查表来确定目标器件的品牌、型号和容量。所以每当连接了新的器件,建议首先点击
?
图标检测芯片型号,识别芯片ID。正确识别芯片型号后,确保编程器电压与目标器件电压一致。如果无法识别到目标芯片,请检查编程器与目标芯片的电压是否一致或者与目标芯片的连接是否正常,特别是烧录夹,需要一定的姿势才能准确夹住目标芯片。 - 准确识别到芯片以后,可以点击
读取芯片
图标,读取芯片内容,读取完成后可以再点击校验IC
图标对芯片读取的内容进行校验,确保数据准确。在烧录新的固件之前,建议将读取的内容先备份另存为BIN文件。 - 烧录芯片,完成备份之后可以打开需要写入的固件文件,文件类型可以是BIN或者HEX,如果是ROM或者华硕的CAP文件需要作一定的处理。打开需要写入的文件之后,点击
自动编程
图标旁边的▼,将5个选项全部选中,然后点击自动编程
图标,NeoProgrammer会自动解除芯片的写入锁定,擦除、查空、写入新固件并校验。耐心等待操作成功的提示后,就可以顺利实现对目标芯片的编程了。
- 注意事项:
- 如果无法识别到芯片,请检查
选项
菜单中检测选项
对应的芯片主动探测模式是否有[x]勾选 - QSPI NOR Flash编程后目标板无法识别/初始化,请检查SREG的QE位(QSPI Enable bit)是否为1
- 如果反复出现读写校验错误,请使用较短的数据线和延长线并且检查目标器件是否已锁定或者损坏
- 跳过FF编程可以显著提高大容量NOR Flash的编程速度,建议开启这项功能
- 如果遇到Device ID可以读取但是编程器无法正确识别的IC可以选择类似容量和参数的器件进行尝试,如果您掌握一定英语/俄语的沟通能力可以向作者提交Device ID以便在下个版本中更新元件支持库
- 部分芯片具有OTP区,这部分存储区域只可写入一次,一旦写入或者锁定,将无法擦除或者解锁
NeoProgrammer 2.2.0.10 Supported Device List
NeoProgrammer 2.2.0.10 目标器件支持列表
支持列表已附件,可以下载以后进行搜索查询
评论