Disco phone
-
Upload
jiann-fuh-liaw -
Category
Documents
-
view
227 -
download
5
Transcript of Disco phone
![Page 1: Disco phone](https://reader035.fdocuments.net/reader035/viewer/2022062405/5584c5e0d8b42af8138b47f4/html5/thumbnails/1.jpg)
DiscoPhone製造所碩一 鄒宗延資訊系大四 廖健富
![Page 2: Disco phone](https://reader035.fdocuments.net/reader035/viewer/2022062405/5584c5e0d8b42af8138b47f4/html5/thumbnails/2.jpg)
預期目標• 用 STM32F429I-Discovery 做出一隻手機
– 將 F9 microkernel 移植至 F429I-Discovery– 2G 模組 (SIMCOM SIM900A) 與控制板間的通訊– 透過 AT 指令控制 2G 模組,實現撥打與接聽
電話、收發簡訊等功能– 基本的休眠處理
![Page 3: Disco phone](https://reader035.fdocuments.net/reader035/viewer/2022062405/5584c5e0d8b42af8138b47f4/html5/thumbnails/3.jpg)
動機
• 期中報告的探討目標 -> F9 microkernel• 對日常生活中必需品的好奇• 看起來很酷
![Page 5: Disco phone](https://reader035.fdocuments.net/reader035/viewer/2022062405/5584c5e0d8b42af8138b47f4/html5/thumbnails/5.jpg)
困難• F9-kernel 對於硬體上的周邊設備驅動並不
完善,增加函式庫移植困難• STM32F429I-Discovery 的 UART 無法正
常運作,提高除錯難度• 第一次接觸嵌入式系統,經驗不足導至系
統架構不完整,開發效率慢
![Page 6: Disco phone](https://reader035.fdocuments.net/reader035/viewer/2022062405/5584c5e0d8b42af8138b47f4/html5/thumbnails/6.jpg)
解決方案 (OS)
• 雖然已經成功在 F9-kernel 上引入 LCD 的函式庫,並且成功建立 UI ,但 UART 一直無法正確操作
• 6/17 時改為使用 FreeRTOS 加上官方韌體、移植好的 uGFX 進行開發
![Page 7: Disco phone](https://reader035.fdocuments.net/reader035/viewer/2022062405/5584c5e0d8b42af8138b47f4/html5/thumbnails/7.jpg)
解決方案 ( 休眠 )
• 將除了監聽來電訊息外的任務都 suspend• 計算沒有動作的時間決定是否休眠• 利用 User Button 在任務都 suspend 的
情況下喚醒• 函式庫只有提供 LCD_DisplayOff ,但是無
法完全關閉 LCD 的電源
![Page 8: Disco phone](https://reader035.fdocuments.net/reader035/viewer/2022062405/5584c5e0d8b42af8138b47f4/html5/thumbnails/8.jpg)
解決方案 (SIM900A)
• 測試的時候發現 SIM900A 在確認 SIM 卡時會回傳 PH-NET 的錯誤
• 上網搜尋發現有同樣的問題,解決方法是更新韌體
• 更新韌體後模組就變磚了……• 終於成功更新韌體,卻找到 MCC 支援的
文ˋ 件…台灣不在清單上
![Page 9: Disco phone](https://reader035.fdocuments.net/reader035/viewer/2022062405/5584c5e0d8b42af8138b47f4/html5/thumbnails/9.jpg)
解決方案 (RS232)
• SIM5320E 的 RS232 介面要透過 TTL 轉換器,接出 TX/RX 連到 MCU
• 轉換器與 SIM5320E 中間需要 Null Modem
• 台南各大電子商場全部都沒有賣……
![Page 10: Disco phone](https://reader035.fdocuments.net/reader035/viewer/2022062405/5584c5e0d8b42af8138b47f4/html5/thumbnails/10.jpg)
解決方案 ( 話筒 Line In)
![Page 11: Disco phone](https://reader035.fdocuments.net/reader035/viewer/2022062405/5584c5e0d8b42af8138b47f4/html5/thumbnails/11.jpg)
解決方案 ( 多工 )
• 因為有觸控螢幕以及來電訊息需要監控,所以除了畫面的任務外,還需要兩個任務
• 第一版在讀取訊息時會有當機的情況• 來電訊息會跟控制通訊模組搶佔 UART 資
源,因此需要使用 mutex 避免因為搶奪資源造成 deadlock
![Page 12: Disco phone](https://reader035.fdocuments.net/reader035/viewer/2022062405/5584c5e0d8b42af8138b47f4/html5/thumbnails/12.jpg)
解決方案 ( 除錯 )
• 在開發過程中有一個介面可以監看 MCU 狀態是很重要的事情
• STM32F4 有許多個 UART 介面,一個用來與 3G 模組溝通,另一個傳送除錯訊息給電腦
• 只有在 APB1 上的 UART1 與 UART6 可以 正常使用,而且 UART6 使用時無法控制 LCD…….
![Page 14: Disco phone](https://reader035.fdocuments.net/reader035/viewer/2022062405/5584c5e0d8b42af8138b47f4/html5/thumbnails/14.jpg)
現場測試
![Page 15: Disco phone](https://reader035.fdocuments.net/reader035/viewer/2022062405/5584c5e0d8b42af8138b47f4/html5/thumbnails/15.jpg)
相關連結• 專題資訊(成大資工Wiki)
• 開發過程(Hackpad)
• 程式源碼(GitHub)
• SIM5320 EVB User Guide
![Page 16: Disco phone](https://reader035.fdocuments.net/reader035/viewer/2022062405/5584c5e0d8b42af8138b47f4/html5/thumbnails/16.jpg)
Q & A
![Page 17: Disco phone](https://reader035.fdocuments.net/reader035/viewer/2022062405/5584c5e0d8b42af8138b47f4/html5/thumbnails/17.jpg)
Thanks