tag 标签: 声卡

相关博文
  • 热度 21
    2013-4-24 21:58
    2924 次阅读|
    0 个评论
       第五十六章 USB声卡实验      上一章我们向大家介绍了如何利用STM32的USB来做一个USB读卡器,本章我们将利用STM32的USB来做一个声卡。本章分为如下几个部分: 56.1 USB读卡器简介 56.2 硬件设计 56.3 软件设计 56.4 下载验证   56.1 USB声卡简介 ALIENTEK战舰STM32板载了一个PWM DAC电路,可以用来做DAC输出,通过和STM32的USB和定时器配合,我们就可以实现一个USB声卡。 本章我们还是通过移植官方的USB Mass_Storage例程来实现,该例程在MDK的安装目录下可以找到(..\MDK\ARM\Examples\ST\STM32F10xUSBLib\Demos\Audio_Speaker)。 ST提供的例程实现了一个22Khz采样率、8位的单声道USB声卡,通过STM32的PWM输出,经过RC滤波得到音频信号(对STM3210B-EVAL平台)。我们在该例程基础上,只需要修改定时器和其输出通道,使之满足战舰STM32开发板的硬件即可。 战舰STM32的PWM DAC部分,我们在第二十五章(PWM DAC实验)已经有过详细介绍,并且知道我们的PWM DAC部分截止频率为33.8Khz,而本例程的音频采样率为22Khz,所以使用该PWM DAC电路来做音频输出是合适的。 本章,我们采用TIM4的通道1(PB6)输出PWM,因为我们的音频信号是8位的,所以设置ARR寄存器值为0XFF,这样,我们可以得到TIM4_CH1的输出频率(不分频)为72Mhz/256=281.250Khz,然后我们通过定时器7的中断来更新TIM4_CH1的输出,TIM7的中频率就是我们音频信号的采样率:22Khz。这样,我们就可以使PWM DAC输出22Khz,8位音频信号了。 56.2 硬件设计 本节实验功能简介:开机的时候先显示一些提示信息,之后开始USB配置,在配置成功之后就可以在电脑上发现多出一个USB声卡。我们用DS1来指示USB是否连接成功,并在液晶上显示USB连接状况,如果成功连接,我们可以将耳机插入开发板的PHONE端口,听到来自电脑的音频信号。同样我们还是用DS0来指示程序正在运行。 所要用到的硬件资源如下: 1)  指示灯DS0 、DS1 2)  串口 3)  TFTLCD模块 4)  USB接口 5)  PWM DAC 6)  74HC4052 7)  TDA1308 这几个部分,在之前的实例中都已经介绍过了,我们在此就不多说了。这里再次提醒大家,P13的连接,要通过跳线帽连接PA11和D-以及PA12和D+,另外,由于本章用到PWM DAC,还需要通过跳线帽将多功能端口P3的AIN和PDC连接,如图56.2.1所示:   图56.2.1 PWM DAC硬件连接示意图 56.3 软件设计 本章,我们在第二十五章实验 (实验20 )的基础上修改,先打开实验20 的工程,在HARDWARE文件夹所在文件夹下新建一个USB的文件夹,然后在USB文件夹下面新建LIB和CONFIG文件夹,分别用来存放与USB核相关的代码以及配置部分代码。这两部分代码我们也不细说(详见光盘本例程源码),其中USB文件夹里面的代码同上一章的一模一样,而CONFIG文件夹里面的源码则来自MDK自带的Audio_Speaker例程: X:\Keil3.80A\ARM\ Examples\ST\STM32F10xUSBLib\Demos\Audio_Speaker下的source和include文件夹(X为你安装MDK的磁盘)。 然后,我们在工程文件里面新建USB和USBCFG组,分别加入USB\LIB下面的代码和USB\CONFIG下面的代码。然后把LIB和CONFIG文件夹加入头文件包含路径。 本章,我们还需要通过音频选择电路和耳机驱动电路来推动耳机输出,所以还需要加入音频选择部分的驱动,我们将第四十章实验(实验35)的AUDIOSEL文件夹拷贝到本工程的HARDWARE文件夹下,将audiosel.c加入HARDWARE组下,并将AUDIOSEL文件夹加入头文件包含路径。 最后在test.c里面,我们修改main函数如下: //设置USB 连接/断线 //enable:0,断开 //       1,允许连接       void usb_port_set(u8 enable) {        RCC-APB2ENR|=12;    //使能PORTA时钟                   if(enable)_SetCNTR(_GetCNTR()(~(11)));//退出断电模式        else        {                     _SetCNTR(_GetCNTR()|(11));  // 断电模式               GPIOA-CRH=0XFFF00FFF;               GPIOA-CRH|=0X00033000;               PAout(12)=0;                              } }                                               int main(void) {                 Stm32_Clock_Init(9);    //系统时钟设置        delay_init(72);                     //延时初始化        uart_init(72,9600);       //串口1初始化              LCD_Init();                  //初始化液晶        LED_Init();           //LED初始化        KEY_Init();                  //按键初始化        usmart_dev.init(72);      //usmart初始化            Audiosel_Init();            //初始化声道选择               POINT_COLOR=RED;//设置字体为蓝色             LCD_ShowString(60,50,200,16,16,"WarShip STM32");           LCD_ShowString(60,70,200,16,16,"USB Sound Card TEST");        LCD_ShowString(60,90,200,16,16,"ATOM@ALIENTEK");        LCD_ShowString(60,110,200,16,16,"2012/9/25");              LCD_ShowString(60,130,200,16,16,"USB Connecting...");//提示SD卡已经准备了            delay_ms(1800);       usb_port_set(0);//USB先断开一下        delay_ms(300);      usb_port_set(1);//USB再次连接           //USB配置       USB_Interrupts_Config();          Set_USBClock();         USB_Init();           Speaker_Config();         Audiosel_Set(2);    //设置到PWM音频通道                             LCD_ShowString(60,130,200,16,16,"USB Connecting...");//提示SD卡已经准备了             while(1)        {               if(bDeviceState==CONFIGURED)//USB连接上了?               {                      LED1=0;                                                                LCD_ShowString(60,130,200,16,16,"USB Connected    ");//SD卡已经准备了               }else               {                     LED1=1;                                                                LCD_ShowString(60,130,200,16,16,"USB DisConnected ");//SD卡连接失败               }                       LED0=!LED0;               delay_ms(200);                    };                                                                                                } 该部分代码同样有usb_port_set函数,这里我们就不介绍该函数了。在main函数里面,我们通过调用Speaker_Config函数,配置TIM4_CH1为281.25Khz 的PWM输出,配置TIM7为22Khz的定时中断,其他部分我们就不详细介绍了。 软件设计部分就为大家介绍到这里。 56.4 下载验证 在代码编译成功之后,我们通过下载代码到战舰STM32开发板上,在USB配置成功后(注意:USB数据线,要插在USB端口!不是USB_232端口!),LCD显示效果如图56.4.1所示:   图56.4.1 USB连接成功 此时,电脑提示发现新硬件如图56.4.2所示:   图56.4.2 USB读卡器被电脑找到     等USB配置成功后,DS1常亮,DS0闪烁,并且在设备管理器à声音、视频和游戏控制器里面看到多了USB Audio Device,如图56.4.3所示:   图56.4.3 USB Audio Device        此时,电脑的所有音频输出都被切换到USB声卡输出,将耳机插入战舰STM32开发板的PHONE端口,即可听到来自电脑的声音。    
  • 热度 19
    2012-5-24 12:51
    1378 次阅读|
    1 个评论
    基于声卡的多功能测试(转自北京电子报),见附件
  • 热度 29
    2012-4-23 13:58
    1933 次阅读|
    12 个评论
    基于声卡的多功能测试
