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.

[参考译文] TM4C1294NCPDT:外部 SDRAM

Guru**** 2563300 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/772974/tm4c1294ncpdt-external-sdram

器件型号:TM4C1294NCPDT

您好!

我使用连接了外部 SDRAM 的定制板(MT48LC32M16A2P)。

我尝试执行简单访问、但未成功。  

*(volatile uint32_t*) 0x60000000 = 0xA1A2A2A3A4;

结果=*(volatile uint32_t*) 0x60000000;

结果始终包含 0xFFE0FFE0。 请在下面找到初始化步骤。

uint32_t ui32Val;

SysCtlPeripheralEnable (SYSCTL_Periph_EPI0);

SysCtlPeripheralEnable (SYSCTL_Periph_GPIOA);
SysCtlPeripheralEnable (SYSCTL_Periph_GPIOB);
SysCtlPeripheralEnable (SYSCTL_Periph_GPIOC);
SysCtlPeripheralEnable (SYSCTL_Periph_GPIOG);
SysCtlPeripheralEnable (SYSCTL_Periph_GPIOK);
SysCtlPeripheralEnable (SYSCTL_Periph_GPIOL);
SysCtlPeripheralEnable (SYSCTL_Periph_GPIOM);
SysCtlPeripheralEnable (SYSCTL_Periph_GPION);

ui32Val = HWREG (GPIO_PORTC_BASE + GPIO_PCTL);
ui32Val &= 0x0000FFFF;
ui32Val |= 0xFFFFFF0000;
HWREG (GPIO_PORTC_BASE + GPIO_O_PCTL)= ui32Val;

//
// EPI0S8 ~ EPI0S9:A6 ~ 7
//
ui32Val = HWREG (GPIO_PORta_base + GPIO_PCTL);
ui32Val &= 0x00FFFFFF;
ui32Val |= 0xFF000000;
HWREG (GPIO_PORta_base + GPIO_PCTL)= ui32Val;

//
// EPI0S10 ~ EPI0S11:G0 ~ 1
//
ui32Val = HWREG (GPIO_PORTG_BASE + GPIO_PCTL);
ui32Val &= 0xFFFFFF00;
ui32Val |= 0x000000FF;
HWREG (GPIO_PORTG_BASE + GPIO_O_PCTL)= ui32Val;

//
// EPI0S12 ~ EPI0S15:M0 ~ 3
//
ui32Val = HWREG (GPIO_PORTM_BASE + GPIO_PCTL);
ui32Val &= 0xFFFFFF0000;
ui32Val |= 0x0000FFFF;
HWREG (GPIO_PORTM_BASE + GPIO_O_PCTL)= ui32Val;

//
// EPI0S16 ~ EPI0S19:l0 ~ 3
//
ui32Val = HWREG (GPIO_PORTL_base + GPIO_PCTL);
ui32Val &= 0xFFFFFF0000;
ui32Val |= 0x0000FFFF;
HWREG (GPIO_PORTL_BASE + GPIO_O_PCTL)= ui32Val;

//
// EPI0S28:B3
//
ui32Val = HWREG (GPIO_PORTB_BASE + GPIO_O_PCTL);
ui32Val &= 0xFFFFFFF;
ui32Val |= 0x0000F000;
HWREG (GPIO_PORTB_BASE + GPIO_O_PCTL)= ui32Val;

//
// EPI0S29 ~ EPI0S30:n2 ~ 3
//
ui32Val = HWREG (GPIO_PORTN_BASE + GPIO_PCTL);
ui32Val &= 0xFFFFFF;
ui32Val |= 0x0000FF00;
HWREG (GPIO_PORTN_BASE + GPIO_O_PCTL)= ui32Val;

//
// EPI0S00 ~ EPI0S03,EPI0S31:K0 ~ 3,K5
//
ui32Val = HWREG (GPIO_PORTK_base + GPIO_PCTL);
ui32Val &= 0xFF0F0000;
ui32Val |= 0x00F0FFFF;
HWREG (GPIO_PORTK_base + GPIO_O_PCTL)= ui32Val;

