请教各位大佬!
我现在用的平台是omapl138,用DAC 是DAC8552,spi串行方式,需要输出的信号频率15kHz,采样率设定为80kHz,也就是DAC要以80k的速度更新输出数据,有以下几个问题需要请教:
1、一开始不会用6748的SPI控制器时,用GPIO模拟SPI,发现其中作为CLK的GPIO的电平反转速度只有100多kHz,以for循环的方式一位一位送数据,每次进出for循环时,就将CLK反转一次,发现从高电平到低电平需要3-5us的时间,这也太慢了,是GPIO管脚的反转速度就这么慢,还是程序写错了(比如时钟没配置对)?
2、之后学了用它自带的SPI控制器和库函数,又有了新的问题。因为是串行的,16位数据加上8位控制信息,也就是da每更新一个数据需要dsp给它发24位数据。SPI时钟调到了30MHz(DAC的极限时钟速度),示波器测得发现输出的时钟确实是30MHz的,但是是每8个时钟脉冲一小组出现的,每个小组里的时钟脉冲频率是8MHz,但每个小组之间有5~7us的时延,时钟信号管脚的电平在这5us~7us的时间里是0,那么发24个bit的数据,就用了近25us,即dac跟新一个数据需要25us的时间,这样一来,相当于采样率是1/25us=40kHz,达不到要求。。。请问里面,时钟脉冲之间5~7us的时延是正常现象吗?
要达到80kHz的速度,该怎么做呢?
感谢感谢!
Tony Tang:
Xuesong Lu 1、一开始不会用6748的SPI控制器时,用GPIO模拟SPI,发现其中作为CLK的GPIO的电平反转速度只有100多kHz,以for循环的方式一位一位送数据,每次进出for循环时,就将CLK反转一次,发现从高电平到低电平需要3-5us的时间,这也太慢了,是GPIO管脚的反转速度就这么慢,还是程序写错了(比如时钟没配置对)?
GPIO就是这么慢。
Xuesong Lu
2、之后学了用它自带的SPI控制器和库函数,又有了新的问题。因为是串行的,16位数据加上8位控制信息,也就是da每更新一个数据需要dsp给它发24位数据。SPI时钟调到了30MHz(DAC的极限时钟速度),示波器测得发现输出的时钟确实是30MHz的,但是是每8个时钟脉冲一小组出现的,每个小组里的时钟脉冲频率是8MHz,但每个小组之间有5~7us的时延,时钟信号管脚的电平在这5us~7us的时间里是0,那么发24个bit的数据,就用了近25us,即dac跟新一个数据需要25us的时间,这样一来,相当于采样率是1/25us=40kHz,达不到要求。。。请问里面,时钟脉冲之间5~7us的时延是正常现象吗?
要达到80kHz的速度,该怎么做呢?
8bit控制信号怎么来的?是按8bit还是16bit访问的?如果是按8bit访问,之间有延时是正常的。
DAC的型号与手册?