2019年4月4日
电量模块调试记录
一块板子可以发送数据,另一块板子不能发送数据,不能发送数据的板子可以下载程序。而且,同一个软件在另一块板子上可以使用。这说明,是硬件CAN芯片的问题。重新焊接后,可以发送数据。重新焊接时发现,芯片虽然看似焊接上了,但是,芯片的引脚并没有连接的牢靠。
can_tx 发送函数只能使用三次。我以为是重启了,但是,我在大循环外做了个延时。发现延时只出现一次。
后来,以为是其他函数的中断影响了函数的执行。后来,把其他函数给注释掉了,还是出现这样的故障。所以,我认为这是因为函数执行的间隔需要延时。所以,加上延时之后,就可以解决了。
2019年4月2日
电量模块调试记录
昨天还能正常发送数据,但是今天上位机不能接收到信息。单片机可以下载程序,所以,认为是can芯片的问题。
没有正常复位导致的故障。
2018.08.23
一般原则
做事之前要对做的事情的一般思路有所了解,可以通过两个途径。
一 阅读自己下载的调试相关的图书。
二 阅读Wikipedia相关词条 比如,debuging,troubleshooting
三 阅读相关网页
在网页中搜索 debuging 和 troubleshooting
阅读手册
阅读产品的 troubleshooting guide
故障日志
单片机运行时的故障日志。
注意错误指示
下载器有指示灯,很多设备都有指示灯来表征故障,除了指示灯之外,还有很多东西来传递故障信息。比如,ide软件的下载栏会有提示显示烧录器不能识别。所以,以后应多留心通知栏,状态栏,等等能够指示故障的标识。
区分概念
不明白sw和jtag什么意思当然,会忽略对这些选项的设置,导致下载故障,所以,有必要搞明白sw和jtag什么意思。
在keil中debuger和programer不是同一概念,应分别配置驱动,说明自己对debug的概念理解不清。以后项目中涉及到的关键概念自己要能够完整地表述出来。
电路节点几个器件
IO口电压一直拉不下去,发现该IO口和通过上拉电阻连接至3.3V。
怀疑新4000的mos管对地有负载,导致mos管发热。怎么也没看见负载。原来是mos管和地之间还有个二极管。所以,如果找出了所有和mos管连接的器件,就能更快地定位问题。
怀疑推断
修改开发板提供的led程序中的引脚,认为开发板提供的程序只需要修改引脚就可以点亮其他引脚的led,但事实真的如此吗?开发板提供的历程的函数说明仔细看了吗?自己的修改符合函数说明吗?
怀疑前提
认为gpio口默认为普通io口,所以,应该能驱动指示灯,但是,这个前提是站不住脚的。从手册上看不到依据。
必须保证每个前提都能找到依据。
设备重启
下载程序时发现上位机无法识别仿真器。初步判断是控制器供电不正常。但是排除电源问题后上位机仍然不能识别仿真器。
将仿真器的usb口重新插拔后设备正常。说明是仿真器和电脑之间的需要重新连接。
做好记录
有个文档记录了新4000为什么mos管发热,是因为单片机未下载程序时,升压电路不工作,但是此时由于使用了插针进行连接,使得负载也同时连接上,形成通路,导致mos管工作在非线性区,所以发热。
此次又出现此种故障,可以认为是mos管是有负载的,但是发现负载没接。最后判断是续流二极管接反,续流二极管成了负载。将续流二极管修改正常后,工作正常。
看整个电路
mos管发热,认为是mos管的源极和地之间形成通路。但是理论上说来,没接负载是不会形成通路的。看完整个电路后发现,mos管源极不仅接负载线,还接着续流二极管。是续流二极管的错误导致了发热。因此,要调试好电路,应该看清整个电路。
问题分割
通电后电压源显示电流过大,需要判断是哪个部分的问题,大概可以分两个部分,电源部分和mos管部分。排除电源部分,就需要针对mos管部分详细分析。
1.Understand the System
了解整个系统的工作流程
只要了解了bios的意义才能有效的解决问题。
a,bios存储信息需要电池供电,当电池重装之后,恢复出厂设置。
b,https://www.techwalla.com/articles/how-to-reseat-memory-modules 指出,如果系统不识别内存条可能导致启动不了,所以需要reseat the computer
2.read the troubleshooting guide
a,不能 给atmga3au 下载程序,在troubleshooting里有相关的指导。
b,
3.read the induction light
a,电脑不能启动,发现电源指示灯都不亮。
b,电脑不启动,发现按键指示灯不亮。
c,调试模块无法快速定位问题在于调试模块没有显示工作正常的指示灯。