语音数字采集芯片--Digilent 公司pmodmic 芯片

目录

      Pmodmic 芯片简介:

     语音采集实现


      Pmodmic 芯片简介:

        Pmodmic 芯片使用电容式传声器与动态压缩器相互配合, 限制输入的音频分贝,使柔和的声音更加响亮,使响亮的声音更加柔和。而SA575低压压缩扩展器 的单位增益为0.5分贝,因此传入的音频信号分贝级别将会下降一半,信号的分贝值会在 40db到20db之间。

 芯片管脚如下表所示:

  电路图如下图所示:

        Pmodmic 芯片可以检测外部发出的声音,然后与adcs7476转换芯片配合输出12位的数字信号。ADCS7476是一个12位的ad采集芯片拥有1MSPS的转换速率,即在1M频率的一个周期中采集到12位数字信号。使用19M时钟作为ADCS7476的串行时钟来完成数据的采集要求,ADCS7476时序控制如下图所示。

        如上图所示SCLK为19M串行时钟,在19个时钟沿中前四个时钟周期为前置 0 ,紧接着12次为采集的数据,最后3个时钟周期作为一个缓冲以准备下一次的采集。即在19M时钟的19个周期中采集了12位数据,完成一次采集(采集12位数据)的速率为1MSPS 。

     语音采集实现

        对于19M时钟信号的分频工作于本模块一并完成,本模块分频部分选择对38M时钟进行0到37 (共 38 )次计数,其中偶数次则为ADC_ sclk 置1,奇数次则置0,以此来实现19M时钟信号的产生。 关键实现如下:

always @ (posedge clk)
    case (cntr)
        0, 2, 4, 6, 8, 10, 12, 14, 
        16, 18, 20, 22, 24, 26, 28, 
        30, 32, 34, 36 :
            ADC_sclk<=1;
    default ADC_sclk<=0;
endcase

        在本模块中使用计数来对采集进行控制,当计数器为0,2,4,6时对于adcs 7476 而言,这时
则是4位前置0信号,在编程中则不做任何操作当计数器达到8,10,12,14,16,18,20,22,24,26,28,30 时则分别对12位数据进行采集,存入暂时的12位寄存器adc_res0_old中的对应位,当计数器达到34时则把一次采集完成标志ADC_csn 置1以标识一次采集结束,同时把采集到的数据存入12位寄存器 adc_res0 中以完成采集,下一次计数器为0到来时ADC_csn 置0开始新一轮采集。关键实现如下:

always @ (posedge ADC_sclk)
    case (cntr )
        8:adc_res0_old[11] <= ADC_sdata0 ;
        10:adc_res0_old[10] <= ADC_sdata0 ;
        。。。。。。。。。。
        。。。。。
    default adc_res0_old<=adc_res0_old;
endcase

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

虚怀若水

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值