我们目前使用的是AM3354,最近遇到一个问题,低温-15℃下,系统无法启动,获取调试信息和正常板卡对比如下:
正常:
[ 0.000000] OMAP clockevent source: GPTIMER2 at 24000000 Hz
[0.000000]OMAP clocksource: GPTIMER1 at 24000000 Hz
[0.000000]sched clock:32 bits at 24MHz, resolution 41ns, wraps every 178956ms
[0.000178] Calibrating delay loop...718.02 BogoMIPS (1pj=3590144)
.......
[1.061561] ONFI flash detected
[ 1.064958]ONFI param page 8 valid
无法启动:
[0.000000]0MAP clockevent source: GPTIMER2 at 19200000 Hz
[0.000000] OMAP clocksource: GPTIMER1 at 19200000 Hz
[0.000000] sched clock:32 bits at 19MHz, resolution 52ns, wraps every 223696ms
[0.000224] Calibrating delay loop...574.66 BogoMIPS(1pj=2873344)
.......
[1.303620]No NAND device found
[1.308088]No NAND device found
系统时钟识别到19.2MHz,并进行了后续的校准,实际板上时钟为24MHz,导致了一些时序上的错误,最终导致kernel无法识别NAND,系统无法启动;
实测中我们把屏幕排线断开,系统正常启动(同样温度条件下),由此注意到系统的SYSBOOT[15:14],当SYSBOOT[15:14]=00b时,系统时钟为19.2MHz,接着测试两管脚的电压,发现SYSBOOT14只有1.5V左右,而管脚电平为3.3v LVCMOS,VIH>=2V,所以系统将该管脚电平识别成低,导致后续一些列错误;
但是测量常温下的正常启动板卡,该管脚电平为1.6V左右,仍然没达到2V的要求,实际上却可以正常启动,频率正确,正常识别NAND,不是很理解;
最后将SYSBOOT14脚的上拉电阻由100k改为47K,该现象消失,SYSBOOT14脚的高电平也上升到3V左右,所以是上拉电阻太大,分压太多导致电平异常?但为何常温下可以正常启动,低温-15℃却无法启动?
还有我查看了beagleboard以及其他厂家的开发板,上拉电阻同样也为100K,某款开发板上SYSBOOT14电压同样也为1.5V左右,所以为什么选择100K作为上拉电阻?查看datasheet,该管脚灌电流最大可达到100mA,上拉10K到3.3V,电流也才为0.33mA,所以为啥选用100K呢?能够解答一下?
我们SYSBOOT管脚直接从芯片引出,上拉100K到3.3V,之后直接通过排线连到LCD显示屏,显示屏上直接接到驱动芯片,中间无任何处理。
废话比较多,问题总结如下:
1.为什么SYSBOOT上拉电阻用100K?
2.为啥SYSBOOT电平电压不正常(1.5V)下系统能正常启动?
3.高低温下现象不同,是该芯片有什么特殊之处吗?