disco phone

17
DiscoPhone 製製製製 製製製 製製製製製 製製製

Upload: jiann-fuh-liaw

Post on 20-Jun-2015

225 views

Category:

Documents


5 download

TRANSCRIPT

Page 1: Disco phone

DiscoPhone製造所碩一 鄒宗延資訊系大四 廖健富

Page 2: Disco phone

預期目標• 用 STM32F429I-Discovery 做出一隻手機

– 將 F9 microkernel 移植至 F429I-Discovery– 2G 模組 (SIMCOM SIM900A) 與控制板間的通訊– 透過 AT 指令控制 2G 模組,實現撥打與接聽

電話、收發簡訊等功能– 基本的休眠處理

Page 3: Disco phone

動機

• 期中報告的探討目標 -> F9 microkernel• 對日常生活中必需品的好奇• 看起來很酷

Page 5: Disco phone

困難• F9-kernel 對於硬體上的周邊設備驅動並不

完善,增加函式庫移植困難• STM32F429I-Discovery 的 UART 無法正

常運作,提高除錯難度• 第一次接觸嵌入式系統,經驗不足導至系

統架構不完整,開發效率慢

Page 6: Disco phone

解決方案 (OS)

• 雖然已經成功在 F9-kernel 上引入 LCD 的函式庫,並且成功建立 UI ,但 UART 一直無法正確操作

• 6/17 時改為使用 FreeRTOS 加上官方韌體、移植好的 uGFX 進行開發

Page 7: Disco phone

解決方案 ( 休眠 )

• 將除了監聽來電訊息外的任務都 suspend• 計算沒有動作的時間決定是否休眠• 利用 User Button 在任務都 suspend 的

情況下喚醒• 函式庫只有提供 LCD_DisplayOff ,但是無

法完全關閉 LCD 的電源

Page 8: Disco phone

解決方案 (SIM900A)

• 測試的時候發現 SIM900A 在確認 SIM 卡時會回傳 PH-NET 的錯誤

• 上網搜尋發現有同樣的問題,解決方法是更新韌體

• 更新韌體後模組就變磚了……• 終於成功更新韌體,卻找到 MCC 支援的

文ˋ 件…台灣不在清單上

Page 9: Disco phone

解決方案 (RS232)

• SIM5320E 的 RS232 介面要透過 TTL 轉換器,接出 TX/RX 連到 MCU

• 轉換器與 SIM5320E 中間需要 Null Modem

• 台南各大電子商場全部都沒有賣……

Page 10: Disco phone

解決方案 ( 話筒 Line In)

Page 11: Disco phone

解決方案 ( 多工 )

• 因為有觸控螢幕以及來電訊息需要監控,所以除了畫面的任務外,還需要兩個任務

• 第一版在讀取訊息時會有當機的情況• 來電訊息會跟控制通訊模組搶佔 UART 資

源,因此需要使用 mutex 避免因為搶奪資源造成 deadlock

Page 12: Disco phone

解決方案 ( 除錯 )

• 在開發過程中有一個介面可以監看 MCU 狀態是很重要的事情

• STM32F4 有許多個 UART 介面,一個用來與 3G 模組溝通,另一個傳送除錯訊息給電腦

• 只有在 APB1 上的 UART1 與 UART6 可以 正常使用,而且 UART6 使用時無法控制 LCD…….

Page 14: Disco phone

現場測試

Page 16: Disco phone

Q & A

Page 17: Disco phone

Thanks