fpga项目: i2s音频ADC DAC芯片特性研究 - minichao9901/TangNano-20k-Zynq-7020 GitHub Wiki

音频ADC芯片:PCM1808

A)简介

3ffde3cf25b9122b4014d3c3189ed41b

B)输入示波器灌+/-1.5V的电压(Vpp=3V),逻辑分析仪解析到的输出(二进制补码形式)

C)输入示波器灌0-1.5V的电压(Vpp=1.5V),逻辑分析仪解析到的输出(二进制补码形式)。可见输出仍然是正负对称,只是范围减小一半。猜测应该应该是输入有大的耦合电容,隔了直流信号,只有AC通过。

音频DAC芯片: PCM5102A

A)简介

aa9bf6b6af2b96ddee8d1b2ced0a9c36

B)输入编码范围(注意用的是补码)

C)输出结果

e65ed5d815a158978470a7052a79f6e4

附录:

  • 原tangNano-20k的官方代码有bug,不满足标准I2S协议,需要修改如下
//HP_WS_r
always@(posedge clk_1p536m or negedge rst_n)
begin
if(!rst_n)
    HP_WS_r <= 1'b0;
else
//    HP_WS_r <= (b_cnt == 5'd3)?1'b0: ((b_cnt == 5'd19)?1'b1:HP_WS_r);//对齐数据
    HP_WS_r <= (b_cnt == 5'd2)?1'b0: ((b_cnt == 5'd18)?1'b1:HP_WS_r);//对齐数据
end
  • tangNano-20k扩展板,引脚分配如下
IO_LOC "PA_EN" 51;
//IO_LOC "HP_DIN" 54;
//IO_LOC "HP_WS" 55;
//IO_LOC "HP_BCK" 56;
IO_LOC "rst" 87;
IO_LOC "clk" 4;

IO_PORT "PA_EN" PULL_MODE=UP DRIVE=8;
IO_PORT "HP_DIN" PULL_MODE=UP DRIVE=8;
IO_PORT "HP_WS" PULL_MODE=UP DRIVE=8;
IO_PORT "HP_BCK" PULL_MODE=UP DRIVE=8;
IO_PORT "rst" IO_TYPE=LVCMOS33 PULL_MODE=UP;
IO_PORT "clk" IO_TYPE=LVCMOS33 PULL_MODE=UP;

IO_LOC "HP_DIN" 74;
IO_LOC "HP_BCK" 76;
IO_LOC "HP_WS" 80;