时间:20160912

一、电源时序排查

1、保证正确的上电时序,一般都会在CPU数据手册中提到。通常不会规定具体的上电先后时间的要求,多数情况下会要求前一个电平上升到90%满幅度之后才可以有下一个电平的开始上升。对于使用TPS65910作为电源管理单元的时候,上电时序会自动完成控制,只要正确的配置PMU的BOOT模式,具体配置要求为:BOOT1=1,BOOT0=0;  所以排查时序,你需要做的事情就是检查CPU与PMU之间的连接是否正确。

2、确保来自PMIC的所有电源轨的电平值都是正确的。检查所有电源轨的稳定电平值,MPU端电源轨电平值不稳定的情况很可能是由于没有正确连接VDDS_MPU_MON而导致的,参考相关EVM设计确认VDDS_MPU_MON是正确连接的,再次需要确认下VDDS_SRAM_CORE_BG 以及VDDS_SRAM_MPU_BB 是否正确连接到1.8V的电压源。

3、检查某些内部LDO输出的电压是否正确(注意这些电压都是内部LDO输出的,相应端口不需要再外接电压源,也不能被用作某些电路的供电电源)。通常这类电源叫做CAP_XXX,如果以下列出的项目电平值不正确,说明内部的某些电源轨配置不正确:

1)CAP_VDD_SRAM_CORE = 1.2V

2)CAP_VDD_SRAM_MPU = 1.2V

3)CAP_VBB_MPU = 1.1V

4)CAP_VDD_RTC = 1.1V (注意:如果RTC_KALDO_ENn管脚配置为低电平,那么CAP_VDD_RTC管脚为内部LDO输出1.1V;如果 RTC_KALDO_ENn管脚配置为高电平,那么CAP_VDD_RTC管脚为电源输入脚,需要外接1.1V的电压源,具体可参考:AM335x Schematic Checklist - RTC Section )

4、系统时钟检查)(19.2, 24, 25, 26 MHz)。

1)如果使用外部振荡器,保证震荡频率落在相应的频域内。

2)如果外接晶体(使用AM3352内部振荡器),务必在 XTALIN 脚有相应频率的正弦波信号, XTALOUT 脚正弦波允许小微的失真。

3)直接连接晶体到AM3352的 XTALIN 和 XTALOUT 之间,确保使用正确的电容取值。

5、检查上电复位信号PORZ。复位信号必须一致保持低电平在整个上电时序过程中,并且等到电源以及时钟频率都稳定后才可以拉高。

二、测试系统是否alive

1、如果有预留Debug串口(UART0),连接串口设备到PC端的串口调试工具,上电会发现串口有不断地打印“CCCC.......”,如果看到如上现象说明ROM已经运行并且正在尝试加载UBOOT。

当然前提是在BOOT启动配置包含串口启动这一项,系统上电后会按照BOOT启动配置进行加载,按照优先级逐个尝试,当前设备无法成功加载的话会自动转到下一级设备尝试启动。如主板BOOT配置如下,则优先级为NAND--NANDI2C--MMC0--UART0,

2、如果BOOT配置了UART0,而上电后看不到串口打印“CCC....”,考虑串口通信有问题。

1)用示波器探头测试UART_TX信号线上是否有信号波形,如果有波形数据而在PC端看不到数据考虑如下几点:是否串口参数设置问题,是否串口芯片有问题,是否串口线有问题

2)串口芯片问题检查技巧(以SP3232为例):

SP3232这类串口芯片原理就不再赘述,简单测试几个点就可以确定芯片是否正常。如下SP3232连接图,

①检查电源VCC是否正常

②测试pin1与pin3   pin4与pin5间电容两端是否有充放电波形,有充放电波形说明功能正常

③测试V+端电压是否为+5.5V, V-端电压是否为-5.5V

以上三项简单测试即可以判断串口芯片是否正常工作。

3、利用CLKOUT1  CLKOUT2输出验证内部系统时钟是否正常。

1)设置 SYSBOOT[5] = 1,会输出系统时钟到CLKOUT1,如果能在CLKOUT1测试到系统时钟信号,则表明内部系统时钟跑起来了。

三、SD卡插入检测不正常问题。

1、采用Micro SD卡进行系统启动,发现BOOT加载失败,测试MMC0与CPU的CLK信号正常。

2、测试SD卡Detect脚电平,未插入SD卡电平上拉为3.3V;插入SD卡,电平没有按照预设的结果电平被拉低,而是仍然保持3.1V的高电平,Deteect检测错误。

3、排查原因,发现是接地的问题。

1)Micro SD卡插入检测原理:Micro SD卡座的第9脚为检测脚,未插入SD卡时电平被上拉到3.3V高电平,插入SD卡时,第9脚弹片被挤压与卡座外壳接触,卡座外壳是接地设计的,所以会将Detect脚电平拉低,从而检测到有卡插入。

