MCU檢視原始碼討論檢視歷史
MCU | |
---|---|
MCU微控制器由於整合多種IC 元件(包括ROM、RAM、CPU、I/O..等),可說是一種系統單晶片(System on a Chip)的展現,主要分為4bit、8bit、16bit、32bit、64bit 等產品。微控制器的應用領域相當廣泛,包括汽車、通訊、電腦、多媒體、商業機器馬達控制、醫療儀器及消費性電子產品等,都使用到微控制器。[1]MCU其實就是一個微型的電腦,麻雀雖小五臟俱全,因此能夠搭配在任何電子產品上,依照規格的不同,具有不同等級的記憶與運算功能。[2]
技術原理MCU同溫度傳感器之間通過I2C總線連接。I2C總線佔用2條MCU輸入輸出口線,二者之間的通信完全依靠軟件完成。溫度傳感器的地址可以通過2根地址引腳設定,這使得一根I2C總線上可以同時連接8個這樣的傳感器。本方案中,傳感器的7位地址已經設定為1001000。MCU需要訪問傳感器時,先要發出一個8位的寄存器指針,然後再發出傳感器的地址(7位地址,低位是WR信號)。傳感器中有3個寄存器可供MCU使用,8位寄存器指針就是用來確定MCU究竟要使用哪個寄存器的。本方案中,主程序會不斷更新傳感器的配置寄存器,這會使傳感器工作於單步模式,每更新一次就會測量一次溫度。 要讀取傳感器測量值寄存器的內容,MCU必須首先發送傳感器地址和寄存器指針。MCU發出一個啟動信號,接著發出傳感器地址,然後將RD/WR管腳設為高電平,就可以讀取測量值寄存器。 為了讀出傳感器測量值寄存器中的16位數據,MCU必須與傳感器進行兩次8位數據通信。當傳感器上電工作時,默認的測量精度為9位,分辨力為0.5 C/LSB(量程為-128.5 C至128.5 C)。本方案採用默認測量精度,根據需要,可以重新設置傳感器,將測量精度提高到12位。如果只要求作一般的溫度指示,比如自動調溫器,那麼分辨力達到1 C就可以滿足要求了。這種情況下,傳感器的低8位數據可以忽略,只用高8位數據就可以達到分辨力1 C的設計要求。由於讀取寄存器時是按先高8位後低8位的順序,所以低8位數據既可以讀,也可以不讀。只讀取高8位數據的好處有二,第一是可以縮短MCU和傳感器的工作時間,降低功耗;第二是不影響分辨力指標。 MCU讀取傳感器的測量值後,接下來就要進行換算並將結果顯示在LCD上。整個處理過程包括:判斷顯示結果的正負號,進行二進制碼到BCD碼的轉換,將數據傳到LCD的相關寄存器中。 數據處理完畢並顯示結果之後,MCU會向傳感器發出一個單步指令。單步指令會讓傳感器啟動一次溫度測試,然後自動進入等待模式,直到模數轉換完畢。MCU發出單步指令後,就進入LPM3模式,這時MCU系統時鍾繼續工作,產生定時中斷喚醒CPU。定時的長短可以通過編程調整,以便適應具體應用的需要。
MCU 優缺點和適用領域,MCU 自身集成FLASH 和RAM,上電程序即可從片上FLASH 運行,速度快,程序可加密,但是受限片內的FLASH 和RAM 容量的大小,他的處理能力有限,適合用在高度集成,尺寸,功耗等受限制的控制領域。[3]
影片
微控制器 (MCU) 實作 (STM32F7)
參考資料
- ↑ MCU04.04.2021 MoneyDJ理財網
- ↑ 一分鐘看懂MCU(微控制器)04.27.2010 孫慶龍的投資部落格
- ↑ MCU 優缺點和適用領域03.01.2020 淚雪網