前不久接到一個任務,要求用Arduino做一個小玩意,而且需要方便初學者制作PCB和焊接。作為一個通信人,我的腦海中閃現的第一個東西就是帶DSP的收音機。在網上找了一下,國外有現成的模塊了,芯片方案是Silicon Labs的Si4703,資料很齊全。后來又發現淘寶上有其早期版本,除了電源針腳定義與最新版的不同,其它都一樣。就這么愉快地做決定了。
功能特性:
- 接收范圍76MHz~108MHz,支持粗調(1MHz步進)和細調(0.1MHz步進)
- 帶信號強度指示
- 帶立體聲狀態指示
- 支持向上、向下搜台
- 支持音量調節
- 使用Micro-USB接口供電,工作電流約31mA
Si4703的Arduino庫來自於GitHub,然而用着不太符合自己的需求和習慣,最后還是改了不少地方。I2C時鍾頻率提高到了400kHz(經測量,上升時間符合要求),另外針對調諧和搜台過程中I2C總線未保持靜默的問題進行了改進。
由於Si4703模塊只能工作在3.3V電壓條件下,而且其I/O口只能承受3.3V電平,所以整個系統統一使用3.3V電源供電。根據Atmega328的手冊,3.3V供電時最高時鍾頻率不建議超過13.333MHz,然而為了兼容Arduino UNO官方引導程序和庫函數,這里超頻使用了Atmega328,而不是使用低頻率晶體或是系統時鍾預分頻器。
本板基本引出了所有I/O。在向Atmega328燒錄引導程序后可以通過CH340串口板向本板燒錄用戶程序。可以將CH340的DTR引出並連接到本板的TP29以免在燒錄程序時需手動復位本板。
這回用到的液晶是和上次用的液晶預留的負壓發生電路同樣使用的是7660芯片,但是對比度調壓腳的連接方法不一樣。上次用的液晶的第三腳直接連到負壓發生電路的電阻分壓輸出端,可以外接電阻調壓。這回的連法不宜通過外接電阻調節對比度(外接電阻調壓可達到調整對比度的效果,但會造成7660沒有接地,消耗電流會高達幾十毫安),需要懸空液晶第三腳,斷開J1,接通J2、J3,將負壓輸出端串接的0Ω電阻改為10kΩ,液晶工作電流約4mA(其中背光電流2mA)。
外殼是3D打印的。考慮到PLA的強度和外殼壁厚,安裝孔就不設計為沉頭孔了。給液晶做了個邊框,邊框與上蓋是用洗板水粘接的。
附件(原理圖、光繪文件、源代碼、外殼圖紙)
復制€wWdI1t7a2Sf€后打開閑魚可購買空白PCB