這里演示了在應用程序中如何在不需要外部電平移位器的情況下使用具有內置多電壓輸入/輸出外圍設備的MCU。
這個由兩篇文章組成的系列的第一篇文章討論了一種稱為多電壓 I/O (MVIO) 的新外設,該外設可用于AVR DB系列微控制器。簡而言之,MVIO 是微控制器芯片上的內部電平轉換器,它允許一個 I/O 端口在與設備其余部分不同的電壓域中工作。這減少了物料清單 (BOM) 和設計區域,同時提供了比外部解決方案更大的靈活性。
本文將介紹在應用程序中使用的 MVIO。它基于一個使用 3D 磁力計作為窗戶安全傳感器來檢測窗戶是打開還是關閉的演示。
檢測窗戶是否打開的最簡單方法之一是使用磁簧開關?;善_關是一種帶有電觸點的簡單裝置,可通過磁場的存在打開或關閉。通過將磁鐵安裝到窗戶并將開關固定在固定位置,可以通過觸點的連續性來確定窗戶的狀態。但是,簧片開關有兩個限制。
首先,它無法區分破裂的窗戶和打開的窗戶。如果使用了報警器,那么在不關閉報警器的情況下是無法破解窗戶的。其次,通過在附近放置第二塊磁鐵,可以很容易地篡改簧片開關。當窗戶打開時,次級磁鐵將開關的觸點固定到位。
為了提高防篡改和可用性,使用磁力計開發了一種替代解決方案。與打開或關閉的簧片開關不同,磁力計測量和數字化磁場分量。通過監測場分量,傳感器可以區分破裂的窗戶和打開的窗戶,并且對放置在傳感器附近的磁鐵具有更強的防篡改能力。
為了展示基于磁力計的解決方案的優勢,我們與基于半導體的傳感解決方案供應商 Melexis 共同開發了一種智能窗戶安全傳感器。它基于 AVR DB 系列的微控制器,這是第一款具有 MVIO 外設的微控制器。在這里,MLX90392 3D 磁力計已用于監測磁場強度。磁力計由 1.8 V 供電,并通過 I 2 C進行通信。
該演示還使用MLX90632遠紅外線 (FIR) 傳感器來監測房間的溫度。選擇的 FIR 傳感器比本地溫度傳感器更好,因為節點會遇到氣流和陽光直射,這可能會導致測量誤差。雖然 MLX90632 采用 3.3 V 供電,但還有一種器件型號專為 1.8 VI 2 C 通信而設計。
對于無線連接,為簡單起見,使用了RN4870藍牙模塊。這允許用戶通過智能手機與演示進行交互,而不是定制開發的通信橋。但是,在生產應用中,我們建議為每個傳感器節點切換到更簡單、功耗更低的無線電解決方案,例如Sub-GHz無線電。源代碼和文檔鏈接在文末。
原型設計和開發設置
對于開發,我們使用了Curiosity Nano Base for Click Boards (AC164162)和AVR DB Curiosity Nano 開發板 (EV35L43A)。MikroElektronika 的 Click 板上提供 RN4870 藍牙模塊和 MLX90632 溫度傳感器(RN4870 Click和IrThermo 3 Click)。MLX90392 磁力計由 Melexis 在 MLX90392 的預組裝評估板上提供。
在最初的傳感器通信測試之后,我們很快意識到需要一個測試夾具來控制磁鐵和傳感器的位置。利用我們潛在的手工藝能力,我們用紙板和熱膠組裝了一個簡單的測試夾具,如下所示。
圖 1 在此原型測試夾具和設置中,連接到夾具的小白盒來自現成的門開關。隨附的磁鐵用作測試目的的標準安全磁鐵的示例。資料來源:微芯片
磁力計
從概念上講,這個系統的窗口警報方面似乎是最容易實現的,但它比我們最初想象的要復雜得多。增加復雜性有幾個原因。
首先,磁力計非常靈敏。磁鐵或磁力計位置的微小差異會使數字顯著下降。下圖來自未經校準或標準化的磁力計的原始值(圖 2)。在數據收集過程中,滑動機構來回滑動。
圖 2 該圖顯示了原始磁力計場分量強度。資料來源:微芯片
我們沒有直接監測每個組件的最大值和最小值,這將根據傳感器的安裝位置而變化,而是使用總磁場強度 (R = √(X 2 + Y 2 + Z 2 )。出于軟件優化的原因,應用程序使用磁場強度的平方。下圖顯示了相同測試期間的磁場大小。在應用程序中,大小是根據歸一化的 16 位值計算的,如圖 3 所示。
圖 3 該圖顯示了測試期間磁場強度的大小。資料來源:微芯片
為了使系統整體更靈敏,每個軸的磁場值都進行了歸一化。從顯示的樣本數據來看,Y 軸的幅度最大,其次是 Z,然后是 X。每個軸以不同的速率增加。這在直覺上是有道理的,因為磁通量在垂直方向上最高,在平行方向上最弱。為了標準化每個軸,微控制器通過將結果右移以適合有符號的 8 位值來縮放每個軸。在用戶校準序列期間計算比例因子,以使系統整體更加靈敏。
最初,該應用程序還打算計算 X/Y、X/Z 和 Y/Z 的角度比,以獲得額外的防篡改功能。但在測試中,由于場強的巨大差異,這種計算被發現非常不可靠。這些角度增加了演示的內存使用和活動時間。我們發現應用程序在沒有它們的情況下運行良好,并通過宏禁用了它們。從早期數據計算的角度比如下所示(圖 4)。
圖 4 磁力計的 X/Y、X/Z 和 Y/Z 角比是根據早期數據計算得出的。資料來源:微芯片
為了可靠地利用磁力計,我們開發了一個四步校準過程。此過程必須在初始設置期間執行,但如果需要,用戶可以稍后重新觸發它。校準應用程序的四個步驟是:
歸零
正?;?/p>
設置閾值
確認
在歸零時,窗口完全打開,使磁鐵盡可能遠離傳感器。每個軸記錄的平均值定義為偏移值。接下來,關閉窗口,使磁鐵非常靠近傳感器。每個軸的場強在這個位置被平均。在設定的樣本數之后,微控制器計算每個軸的歸一化因子。
接下來,用戶將窗口打開到所需的打開/關閉閾值。當用戶打開窗口時,應用程序正在監控記錄的最大場強 (R 2 )。根據定位,最大場強應出現在或接近關閉窗口的位置。
在這一步之后,用戶將關閉窗口。此時,系統正在檢查窗口關閉時是否會觸發警報。如果警報確實跳閘,則校準失敗并應重新進行。另一方面,當校準成功時,將值寫入內部 EEPROM 以供以后使用。
實現溫度傳感器
為了與 MLX90632 傳感器接口,我們開發了一種新的輕量級 API,旨在利用微控制器特定的功能來提高性能。對于 MLX90632 溫度傳感器,我們實施了一個校準常數緩存系統,將傳感器的出廠常數存儲到微控制器的 EEPROM 中。這是由微控制器自動執行的。啟動時,微控制器檢查其 EEPROM 以確定來自傳感器的常數是否已被編程到內存中。為了驗證常數,微控制器:
將存儲的序列號與傳感器的序列號匹配
驗證內存段末尾序列號的異或
如果任一檢查失敗,微控制器將重新獲取傳感器的常數,計算浮點等效值,然后將它們重新寫入 EEPROM。如果內存被認為是有效的,微控制器只需讀取存儲的常量,而不是重新獲取和重新計算它們。
可以通過取消定義宏在軟件中禁用此功能?;蛘?,如果在應用程序啟動時按住校準按鈕,應用程序將以安全模式啟動,該模式認為 EEPROM 中的所有設置和值無效,并將重新獲取/重新編程(如果啟用)。
使用 1.8 V
在 1.8 V 時,必須比更常見的 3.3 V 或 5 V 類型更仔細地處理串行通信。例如,微控制器中的內部上拉電阻對于總線來說可能太弱而無法滿足時序要求。為了解決這個問題,我們在總線上添加了外部上拉電阻。
在早期測試中,我們嘗試使用精密數字萬用表直接測量外部 1.8V 電源的電流消耗。然而,萬用表的負載電壓剛好足以使總線在串行通信期間斷電。我們在原型中解決了這個問題,方法是在電源中添加一個大型槽路電容器,以確保在儀表測量電流消耗時總線保持在掉電閾值以上。這在整個應用中都不是問題,因為可以從電源輸入測量電流,并且電源在板上進行調節,而不是在外部進行調節。
最終結果
一旦系統正常運行,我們就開始開發專用 PCB。下圖是已顯影的電路板(在沒有塑料外殼的情況下拍攝)。該原型系統將于 6 月 27 日至 29 日在Sensors Converge 2022的 Microchip 展位 #218 上展示。
圖 5 原型板沒有塑料外殼的照片。資料來源:微芯片
連接混合電壓域是許多設計的關鍵要素。在大多數情況下,必須使用外部電平轉換器在電壓域之間進行轉換。MVIO 消除了這個組件并將其集成到微控制器中,這使得開發人員幾乎看不到它。有許多可能的設計和應用將受益于在系統中添加 MVIO 外設。
上述應用程序的源代碼和文檔可在以下位置獲得:
https://github.com/microchip-pic-avr-examples/avr128db28-smart-security-sensor-mplab
作者特別感謝 Melexis 協助開發此應用程序。
—Robert Perkel 是 Microchip Technology 的 8 位 MCU 業務部門的應用工程師。
審核編輯 黃昊宇
-
微控制器
+關注
關注
48文章
7552瀏覽量
151417 -
電平轉換器
+關注
關注
1文章
176瀏覽量
19571
發布評論請先 登錄
相關推薦
評論