icezhou 发表于 2016-6-1 17:28:38

使用TV_TOOLS调试方法

使用TV_TOOLS调试方法在调试板子过程中,涉及到最小系统不能启动的问题,即打印信息提示为:boot fail遇到这种情况,一般我们定位为最小系统没有起来,简单的讲也就是DDR与主IC之间的通信没有建立,遇到最小系统没有起来的分析方法总结如下:1、 检查主板上的DDR是否为该平台support List中的一款;2、 主板各路电压测量是否正确(内核,DDR供电等)3、 DDR和主芯片之间连接是否正确(时钟,地址,数据线之间串的电阻阻值是否正确,排阻是否存在虚焊或者短路等焊接不良)4、 DDR焊接是否良好5、 主芯片焊接是否良好一般排查到第三步能够解决,但是也有不能够解决问题,对于主芯片为QFP封装,1片DDR的情况还好,不管是将主芯片重新上锡,还是更换DDR,都还不算很难的事情,但是针对有多片DDR的情况,例如MSD6A801-BD平台,如果重新焊接更换DDR,更换主芯片,一是时间比较长,还有就是对焊接的要求比较高,现在原厂有一个工具,可以快速定位到是哪一块DDR出了问题,这样给解决类似的问题带来很多便利,下面就介绍怎么样用TV_TOOLS这个工具来定位DDR的问题。TV_TOOLS是MStar的一款调试工具,可以用来下载烧录Mboot,查看寄存器的值等功能,目前我比较了解的就是查看寄存器的值,上述的快速定位是哪一块DDR出了问题的方法,实际上也是查看相关的寄存器的值来判断的。TV_TOOLS界面如下:一、拿到这个工具之后第一步就是要配置好这个工具,包括你要选择的调试接口类型,如果是I2C的话,还要填好对应的I2C地址。a)、因为我们是通过I2C协议来读取主芯片相应寄存器的值,调试接口类型选择方法如下:点击菜单栏中的Confuguration,选择Debug Interface,然后选择I2C,最后选择Protocol(MStar-USB)b)、设置正确的I2C地址主机的I2C地址选用默认的378h,如下图所示:从机的I2C地址设置方法如下点击菜单栏中的I2C,选择Set I2C,会弹出下图所示界面:从机的I2C地址跟设备有关系,也即不同IC有不同的,这个地址如果不知道可以问原厂,目前MSD6A801-BD平台的这个I2C地址为0Xb4,如下所示:二、读取对应的寄存器的值(下面介绍的选择读取BK0x1033_84的值)一般按照如下图所示的方法设置可以查看相应的寄存器的值在MStar Controller下面选取Bank(MCU32),再选择102C~103D,同时选中CLKGEN1设置好之后,点击Read Bank,在下面相应的区域就可以读取相应的值上图读的值是0x1033_84的值为A005按照以上方法一般能够读到要读的寄存器的值,但是有时候也会出错,这个时候就要排查整个环境是否配置正确,因为主芯片的串口同时和I2C共用,当你没有关闭串口的时候,从I2C协议读出来的值有可能会受到串口通信的干扰,这个时候我们就要通过命令来关闭串口,关闭的方法是:打开串口工具,开机的同时按住回车键,提示输入命令时,输入命令du,按回车,这个时候就会提示串口已经关闭,这个去读取寄存器的值就不会变化!针对上述最小系统不能启动,但是不能确定是哪一个DDR存在问题的,可以通过上述方法读取寄存器0x1033_84的值,下面结果所对应的状态系统会默认先判断MIU0,当MIU0没有问题时再去判断MIU1。以下为MSD6A801-BD平台所对应的MIU0和MIU1。

bean.yang 发表于 2016-6-1 18:08:14

:lol:lol:lol

halleyhuang 发表于 2016-6-2 11:59:08

很好,很全

gdhzw 发表于 2022-4-16 13:04:46

有MSO9380ATZ平台的吗?
页: [1]
查看完整版本: 使用TV_TOOLS调试方法