GPIOPinTypeEPI (GPIO_Porta_base、EPI_Porta_Pins);
GPIOPinTypeEPI (GPIO_PORTB_BASE、EP_PORTB_Pins);
GPIOPinTypeEPI (GPIO_PORTC_BASE、EP_PORTC_Pins);
GPIOPinTypeEPI (GPIO_PORTG_base、EP_PORTG_Pins);
GPIOPinTypeEPI (GPIO_PORTK_base、EPI_PORTK_Pins);
GPIOPinTypeEPI (GPIO_PORTL_base、EPI_PORTL_Pins);
GPIOPinTypeEPI (GPIO_PORTM_BASE、EP_PORTM_Pins);
GPIOPinTypeEPI (GPIO_PORTN_BASE、EP_PORTN_Pins);

EPIDividerSet (EPI0_BASE、1);

EPIModeSet (EPI0_BASE、EPI_MODE_SDRAM);


EPIConfigSDRAMSet (EPI0_BASE、(EPI_SDRAM_CORE_FREQ_50_100 | EPI_SDRAM_FUL_POWER |
EP_SDRAM_SIZE _512Mbit)、1024);

EPIAddressMapSet (EPI0_BASE、EPI_ADDR_RAM_SIZE = 256MB | EPI_ADDR_RAM_BASE_6);

while (HWREG (EPI0_BASE + EPI_O_STAT)和 EPI_STAT_INITSEQ)
{
} 

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我没有您的定制板、因此无法为您进行调试。 您可能需要查看与逻辑分析仪的接口。 此外、您还看到了中的示例:
    C:\ti\TivaWare_C_Series-2.1.4.178\examples\peripherals\EPI
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Bob、您好!

    我在上面布置的序列取自 examples\peripherals\EPI。 硬件连接使用 www.ti.com/.../tidres5.pdf 完成
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    因此、更改端口多路复用器的配置方式是可行的。

    GPIOPinConfigure (GPIO_PA6_EPI0S8);
    GPIOPinConfigure (GPIO_PA7_EPI0S9);
    
    GPIOPinConfigure (GPIO_PB3_EPI0S28);
    
    GPIOPinConfigure (GPIO_PC4_EPI0S7);
    GPIOPinConfigure (GPIO_PC5_EPI0S6);
    GPIOPinConfigure (GPIO_PC6_EPI0S5);
    GPIOPinConfigure (GPIO_PC7_EPI0S4);
    
    GPIOPinConfigure (GPIO_PG0_EPI0S11);
    GPIOPinConfigure (GPIO_PG1_EPI0S10);
    
    GPIOPinConfigure (GPIO_PH0_EPI0S0);
    GPIOPinConfigure (GPIO_PH1_EPI0S1);
    GPIOPinConfigure (GPIO_PH2_EPI0S2);
    GPIOPinConfigure (GPIO_PH3_EPI0S3);
    GPIOPinConfigure (GPIO_PK5_EPI0S31);
    
    GPIOPinConfigure (GPIO_PL0_EPI0S16);
    GPIOPinConfigure (GPIO_PL1_EPI0S17);
    GPIOPinConfigure (GPIO_PL2_EPI0S18);
    GPIOPinConfigure (GPIO_PL3_EPI0S19);
    
    GPIOPinConfigure (GPIO_PM0_EPI0S15);
    GPIOPinConfigure (GPIO_PM1_EPI0S14);
    GPIOPinConfigure (GPIO_PM2_EPI0S13);
    GPIOPinConfigure (GPIO_PM3_EPI0S12);
    
    GPIOPinConfigure (GPIO_PN2_EPI0S29);
    GPIOPinConfigure (GPIO_PN3_EPI0S30); 

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    很好、很高兴听到这个消息。 现在、我们始终建议使用 TivaWare 函数而不是直接写入寄存器。