|
这篇文章将来测评AT32A403A的DAC输出正弦波。
AT32A403A搭载一个12位的DAC,更新速率最快为1MSPS,共有两个通道。同时内置的输出增益可以用来减少输出阻抗,无需外部运放即可直接驱动负载。
不使能输出增益时的输出电压范围更大,输出基本轨到轨,使能后输出不是轨到轨,有200mV左右的抬升。
-----------------------开始移植------------------------
这里需要用到的资源包括DAC。
首先,在Hardware文件夹中新建DAC.c等C文件及其对应的h头文件。
选择DAC1对应的PA4输出,使用软件触发,不开启缓存。不采用例程中的DMA,初始化比较简单。
因为这里我们要生成一个正弦波,所以要计算出输出正弦波所需要的数字量。这里直接用sin()函数计算,要添加<math.h>头文件,具体的计算公式为:
其中Sine_Dot_Num为一个波形所包含的点数,点数越多,波形越精细,但生成的波形频率越低,因为DAC的更新速率是固定的。
这里需要注意的是,DAC的正弦波数据表要先生成好再一起写入输出,因为一边计算一边输出可能会影响DAC每个点的更新速率。
最后,通过dac_1_data_set函数输出模拟量
。
-----------------------实际测试------------------------
尝试不同的输出点数:50、100、200,经过实际测试,点数100基本能用,因为示波器突然损坏,过年的时候没法修,所以无法截图,等有机会再截图吧。(已经坏了两次了 很难受)
得出结论,如果用这个DAC输出正弦波的话,频率最好限制在10KHz以下,不然基本不可用。当然了MCU内置的DAC也一般不是用来生成中高频的任意波的,毕竟不是高速DAC,就是用来生成静态的电压。
至此,DAC输出正弦波就测评好啦,处于可用状态。