gsm-fm桌面收音機
2023-03-07 10:17:50閱讀量:3607
本文作者:立創開源硬件平臺 OSHWHub 用戶@野生程序員,禁止商用,未經許可禁止轉載,點擊查看原文章
1、工程描述
制作了一個高顏值gsm-fm桌面收音機。它擁有7大功能:網絡時鐘、FM廣播、天氣預報、B站數據統計、老黃歷、背光調節、定時關機。
2、硬件說明
主控:ESP32-S3
FM芯片:RDA5807
音頻芯片:CS4344 I2S
采集整機工作電流:INA199
交互:一個旋轉編碼器
3、設計說明
將電路分為6個部分,并依次講解:ESP32-S3電路、電源自動切換電路、軟件開關機電路、USB轉串口電路+自動燒錄電路、PCB設計、外殼設計。
芯片選用內部帶8MRAM+外接16M FLAM。
圖1 主控電路
Q1是一個PMOS管,BAT+是電池,5V是充電器輸入。
當充電器未接入時Q1導通,BAT+流過Q1給VCC供電,當充電器介入時,Q1截至5V流過D1給VCC供電。
U1是一個輸出為3.3V的穩壓芯片,該芯片帶有使能功能。
即第3(CE)腳,給該引腳輸入高電平,打開輸出,輸入低電平,關閉輸入。VCC_KEY是按鍵腳,一端接到電源(VCC),另一端連接到單片機引腳(KEY_POWER),和U1使能腳電路。
● 按鍵開機過程
在未插入充電時。
按鍵按下后,VCC流過VCC_KEY、D4,給CE腳一個高電平使能3.3V輸出,此時整個系統得電單片機開始運行。程序首先檢測KEY_POWER腳電平,如果該電壓為高電平,說明是按鍵開機控制POWER_IO腳輸出高電平鎖定CE腳電平。這時松開手,由于POWER_IO為高電平會繼續使能U1輸出。
●充電開機過程
在未按下按鍵時。
插入充電器,此時5V得電,經過D3給CE腳高電平使能3.3V,輸出單片機運行,程序開始檢測KEY_POWER電平。由于內部配置下拉輸入,所以識別到為低電平程序判斷案件為按下時運行即充電開機。
●關機過程
進入關機功能,確認關機后,系統拉低POWER_IO使能3.3輸出。
ESP32-S3支持串口下載。由于電腦沒有TTL串口接口,所以需要一個USB轉串口芯片。
U7型號是CH340C,該芯片支持一路usb轉串口ttl,帶有RTS、DTR控制引腳,內部集成晶振大大簡化了外部電路。
圖4 USB轉串口電路
根據ESP3S3數據手冊,進入串口下載模式,需要在上電前拉低IO0。
上面介紹了CH340C帶有RTS、DTR引腳,可以加入開關控制電路來實現自動復位和拉低IO0。
如圖,Q6芯片型號是UMH3N,該芯片內部帶有兩個三極管并且集成偏置電壓,再利用CH340C的RTS、DTR引腳可以實現自動下載程序。
圖5 自動下載電路
05、PCB設計
整個項目使用一張雙層PCB,如下圖。
外殼使用Autodesk Fusion 360設計制作。

4、安裝說明
屏幕通過雙面膠貼在PCB上,PCB卡在外殼的內壁槽里,通過一顆螺絲固定。
天線通過外殼孔槽插入內部,使用螺絲固定導線到外殼上。
揚聲器直接卡在外殼槽里。
電池放在內部空余空間。
設計好外殼后使用3d打印,然后使用自噴漆更換外殼顏色。
軟件說明
硬件電路設計并焊接完成后就可以開始編寫代碼了,這個項目使用的是樂鑫官方的ESP-IDF5.0。
本章節著重講解——開機動畫部分。開機動畫使用的LVGL GIF庫,在開發過程中使用VS模擬器可以正常播放。
出現問題當移植到ESP32播放時,開機動畫會持續卡死,把動畫剪切成了兩部分縮小時長還是不行
解決方法經過多種bug修復,最終使用預加載到PSRAM解決了該問題。
上述情況的具體實現代碼如下:
更多詳情及附件,可從原工程查看。
本文作者:立創開源硬件平臺 OSHWHub 用戶@野生程序員,禁止商用,未經許可禁止轉載

L7805CV-DG/線性穩壓器(LDO) | 0.5637 | |
AMS1117-3.3/線性穩壓器(LDO) | 0.1237 | |
BAT54C,215/肖特基二極管 | 0.0334 | |
LM358DR2G/運算放大器 | 0.35 | |
CJ431/電壓基準芯片 | 0.1147 | |
LM393DR2G/比較器 | 0.318 | |
ADUM4160BRWZ-RL/隔離式USB芯片 | 31.6 | |
SS8050/三極管(BJT) | 0.035 | |
8S005/錫膏/錫漿 | 17.67 | |
B0505S-1WR3/隔離電源模塊 | 2.34 |