深度解析与求助:PXA3XX的Boot ROM的全部功能与CODE

kyzf 2009-12-11 10:41:03
公司用MARVELL的PXA系列做了一些项目;
目前有个PXA3XX的项目,在打板回来后,竟然PXA3XX的标配13MHz的晶振无法启振(以前曾未有过的故障)


解决故障的大体步骤如下:
<一>、
首先进行多块单板分别测试,结果都是13MHz的晶振无法启振,说明此问题不是个体问题,很可能是共性问题;
接着检测了焊接,通过更换IC,并检测相关阻抗,得出此故障非焊接的问题;

<二>、
后来根据PXA3XX的Power Up Reset Timing,进行测量:
1、首先系统电源正常;32.768KHz晶振也正常;
2、VCC_BBATT(RTC功能模块的电源)与PXA3XX的nRESET(复位输入信号)以及nBATT_FAULT等对应的时序都正常;
3、SYS_EN、VCC_MVT、VCC_SYSEN、PWR_EN、PWR_SCL、PWR_SDA、nRESET_OUT等电源与信号都已按照相关时序,正确给出。
4、对应的PMU也正常给出VCC_APPS, VCC_SRAM,
因为之前已研发出几款PXA3XX的产品,所以时序等问题,基本都不可能存在问题。

<三>、
当时怀疑由于PCB布局与布线可能存在问题,导致相关信号的信号完整性不好,从而导致13MHz无法启振,主要进行下列排除:
1、13MHz的参考电源VVC_MVT,通过相关测量该电源已经供上,且13MHz功能电路的PXTAL_OUT已经输出1.8V(参考电源VVC_MVT即为1.8V),又PXTAL_IN为0,这些都正常,从而排除VVC_MVT电源信号完整。
2、VCTCXO_EN(PXA3XX使能外部晶振的使能管脚)对应的参考电源VCC_IO1,通过相关测量该VCC_IO1的确存在,而且幅度很符合要求;

<四>、
但是通过测量其他PXA33XX项目的单板的13MHz启振前,VCTCXO_EN会从低电平变成高电平,之后PXTAL_OUT与PXTAL_IN才会产生
1.8V的振荡信号,这是一个疑点;暂时MARK。

<五>、
为了验证与排除NAND FLASH与代码的影响,我把其他PXA3XX项目的单板的NAND FLASH 直接焊接掉,测量时钟,13MHz还是能正常输出。故可排除 OBM代码的影响。

<终>
最后通过仔细排查,发现VCC_SRAM_1P4V存在问题,即PMU采用LDO输出VCC_SRAM,在信号命名上位:VCC_SARM_1P4V;而PXA3XX上则为VCC_SRAM_1P4V,所以两边信号名不一样,从而导致PMU输出的1.4V并没有供给PXA3XX的VCC_SRAM;
最后通过飞线,把它们连接到一起,故障得以解决,13MHz启振。


<疑问>
虽然故障得以解决,但深度问题还是是没有彻底弄清楚,恳请牛人解答,同请大家共同探讨,非常感谢;具体深度问题如下:
1、PXA3XX的Boot ROM的全部功能与CODE
2、13MHz晶振的启动是需要软件进行怎样的配置?
3、软件配置后,VCTCXO_EN即输出高电平,也既是说VCTCXO_EN可当成软件配置13MHz的一个标志?
...全文
172 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
sdtiantian 2010-05-22
  • 打赏
  • 举报
回复
我也留个记号,以后再说
Heaven_Redsky 2010-01-06
  • 打赏
  • 举报
回复
对ARM不甚了解,留名,以后再看。。
ZTG328 2009-12-12
  • 打赏
  • 举报
回复
顶楼主 楼主的硬件功力好强 降龙十八掌啊
kyzf 2009-12-11
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 amorous 的回复:]
pxa3xx是什么内核的,求教的说
[/Quote]

Xscale架构,说到底就是基于ARM11的架构。

