Other Parts Discussed in Thread: TLV320AIC3120
您好:
我们正在尝试测试 TLV320AIC3120。 我们决定首先使用数字生成的正弦波测试输出。
TLV320AIC3120 在 11.294118MHz 处接收 MCLK、我们使用的 PLL 具有以下配置:J = 6、D = 9870、P = R = 1、NDAC = 5 和 MDAC = 3、从而使 FS = 44.1kHz。
我们配置 DAC、如数据表的 7.3.12.15 第 65 页所示(显然我们的 PLL 配置)。 我们做了一些小的修改:
- HPOUT 静音和断电(我们使用 SPKP 和 SPKM 输出)、
- D 类驱动器输出级增益= 6dB(而不是 18)、
- D 类输出模拟音量=–20dB(而不是–9)
蜂鸣发生器模式似乎运行良好、我们无法产生相同的声音、数字值以 I2S 发送到编解码器。
我们不知道这是我们的生产方式、数字数据的发送方式、还是 TLV320AIC3120 的配置。
我们如何生成和发送数据:
#define PI 3.14159265358979323846
#define TAU (2.0 * PI)
[...]
u8 signal[65536];
u32 nsamples = 65536;
f64 t = 0;
s16 sin_value = 0;
u32 i = 0;
[...]
while(i < nsamples) {
t = ((((f64)i) / 4.0)) / (44100);
sin_value = 32767*sin(400 * TAU * t);
signal[i] = (sin_value >> 8) & 0xFF; // left msb
signal[i+1] = sin_value & 0xFF; // left lsb
signal[i+2] = signal[i]; // right msb
signal[i+3] = signal[i+1]; // right lsb
i += 4;
}
[...]
HAL_SAI_Transmit(&hsai_BlockA1, signal, nsamples/2, HAL_MAX_DELAY);
提前感谢。
此致、
Malo



