试玩PIC12F675单片机手记
一直想玩单片机却苦于找不到合适的入门机会,对于业余爱好者,兴趣是最好的老师,啃书本只能解解馋,要真刀真枪的动手实践还是需要合适的题材。音响中的电子音量控制玩了不少,TC9153、TDA1524、TA7630、LM1036、LM4610、M51132……,更高级的,用于专业音响的,国内为人熟悉的不外乎CS3310、PGA2311以及高电压版本的PGA2310,非常巧的是,这三者的引脚也是兼容的,只是它们需要单片机来进行控制,专业音响大都是系统控制而非仅仅进行音量控制,控制电路都比较复杂,对于一个单片机门外汉来说,难度太大。因此虽然对它们心仪已久,却一直没有动手捉刀的机会。
图1 iraudamp5 评估板及其音量控制
有一天,在欣赏IR(InternationaRectifier,国际整流器)公司的双声道D类功率放大器(iraudamp5)时,无意间发现评估板上竟然有CS3310。仔细研究发现,音量控制是一个单联电位器,通过一个双列直插的8脚IC对CS3310进行控制,型号是3310S06S,如图1所示。
急忙查找3310S06S的资料,发现这个IC是日本的一个公司开发的,公司的英文名称是Tachyonix,不但生产控制CS3310及其引脚兼容的控制IC,还有控制欧胜公司的WM8816的IC,型号是8816S06,基本思路都是利用集成ADC(Analog Digital Converter,模拟/数字转换器)的单片机把数字控制方式变为模拟电压控制,即电子音量控制。用简单的方法单独对这些高素质的音量控制IC进行控制,虽然功能简单,但是对发烧友来说,却是非常适合的,这个方法也正是笔者所梦寐以求的。然而遗憾的是,这个公司的产品目前还只能从日本购买。图2是3310S06S的一般应用电路原理图,图3是5.1声道音量控制的电路板实物。CS3310都可以直接并联用于两声道以上的控制,因此一片控制IC可以同时对多个数字音量IC进行控制,要分别进行独立控制,则需要多片控制IC。
图2 3310S06S的一般应用电路原理图
图3 3310S06S的5.1声道音量控制板实物
就在笔者倍感失望时,无意间看到了几位日本发烧友采用单片机控制上述数字音量IC的实验报告,并且有相应的软件代码和源文件,单片机是Microchip(微芯科技)公司的,型号包括PIC12F675、PIC12F683等。这些单片机的共同特点是集成了ADC(模拟/数字转换器),设计思路和上文提到的Tachyonix公司可谓是异曲同工,控制电路也一样的简单,因为可以用通用单片机,制作成本和难度都大大下降,刚好笔者手头有PIC12F675,马上重点研究了几位日本发烧友用此单片机进行的相关实验,最后选择了一位发烧友的制作,照猫画虎,一做即成,不敢独占,写出来与大家共享。
图4是笔者选定的一位日本发烧友的实验电路并成功仿制的实用控制电路,单片机选用的是Microchip公司的PIC12F675,采用CMOS工艺生产的8位6端口RISC(精简指令集)单片机,集成了10位4通道的ADC和1K字节的Flash ROM。
图4电路同样适用于PGA2311和CS3310,只需要将模拟电源电压变为±5V即可。PIC12F675有6个I/O,GP0~GP5,GP0~GP2用于PGA2310的串行通信,GP0是片选(CS),GP1是数据(SDI),GP2是SCLK(时钟),GP3是电源检测,高电平有效,即只有GP3被置于高电平时,PIC12F675才会开始工作,GP4是电子音量控制端,输入0~5V电平经过内部A/D转换,进行数字音量控制,GP5是静音控制输出。与图1电路相比,图3电路增加了电源检测功能,如果电源不正常,这一部分电路不会正常工作。电源检测信号可以来自系统的前级,也可以来自系统的后级,系统应用电路图如图5所示。
图4 PIC12F675控制PGA2310的实用电路
图5 PIC12F675+PGA2311的系统应用简图
图5中,功放输出端与扬声器之间的继电器控制信号由PIC12F675供,即图4中的静音控制(GP5)配合电源检测端子的控制功能,扬器保护电路可用本电路替代。实现图4控制功能的源代码是笔者从日本发烧友的博客上下载的,源程序的注释是日文的,源程序的作者没有对PGA2311使用默认的控制范围:-95.5~+31.0dB,而是使用了正增益比较低的范围:-95.5~+3.0dB,这样也许更符合我们的使用习惯,对于传统的电位器,是不会有正增益的,只是衰减,有正增益的好处是可以省略前置放大器,缺点是很容易带来噪声,尤其是静态噪声。笔者试着将日文注释翻译成了中文,读者可到《无线电》杂志网站(www.radio.com.cn)上下载源程序和编译好的HEX文件。
笔者使用的烧录工具是Microchip公司提供的PICk i t1,型号是BN-DV164101,软件是PICKit1 Classic,软件版本是1.70.0,固件版本是1.0.0,软件的操作主界面如图6所示,烧录工具实物如图7所示,图中IC插座上的8脚
单片机 51单片机 MCU 单片机视频教程 单片机开发 ARM单片机 AVR单片机 PIC单片机 Atmel stm32 单片机学习 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)