High-performance processor:
• XScale® microarchitecture with Intel® Wireless MMX™ 2 media enhancement technology
• 7-8 stage pipeline
• 32 Kbytes instruction cache
• 32 Kbytes data cache
• 2 Kbytes “mini” data cache
• Extensive data buffering

Up to 768 Kbytes of internal SRAM for high speed code or data storage preserved during low-power states Rich serial peripheral set:
• AC ’97 audio port
• USB v. 2.0 client controller
• USB v. 1.1 client controller
• Up to 3 USB v. 1.1 host controller
• USB on-the-go controller
• Three high-speed UARTs with hardware flow control
• SIR and Consumer IR infrared communications ports
Hardware debug features — IEEE JTAG interface with boundary scan
Hardware performance-monitoring features with on-chip trace buffer
Real-time clock
Operating-system timers
LCD controller
Quick Capture Interface Controller
Low power:
• Dynamic voltage management support
• Less than 500 mW typical internal power dissipation
• Core supply voltage may be reduced to 0.95 V
• Five low-power modes

High-performance memory controller:
• Mobile DDR SDRAM interface
• EMPI and Data Flash interface
• Up to four static chip selects
• Companion-chip interface

Mini-LCD controller
Two Universal Subscriber Identity
Module (USIM) interface
Flexible clocking:
• CPU clock from 104 to 806 MHz
• Flexible memory clock ratios
• Frequency change capability
• Functional clock gating

Additional peripherals for system connectivity:
• SD/SDIO/MMC Controller (with SPI mode support)
• Four SSP controllers
• Two I2C controllers (one targeted for PMIC control)
• Four pulse-width modulators (PWMs)
• Keypad interface with both direct and matrix keys, rotary encoder support
• Most peripheral pins double as GPIOs
AMOROUS 2009-12-11
  • 打赏
  • 举报
回复
pxa3xx是什么内核的,求教的说
gooogleman 2009-12-11
  • 打赏
  • 举报
回复
不错总结,支持加精,
高手一出,风格很不一样。
sailorlyq 2009-12-11
  • 打赏
  • 举报
回复
13M的应该是程序可控的。深度睡眠后这个晶振是关闭的,只有那个时钟的好像32K的晶振在工作。

你的故障原因初步分析是,bootrom配置13M晶振,但在配置之前它检查配置片内RAM,当RAM没有供电时,bootrom无法继续执行,也就不能进行13M晶振的配置。32K的那个晶振应该是上电就工作的。
kyzf 2009-12-11
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 trek 的回复:]
13Mhz起振好像和Code没有关系吧,后先是32.765起整个芯片有时钟基础了然后会输出Power 与 SysEN让PMU送电的,3.3 1.8 1.4都进去之后系统才能开始运行code。
你们板子用的那个PMU?
[/Quote]

我们当初也是和上楼一样认为; 只要13MHz的参考电源VCC_MVT给出,13MHz就应该启振。但后来发现不是啦
我们的上电时序完整符合PXA3XX的Power Up Reset Timing,结果所有都对,就是13Mhz没有。
只是Power Up Reset Timing没有对时钟的时序。

PMU是NS的LP3972;
另外32.768是RTC对应的VCC_BATT上电就有;而且一直有。
并且SYS_EN、VCC_MVT、VCC_SYSEN、PWR_EN、PWR_SCL、PWR_SDA、nRESET_OUT等电源与信号都已按照相关时序,正确给出。

3.3 1.8是PXA3XX系列的SYS_EN给出后,LP3972就会输出3.3 1.8 给PXA3XX,而1.4是PWR_EN给出后,LP3972才给PXA3XX供给的。
Trek 2009-12-11
  • 打赏
  • 举报
回复
13Mhz起振好像和Code没有关系吧,后先是32.765起整个芯片有时钟基础了然后会输出Power 与 SysEN让PMU送电的,3.3 1.8 1.4都进去之后系统才能开始运行code。
你们板子用的那个PMU?

19,504

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 嵌入开发(WinCE)
社区管理员
  • 嵌入开发(WinCE)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