- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
AT91SAMG20开发板调试
AT91SAM9G20开发板调试过程
硬件配置:AT91SAM9G20,64M的SDRAM,256MFLASH。
调试环境:windows下ADS1.2,openocd
调试工具:OpenJtag,Jlink V7
一:画板:
在画板的时,参考的是官方AT91SAM9G20最小系统部分和AT91SAM9260EK全功能开发板!
二:焊接:
因为9G20是BGA封装的,无法通过手工来焊接。于是在修手机市场,找别人贴的了两片!拿回来后,开始将最小系统周边的元件一一焊上!主要包括电源,晶振,复位,JTAG接口,DBGU调试端口!在将这些外围元件焊上去的时候,发现JTAG和DBGU端口都无法识别,于是买了个小型回流焊,又自个儿焊了两块!
三:调试:
电源检测:主要是检测5V,3.3V,1V电源,看是否正常。
时钟检测:主要检测外部32.768kHz与18.432MHz是否起振,在外面电子市场焊的两块,其中一块,内部有短路的地方,完全报废。另一块晶振可以起振。但是自个儿焊的两个,晶振不能起振。
DBGU端口检测:在AT91SAM9X系列的处理器中,在片内都固化了一个romboot程序,他会在一些设备的初始化工作,其中包括DBGU端口的初始化,在通过串口连接上PC后,可以在超级终端下打印一行字符串“ROMBOOT”
JTAG端口检测:在openocd环境下,通过openjtag对开发板进行调试,但是,在进入调试环境是,始终出现一错误,导致不能下载程序。后来改用ADS1.2+JLINK V8调试。
出现的问题:
1:时钟不能起振(自个儿焊的板子)
解决过程:在测晶振两端信号时,用手使劲按了下处理器,发现就有时钟信号,松开时,就没有。初步断定:处理器中存在虚焊的地方。通过用热风机,再次对处理器进行加热,冷却后,上电测试,OK!问题解决,运气!
2:DBGU端口无法打印ROMBOOT
AT91SAM9260EK全功能板,在超级终端下,可以打印ROMBOOT字符串,因为9260和9G20都是基于ARM926EJ-S内核的,所以我以此来判断处理器是否跑起来,但是检测9G20开发板外围电路时,没发现异常的地方。
3:JTAG接口无法识别的问题。
问题描述:通过OPENJTAG接口,在openocd环境下,在相同的*.cfg配置文件下,9260没有任何错误。但是在9G20下时,出现了一个错误:描述如下所示:
解决过程:因为这个错误,我们一直怀疑是软件配置的问题,而没有去分析硬件(当然确保了时间电路和原理图是一样的,而且曾把JTAG电路改成和9260一样的)。就这样修改两天配置文件,还是没有效果。
一个下午,偶然的机会,比较下两块板子JTAG接口的电平,发现两个JTAG接口的电平不一样,如是去掉9G20开发板中的R5,发现JTAG接口电平信号一致。
但是还是连接不上,经上网搜索,发现别人也出现过这样的问题,是因为JTAGSEL置1,后来将中间电阻R4去掉,即悬空!连接测试,OK!一阵窃喜!
4:如何判断BGA是否焊接好?最小系统是否跑起来啦?
问题描述:在解决了JTAG接口后,可以通过JLink连接到开发板,但是,DBGU串口部分不通,因而不清楚固化在片内的ROMBOOT是否运行起来,也不清楚最小系统是否在运行。
测试方法:电流检测法跑马灯检测法
电流检测:去掉电阻R26,用万用表检测其中的电流是否正常,内核正常工作时,其电流为8mA。
经测试,正常!
跑马灯测试:写一简单的跑马灯程序,测试对应引脚是否有高低电平在变化。主要包括两个函数:Start.s和led.c。在ADS1.2下调试时,正常,达到了程序设计的效果!由此断定:最小系统运行正常,同时,片内的ROMBOOT已经运行!
5:为什么DBUG串口不能打印ROMBOOT字符串?
经第四步的检验测试,可以判断固化在片内的ROMBOOT已经运行啦,但是为什么DBGU串口没有打印信息呢?经仔细检测:发现在原理图中的DBGU标号与com口标号混淆了!
从处理器出来的调试信号线,DTXD,DRXD经SP3232电平转换后到com1,但是底板的com口连接的是com0,发现问题的原因咯,不能简单的将com1接口连接到com0上,电平信号会有冲突!通过串口连接,超级终端终于出现了-----------------------久违的ROMBOOT。
6:SDRAM的调试
在最小系统运行起来之后,JTAG接口,DBGU端口,都测试好后,想通过官方的SAM-BA进行bootloader,kernel,fs的烧写时,在通过JLink连接时,总是出现这样的错误提示:
之后,可以通过JTAG接口来识别开发板,但是在执行SDRAM,NANDFLASH的初始化时,SAM-BA就会死掉!从网上搜索,是说SDRA
原创力文档


文档评论(0)