duxingkei 发表于 2021-10-8 00:29:01

用CH340N解决Arduino Uno串口下载和通信出错问题

本帖最后由 duxingkei 于 2021-10-8 00:32 编辑


[*]用CH340N解决Arduino_Uno串口下载和通信出错问题即-USB转串口之CH340N-SOP8笔记



[*]# 缘由



- 玩arduino UNO时发现用avrdude下载和用arduino IDE下载总是出现卡死下载失败
    echo "where avrdude"
    echo "d:\WinAVR-20100110\bin\avrdude.exe"
    avrdude -p m328p -c arduino -P COM18 -b 115200 -U flash:w:default\frser.hex



即使下载成功,但是当做串口通信,数据量大时,就出现偶尔的通信异常导致卡死,

# 原因排查

- 某宝16.5块买的,无技术支持;给5V电源加上电解滤波电容,无效;



- 板arduino放冰箱低温几分钟下载测试,下载卡死概率增高;
- 用风筒吹加热,下载反而正常了;
- 发现USB转串口部分,晶振无任何标记,芯片苏任何丝印,电脑设备管理居然显示CH340;




- 刚开始还以为MEGA328芯片通信死机,后来排查,用一条PL2303线替换原机测试,通信正常。



# 开始改造

- 搜出元件盒子发现之前买的CH340N,SOP8封装,查找资料,
    - CH340N芯片官网CH340N规格书
      - [http://www.wch.cn/product/CH340.html](http://www.wch.cn/product/CH340.html)

    - 驱动下载网址
      
      [http://www.wch.cn/downloads/CH341SER_EXE.html](http://www.wch.cn/downloads/CH341SER_EXE.html)
      
- 拆晶振,拆无丝印的山寨CH340驱动的芯片,拆假的晶振负载电容C21;
- 根据CH340N对比分析走线布局和准备



- 改造后实物图




# 重新烧录成功

avrdude -p m328p -c arduino -P COM18 -b 115200 -U flash:w:default\frser.hex

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.02s

avrdude: Device signature = 0x1e950f
avrdude: NOTE: FLASH memory has been specified, an erase cycle will be performed

         To disable this feature, specify the -D option.
avrdude: erasing chip
avrdude: reading input file "default\frser.hex"
avrdude: input file default\frser.hex auto detected as Intel Hex
avrdude: writing flash (3334 bytes):

Writing | ################################################## | 100% 0.93s

avrdude: 3334 bytes of flash written
avrdude: verifying flash memory against default\frser.hex:
avrdude: load data flash data from input file default\frser.hex:
avrdude: input file default\frser.hex auto detected as Intel Hex
avrdude: input file default\frser.hex contains 3334 bytes
avrdude: reading on-chip flash data:

Reading | ################################################## | 100% 0.77s

avrdude: verifying ...
avrdude: 3334 bytes of flash verified

avrdude: safemode: Fuses OK

avrdude done.Thank you.


# 后记

- 改造前还担心CH340N只有RTS脚,原版是DRT脚做复位脚,无法支撑RTS做复位脚的,后来查到是只支持的,需要修改avrdude的配置文件在安装目录,改造成功后,实验发现什么都不需要做,直接命令行烧录即可;
   
D:\WinAVR-20100110\bin\avrdude.conf
   
- 第一次改造,发现接WIN10,WIN7都显示设备但是驱动无法安装,强行指定驱动目录也不行,用手摸芯片微微发烫,万用表测量发现芯片4脚RTS对地短路,于是割板子后,驱动OK;
- 图便宜,没想到亏大了,亏了我一颗CH340N和一晚上的折腾,提醒大家,以后买arduinoUno必须买有丝印的CH340或原版的,不要被坑了;

附上完整排版的 Notion笔记链接
https://internal-pisces-590.notion.site/CH340N-Arduino-Uno-USB-CH340N-SOP8-54cb778bb8804b19b381b5004f7010b9
附上完整的notion导出pdf笔记(上传2次失败,全中文无反应,改英文卡在90%多,附图)


保存为草稿了,提示附件未使用
附PDF格式笔记



t3486784401 发表于 2021-10-8 03:57:53

最近几年山寨宝越发没谱了。前些年好歹用正品340,现在则是一款无丝印的仿340,而且脚位与340也不一样,连更换都无门

wxws 发表于 2021-10-8 06:27:41

t3486784401 发表于 2021-10-8 03:57
最近几年山寨宝越发没谱了。前些年好歹用正品340,现在则是一款无丝印的仿340,而且脚位与340也不一样,连 ...

仿了个名字,蹭驱动

hecat 发表于 2021-10-8 07:50:51

CH340已经很便宜了,还仿{:funk:}{:funk:}{:funk:}

duxingkei 发表于 2021-10-8 08:56:30

hecat 发表于 2021-10-8 07:50
CH340已经很便宜了,还仿

就是,也真是服了,估计无丝印芯片应该是用MCU做的,本来不需要晶振,居然搞个假的晶振线路忽悠,关键是晶振的启动电容只用了一个,晶振直接被我用钳子夹掉了,反正没卵用

SUPER_CRJ 发表于 2021-10-8 10:34:02

340确实好用,有段时间还价格涨了2倍。估计那时候被高仿了

iamseer 发表于 2021-10-8 11:41:05

可以挑带“16U2”的买,虽然两倍价格,但是和原版兼容,不出这种问题。

wshtyr 发表于 2021-10-8 11:47:32

这种山寨CH340已经蔓延到USB转232串口线了
买到过带晶振但波特率明显不准的CH340 USB转串口线

duxingkei 发表于 2021-10-8 12:05:43

iamseer 发表于 2021-10-8 11:41
可以挑带“16U2”的买,虽然两倍价格,但是和原版兼容,不出这种问题。

就是贵,搞的我想直接用MEAGA16U2/ MEAGA32U 直接做arduino,省去了USB转串口的麻烦

九月 发表于 2021-10-8 12:22:05

t3486784401 发表于 2021-10-8 03:57
最近几年山寨宝越发没谱了。前些年好歹用正品340,现在则是一款无丝印的仿340,而且脚位与340也不一样,连 ...

我有一次要自己设计个arduino的板子
也是发现CH340的引脚和真正的340的引脚居然不一样
当时还很纳闷为啥还能正常工作
没想到是假的340

t3486784401 发表于 2021-10-8 12:41:27

duxingkei 发表于 2021-10-8 12:05
就是贵,搞的我想直接用MEAGA16U2/ MEAGA32U 直接做arduino,省去了USB转串口的麻烦 ...

Leonardo 了解下,但是 32u4 目前跑的 USB软串口都有点毛病,连续高速数据的时候容易抽风。

还有个 hoodloader 项目,使用 UNO 板载 16u2 来编程,除了当单片机就是 CDC 和 HID 应用。

t3486784401 发表于 2021-10-8 12:43:09

iamseer 发表于 2021-10-8 11:41
可以挑带“16U2”的买,虽然两倍价格,但是和原版兼容,不出这种问题。

16u2 有他的毛病,这个系统在长时间高速传串口的时候偶尔掉包,频率比正版 340 稍高

t3486784401 发表于 2021-10-8 12:48:11

九月 发表于 2021-10-8 12:22
我有一次要自己设计个arduino的板子
也是发现CH340的引脚和真正的340的引脚居然不一样
当时还很纳闷为啥 ...

高仿的 340 还有个长期稳定性问题。曾经简单搭采样系统,每秒一包十几个字节的数据,PC直接存文件连续工作几天。

以前用正版 340 的时候,从没有出现过丢包、掉包的情况,最多是断包/黏包;
换了山寨 340 (无丝印、脚序错乱版本),平均几个小时就出现一次掉包/错包的情况,前后几个数据随机排列组合,“3.14” 乱成 “4.31” 那种。

这种片子,真实X了狗了

duxingkei 发表于 2021-10-8 13:56:01

t3486784401 发表于 2021-10-8 12:48
高仿的 340 还有个长期稳定性问题。曾经简单搭采样系统,每秒一包十几个字节的数据,PC直接存文件连续工 ...

确实,就是丢包,大量数据通信时,读取出错,还以为下位机问题,换条线才发现是无丝印的USB转串口问题,还蹭了CH340的驱动,差点CH340背锅。

bluerain 发表于 2021-10-11 19:42:39

国产芯片也仿?看到过无丝印的340,以为是故意察掉的。

huangmeilifan 发表于 2021-10-11 21:33:28

真无语,连这么便宜的国产芯片都假冒。有这精力自己做一款打出品牌不好么?

t3486784401 发表于 2021-10-11 21:51:06

duxingkei 发表于 2021-10-8 13:56
确实,就是丢包,大量数据通信时,读取出错,还以为下位机问题,换条线才发现是无丝印的USB转串口问题, ...

刚去买炮灰板的店里逛了逛,这个山寨板居然可以随时更换 PC 端驱动。

由此看来大概率就是单片机实现的软USB转串口,换个程序换个协议:

t3486784401 发表于 2021-10-11 22:03:46

huangmeilifan 发表于 2021-10-11 21:33
真无语,连这么便宜的国产芯片都假冒。有这精力自己做一款打出品牌不好么? ...

这款山寨,似乎不是一个芯片的问题,更像是个产业,理由如下:

a. 前些年出现了【无丝印】但【引脚兼容】的 CH340,使用 FT232 驱动;

b. 这些年【无丝印】升级为【引脚不兼容】,高仿做成引脚不兼容,合理理由应是不希望你自行维修,只能不断买他的成品板子;

c. 【引脚不兼容】的片子,不惜贴片假零件,也要骗你相信是原版 CH340,目测就是要避免上市初期被淘汰,
   一段时间后满市场都是同样的板子,说是 2021 最新款也就自然而然了。

这么一分析,山寨 340 的人和山寨 Arduino 板子的人,似乎根本就是同一波,目标卖板子。

shiva_shiva 发表于 2021-10-12 09:11:30

这么多坑{:smile:}

duxingkei 发表于 2021-10-12 17:50:32

t3486784401 发表于 2021-10-11 22:03
这款山寨,似乎不是一个芯片的问题,更像是个产业,理由如下:

a. 前些年出现了【无丝印】但【引脚兼容 ...

厉害了,连驱动都是可以换的,够狠。
想举报一番,毕竟使用了CH340的驱动,属于假货,不知道能赔钱不。

xstt 发表于 2021-10-12 18:03:47

操,还真是,我早些天买了几块。IC和晶振都没丝印
页: [1]
查看完整版本: 用CH340N解决Arduino Uno串口下载和通信出错问题