打样回来的CH340G模块没有正常工作——PC端没有识别到任何COM口。因为CH340G没有内部集成晶振,需外接12MHz晶体和振荡电容,而模块上电后我用示波器没有抓到12MHz正弦波,当时认为是晶振这部分出了问题——晶振没有起振。
首先我会排除芯片原因——我把模块上的CH340G芯片与购买的模块上的芯片对调后,晶振依然无法起振,模块也同样无法正常工作,但是购买的模块却可以被PC端识别到,排除是CH340G芯片的问题。而后更换晶振依然无法解决,最终问题锁定在最容易出错的两个外挂振荡电容上。
根据厂商推荐,依次更换了10PF~33PF的振荡电容,但是晶振还是没有起振。
后来到第三块样板,更换振荡电容后模块居然正常工作了?!
最后排查发现,前两块样板的Type-C母座引脚有断裂,而CH340G芯片在通信不正常的情况下会自动进入休眠模式,内部振荡电路停止工作;在上电瞬时会有十几毫秒的振荡,进入休眠后就拉至高电平。所以说根本原因还是Tpye-C母座的封装问题:
Type-C母座的下面有两个定位支柱,PCB在对应位置要开两个直径0.6mm的无金属化孔。而我使用的Type-C封装没有这两个孔,导致母座实际焊接不牢,几次插拔就会导致引脚接触不良,与上位机通信自然不正常,而CH340G自动进入休眠状态,从而测不到晶振输出。