新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 试玩PIC12F675单片机手记

试玩PIC12F675单片机手记

作者:时间:2011-02-21来源:网络收藏

一直想玩却苦于找不到合适的入门机会,对于业余爱好者,兴趣是最好的老师,啃书本只能解解馋,要真刀真枪的动手实践还是需要合适的题材。音响中的电子音量控制玩了不少,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脚IC就是PIC12F675。

图6 烧录软件PICKit1 Classic的操作界面

图7 工作中的烧录工具PICkit1

烧录软件可以从Microchip公司的网站或者该公司在国内代理公司的网站下载。烧录工具则可以从Microchip公司的国内代理购买或者用你手中任意一款支持烧录PIC12F675的编程器。还有一个简单的方法是到当地的电脑市场,有写片服务的商家一般都是可以写PIC12F675的,因为它是比较通用的单片机。

控制片子写好了,实际的硬件电路其实是非常简单的,这可能让我们这些惯于用硬件来实现电路功能的爱好者有些不太习惯,专业水准的电子音量控制电路,这么简单么?的确是,实物如图8所示,除了4个CBB电容是输入/输出耦合的,其他的是电源退耦电容。笔者是用实验板搭的电路,开始的想法只是想体验一下PGA2311的魅力,没有用什么补品元件。然而搭好电路一听,几乎马上改变了注意,要把它作为一个真正的音量控制器来用了。如果把这个简陋的电路板装入一个考究的机箱中,绝不会有人能猜出这样的声音表现竟然是从一块如此简陋的电路板上获得的。

图8 用实验板搭建的PIC12F675控制PGA2311的电路实物

图9 TI公司推荐的电路布局示意图

于一块电路板上,模拟电路是比较容易受到干扰的,模拟地和数字地必须严格分开,图8电路的元器件的布局是按照TI公司推荐的参考电路(如图9所示)去做的,以PGA2311轴向中心线为界,即使是实验板,也要布设两根地线,以PGA2311的宽度,刚好覆盖了两行孔,靠近数字电路一侧(图8中的下部)一行做为数字地,另一行作为模拟地。

实验中遇到了源程序作者遇到的问题,在没有音频信号输入时,电位器转动到某一特定位置,会有类似轻度自激一样的噪声产生,在笔者的实验板上,产生噪声的位置大概是电位器转到三分之一到二分之一行程时,也就是9点钟到12点钟的位置之间。源程序的作者使用了比较正式的印制板,由此推断可能和布线的关系不大,而是软件所致,好在对使用影响很小。

笔者还遇到了另一个问题,本底静态噪声不太理想,经过寻找,发现是从输入端感应的噪声,包括输入端的电容和PGA2311的输入端附近,输入输出不连接线,音量调到最大,手距离输入电容3~5cm远,即能感受到静态噪声的增加,这或许是实验板布线的局限性造成的,笔者只好用大块的铜皮把它们屏蔽起来,如图10所示,才算是解决了问题。因为想长期用它,最后加入了有7805和7905组成的稳压电源给PGA2311的模拟电路供电,数字电路单独供电,实际试听,与先前相比,声音又清晰了不少,等有了机会,笔者下决心要做一个正式的电路板出来,像日本的发烧友那样,把PGA2311的潜力更多地挖出来。

图10 已做屏蔽处理的输入电容和IC

51单片机相关文章:51单片机教程


pa相关文章:pa是什么


单片机相关文章:单片机教程


单片机相关文章:单片机视频教程


单片机相关文章:单片机工作原理




评论


相关推荐

技术专区

关闭