今天这个bug一度让我怀疑自己的板子被三体派来的智子锁死了。
问题背景:校电赛D题,单相逆变器驱动板,H桥死活不出波形。昨天所有东西都一切正常,正弦波非常完美,然而今天在我没有改动任何东西的情况下,H桥始终没有正常工作。
于是开始debug。首先测定占空比时的输出(等效为buck电路),无波形,学生电源显示无电流。一通乱测后无果。
回寝室后和叶佬继续debug。大致经历了以下过程:
更换mos驱动,无果。
测量电路中各处的pwm信号,发现单片机直接输出信号没问题,但一接到驱动板上波形就不对。遂怀疑是缓冲器的问题。摘掉缓冲器后,再把信号接到驱动板子上,pwm信号正常。于是怀疑缓冲器损坏,更换一块后,最初的问题依然存在。
于是怀疑单片机损坏。更换一块。(此处小插曲一段:新单片机直接不输出波形,叶佬突然想到是STlink给的3.3v供电功率不够,更换5v后立马正常。我真傻,真的,我单知道新单片机外设那么多,却没想到功率肯定要大一点)
新单片机换上以后,缓冲器的问题依然存在。彼时我其实已经非常疲惫了,想着明天再搞,就在这时叶佬突然想到,应该看一下缓冲器门限电平和供电的关系。
一查才知道,5v供电的时候,高电平门限是3.85v——
而众所周知,单片机IO口最高只能TMD输出3.3v。
至此,bug终于被找到。接下来的问题是,如何给缓冲器更换一个3.3v供电,因为之前的供电是在pcb上走的,有点难办。
不过,叶佬这个时候又做出了一个大胆的决定(至少在我看来是挺大胆的),把5v稳压芯片拆了,直接用板子上5v输出排针供给3.3v。这点我学到的是,一般来说,稳压电路只要拆了芯片,就可以更改他的输出电压,比如改成外加的(外围电阻电容影响较小,这样做问题不大)。
然后就是连线擦定揩机,一切正常,电流轻松跑上去。
以前在知乎一直都是看客,这回终于有了记录一些自己东西的想法。这次debug我至少明白了三件事:我的毅力还要再强一些(指不要轻易放弃),我的胆子应该再大一些(指解决供电问题时应该果断想到拆芯片),我的心应该更细一些(指debug不能是一通乱测,而是从信号源开始一处一处地测,定出故障所在的元件)。而且对电路结构的理解还是应该更熟练一些。
没什么好说的,还是太菜了,真理无穷,进一寸有进一寸的欢喜吧。