前言:
Avago(安華高)的ACPL-k30T是一款專為高壓MOSFET驅(qū)動(dòng)定制的光電MOSFET驅(qū)動(dòng)器件。該器件包含一個(gè)AlGaAs紅外LED輸入級,通過光學(xué)手段耦合到輸出檢測電路。檢測電路包含了一個(gè)光電二極管陣列與關(guān)斷電路。當(dāng)輸入LED流過最小10mA電流時(shí)光電驅(qū)動(dòng)電路就會打開。只需要0.8V或是更低的輸入電壓就能關(guān)斷光電驅(qū)動(dòng)。
本文介紹的是基于TI的3個(gè)TLC5940(16路LED驅(qū)動(dòng)芯片),5V開關(guān)電源,一個(gè)PIC單片機(jī)(帶USB通信功能),16個(gè)高亮度RGB LED制作而成的RGB LED音量計(jì)量器。該設(shè)計(jì)實(shí)際就是我們播放器上面顯示的那個(gè)EQ條,這個(gè)表通過USB與上位機(jī)(window7 或 vista系統(tǒng))連接。能用LED實(shí)時(shí)顯示當(dāng)前聲音的電平。
音量電平表實(shí)物截圖:
音量電平表電路截圖:
注意:
- 這個(gè)電路中唯一值得留心的地方就是電路圖中靠近晶振的兩個(gè)大電容。當(dāng)TLC5940以PWM調(diào)光的方式驅(qū)動(dòng)LED時(shí),由于高速高速開關(guān)切換,產(chǎn)生很多噪聲,而這兩個(gè)電容有助于降低噪聲。如果沒有它們或許你的PIC單片機(jī)會重啟,或者發(fā)生其他糟糕的事。
- 3片TLC5940級聯(lián),因此這些LED并非以復(fù)用的方式連接,每一個(gè)LED都是直接受控制的。當(dāng)然,也可以把代碼加以修改移植,使其能工作在LED控制復(fù)用的狀態(tài)下。
固件(Firmware):
這個(gè)固件是基于一個(gè)作者開發(fā)的軟件。鏈接如下:
作者在這個(gè)軟件的基礎(chǔ)之上加了兩層,底層是TLC5940的驅(qū)動(dòng)庫,TLC5940是一個(gè)16通道的,支持4096級亮度(基于PWM方式,且各通道亮度獨(dú)立)的LED驅(qū)動(dòng)芯片。這個(gè)驅(qū)動(dòng)庫支持單片TLC5940,或者你可以將多片級聯(lián)。理論上來說,你可以通過一片PIC單片機(jī)控制(PIC單片機(jī)是連接PC機(jī)與TLC5940的橋梁)20片TLC5940(意味著你總共有16*20=320個(gè)LED),作者這里級聯(lián)了三片TLC5940(共計(jì)48通道,16個(gè)RGB LED)。
頂層則是RGB LED控制,這一層通過TLC5940驅(qū)動(dòng)庫實(shí)現(xiàn)。包括的功能有LED淡入淡出,顏色平衡,和一堆相當(dāng)有用的用來控制LED的功能。USB控制端有兩條命令,一條是上位機(jī)指定所有的LED亮度(由0~255來表示),第二條命令式用來設(shè)定所需的LED淡出時(shí)間(庫文件中同樣有淡入時(shí)間,但是對電平表來說沒有用到)
上位機(jī)軟件:
上位機(jī)軟件是用Visual Studio C#2010寫的,兼容Windows 7 和Vista。由于使用的音頻API緣故,這個(gè)上位機(jī)軟件不能使用在windows XP環(huán)境下(XP不支持這個(gè)API)
這個(gè)上位機(jī)軟件由三個(gè)部分組成:
- 開源的C#庫,USB generic HID communication(就是上文提到的作者自己開發(fā)的一個(gè)軟件)。
- 核心的音頻API,由Ray Molenkamp所寫的。這個(gè)API相當(dāng)強(qiáng)大,你可以用它來抓取音軌的信息,并展示在一個(gè)LCD,或者其他USB音頻控制的設(shè)備。
- VU電平表顯示代碼,正如你所見,這個(gè)軟件可以進(jìn)行一堆個(gè)性化的設(shè)置,你可以設(shè)置顯示阻尼(Display damping ,它跟隨音樂跳躍的速率,更大的阻尼使跳躍更緩和,但是有失精準(zhǔn)),可以設(shè)置淡出速度(fade off ),也可以設(shè)置起始和結(jié)束時(shí)的顏色(上位機(jī)自動(dòng)調(diào)節(jié)中間顯示時(shí)的顏色), ,還可以設(shè)置顯示方式,只單向顯示左右聲道的平均值,從中間向兩邊顯示兩個(gè)聲道,從兩邊向中間顯示兩個(gè)聲道。
自己的想法:
感覺這個(gè)不是太好弄,首先,這個(gè)PIC單片機(jī)用的人估計(jì)不太多,第二作者自己以前編了一個(gè)USB上位機(jī),是在這個(gè)基礎(chǔ)上開發(fā)的,雖然可以找到作者的源代碼,但是估計(jì)不好搞定(我沒有寫過上位機(jī)軟件,不太了解,隨便說說的呵呵),而且上位機(jī)還只能在Windows7或者Vista下面用。
畢竟這里PIC單片更主要的功能,個(gè)人認(rèn)為不過是個(gè)USB橋接芯片作用。如果是我的話,直接用一個(gè)常用的單片機(jī)(AVR,8051)來控制TLC5940,然后用串口通信,上位機(jī)軟件也寫成串口通信的形式,估計(jì)簡單不少,而且如果電腦沒有串口,可以用串口轉(zhuǎn)USB芯片解決,這樣的話可能硬件上面麻煩一點(diǎn),但是估計(jì)軟件開發(fā)簡單(哈哈,這也是我個(gè)人的看法,我對上位機(jī)軟件很不熟悉)。
還有就是,它的那個(gè)TLC5940芯片比較強(qiáng)大,但是我淘寶了一下,貌似有點(diǎn)貴,十多元一片,貌似ST2221C便宜一些,幾塊錢,功能可以替代,但是引腳不是兼容的。。。意味著要改程序(上位機(jī)和單片機(jī))。
結(jié)果這樣一整,就完全本土化了。。。和原來的東西都不一樣(從電路到上位機(jī)軟件都改版了)。。。