请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号: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)
{
}