This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

AM335x SYSBOOT管脚上拉电阻阻值问题

Other Parts Discussed in Thread: AM3354

我们目前使用的是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.高低温下现象不同,是该芯片有什么特殊之处吗?

  • 你有没有尝试别家的板子同样适用100K的电阻在这个温度下无法启动?
  • 还没试,后续会对比测试;
    但上拉的电压是1.5V本身就不正常吧,而且不明白官方选100K是出于什么考虑呢?
  • 别人的板子这个电压时多少?
  • 1.6V ,和我们的 现象一致,拔掉屏幕排线 ,电压恢复到2.8V;昨天测量,插屏幕排线时该开发板SYSBOOT管脚高电平都为1.6V左右,系统无法启动,出现“Did not find a recognized configuration, assuming General purpose EVM in Profile 0 with Daughter board”,应该是没有识别出正确的启动配置,将排线拔掉,正常启动,理论上这样才是正常的,这开发板也是参考官方设计,估计没出过问题应该也没细究这个原因吧。开发板以前能用,现在出现这种情况,应是系统鲁棒性的问题了。
    常温下我们也出现过无法启动的现象,但概率 小很多,低温下几乎必复现,应该还是和温度有关系,低温下内部MOS管工作状态发生改变,而管脚电平本身就在一个比较临界的状态,导致识别错误的现象,我是这么认为的。
    官方选100K的原因可能是出于低功耗的考虑吧,但是这么选,输出电阻太大了,后级驱动不起来。BBB板上是驱动HDMI,开发板和我们i都是驱动LCD,不知道这个区别大不大。
    对我们来说,10K就足够了,100K 太大了,没必要。我们的应用不太关注功耗。
  • sysboot上下拉阻值的选择应该能达到VIH, VIL,请参考下面的帖子说明。
    e2e.ti.com/.../528929

    常温1.6v的情况,可以用仿真器看一下CONTROL_STATUS采到的值是不是和sysboot管脚设置的一样。