郑州网站建设网络推广,网络推广 推广,建站seo赚钱,陕西交通建设集团西商分公司网站电路 设计初衷 电源5V 选择5V的原因#xff0c;差分2.5V比1.5V可以提高传输能力 TTL输入 3.3V电平满足需求 TTL输出 4.5V了#xff0c;MCU是3.3V平台 这样就分为两种情况 MCU接收端可以容忍5V输入 MCU接收端不可以容忍5V输入#xff0c;就要进行电压转换#xff0c;我这里使…电路 设计初衷 电源5V 选择5V的原因差分2.5V比1.5V可以提高传输能力 TTL输入 3.3V电平满足需求 TTL输出 4.5V了MCU是3.3V平台 这样就分为两种情况 MCU接收端可以容忍5V输入 MCU接收端不可以容忍5V输入就要进行电压转换我这里使用的是电阻分压 注意就是这里引发的震荡。 为什么选择电阻分压当时的思考是无论MCU是否能容忍5V这样总该不会有问题。 MCU串口接收引脚 事后写文档才开始去详细看IO引脚接受电平情况 PA3,PC5 引脚说明 通过查阅MCU数据手册可以看到PA3,PC5都可以接受5V电平。
震荡 这路串口我使用了shell 交互功能//就是因为有shell这个电路才震荡的。
shell有一个功能无论什么输入都会有输出
现象描述 电路上电就看到了串口接收引脚一直有数据串口发送引脚也一直发送数据
整个MCU一直被这个收发占用了。
调试 原理图/PCB检查 因为这个收发电路是晚上抄别人的自己第一次这样使用怀疑原理图/封装 哪里没有连接正确。 没有发现问题 R59接收电阻去掉 这样就相当于接收接地了MCU正常运行了串口输出也正常。 485芯片坏了吗 换了485芯片问题依旧。 单独测试接收 将R57电阻对地示波器解码功能测试接收到的数据正常。 此时空闲的时候接收引脚是呈现高电平约5V的。 单独测试发送 上位机收到数据也是正常 此时空闲的时候接收引脚是呈现高电平约1.2V的。 到这里1.2V没有引起我的注意。 收发电路全部还原测试 这时候又恢复了震荡状态测试注意到了 接收引脚电路是在变化但是低电平只有1.2V. 这时候我才意识到接收引脚是因为收发切换导致的电平变化并不是有实际的数据。 与上面的测试收据对应起来了。 查485芯片数据手册 啊哈 破案了
震荡的原因 板卡上电 - 485芯片接收状态1脚高电平 - MCU输出log信息 - 485芯片发送状态1脚高阻由R44,D28,R59,R58 分压约1.2V - MCU接收到数据shell解析输出解析内容 - 485芯片发送状态1脚高阻由R44,D28,R59,R58 分压约1.2V - MCU接收到数据shell解析输出解析内容......无限循环。
解决方案
将R58去掉//我的选择 增加电平转换芯片
这两种方案都是可以的。
小结 这都是满满的经验啊。 刚遇到这个问题我也是很纳闷怀疑USB转485坏了怀疑MCU坏了....开始烦躁。 此时不应该继续这种坏情绪。 喝杯咖啡 / 出去走走 / 小憩一会。。。 思路理清楚在继续调试就会高效很多。