IMX6ULL 热复位无法从EMMC FLASH启动

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 

IMX6ULL 热复位无法从EMMC FLASH启动

3,688 次查看
henrygore
Contributor II

大家好,

      我的一款设计中,IMX6ULL从EMMC FLASH(SD2接口、4GB)中引导启动。电路板上电后,由USB OTG下载程序,再断电重新上电,串口输出打印信息。后续每次断电重启,CPU都能正常引导,串口输出正常,其他所有功能都正常。但在带电工作中,按下手动复位键(已量CPU的POR#引脚同时变低,以确保复位电路是正确的),CPU不复位(或者可能CPU复位了,但不从EMMC FLASH引导),串口也没有输出。手动复位时,CPU正常工作,不处于挂起或掉电模式。电路板打样了4块,4块现象完全相同。

微信图片_20200308094951.png

      上图为本设计的复位电路,MN_RST#为手动复位,SYS_RST#复位CPU,同时该信号也复位EMMC FLASH芯片(未用到CPU的SD2_RST#信号复位FLASH芯片)。后来,我把SYS_RST#信号只复位CPU,EMMC FLASH信号的复位由CPU的SD2_RST#完成,但现象还是一样。

      在我的另外一款IMX6ULL设计中,使用8位的NAND FLASH启动,复位电路以及外部电源(包括上电时序电路)基本一致,但每次热复位,CPU都能正常工作。

      请熟悉IMX6ULL的朋友帮忙查查问题,谢谢!

标签 (1)
标记 (1)
4 回复数

3,397 次查看
weidong_sun
NXP TechSupport
NXP TechSupport

Hi henry,

     分析下来,问题应该是来自eMMC复位,你没有使用SD2_RST信号对eMMC复位,那么你需要把BOOT_CFG1[1]拉低,也就是LCD_DATA1引脚需要拉低。

pastedImage_1.png

pastedImage_2.png

这样,应该可以启动了。

Have a nice day!

B.R

Weidong

3,397 次查看
henrygore
Contributor II

Hi wigros,

      根据您的回复,我检查了一下电路,并做了一下实验:

1、MAX706同时复位CPU和EMMC FLASH时,板上LCD_DATA1确实是拉低的。这个是我最原始的设计,但热复位后不引导程序。

2、我把EMMC FLASH的复位引脚飞线到CPU的SD2_RST#引脚,此时MAX706只给CPU复位了,同时拉高LCD_DATA1。按参考手册上的说明,此时热复位时CPU应该是可以EMMC FLASH引导程序的。但很遗憾,还是和第1点一样的结果。板子断电重启还是可以正常工作的。

      在实验过程中,我量过POR_B引脚和LCD_DATA1引脚信号,保证硬件电路没有出错。

微信图片_20200312203504.png

      上图为板子引导设置,帮忙看看还有哪里设置有问题。一开始R43和R44是贴片的,但上电时CPU不引导。目前已改成去掉这两个电阻,CPU才能从EMMC FLASH引导。EMMC FLASH型号为:MTFC4GACAJCN-4M IT (JEDEC/MMC standard version 5.0-compliant),为何MMC 5.0的芯片只支持1-bit引导,4-bit,8-bit,4-bit DDR和8-bit DDR都不支持?

      谢谢!   

0 项奖励
回复

3,397 次查看
weidong_sun
NXP TechSupport
NXP TechSupport

启动的时候,你配置为8bit normal模式启动,没必要8bit DDR模式。

你参考我们的开发板图纸,配置一下。图纸的表里,写得很清楚的。

伟东

3,397 次查看
henrygore
Contributor II

Hi Wigros,

谢谢您的支持。

0 项奖励
回复