最近用了一个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个时钟周期。。。。。。。。。为什么会这样呢?只是一个读取语句而已啊。。。。。
|