H-Jtag接口板调试总结

来源:互联网 发布:11选5遗漏数据查询360 编辑:程序博客网 时间:2024/05/22 05:25

首先必须保证的三点:

1、  必须确保nRESET复位信号的电压为高电平,如果为低电平,则整个板子不工作

2、  确保arm周边的晶体或晶振是否能够有正确的时钟输出,如果不能,则整个板子不工作

3、  确保所有的电源有没有正常工作(1.8V、3.3V、5V等)

如果这三点保证不了会出现各种各样的错误

 

1

现象:

h-flasher提示“Can't download driver to specified address”错误

 

分析:

这个错误提示的是不能将驱动下载到正确的地址,这里的合适的地址只得就是sdram,因为我们如果通过jtag端口控制flash芯片时,我们依然需要将flash的驱动通过jtag口将其下载到sdram中,这样flash才能运行。出现这个错误我目前我接触到的就两个原因:一个是sdram虚焊或者坏掉了,或者周围的电容电阻有问题,另外一个就是有其他芯片处于输入输出状态影响了总线,所以jtag的数据不能传到sdram中。

 

解决办法:

1、  补焊sdram以及相关电阻电容

2、  查看有没有占用总线的元件,如fpga,可以重新刷一下 fpga的程序。

 

2、

现象:

h-flasher提示“Flash id does not match”错误

 

分析:

jtag需要读取flash的相关单元读取flash id,如果flash id可以读取出来,说明片子并没有完全不工作,但是flash id 缺不匹配,说明flash有虚焊。或者就是这个片子是新出厂的,新出厂的id与原来出场的id不同。

 

解决办法:

1、  补焊flash

2、  打开prgram file\H-JTAG下的FDevice文件夹,修改相应FLASH_ID为H-Flasher在programming后出错显示的那个id(reset按钮左边),就可以了

 

3、

现象:

H-flahser提示:“Error,can’t halt target and make it enter DEBUG state,please try again with lower tck speed”

 

分析:

这个错误说的还是听笼统的,就是不能进入调试状态,造成这个提示的原因有很多,如flash虚焊,晶振未起振,以及复位芯片有问题,包括即使复位信号为高电平,也可以造成这个现象,如复位信号不稳定。如果不焊接flash也会提示这个问题

 

解决办法:

1、  补焊flash(换flash)

2、  测试晶振

3、  测试复位信号(换复位芯片或将其焊下)

 

4、

现象:

Uboot启动后显示nandflash存储量为0,然而我们却可以通过h-flasher往flash中写入uboot

 

分析:

如果能往其中写程序,说明flash是好的,可能由于复位信号不稳定造成这个原因

 

解决办法:

更换复位芯片

 

5、

现象:

Uboot不断地重启

 

分析:

原因有很多,有可能是由复位信号不稳定造成的

 

解决办法:

    更换复位芯片

     

6、

现象:

写入uboot后,串口无输出

 

过程:

1、首先测试了一下arm有没有给调试串口芯片发送数据,发现没有数据。

2、用主机(串口助手)给调试串口发送数据,发现有数据。(推断串口芯片应该是好的,是因为arm没有从nandflash中读出uboot,所以uboot没有启动,以至于串口没有输出)

3、用h-flasher读出flash中的数据,与写入的uboot文件进行对比,发现读出的数据与uboot.bin的数据是不一样的,然后无论擦出还是重新写flash,其读出的值都没有任何改变。(推断flash坏了,换了一片flash)

4、换好的flash使用h-flasher擦除时不能成功,之后没有多久提示“can't halt target and make it enter DEBUG state,please try again with lower tck speed”错误

5、发现有个复位芯片焊接错误,复位信号不稳定,推断这是不能对flash进行擦除或写操作的原因

 6、将错的复位芯片焊掉,之后工作正常。

 

解决办法:

    更换复位芯片

 

7、

现象:

    未焊接复位芯片的S接口板重新上电后无法正常启动,如果连接jtag并且复位一下则可以启动 

原因:

    虽然默认的即使不焊接复位芯片时,复位信号连接着3.3V电源,则也可以提供复位信号,然而必须考虑刚上电的瞬间,在这一瞬间如果没有经过复位而cpu与其他元件直接运行,则由于不同步则可能cpu发出错误的指令得不到执行。如果有复位芯片会等到3.3V稳定之后复位一到两个周期,然后使cpu运行,则可以正常工作。这就是为什么jtag复位后,arm可以启动

 

解决办法:

    焊上复位芯片

原创粉丝点击