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.

如何提高访问XINTF区域时的读写速度?



我用2812外扩了一片AD,ths1230.采样率设为12.5MHZ,使用的是XINTF ZONE6,。但是经过检测发现,2812读数据的速度太慢了,前一段时间发帖问过TI的工程师,大家给了我一些建议,但现在读写速度还是很慢,大概6.25MHZ左右。

(1)我的程序如下:

头文件里对AD地址的定义:

#define ADCDATA *(volatile unsigned int * )(0x110000)

程序开头的定义:

volatile uint *ADCDest;

volatile uint *ADCSource;

主函数里面的部分程序:

while(1)

{

ADCSource=&ADCDATA;

ADCDest=Voltage; //Voltage[512]为存放转换后数据的数组;

for(i=0;i<512;i++)

{

*ADCDest++=*ADCSoutce++;

}

for(i=0;i<512;i++)

{

Voltage[i]=(Voltage[i]&0x0fff); //采集到的数据是12位的,所以将数据的高位置0;

}

}

(2)XINTF.c中,对外设时钟的设置如下:

   XintfRegs.XINTCNF2.bit.XTIMCLK = 0;
    XintfRegs.XINTCNF2.bit.WRBUFF = 0;
    XintfRegs.XINTCNF2.bit.CLKOFF = 1;
    XintfRegs.XINTCNF2.bit.CLKMODE = 0;

    // Zone 6------------------------------------
    XintfRegs.XTIMING6.bit.XWRLEAD = 1; 
    XintfRegs.XTIMING6.bit.XWRACTIVE = 1;  
    XintfRegs.XTIMING6.bit.XWRTRAIL = 0;  

    XintfRegs.XTIMING6.bit.XRDLEAD = 1;
    XintfRegs.XTIMING6.bit.XRDACTIVE = 0;
    XintfRegs.XTIMING6.bit.XRDTRAIL = 1;

    XintfRegs.XTIMING6.bit.X2TIMING = 0;

    XintfRegs.XTIMING6.bit.USEREADY = 0;
    XintfRegs.XTIMING6.bit.READYMODE = 1; 

    XintfRegs.XTIMING6.bit.XSIZE = 3;

XINTF的时钟已经设置到最高。

(3)我是通过检测xintf zone6的片选信号XZCS6的脉冲来判断时钟频率的,因为读XINTF相应区域数据时,会有低电平。

我的问题有:

(1)我的程序设置是不是有问题?

(2)是不是2812访问外扩接口的速度都很慢?最高能达到多少?我的2812开发板上有个外扩SRAM,但是我测了一下访问外扩RAM的时钟频率,貌似也只有6.5MHZ左右。

各种方法都尝试过了,TI的xintf手册也看了,但是还是没有达到要求,只要读写速度能达到12.5MHZ就可以了,可是现在貌似没有办法。麻烦大家给我多提些建议吧。谢谢了!

  • 给您一个我用过的配置程序,仅供参考,另外不同的SRAM的参数不一定相同,我用的是ISSI的。

    void Sram_init( void)

    {

    XintfRegs.XTIMING6.bit.X2TIMING = 0;

    XintfRegs.XTIMING6.bit.XRDLEAD = 1;

    XintfRegs.XTIMING6.bit.XRDACTIVE = 1;

    XintfRegs.XTIMING6.bit.XRDTRAIL = 0;

    XintfRegs.XTIMING6.bit.XWRLEAD = 1;

    XintfRegs.XTIMING6.bit.XWRACTIVE = 1;

    XintfRegs.XTIMING6.bit.XWRTRAIL = 0;

    XintfRegs.XINTCNF2.bit.CLKMODE = 0;

    }

  • Thank you ,Jones Chen !

    你的方案我试过了,对于读写速度没有提高的。你当时有的也是2812吗?

    我想问一下,这个是由于2812的主频不够还是什么原因?系统时钟我已经配置到150MHZ了,照理说,对XINTF区域的访问速度不会低到只有几MHZ吧?我看到网上有人说可以配置到33MHZ的。所以,我想确认一下:

    现在的访问速度这么低,是由于我程序的问题还是2812从理论上来说就达不到那样的频率?

    请各位工程师帮帮忙,现在这是我外扩的AD最关键也最急迫的问题了。

    麻烦了!