Other Parts Discussed in Thread: TAD5212, TAD5112
部件号: TAD5212
主题: TAD5112 中讨论的其他器件
请参阅应用手册 — TAx5x1x 器件的音调生成和应用模式、文档 SLAAED8–2024 年 10 月。
第 2.3 节“信号发生器 1 频率“提供了用于计算正弦和余弦位的公式。
根据应用手册、msb 和 lsb 位的值如下所示:
H_MSB = 99 7f EC 00
H_lsb = 1c ea f1 80
Y_MSB = 7f 9a fc B8
Y_lsb = 0A 0A f2 99
我编写了一个 C 程序,并在 STM32Cortex H7 处理器上运行它,并获得如下值:
H_MSB = 0A 0A f2 99
H_lsb = 8e 63 92 40
Y_MSB = 7f 9a fc B8
Y_lsb = 4c C1 5e 00
只有 y_MSB 的值匹配、其他值不同。 下面给出了程序列表。 PL 让我知道我出了什么问题。 谢谢你。
//声明变量
TWO_PI = 6 。 2831853071795865;
float64_t desired_freq、sampleing_freq;
float64_t g_x、f_x;
int64_t h、y;
int32_t、h_lsb、y_msb、y_lsb;
//频率设置
desired_freq = 600 。 0;// 600Hz
SAMPLING_freq = 48000 。 0;// 48KHz
//正弦计算
G_x = sin (two_PI * desired_freq / sampleing_freq);// 0 。 078459095727844944
G_x = g_x * pow (2、63);// 723657429573117056
h =(int64_t) g_x;// 0x0A0AF2991CC72480
H_MSB =(int32_t)(h >> 32);// 0x0A0AF299
h = h >> 1;// 0x0505794C8E639240
H_lsb =(int32_t) h;// 0x8E639240
//余弦计算
f_x = cos (two_PI * desired_freq / sampleing_freq);// 0 。 99691733373312796.
F_x = f_x * POW (2、63);// 9194939459009952768
Y =(int64_t) f_x;// 0x7F9AFCB89982BC00
Y_MSB =(int32_t)(y >> 32);// 0x7F9AFCB8
Y = y >> 1;// 0x3FCD7E5C4CC15E00
Y_lsb =(int32_t) y;// 0x4CC15E00