[原创]AM3352 + TPS65910 调试方法+调试记录
时间: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 调试方法+调试记录的更多相关文章
- 工具使用——MATLAB基本调试方法
作者:桂. 时间:2017-02-28 07:06:30 链接:http://www.cnblogs.com/xingshansi/articles/6477185.html 声明:转载请注明出处, ...
- MATLAB(1)——基本调试方法(Debug)
作者:桂. 时间:2017-02-28 07:06:30 链接:http://www.cnblogs.com/xingshansi/articles/6477185.html 声明:转载请注明出处, ...
- VS2013中带命令行参数的调试方法---C++
今天先记录一下(也是传说中大神喜欢装逼的comment line)c++中向主函数int main(int argc,char** argv )传递4中方法,欢迎添加新方法, 然后可以参考别人写的很好 ...
- Linux内核调试方法总结【转】
转自:http://my.oschina.net/fgq611/blog/113249 内核开发比用户空间开发更难的一个因素就是内核调试艰难.内核错误往往会导致系统宕机,很难保留出错时的现场.调试内核 ...
- 【转】Linux内核调试方法总结
目录[-] 一 调试前的准备 二 内核中的bug 三 内核调试配置选项 1 内核配置 2 调试原子操作 四 引发bug并打印信息 1 BUG()和BUG_ON() 2 dump_sta ...
- VxWorks操作系统shell命令与调试方法总结
VxWorks下的调试手段 主要介绍在Tornado集成开发环境下的调试方法,和利用支撑定位问题的步骤.思路. 1 Tornado的调试工具 嵌入式实时操作系统VxWorks和集成开发 ...
- Linux内核调试方法总结
Linux内核调试方法总结 一 调试前的准备 二 内核中的bug 三 内核调试配置选项 1 内核配置 2 调试原子操作 四 引发bug并打印信息 1 BUG()和BUG_ON() 2 ...
- erlang调试方法
第一种方式,加打印记录 %%-define(debug, ok). -ifdef(debug). -define(LOG(X), io:format("pid:~p , {~p,~p}: ~ ...
- Django的调试方法
web程序调试起来和桌面程序有着很大的差别,对于Django程序来说调试更是个问题.我们可以用postman发送http请求,下面就介绍几种调试方法: 1.在Eclipse+Pydev中调试Djang ...
随机推荐
- sql2005镜像实现
-- =========================================== -- 无论是主体服务器.镜像服务器, 还是见证服务器 -- 除特别说明外,均需要保证下面的操作 ...
- bug管理规范
资源来自:http://wenku.baidu.com/view/ae55b3b565ce05087632132b.html
- 关于UIWindow(转)
(原文出自:http://www.cnblogs.com/wendingding/p/3770052.html,特别感谢) 一:[[UIScreen mainScreen] bounds] 和[UIS ...
- 【python cookbook】【数据结构与算法】3.保存最后N个元素
问题:希望在迭代或是其他形式的处理过程中对最后几项记录做一个有限的历史记录统计 解决方案:选择collections.deque. 如下的代码对一系列文本行做简单的文本匹配操作,当发现有匹配时就输出当 ...
- linux mmap 内存映射【转】
转自:http://blog.csdn.net/xyyangkun/article/details/7830313 [-] mmap vs readwritelseek mmap vs malloc ...
- 分享:shell去掉linux配置文件的注释行
如何通过shell去掉Linux配置文件中的注释行呢? 本文给出两种解决方法,供大家参考. 方法1.使用grep -v "^#" 来去掉注释行,其中:-v 表示取反 ^# 表示注解 ...
- crontab实现每秒执行
crontab: #!/bin/bash step=$1 #每多少秒执行一次 ; i < ; i=(i+step) )); do date +%Y%m%d' '%H:%M:%S >> ...
- SVN上传文件注意事项-------------------养成良好的项目文件上传习惯
项目组的学弟经常把一些.obj文件和debug目录上传到svn,这个习惯很不好,我说了很多次他总改不了,还是写个文档说清楚吧,以后查起来也方便. svn是一种版本控制工具,主要目的是用来管理代 ...
- 19、文件上传与下载/JavaMail邮件开发
回顾: 一. 监听器 生命周期监听器 ServletRequestListener HttpSessionListener ServletContextListener 属性监听器 ServletRe ...
- js闭包的产生
当函数可以记住并访问所在的词法作用域, 即函数是在当前词法作用域之外执行, 这时就产生了闭包. function a () { function b () { //函数b的词法作用域是在函数a内 ...