相关资源
  • 所需E币: 0
    时间: 2020-12-22 15:22
    大小: 509.8KB
    上传者: samewell
    如何通过前端将PC声卡变成高速采样示波器
  • 所需E币: 2
    时间: 2020-6-19 23:50
    大小: 555.8KB
    上传者: Goodluck2020
    如何通过前端将PC声卡变成高速采样示波器.pdf
  • 所需E币: 4
    时间: 2020-4-7 11:24
    大小: 3.12KB
    上传者: 二不过三
    [DIY分享]低成本USB声卡制作过程特点:笔记本电脑换成USB声卡后感觉音质提升比较多,不能和更高级别的独立声卡比毕竟一分价钱一分货。低成本USB声卡的制作大约一个月前看到有人自制USB声卡,一直觉得电脑的集成声卡声音太垃圾,所以决定也效仿一个。构思了一个晚上,第二天开始准备材料。什么贴片电阻贴片电容啊什么的好多东西啊,眼睛啊花了……最重要的当然是要有个壳子,咱做声卡一为折腾二为实用,总不能一直裸奔吧!!前前后后差不多准备了大半个月(咱平时还要上班不是),最后的重量级组件――主PCB板终于到了。于是……开工,上图……1.第一个上场的肯定是重量级的主芯片,TIPCM2912A,体积很小,32脚焊的时候那个郁闷的啊2.100欧限流电阻、LED,别看都是挺普通的,作用不小哦,看完就明白了。3.USB线,忍痛剪了一根诺基亚的手机充电线。这个也是关键,话说我上一份工作是和诺基亚有关的哦。之前买了一根,才15cm的样子的一段的电阻达到了3欧,直接无法用。再来个某基的特写吧角色太多,就不一一出场了哈。接下来就是痛苦的焊接过程。蛋疼的发现找不到松香了,自己之前准备的时候忘了买一把镊子。没办法硬着头皮上吧,话说我还是第一次焊贴片元件……焊接过程没人帮忙拍照,接下来直接上焊好之后的照片。4.焊好贴片元件后的主PCB,第一次焊贴片,又没松香和镊子。渣焊工,大家将就着看哈。再来一张背面的大家看到了,主PCB上是没有耳机插座位的,所以还要准备个耳机座的辅PCB,当然是用万能的洞洞板了5.洞洞板上场这回大家知道LED的用处了吧,当然是发光的。6.再来张主PCB焊好输出耦合电容的输出耦合使用每声道一直220uf+104电容的组合,实际证明高低……
  • 所需E币: 4
    时间: 2020-4-7 11:24
    大小: 3.12KB
    上传者: quw431979_163.com
    DIY制作天籁之音—USB电子管声卡原理图及制作过程USB电子管声卡——除了PCB是定做的以外,剩下的电路设计,元器件焊接,性能调试完全都是自己亲手做!它的效果全面超越了90%以上的桌面常见的声卡——包括帝盟!DIY制作天籁之音―USB电子管声卡USB电子管声卡――除了PCB是定做的以外,剩下的电路设计,元器件焊接,性能调试完全都是自己亲手做!它的效果全面超越了90%以上的桌面常见的声卡――包括帝盟MX400,创新SBLive!,在音质方面不输于目前最强的创新Audigy2!图1.USB电子管声卡图2.声卡左下角的铭记USB电子管声卡,电子科技大学栋力无限BBS站HiFi版版主hifi制作,2003年6月声卡零件与电路图普通版USB电子管声卡零件列表:数元件名称元件值备注量主芯片PCM2702E1稳压芯片LM3174稳压芯片78121加装散热器散热片139×351整流器……
  • 所需E币: 3
    时间: 2019-12-31 16:41
    大小: 792.35KB
    上传者: 238112554_qq
    有多种软件包可以使个人计算机(PC)中的立体声声卡提供类似示波器的显示,但低采样速率、高分辨率模数转换器(ADC)和交流耦合前端最适合20kHz及以下的可用带宽。现在,这种有限的带宽可以扩展——针对重复波形,可以在声卡输入前使用一个采样前端。利用高速采样保持器(SHA)对输入波形进行二次采样,然后通过低通滤波器重建波形,并使其平滑,可以有效延展时间轴,使PC能够用作高速采样示波器。本文描述一种能够实现这种改造的前端和探头。如何通过前端将PC声卡变成高速采样示波器作者:DougMercer有多种软件包可以使个人计算机(PC)中的立体声声卡提供类似示波器的显示,但低采样速率、高分辨率模数转换器(ADC)和交流耦合前端最适合20kHz及以下的可用带宽。现在,这种有限的带宽可以扩展――针对重复波形,可以在声卡输入前使用一个采样前端。利用高速采样保持器(SHA)对输入波形进行二次采样,然后通过低通滤波器重建波形,并使其平滑,可以有效延展时间轴,使PC能够用作图2.以1MHz频率重复的2MHz单周期正弦脉冲高速采样示波器。本文描述一种能够实现这种改造的前端和探头。图1所示为一个插入式附件的原理图,它可以配合典型PC声卡采样图3中的屏幕截图显示的是一个以1MHz频率重复的高斯正弦脉冲。使用。每个示波器通道使用一个高速采样保持放大器AD783。SHA采样时钟速率同样是80.321kHz,采样脉冲宽度为250ns。的采样信号由时钟分频器电路的数字输出提供,下文将通过一个例子说明。AD783输入由一个FET缓冲,因此可以使用简单的交流/直流输入耦合。在所示的两个通道中,当直流耦合跳线开路且输入为交流耦合时,1M电阻(R1和R3)提供直流偏置。采样输出由图中所示的双极点有源RC网络低通滤波。该滤波器不必是一个有源电路,但所示的滤波器能够提供有益的缓冲低阻抗来驱动PC声卡输入。……
  • 所需E币: 5
    时间: 2020-1-1 23:32
    大小: 3.15MB
    上传者: 二不过三
    基于声卡的多功能测试王洪伟几乎每台电脑或掌上电脑都有一个内置声卡。声卡通常被用来作为音频输入输出设备,用于记录、合成和回放语言、音乐和歌曲。然而,声卡其实可以做得更多。从测控的角度来看,声卡是一个具有双通道模数转换(ADC)和双通道数模转换(DAC)的信号采集和输出设备。它在音频范围内具有平滑的频率响应,采样频率通常为44.1kHz和48kHz,最大可达192kHz,采样位数通常为16bit,最大可达24bit。由于声卡内部都带有增益控制(例如:话筒音量控制、话筒提升控制、线路输入音量控制),即使在不外加信号放大或衰减电路的情况下,它也可以测量从1微伏到1伏左右的信号。声卡支持以连续数据流模式工作,因此可完全利用电脑自身的内存(从数百MB到数GB)或电脑的硬盘(从数十GB到数百GB)来进行数据的不间断存储。与普通的独立式数字存储示波器相比,基于电脑声卡的测试系统的存储深度极大。今日个人电脑的运算速度和存储能力已远非二十年前的286中央处理器、1MB内存、10MB硬盘空间可比,可实时进行包括频谱分析所需要的快速傅里叶变换(FFT)等在内的复杂运算,这使得以前需要采用的极其昂贵的独立式传统仪器才能实现的功能,可通过电脑虚拟仪器软件以极低的成本来实现,而且维护方便,可不断升级。测量精度由声卡的质量决定。通常是外置声卡最好,其次是内置独立声卡,最后是板载声卡。专业级声卡优于消费级声卡。一块专业级声卡的总谐波失真+噪声(TotalHarmonicDistortionplusNoise,THD+N)可小于0.001%(-100dB),信噪比(Signal-to-NoiseRatio,SNR)可大于110dB,带宽可达1Hz~96kHz,因此能几乎完美地测量音频甚至略微超过音频范围的信号。从价格上讲,即使是专业级声卡,其价格也远低于同类的专业ADC……
  • 所需E币: 4
    时间: 2020-1-13 13:57
    大小: 129.56KB
    上传者: givh79_163.com
    声卡电子下载站www.bbww.net资料版权归合法所有者所有严禁用于商业用途声卡声卡是我们大家都比较熟悉的一种计算机配件。我们要用计算机处理声音信号,让计算机发出各种声音,用计算机播放有声的视频节目(VCD)、电子图书、教学光盘等都离不开声卡。有关声卡的参数和术语也是多种多样的,下面我就把其中一些主要的术语简单的为大家介绍一下,希望能够为那些想多了解声卡一些的朋友带来帮助。波形声音从本质上讲,声音是一种连续的波,称为声波。要把声音信号存储到计算机之中去,必须把连续变化的波形信号(称为模拟信号)转换成为数字信号,因为计算机中只能存储数字信号。把模拟信号转换为数字信号(DAC)一般由对声音信号的采样和转换两步来完成。所谓采样就是采集声音模拟信号的样本,然后再转换成数字信号。计算机对声音采样能力的大小也用两个参数来衡量:采样频率和声音采样信号的位数(bit)。理解这两个参数十分重要,它们是声卡的主要指标,它们不仅影响到声音的播放质量,还与存储声音信号所需要的存储空间有直接的关系。采样的位数采样位数可以理解为声卡处理声音的解析度。这个数值越大,解析度就越高,录制和回放的声音就越真实。我们首先要知道:电脑中的声音文件是用数字0和1来表示的。所以在电脑上录音的本质就是把模拟声音信号转换成数字信号。反之,在播放时则是把数字信号还原成模拟声音信号输出。声卡的位是指声卡在采集和播放声音文件时所使用数字声音信号的二进制位数。声卡的位客观地反映了数字声音信号对输入声音信号描述的准确程度。8位代表2的8次方――256,16位则代表2的16次方――64K。比较一下,一段相同的音乐信息,16位声卡能把它分为64K个精度单位进行处理,而8位声卡只能处理256个精度单位,造成了较大的信号损失,最终的采样效果自然……