STM32开发板调试记录
此记录仅为STM32F103ZE开发板的调试学习。
调试是在进行时...,过程中会遇到各样的问题,愿意与您分享,也愿意聆听您的教诲。
中间关注此开发板的调试的朋友,期间有想了解的,或有什么意见还请随时留言交流。
2010-11-18
昨天下午就已经拿到板子了,可惜物料的购买时间稍微晚了些,昨天下午才发货~~~
还是先传上个PCB的Layout吧,等后续更新。。。。
拿到物料之后就开始进行焊接了。。
首先当然是电源了,5V->3.3V一切正常;
焊主芯片STM32F103ZET6,144pin,虽然引脚数有点多,但是焊接还算顺序,目测没有短路。焊接周围的去耦电容,保证电源的可靠。
然后就是焊接JTAG接口了。几个上拉电阻也焊上,因为有的JTAG仿真器里面没有上拉,不想给自己找麻烦。焊接好后,接通电源,j-link。上电测试,使用的是SEGGER的J-LINK GDB SERVER。上电后就能检测到芯片的ID了,还算顺利。
JTAG测试完成。
继续往下焊接,焊上了个8M的晶振,其实可以不焊接的,因为默认使用的是内部的晶振。又焊了个复位电路,不想测试不焊接的情况。好,焊上一组LED。焊好后交给软件组的同时测试。
稍微有点麻烦,LED刚开始没有工作,还在怀疑是硬件的问题,可是也想找不出问题。程序能够下载但是没有运行。试了下官方的板子,程序能走。算那个同事头脑灵活,很快想到是配置的问题,根据芯片选择103的XL系列配置,其实就是在配置文件里的一个宏改成XL类芯片的宏就好了。
修改完成,JTAG下载运行,LED灯马上就开始运行了。。。感觉一个字“顺”。呵呵。继续努力。
LED测试完成。
焊接1.复位电路,2.用户按键,3.蜂鸣器,4.AD/DA,5.模拟温度传感器LM61。然后拿去有软件组测试。
1.复位测试完成。
2.按键测试完成。
3.1.AD 测试完成。
3.2.DA测试完成。
4.LM61测试完成。
5.蜂鸣器测试完成。
焊接1.JoyStick,2.LCD,3.SD卡,4.CAN,5.RS485,6.红外发射和7.接收。
1.CAN测试完成(只是检测脉冲波形。还没有进行通信测试)。
2.UART测试完成。因为物料的原因,刚刚把UART调试完成。
3.SD卡测试完成。
狼多肉少啊~~上周买的J-IINK被店主发错货了,更是学上加霜啊。没办法只有换货了。。。。
唉,担心项目的进度啊~~目前完成的都是些简单的模块。稍微复杂些的都没有完成呢。
还是加油吧。
今天刚到了3个J-LINK。赶紧测试。。可是板子的数量又成了瓶颈,没办法就再焊接出来一块吧。4快板自己同时调试。。。。。。。sudu
焊接1.EEPROM[AT24C02], 2.USB。
2010-11-24
今天网口测试,检测到芯片DM9000的ID:9000A46。中间因为16位数据宽度而改变地址,造成了不小的麻烦。
不过已经积累经验。
2010-11-25
红外接收电路调试完成。所用芯片是HS3800,电源电压采用3.3V,原来在电源和3800的电源脚之间有120欧姆的电阻,那样在3800的输出会随机产生输出,很不稳定。首先考虑所用电阻太小,就增大到470Ω,结果闪烁【检测到红外后闪烁LED】得更加厉害。分析电源使用太低,之前在51电路中使用的是5V供电。那么就是电源低导致器件工作状态不稳定了。更换电阻为0Ω后调试成功。在示波器中能看到遥控器发送的波形。~~~
2010-11-26
1.红外接收完成测试
2.SRAM完成测试
3.NOR Flash完成测试
4.EEPROM完成测试
5.RS485完成测试
经验总结:STM32的地址总线在数据总线宽度为16位的时候用的是内部地址总线的A[25..1]位对应到外部引脚上的地址是A[24..0],所以编程时程序中出现的使用的地址是实际地址的左移2位之后的地址。
2010-11-29
1.SPI Flash完成测试
2.LCD12864单色屏完成测试,不过有点bug是,没有用read busy,而是用个延时。HCLK分频也用的是4分频,主频74MHz。延时用i = 40; while(i--);
3.能够下载程序到片内Flash,并从片内启动用户程序,使用的是JTAG自带的工具。
2010-12-02
1. 完成USB测试,之前因为成员的程序有问题,所以一直没有搞出来。
另外TFT-LCD是又采购了一块,目前的一块已经证实是有问题的了,首先屏幕左下角已经碎掉。使用触摸屏测试程序进行测试,发现得到的数据是固定的,并且中断输出引脚一直有信号,说明触摸屏上一直有信号,因此可以确定屏有故障。
新买的屏估计今天能收到货。加油~~
目前最大的问题就是,NAND没有调通,LCD-TFT也没有调试通过,网口芯片DM9000也在调试,还有就是音频了。
加油!!项目已经滞后快一个星期了。。。
喜讯啊~~,网口的物理层已经测试好了。
今天下午搞好的,原因很简单,也很让人郁闷。
不是因为别的,晶振的问题。采购时出了点问题,结果物料弄粗了。用的是25MHz的晶振,怎么也不会好了。换了个晶振,结果就能表示链接的绿色灯就开始亮了。
~~教训啊~以后的物料再麻烦我也要检查了。如果有MARK,那么在BOM中也要有MARK了。这样做检查时就简单了。
今天NAND也查出问题的原因了,原理图中设计的是16bits数据宽度的接口,而实际上所用的是8bits的,原来以为是pin-to-pin的,结果不是。这样以来NAND就不能测试了。
2010-12-3
今天实现了12864单色屏的3.3V驱动,原来是增加了电平转换电路的。后来在淘宝上看到能支持3.3V的,那当然是再好不过了。
不过有问题的是,屏的被压电路好像没有正常工作。因为淘宝上说的被压在5V供电的情况下能达到8V才对,而我用5V供电被压只有5.9左右。使用3.3V供电也只有3.9左右。3点几伏的对比度调整电压,在屏上是看不到图像的。
没办法就直接把调整对比度的电位器接到5V电源上去了。结果还真的就正常工作了呢。看来逻辑电路是没有问题的,就是调节对比度的电路有Bug。
悲剧的是今天发现之前测试的CAN电路没有正常工作,在控制芯片输出的引脚上没有检测到波形,只有一些杂波。
还有PCB布局上的缺陷就是电阻电容和CAN总线接口连接器距离太近,第二版要考虑把相关的器件放置到PCB的背面。
包括安装孔边上的连接器等。
2010-12-6
新买的LCD屏已经到货。赶快上电进行测试。
OK~~
看来是屏有故障了。不多说了,一个恨字。
经验以后作开发,买物料只要不是太贵就买成两套了。
LCD测试通过
剩下的还有网口,音频,CAN
CAN总线的TX引脚有波形可是在输出端却没有波形也不知道为什么~~调试中。
2010-12-7
CAN测试通过了,不过是更换了另一款芯片的,之前使用的是MAX3051,一直没有结果。
刚好手边有一块ST的开发板就拿来把上面的芯片给换了过来,结果就好了。使用的芯片是ST的L9616D
,几乎是pin-to-pin的,只是把5号引脚悬空了,是L9616D的Vref是MAX3051的shutdown,之前接地的。另外RS接地。现在是能在H和L上检测到波形了。至于MAX3051为什么不能我还不确定。看芯片手册上说在RS和地之间使用25K~200K的电阻能改变引脚上的电压我试过了,不行一直为0V。这个BUG暂且放下,考虑更换芯片了,因为MAX3051好贵的。
网络的问题才是重中之重啊~~连接的慢,不能确定是硬件还是软件的问题。不过硬件上有BUG是RJ45下面给铺铜了,同事给修改的时候出了点BUG。不管那么多还是线考虑下这个原因吧。
2010-12-8
网口故障解决。
应很快能确定测试通过了。
剩下的就是音频了。
2010-12-10
调试中的bug调试记录:
1. USB,之前只有1块板子是USB是好用的,其他的都不好用。后来把串在信号线上的33欧姆(实际焊接的是22欧姆)电阻改为0欧姆电阻后就好了。只是还有一块不好用。
2. SRAM,NOR在给别人延时的时候,不知道怎么回事就不能进行正常操作了,总是在进行第二次地址操作的 时候会让JTAG复位。后来解决了,采取的方法是把eclipse重新启动,JLINK也重新启动就好了。
3. LCD背光的问题,主要原因是使用的USB线质量不好,导致供电不足。使电路板工作不正常,才使LCD-12864的背光升压不正常。LCD-TFT的背光不亮,使用优质USB线或外置电源后,故障解除。
4. 网口经常会出现连接不上的现象,后来发现是USB供电,如果直接把USB线拔掉就不能正常工作,如果,使用电源开关先关电源就好了。注意:这里是把程序烧写到Flash里的。
5. IIC也出现过无故不能烧写的情况,当时处理的不太好,是把音频的IIC连线给断开今后重新连接后,能烧写的。估计重启下电脑也能解决问题,怀疑是eclipse的bug。因为最近它老是更新。
6. 调试USART时也出现过不能发送的现象,后来重启了eclipse和JLINK后就好了。
后来发现不能使用J-LINK正常连接,烧写操作等的原因是在flash里面烧写有程序的缘故。
板子已经调好,只是网口没有走差分线,所以效果不好,只有一块电路是正常的。
hbthgs_588794194 2012-5-22 18:25
用户1395973 2009-5-5 15:13