我用的是STM32+DAC908,希望产生1M的任意波形,并且波形的每一个周期需要10个电压值点来描绘。
由DAC时序图可以看出,STM32的IO口要先给DA数据端口数据,然后再给DA时钟端口一个高电平,然后再给DA时钟端口一个低电平,也就是说每转换一个电压值,stm32IO口要发出三组数据。我经过测试,发现当时钟配置成72M,即使用直接对寄存器操作,就是直接在while循环里编写GPIOA->0;GPIOB->=1;GPIOB->0;输出模拟电信号频率也只能达到3M左右,一个周期10个点的话,波形频率只有300K,而且波形波形波动不明显,毛刺特别多。
STM32到底有没有能力产生1M任意波形(
波形的每一个周期10个电压值点来描绘)的能力啊,或者有什么别的好的方案产生1M任意波形啊?求指教!
以下是DAC908的操作时序和引脚图:
---------------------------------
外设性能。
你可以自己测试下。8M的输出速度,外部就算你用最块的DAC,也只能8M的转换速度。所以要10个点,1M,最少得10M的速度。
---------------------------------
是的啊,而且还有一个问题就是数据是在CLOCK的上升沿读入DAC的,所以还要操作DAC的CLOCK引脚,每送一组数据给DA后还要在之后送一个高电平给DA,然后再送一个低电平给DA,为下一次做准备,这样等于1s要输出30M。你说的那个FSMC不是操作液晶的吗?我现在想通过DA转换得到示波器可以测得的波形。
---------------------------------
你可以找找并口的DAC嘛。。。
---------------------------------
恩,好的,感谢原子哥耐心解答。
一周热门 更多>