2025-11-08 06:42:39
要拿DAC0832做正弦波得先搞懂它咋个转数字信号。这个芯片有两个寄存器,先存高字节再存低字节才能让数据走完。正弦表得用256个数字拼成半圆波形,比如1到128是正半周,129到256是负半周。调占空比让高低电平时间差不多,频率由查表速度决定,每秒走多少次表就出多少次波形。
为啥这样搞呢?DAC0832是8位芯片,正弦表得256个点才能转完一个完整周期。比如半圆128个点,每个点对应1/256电压。查表时先存高8位再存低8位,这样数据才能正确输出。占空比调1:1是让波形对称,比如正半周128次采样,负半周也128次。频率计算看采样率,假设用80kHz分频,选2分频系数就出40kHz波形。但实际用高频时,占空比容易不对称,得用软件补正。比如查表速度不够快,波形会拉长变平,这时候得加插值算法。数据来源:DAC0832手册P23,正弦表生成公式为V=512sin(π/128序号)。
模拟效果:先存高字节再存低字节,调占空比让高低电平时间差不多,频率由查表速度决定每秒走多少次表就出多少次波形。半圆128个点对应1/256电压,查表时先存高8位再存低8位,这样数据才能正确输出。占空比调1:1是让波形对称,正半周128次采样负半周也128次。频率计算看采样率选2分频系数出40kHz波形,但高频时占空比容易不对称得用软件补正。查表速度不够波形会拉长变平加插值算法。
本题链接: