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.

[参考译文] TM4C129XNCZAD:具有外置SDRAM (使用EPI)的液晶屏

Guru**** 2391295 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1097940/tm4c129xnczad-lcd-with-external-sdram-using-epi

部件号:TM4C129XNCZAD

大家好,

我在TM4C129X微控制器的定制主板上使用额外的SDRAM。

如数据表所述

 将带有EPI的LCD与外部存储器接口时,外部代码地址
必须通过在EPI中将ECADR字段编程为0x1来选择1000.0000 space (ECADR空间)
地址映射(EPIADRMAP)在EPI偏移0x01C处注册。

我正在初始化EPI和LCD模块,如下所示:

uINT16_t *帧缓冲器;

作废EPI_Init (void)

sysctl_RCGCEPI_R = 1;
EPI0_BAUD_R = 1;
EPI0_CFG_R = 0x0.0011万;
while (EPI0_STAT_R和(1<6));
EPI0_SDRAMCFG_R =(0x3<30)|(940<16)|(1);
EPI0_ADDRMAP_R = 0xD<8|0xC;
帧缓冲区=(uint16_t *) 0x1000万;

}

作废LCDInit (void)

sysctl_RCGCLCD_R = 1;
LCD0_CLKEN_R = 0x07;
LCD0_CTL_R =(5<8)| 3;
LCD0_RASTRCTL_R =(2<20)|(1<7);//0x80.008万
// LCD0_RASTRCTL_R =(3<25)|(2<20)|(1<7);//0x80.008万
LCD0_RASTRTIM0_R =(0x7<24)|(0x7<16)|(0x3<10)|(49<4);
LCD0_RASTRTIM1_R =(0x8<24)|(0x8<16)|(0x3<10)|(479);
LCD0_RASTRTIM2_R =(0x1<25)|(0x1<24)|(0x1<22);
LCD0_DMACTL_R = 0x0.002万;

LCD0_DMABAFB0_R =(UINT32_t)frambuffer;
LCD0_DMACAFB0_R =(UINT32_t)帧缓冲+800*480*2-1
}

但由于某些原因,我的代码将进入FaultISR无限循环。

有人能告诉我为什么会发生这种情况吗?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好,

     您是否对代码执行了单步操作,以找出导致故障的代码行? 请确保您尝试访问的模块已启用。 如果模块未启用,而您正在尝试对其寄存器进行读/写操作,则会导致故障。  

     您也没有使用TivaWare API,而是使用DRM (直接注册处理)方法来配置模块。 使用DRM容易出错。  

     请在 C:\ti\TivaWare_C_Series-EPI.EPI\Examples\Peripherals\EPI.c中查看液晶屏和2.2 0.295 0.295 示例,并在 C:\tiaWare_C_Series-EPI.EPI\Examples\Peripherals\LCD 2.2 目录中查看示例。