工具与软件:
尊敬的专家:
我想为 LCD 模块使用 XINTF。 (或外部 RAM)。 但不能很好地工作。 使用示波器监控 CS 信号以及地址和数据引脚、无响应。 代码如下所示。 您能帮助检查问题是什么吗? 非常感谢。
Zone7.
ZONE7B :origin = 0x20FC00、length = 0x000400 /* XINTF zone 7 - data space */
void InitXintfZone7 (void)
{
//确保 XINTF 时钟被启用
SysCtrlRegs.PCLKCR3.bit.XINTFENCLK = 1;
//将 GPIO 配置为具有16位数据总线的 XINTF
//此函数位于 DSP2833x_XINTF.c 中
EALLOW;
//所有区域-------------------------------------------------------
//所有区域的时序都基于 XTIMCLK = SYSCLKOUT
XintfRegs.XINTCNF2.bit.XTIMCLK = 0;
//最多缓存3次写入
XintfRegs.XINTCNF2.bit.WRBUFF = 3;
// XCLKOUT 已启用
XintfRegs.XINTCNF2.bit.CLKOFF = 0;
// XCLKOUT = XTIMCLK
XintfRegs.XINTCNF2.bit.CLKMODE = 0;
//第7区-------------------------------------------------------
//使用 READY 时、ACTIVE 必须为1或更大值
//铅必须始终为1或更大
//区域写入时序
XintfRegs.XTIMING7.bit.XWRLEAD = 3;
XintfRegs.XTIMING7.bit.XWRACTIVE = 5;
XintfRegs.XTIMING7.bit.XWRTRAIL = 1;// Only 2 bit (仅2位)
//区域读取时序
XintfRegs.XTIMING7.bit.XRDLEAD = 3;
XintfRegs.XTIMING7.bit.XRDACTIVE = 5;
XintfRegs.XTIMING7.bit.XRDTRAIL = 1;//只有2位
//不要将所有区域读取/写入导联/活动/跟踪时间加倍
XintfRegs.XTIMING7.bit.X2TIMING = 0;
//区域不会对 XREADY 信号进行采样
XintfRegs.XTIMING7.bit.USEREADY = 0;
XintfRegs.XTIMING7.bit.READYMODE = 0;
// 1、1 = x16数据总线
// 0、1 = x32数据总线
//保留其他值
XintfRegs.XTIMING7.bit.XSIZE = 3;
EDIS;
//强制管道刷新以确保写入
//最后配置的寄存器出现在返回之前。
asm (" RPT #7 || NOP");
}
void InitXintf16Gpio()
{
EALLOW;
GpioCtrlRegs.GPCMUX1.bit.GPIO64 = 3;// XD15
GpioCtrlRegs.GPCMUX1.bit.GPIO65 = 3;// XD14
GpioCtrlRegs.GPCMUX1.bit.GPIO66 = 3;// XD13
GpioCtrlRegs.GPCMUX1.bit.GPIO67 = 3;// XD12
GpioCtrlRegs.GPCMUX1.bit.GPIO68 = 3;// XD11
GpioCtrlRegs.GPCMUX1.bit.GPIO69 = 3;// XD10
GpioCtrlRegs.GPCMUX1.bit.GPIO70 = 3;// XD19
GpioCtrlRegs.GPCMUX1.bit.GPIO71 = 3;// XD8
GpioCtrlRegs.GPCMUX1.bit.GPIO72 = 3;// XD7
GpioCtrlRegs.GPCMUX1.bit.GPIO73 = 3;// XD6
GpioCtrlRegs.GPCMUX1.bit.GPIO74 = 3;// XD5
GpioCtrlRegs.GPCMUX1.bit.GPIO75 = 3;// XD4
GpioCtrlRegs.GPCMUX1.bit.GPIO76 = 3;// XD3
GpioCtrlRegs.GPCMUX1.bit.GPIO77 = 3;// XD2
GpioCtrlRegs.GPCMUX1.bit.GPIO78 = 3;// XD1
GpioCtrlRegs.GPCMUX1.bit.GPIO79 = 3;// XD0
GpioCtrlRegs.GPBMUX1.bit.GPIO40 = 3;// xa0/XWE1n
GpioCtrlRegs.GPBMUX1.bit.GPIO41 = 3;// XA1
GpioCtrlRegs.GPBMUX1.bit.GPIO42 = 3;// XA2
GpioCtrlRegs.GPBMUX1.bit.GPIO43 = 3;// XA3
GpioCtrlRegs.GPBMUX1.bit.GPIO44 = 3;// XA4
GpioCtrlRegs.GPBMUX1.bit.GPIO45 = 3;// XA5
GpioCtrlRegs.GPBMUX1.bit.GPIO46 = 3;// XA6
GpioCtrlRegs.GPBMUX1.bit.GPIO47 = 3;// XA7
GpioCtrlRegs.GPCMUX2.bit.GPIO80 = 3;// xA8
GpioCtrlRegs.GPCMUX2.bit.GPIO81 = 3;// xA9
GpioCtrlRegs.GPCMUX2.bit.GPIO82 = 3;// XA10
GpioCtrlRegs.GPCMUX2.bit.GPIO83 = 3;// XA11
GpioCtrlRegs.GPCMUX2.bit.GPIO84 = 3;// XA12
GpioCtrlRegs.GPCMUX2.bit.GPIO85 = 3;// XA13
GpioCtrlRegs.GPCMUX2.bit.GPIO86 = 3;// XA14
GpioCtrlRegs.GPCMUX2.bit.GPIO87 = 3;// XA15
GpioCtrlRegs.GPBMUX1.bit.GPIO39 = 3;// XA16
GpioCtrlRegs.GPAMUX2.bit.GPIO31 = 3;// XA17
GpioCtrlRegs.GPAMUX2.bit.GPIO30 = 3;// XA18
GpioCtrlRegs.GPAMUX2.bit.GPIO29 = 3;// XA19
GpioCtrlRegs.GPBMUX1.bit.GPIO34 = 3;// XREADY
GpioCtrlRegs.GPBMUX1.bit.GPIO35 = 3;// XRNW
GpioCtrlRegs.GPBMUX1.bit.GPIO38 = 3;// XWE0
GpioCtrlRegs.GPBMUX1.bit.GPIO36 = 3;// XZCS0
GpioCtrlRegs.GPBMUX1.bit.GPIO37 = 3;// XZCS7
GpioCtrlRegs.GPAMUX2.bit.GPIO28 = 3;// XZCS6
EDIS;
}
uint16 * extMemPtr =(UINT16 *) 0x20FC00;
//写入数据
*extMemPtr = 0xABCD;
// 读取数据
Uint16 ReadData =* extMemPtr;