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.

DSP 28335 的IO 读取速度问题?太慢?紧急求助~!理论上25M的读取速度不可信?

求助求助求助~!

       最近用了一个AD9226读取模拟信号,然后用12根线连接到DSP做并行数据传输,

       直接用GPIO读取,然后现在发现读取的速度特别慢。理论上,28335应该有25M的IO翻转速度,


       但是实测只有2.5M左右。这是为什么呢?在线等。


        // 测试数据,不做处理,直接看速度
      float Read_9226_v(void)
      {
        

               return GpioDataRegs.GPADAT.all; // 读出所有数据然后再一步步计算 保留后面的
      }

      就这一个语句,就拖到了2.5M.........求分析到底是为什么。。。。。。难道读取了很多IO会变慢吗?

      紧急求助。。。。。。。。。。。。。


     本意是用这些数据采样之后做FFT,但是实际上非常慢。。。。。与数据手册上25M的翻转速度完全不符合。


     IO时钟肯定是已经打开的,然后数字滤波也是关掉的,也就是说GPIO的时钟应该就是150M,而这个150M我

     是拿示波器看过没有问题的。但是就是上面那一个语句,就耗费很多时间。不知道到底是为什么。


     用这个语句采样了512点,耗费的时钟周期是 28092--28183个时钟周期,也就是其中一个点,就这样读取一次,

      竟然耗费了50--60个时钟周期。。。。。。。。。为什么会这样呢?只是一个读取语句而已啊。。。。。


        求大神们指点。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。不胜感激

  • 理论速度的可信的, 只是你主频, 还有使用的指令的影响.

    float Read_9226_v(void) {
                   return GpioDataRegs.GPADAT.all; // 读出所有数据然后再一步步计算 保留后面的
          }

    这里又是函数调用, 又是整数到 FLOAT 的变换, 怎么能快得起来.

    可以从调试的汇编代码看看浪费了多少指令, 再看怎么优化吧

  • 想知道25M的速度是怎么来的        是理论速度吗 

    GPIO还是要通过手册看看最快的翻转速度再说