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

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

B)输入编码范围(注意用的是补码)
C)输出结果

附录:
- 原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
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;