/***********************************************************************
* OK335xS can't reset
* 说明:
* 最近OK335xS芯片无法reset,无论是watchdog、直接硬件reset、PMU断电
* reset,都无法重启,但是正常的系统断电是可以重新进入系统,最后问题定
* 位于系统在不断电情况下重启,SYSBOOT Configuration Pins配置上存在问题。
*
* 2016-4-8 深圳 南山平山村 曾剑锋
**********************************************************************/ 一. 参考文档:
. AM335X Watchdog Reset
http://www.deyisupport.com.edgekey.net/question_answer/dsp_arm/sitara_arm/f/25/t/47590.aspx
. 关于am335x warm reset 和ROM code一个问题
http://www.deyisupport.com/question_answer/dsp_arm/sitara_arm/f/25/t/65124.aspx
. The Chip don't Reset when pin PORz go LOW in Linux!
http://www.deyisupport.com/question_answer/dsp_arm/sitara_arm/f/25/t/59743.aspx
. am335x w25Q256
http://www.deyisupport.com/question_answer/dsp_arm/sitara_arm/f/25/t/69688.aspx
. AM335x: Reset the device with command for warmrstn
https://e2e.ti.com/support/arm/sitara_arm/f/791/t/387231
. TPS65910x Integrated Power-Management Unit Top Specification
http://www.ti.com/lit/ds/symlink/tps65910.pdf
. AM335x ARM Cortex-A8 Microprocessors (MPUs) Technical Reference Manual (Rev. H).pdf
参考:26.1.5.2. SYSBOOT Configuration Pins
. 如何修改AM335x中的ROM code?
http://www.deyisupport.com/question_answer/dsp_arm/sitara_arm/f/25/t/74633.aspx
. AM335x SYSBOOT[:] XIP(MUX2) Setting
https://e2e.ti.com/support/arm/sitara_arm/f/791/t/345632 二. 现象:
在linux命令行下执行reboot、reset按键、直接PMIC reset,系统会等5分钟之后才能reboot。 三. 解决思路:
. 执行reboot,watchdog是否引发了reset信号;
. 直接对PMU进行reset,因为PMU管理所有的电源,发现还是无法复位;
. 当reset PMU时,发现对应的输出电源有断开,说明PMU工作正常,并且reset了;
. am335x再重新上电之后没有动作,于是怀疑是SYSBOOT Configuration Pins电压不对;
. 对PMU reset时,同时检查SYSBOOT Configuration Pins引脚,发现电压不对;
. 移除连接在SYSBOOT Configuration Pins上的相关芯片,发现电压最低只能到达1.3V;
. 修改SYSBOOT Configuration Pins上拉电源来源,直接对PMU复位,am335x正常reset;
. 从上面现象判断问题是在SYSBOOT Configuration Pins硬件问题上;
. 硬件SYSBOOT[:]修改为00010b,一切正常,说明确实是SYSBOOT Configuration Pins配置问题;
. 尝试修改在SYSBOOT Configuration Pins为:
SYSBOOT[:] = 10111b :
. NAND ;
. NANDI2C ;
. MMC0 ;
. UART0 .
SYSBOOT[:] = 10011b :
. MMC0 ;
. SPI0 ;
. UART0 ;
. USB0 .
. 这个时候好像所有的reset都行了,但是PWRONRSTn引脚上的reset还是不行;
. 经过调试最后发现是74LVCH162245芯片导致的问题,于是将其换成:74AVC161245;
. 到这里貌似问题就解决了。 四. 具体原因:
. 复位后,SYSBOOT Configuration Pins对应的电压决定了重启的device list;
. device list中没有nandflash,导致不能重启;
. 5分钟之后SYSBOOT Configuration Pins可能正常了,或者什么原因,导致的device list中有了nandflash,所以正常了。
. 等5分钟,其实是因为启动列表中有了EMAC1,这个会等待很长时间。 五. 建议:
就个人感觉来说,其实在硬件调试阶段,可以考虑将SYSBOOT[:]配置如下,因为你可以看到几个"CCCCCCCC",这样就可以知道怎么内部的ROM code是否正常运行了。
SYSBOOT[:] = 00100b
. UART0 ;
. XIP ;
. MMC0 ;
. NAND .

