服務熱線
0755-83044319
發布時間:2024-11-15作者來源:薩科微瀏覽:782
歷經四個月的Fastbond第三季活動現已圓滿結束,項目審核結果已郵件告知大家,感謝硬禾小伙伴們的踴躍參與,帶來了超多精彩項目,期待接下來的獎勵返還。
今年FastBond3活動小伙伴們又提供了不少新創意,硬件上不止有強大的功能,還有精美的外觀,妥妥的產品級設計。這個由【pomin】帶來的一線通高刷監控副屏設計便讓人眼前一亮,是一款高刷新率、高自由度、具有觸摸功能、低成本、易操作的監控小屏。
完整項目報告已經上傳至電子森林:
https://www.eetree.cn/project/3544
背景介紹
如今電腦配件廠商都在推出一些帶屏外設,主要面向給極客玩家、DIY 玩家,裝扮自己的電腦主機和桌面,置于顯示屏下方的小監控屏就是其中很受歡迎的一類產品。如今市場上的“監控小屏”類外設當前主要有以下三種方案:
經過比較不難發現以上三種方案均有一定缺點,針對上述問題,本創意首次提出了如下方案:
使用 USB HS 轉 SPI、I2C、UART專用芯片搭配 IO 拓展芯片實現高速驅屏、電容觸摸。
使用 I2C 環境傳感器獲取當前室內溫濕度,可拓展工作臺溫濕度監控等功能。
直接使用電腦運行 LVGL,無 Flash 限制!無 RAM 限制!搭配 LVGL 設計器實現炫酷界面!
通過 WMI 等方式直接讀取電腦狀態,無需反復配網、配置,直接運行 exe 完成操作。
依靠上述方案實現了一個低成本、高性能、易操作的監控小屏項。項目具體實現過程請大家接著往下看。
硬件設計
首先一起來看看該項目實現的框圖設計吧!
方案介紹如下:
通過 USB 轉高速 SPI(60Mbps)驅動 SPI 小屏幕顯示,實現高刷新率
通過 USB 轉 I2C 讀取 TOUCH 芯片、溫濕度芯片實現觸摸、監測環境溫濕度的功能
通過 USB 轉高速 UART(6Mbps)和STM32通訊,實現IO、PWM拓展功能
器件列表
IO 拓展器硬件設計
對于 STM32 端的 IO 分配使用 CubeMX 來完成分配,如下所示:
PA13、PA14 作 SWD 燒錄引腳
PA0、PA1、PA4、PA5 作為 GPIO 輸出引腳、PA6、PA7、PA11、PA12 作為 GPIO 輸入引腳
PB1 作為 PWM 輸出引腳、頻率為 10KHz
PA2、PA3 作為 USART1 通信引腳與 CH347T 通訊
原理圖設計
原理圖采用 KiCAD 進行設計,CH347T、FPC 等部分封裝為手動創建,非系統原理圖庫。硬件設計相關文件可查看項目報告原文附件。
原理圖介紹:
Type-C 及供電電路
CH347T 與 STM32 通過 UART 連接
CH347T 與 HS3001 通過 I2C 連接
觸摸屏通過 SPI、I2C、GPIO、PWM 與 CH347T 和 STM32 連接
PMOS 控制 STM32 電源電路——當 CH347T 建立 USB 連接后 ACT 拉低,STM32 工作;斷開連接(但不斷電)后 ACT 拉高,STM32 不工作,LCD_BL 拉低,實現了電腦休眠時自動熄滅屏幕的功能
PCB設計采用了雙層布局(設計文件可)。此外本項目還設計了一個簡潔的外殼,為HS3001溫濕度傳感器預留了通風縫隙以確保空氣流通,外殼與屏幕緊密貼并留有 Type-C 的接口槽孔。
軟件設計
IO拓展器
IO 拓展器采用 modbus 協議與 PC 端軟件通訊,來完成對 MCU 的 IO 輸入輸出、PWM 占空比進行讀寫操作,本項目是在 STM32G030F6P6 端移植了 FreeModbus 的協議棧以實現 PC 和 STM32 的通訊。
modbus 是工業中常用的一種標準的通信協議,有二進制變量(線圈、離散量)和雙字節變量(輸入寄存器、保持寄存器)四種類型,在工業中廣泛用于 IO 控制、數據同步等許多應用,在本項目中的 IO 操作、PWM 占空比設置十分合適,上下位機的代碼也可以利用開源庫,易于實現。
PC端
IO 拓展器通訊 API
與 IO 拓展器的通訊使用 libmodbus 來實現,對于讀 IO 輸入對應為 modbus 讀輸入寄存器操作,寫 IO 輸出和 PWM 占空比對應寫保持寄存器操作。
SPI、I2C 通訊 API
對于 SPI、I2C 的通訊,沁恒已經封裝成了 DLL 庫,只需調用即可,但仍較為復雜,本項目對其進行了一些簡化封裝,具體代碼比較繁多,在此不做過多展示。
驅動封裝
對于觸摸屏的驅動芯片,也就是 ST7789,采用四線 SPI 通訊方式,其中 D/CX 引腳為 IO 拓展器的 IO 輸出腳,用前文的 libmodbus 進行操作,其他的 SCL、SDA、CSX 為 SPI 標準信號線,使用 CH347T 庫進行操作,搭配操作實現高速刷屏。
對于觸摸屏的 FT6236 觸摸芯片和 HS3001 溫濕度傳感器,都采用 I2C 的通訊方式,使用 CH34T 庫進行操作。
對于 PC 的狀態信息讀取采用 Windows 給出的一些 API 和開源的一些庫代碼來完成,目前支持了 CPU 溫度/占用率、GPU 溫度/占用率、主板溫度、內存占用率這幾個信息的讀取。
LVGL 界面設計
完成硬件信息的讀取之后,接下來就要將其展示出來并且可供用戶操作。本項目采用了現在[敏感詞]的 LVGL 來作為界面庫使用,主要包含有顯示驅動接口和輸入驅動(在此為觸摸)接口。
界面設計是使用的 GUI Guider 進行的設計,圖標來自 iconfont,整體設計界面如下:
由于篇幅原因,軟件設計部分代碼細節不在此做過多展示,詳情可點擊“閱讀原文”查看。
實物展示
PCB和2.4 寸的觸摸屏鐵框完美契合,裝上外殼,完美貼合。
通電效果展示(小米溫濕度計合影)
功能實現:支持時間、電腦CPU、GPU溫度&占用率、環境溫濕度數據監測及顯示,還能一鍵觸屏快速啟動Keil / VScode,具體演示可詳見項目視頻。
設計文件獲取
本項目對本項目感興趣的小伙伴可前往電子森林查看完整項目報告,附件中可獲取項目設計相關文件。(還可以在評論區和原作者交流哦~)
免責聲明:本文采摘自“硬禾學堂”,本文僅代表作者個人觀點,不代表薩科微及行業觀點,只為轉載與分享,支持保護知識產權,轉載請注明原出處及作者,如有侵權請聯系我們刪除。
友情鏈接:站點地圖 薩科微官方微博 立創商城-薩科微專賣 金航標官網 金航標英文站
Copyright ?2015-2024 深圳薩科微半導體有限公司 版權所有 粵ICP備20017602號