2)电路设计问题:系统地与保护地隔离设计,导致出现浮地现象出现,从而造成检测错误。

[原创]AM3352 + TPS65910 调试方法+调试记录的更多相关文章

  1. 工具使用——MATLAB基本调试方法

    作者:桂. 时间:2017-02-28  07:06:30 链接:http://www.cnblogs.com/xingshansi/articles/6477185.html 声明:转载请注明出处, ...

  2. MATLAB(1)——基本调试方法(Debug)

    作者:桂. 时间:2017-02-28  07:06:30 链接:http://www.cnblogs.com/xingshansi/articles/6477185.html 声明:转载请注明出处, ...

  3. VS2013中带命令行参数的调试方法---C++

    今天先记录一下(也是传说中大神喜欢装逼的comment line)c++中向主函数int main(int argc,char** argv )传递4中方法,欢迎添加新方法, 然后可以参考别人写的很好 ...

  4. Linux内核调试方法总结【转】

    转自:http://my.oschina.net/fgq611/blog/113249 内核开发比用户空间开发更难的一个因素就是内核调试艰难.内核错误往往会导致系统宕机,很难保留出错时的现场.调试内核 ...

  5. 【转】Linux内核调试方法总结

    目录[-] 一  调试前的准备 二  内核中的bug 三  内核调试配置选项 1  内核配置 2  调试原子操作 四  引发bug并打印信息 1  BUG()和BUG_ON() 2  dump_sta ...

  6. VxWorks操作系统shell命令与调试方法总结

    VxWorks下的调试手段 主要介绍在Tornado集成开发环境下的调试方法,和利用支撑定位问题的步骤.思路. 1         Tornado的调试工具 嵌入式实时操作系统VxWorks和集成开发 ...

  7. Linux内核调试方法总结

    Linux内核调试方法总结 一  调试前的准备 二  内核中的bug 三  内核调试配置选项 1  内核配置 2  调试原子操作 四  引发bug并打印信息 1  BUG()和BUG_ON() 2   ...

  8. erlang调试方法

    第一种方式,加打印记录 %%-define(debug, ok). -ifdef(debug). -define(LOG(X), io:format("pid:~p , {~p,~p}: ~ ...

  9. Django的调试方法

    web程序调试起来和桌面程序有着很大的差别,对于Django程序来说调试更是个问题.我们可以用postman发送http请求,下面就介绍几种调试方法: 1.在Eclipse+Pydev中调试Djang ...

随机推荐

  1. 视频处理控件TVideoGrabber中如何混合多个视频源(2)

    在前面的<视频处理控件TVideoGrabber混合多个视频源(1)>一文中,已经对TVideoGrabber中混合视频源做了一些内容的说明,本文将继续前文: >>>TV ...

  2. android 学习随笔二十二(小结)

    ADB进程 * adb指令 * adb install xxx.apk * adb uninstall 包名 * adb devices * adb start-server * adb kill-s ...

  3. vsftp黑白名单设置及问题

    问题一:ftpusers和user_list两个文件各自的用途是什么?有何关系? 首先请明确一点:ftpusers不受任何配制项的影响,它总是有效,它是一个黑名单!该文件存放的是一个禁止访问FTP的用 ...

  4. IBatisNet Demo (升级from 1.1)

    sqlMap.config, 要修改provider的设置 <providers resource="providers.config"/> <database& ...

  5. Hibernate API申明事务边界

    在Hibernate API中,Session和Transaction接口提供了以下声明事务边界的方法: 声明事务的开始边界: Transaction tx = session.beginTransa ...

  6. -Xms512m -Xmx1024m -XX:PermSize=256m -XX:MaxPermSize=512m

    -Xms 最小堆的大小, 也就是当你的虚拟机启动后, 就会分配这么大的堆内存给你 -Xmx 是最大堆的大小 当最小堆占满后,会尝试进行GC,如果GC之后还不能得到足够的内存(GC未必会收集到所有当前可 ...

  7. 【PHP设计模式 04_GongChang.php】 工厂方法

    <?php /** * [工厂方法] * 之前 03.php 简单工厂,如果再增加一个oracle客户端,就需要再次修改服务端Factory的代码. * 在面向对象设计法则中,有一个重要的[开闭 ...

  8. C#:反射

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...

  9. ecshop销售排行调用促销价格和市场价格

    我们知道在ecshop某些产品销售之后,销售量高的产品销售出去之后,能形成销售排行,ecshop的销售排行必须保持两个条件,首先是ecshop的商品必须库存足够,其次商品该商品必须上架的. 我们分析如 ...

  10. 使用radioGroup的时候,每个radioButton的状态选择器要使用 state_checked=""属性,不能使用selected

    使用radioGroup的时候,每个radioButton的状态选择器要使用 state_checked=""属性,不能使用selected