SysCtrlRegs.PCLKCR3.bit.XINTFENCLK = 1; //开启XINTF时钟信号
XintfRegs.XINTCNF2.bit.XTIMCLK = 1; //基准时钟XTIMCLK = 1/2 SYSCLKOUT
XintfRegs.XINTCNF2.bit.WRBUFF = 0; //无写缓冲寄存器
XintfRegs.XINTCNF2.bit.CLKOFF = 0; //使能XCLKOUT
XintfRegs.XINTCNF2.bit.CLKMODE = 1; //XCLKOUT=XTIMCLK/2
XintfRegs.XTIMING0.bit.XWRLEAD = 3; //区域0写建立时间为11b,周期数为3*XCLKOUT
XintfRegs.XTIMING0.bit.XWRACTIVE = 7; //有效时间为111b,周期数为7*XCLKOUT
XintfRegs.XTIMING0.bit.XWRTRAIL = 3; //跟踪时间为11b,周期数为3*XCLKOUT
// Zone read timing
XintfRegs.XTIMING0.bit.XRDLEAD = 3; //区域0读建立时间为11b,周期数为3*XCLKOUT
XintfRegs.XTIMING0.bit.XRDACTIVE = 7; //有效时间为111b,周期数为7*XCLKOUT
XintfRegs.XTIMING0.bit.XRDTRAIL = 3; //跟踪时间为11b,周期数为3*XCLKOUT
// double all Zone read/write lead/active/trail timing
XintfRegs.XTIMING0.bit.X2TIMING = 1; //比值2:1
// Zone will sample XREADY signal
XintfRegs.XTIMING0.bit.USEREADY = 1; //XREADY信号采样
XintfRegs.XTIMING0.bit.READYMODE = 1; //异步采样
XintfRegs.XTIMING0.bit.XSIZE = 3; //数据总线宽度,16位
根据代码画出如下波形图,
可以看到一个完整的读/写需要3+7+3=13个 XCLKOUT 即需要13*4个系统时钟周期
总时间为1/150e6*4*13=3.4667e-07s=0.34us