【嵌入式开发问题汇总】硬件篇

此文是我很久之前的一个计划,目的是让大家可以在别人的错误中有所收获。

写下我和实验室小伙伴以及一些网友遇到的问题和分析。大家可以遇到问题也可以在博文下留言。当然,本人能力有限,错漏之处请直接提出。希望这篇博文能为所有喜欢嵌入式的朋友答疑解惑!


目录

事件1:钽电容爆炸

事件2:IIC设备工作不正常

事件3:延时/定时不准

事件4:单片机反常发热

事件5:电感啸叫

事件6:舵机失控

事件7:串口不工作/收发乱码

事件8:USB设备连接故障

 


事件1:钽电容爆炸

描述:电路板上的钽电容在上电之后冒烟并烧毁。

分析:钽电容烧毁情况主要有两个:一种是极性反接,新手焊板容易出这种问题。因为钽电容的极性标注和一般的二极管相反,有些人想当然了,钽电容标有竖线的一端是接高压侧的。此外,超过耐压值也是引起钽电容失效的一个原因,图中电容清晰的标出耐压值为16V。由于厂家问题,有时候真实耐压值会有所出入,且正常工作是,电路中的纹波(尤其是开关电源)也会导致短时间电压超过耐压。在设计使用时。最好遵循耐压值大于两倍使用电压的思想。笔者曾经使用过一个焊有10V耐压钽电容的电机驱动模块,接上3S电池(满电12.6v)的瞬间就boom了一脸。

事件2:IIC设备工作不正常

描述:接入的IIC设备有时无法通过初始化,有时用手触摸金属部分之后可以正常工作。

分析:IIC设备工作不正常多为驱动算法的问题,但是如果有遇到手触摸之后可以正常。有可能是硬件的问题。大家会注意到,许多模块的SCL和SDA总是带着两颗上拉电阻,这是因为IIC的硬件电路中,可以许多设备挂在一条IIC总线上,时钟SCL与数据SDA两条线是开漏输出的,没有上拉电阻的帮助,无法输出高电平。如果硬件上没有设计上拉电阻,许多单片机的IO带有上拉功能,但是再许多高速IIC设备上,IO的上拉能力不足以使得电平拉高,所以还是建议大家为IIC总线配上上拉电阻,阻值一般为4.7K到10K。在配有上拉电阻的IIC设备上,仍出现此类问题,建议使用万用表检查上拉电阻是否虚焊。

事件3:延时/定时不准

描述:写了一个点灯程序,但是闪烁的频率明显慢于程序设定值。

分析:排除程序问题,故障有可能出现在晶振上,有条件的可以使用示波器测量晶振的输出是否为正弦波。若无法测出正弦波(这个波形有可能不是很标准,是因为部分示波器的带宽不够),有可能外部晶振停振,正常工作的晶振应该输出标称频率的正弦波,其直流偏置为Vcc的一半。没有示波器的同学,可以使用万用表测量晶振两脚的对地电压,若一个接近0,另一个接近Vcc,大概率说明晶振未能起振。多种原因可导致晶振停振。比如起振电容不匹配,引脚虚焊,晶振内部晶体破碎等等。当外部时钟源失效时,部分单片机会选择使用内部RC振荡时钟源。这个时钟源一般为低速时钟,所以运行速度会变慢。

事件4:单片机反常发热

描述:单片机在运行时发热严重,甚至烫手。

分析:这个属于常见问题,实验室最喜闻乐见的就是烧芯片了,反常发热,但仍在工作。这个时候有两种可能,一种是芯片内部出现局部短路,有可能是静电损伤(尤其是在冬天),也可能某个IO遭受了高压冲击(笔者在MSP430,MSP432与STM32的芯片上都遇到过)。这种情况较难排除,只能在确认硬件无误的情况下更换芯片,此外,还有一种可能,就是一些使用开关电源直接供电的朋友们,检查一下电源的纹波。別纹波100mV还在用!建议使用LDO。正常的STM32芯片使用万用表测试时,阻抗大约为5~30Ω,当然电源线上挂载其他用电设备的电阻会偏小一些。

事件5:电感啸叫

描述:用于开关电源的电感发出尖锐声音。

分析:用于开关电源的功率电感本质是一个线圈,和喇叭的构造相似。发出啸叫,说明电流不小而且有点工作不正常,且电流脉动频率在听觉范围20-20KHz之间,有可能是电感接近饱和了。如果设计的开关电源纹波很大,可以考虑更换一颗感值更大的电感。此外,一体成型电感(如图)的效果比线圈外露的效果要好,具有更好的EMC。

事件6:舵机失控

描述:舵机在工作时突然大幅度摆动,回到归零位置。

分析:排除算法问题后,考虑供电问题,舵机的工作电流较大,MG996/995在堵转或高负载情况下很容易达到1A以上,这使得普通的USB口供电不稳定(电脑的USB过流保护约为500mA)普通的充电宝也会因为内部的保护电路而采取一些保护措施。舵机电压过低,会导致内部伺服电路异常,继而出现摆动,归零等误动作。所以为确保舵机正常工作,建议使用稳定的,大功率的电源供电(如高倍率航模电池,大功率开关电源等)。

事件7:串口不工作/收发乱码

描述:串口不能正常收发消息,或持续收发乱码数据

分析:排除算法问题后,先检查一个新手常犯的错误:TXD与RXD的对接问题:主机的TXD(发送端)应该连接从机的RXD(接收端),反过来主机的RXD(接收端)应该连接从机的TXD(发送端),如下图。此外,还需要注意两端的逻辑电平是否一致,若不一致,需要增加电平转换电路。

 

事件8:USB设备连接故障

描述:嵌入式设备无法正常连接到PC,连接后无提示或提示“有一个USB设备工作不正常”

分析:排除算法问题后,首先看设备是直连芯片还是使用了一些串口转USB的芯片。如果是使用串口转USB的芯片,则应重点检查芯片是否工作正常,然后检查是否在PC正确安装了该芯片的驱动程序。如果是设备直连芯片,则主要观察D+.D-是否等长布线。由于USB的通讯频率一般很高,差分线需要严格保证相位对齐。由于线长差异导致的信号相位延迟会导致通讯失败。在设计PCB阶段,就应做好阻抗匹配,等长布线,且布线尽可能短。不要与其他高频信号线靠近平行放置。

 


如果以上的问题与解决方案对你有帮助,请为我在右上角(PC端)/右下角(移动端App)点一下赞,谢谢!

如有问题,可以私信交流或直接在评论区留言!

发布了51 篇原创文章 · 获赞 270 · 访问量 6万+

猜你喜欢

转载自blog.csdn.net/ReadAir/article/details/105605205