OK335xS can't reset with reboot的更多相关文章

  1. OK335xS PMIC(TPS65910A3A1RSL) reset

    /*********************************************************************** * OK335xS PMIC(TPS65910A3A1 ...

  2. android recovery模式及ROM制作

    转自android recovery模式及ROM制作 1.总述 为了方便客户日后的固件升级,本周研究了一下android的recovery模式.网上有不少这类的资料,但都比较繁杂,没有一个系统的介绍与 ...

  3. The TCP/IP parameters for tweaking

    The TCP/IP parameters for tweaking a Linux-based machine for fast internet connections are located i ...

  4. Android恢复出厂设置流程分析【Android源码解析十】

    最近看恢复出厂的一个问题,以前也查过这方面的流程,所以这里整理一些AP+framework层的流程: 在setting-->备份与重置--->恢复出厂设置--->重置手机---> ...

  5. JVM 几个重要的参数

    <本文提供的设置仅仅是在高压力, 多CPU, 高内存环境下设置>  最近对JVM的参数重新看了下, 把应用的JVM参数调整了下.  几个重要的参数 -server -Xmx3g -Xms3 ...

  6. java虚拟机学习-JVM调优总结-调优方法(12)

    JVM调优工具 Jconsole,jProfile,VisualVM Jconsole : jdk自带,功能简单,但是可以在系统有一定负荷的情况下使用.对垃圾回收算法有很详细的跟踪.详细说明参考这里 ...

  7. CMD命令讲解(一)SC

    参考网站:https://technet.microsoft.com/en-us/library/bb490995.aspx 备注:网站内容是翻译得来,源网站在上面 SC 与服务控制器和已安装的服务进 ...

  8. vm虚拟机黑屏解决办法

    以管理员打开cmd 输入 netsh winsock reset --------------------- 然后 reboot

  9. N76E003之ISP

    Flash存储器支持硬件编程和应用编程(IAP).如果产品在研发阶段或产品需要更新软固件时,硬件编程就显得不太方便,采用在系统编程(ISP)方式,可使这一过程变得方便.执行ISP不需要将控制器从系统板 ...

随机推荐

  1. 编码错误设置错误报 "SyntaxError: Non-ASCII character '/xe6' "

    无意中碰到键盘导致一段处理中文拼音的 python 代码跑起来报了个错 “SyntaxError: Non-ASCII character ‘/xe6' " 看了下是注释 # coding: ...

  2. ios播放声音中断后台音乐的问题

      今天遇到一个ios播放声音中断后台音乐的问题,在我的app中如果调用AVAudioSession 播放完声音,后台的qq音乐偶尔不能恢复,而网易云音乐一次都不能恢复播放,研究了一下AVAudioS ...

  3. python学习笔记24(路径与文件 (os.path包, glob包))

    os.path模块主要用于文件的属性获取,在编程中经常用到,以下是该模块的几种常用方法. >>> import os.path >>> path = '/home/ ...

  4. WCF入门教程一[什么是WCF]--转载只为学习收藏

    一.概述 Windows Communication Foundation(WCF)是由微软发展的一组数据通信的应用程序开发接口,可以翻译为Windows通讯接口,它是.NET框架的一部分.由 .NE ...

  5. centos apache 隐藏和伪装 版本信息

    1.隐藏Apache版本信息 测试默认 apache 的状态信息[root@1314it conf]# curl -Is localhostHTTP/1.1 200 OKDate: Tue, 16 N ...

  6. [转载]中国天气网API

    最近在做个网站要用到天气网的api,在网上找了些参考资料,这篇文章对天气网api的介绍比较详细,所以转载之,谢谢原作者的辛勤劳动和奉献精神. 原文地址:http://g.kehou.com/t1033 ...

  7. efficient c++,单线程内存池

    基于 http://www.cnblogs.com/diegodu/p/4555018.html operator new的知识基础上 介绍这个章节的内容 对于一般直接 new 与delete 性能较 ...

  8. VS2005 VS2008 Manifest 配置问题总结

    一.问题 编译某个遗留工程后,运行程序时报错,“由于应用程序的配置不正确,应用程序无法启动.重新安装应用程序可能会解决这个问题.” 查看生成的Manifest文件如下: <?xml versio ...

  9. C++遍历目录,并把目录里超过7天的文件删除(跨平台windows&linux)

    C++遍历目录,并把目录里超过7天的文件删除,适用于项目里删除过期的日志,或者视频文件. 在windows和linux下测试通过. windows测试结果: linux测试结果: 源码: #inclu ...

  10. Shell中调用、引用、包含另一个脚本文件的三种方法

    脚本 first (测试示例1) first#!/bin/bashecho 'your are in first file' 方法一:使用source #!/bin/bashecho 'your ar ...