使用微控制器的功能可快速實作小型設計的類比訊號鏈
資料提供者:DigiKey 北美編輯群
2019-02-05
許多物聯網 (IoT) 設計都仰賴類比電路,以此來滿足應用對感測器和致動器訊號調整、電流控制和其他功能的獨特要求。雖然專用訊號鏈 IC 可以滿足此需求,但是對於成本和空間都有嚴格限制的設計,則需要以更少的零件提供此功能,同時還要滿足效能要求。
微控制器的興起就是為了滿足此需求,整合類比數位轉換器 (ADC) 和比較器等類比周邊裝置,進而簡化這種感測器和致動器介面的特性。但在之前工程師仍需要添加類比零件,才能提供大多數設計所需的訊號調整或輸出緩衝,這情況直到近期才有所改變。
在微控制器上添加這些類比訊號調整電路,開發人員即可採取有效的方法對這些元件進行設定;只需操控幾行程式碼,即可滿足穿戴式裝置和其他 IoT 裝置的多種類比介面要求。
本文將針對連接的 IoT 裝置探討其對於前端類比訊號調整的要求。然後介紹一系列具有高度整合類比功能的微控制器,並展示其使用方式。
將感測器與微控制器介接
感測器設計通常需要一個或兩個放大器來調整傳感器輸出訊號,然後才能到達微控制器的 ADC 輸入端。諸如心率監測用的脈搏血氧儀,這類更複雜的裝置需要多個訊號鏈來產生 LED 激磁波形、轉換光電二極體輸出,最後擷取脈衝數據 (圖 1)。即使是在工業應用中,常用於連接感測器與可編程邏輯控制器的簡單電流迴路電路,也需要額外的裝置來驅動並控制電流輸出。不過,藉由使用 Texas Instruments 的 MSP430FR2355 MCU 的內部類比元件,開發人員通常只需要幾個額外的被動元件,即可實作此類設計的更小型款式。
圖 1:由於使用者期望在更小型的產品中添加更複雜的功能,開發人員就需要在脈搏血氧儀等複雜訊號路徑的實作中,大幅減少零件數量。(圖片來源:Texas Instruments)
整合式類比元件
Texas Instruments 的 MSP430FR2355 MCU 採用 16 位元 RISC 處理器核心為基礎,能為許多 IoT 裝置設計提供其通常需要的全套功能。MSP430FR2355 屬於 TI 的 MSP430 FRAM 系列產品,整合了 32 KB 的低功率鐵電 RAM (FRAM)。FRAM 非常適合 IoT 設計,可提供快閃記憶體的非揮發性儲存優勢,以及 RAM 的寫入速度和耐久度。因此,開發人員可以利用 FRAM 類似 RAM 的效能特性,在活躍運作期間儲存數據和程式碼,同時依靠 FRAM 的非揮發特性,在睡眠模式或其他需要節省電力的操作狀態下保留數值。MSP430FR2355 支援幾種低功率模式,可滿足這些設計常見的低功率要求。
除了低功率特性,MSP430FR2355 還利用多個整合式類比周邊裝置來支援 IoT 介面要求,其中包含 12 通道的 12 位元 ADC、含整合式數位類比轉換器 (DAC) 的類比比較器,以及多個晶片上參考電壓。MSP430FR2355 MCU 最獨特的類比特點在於其四個智慧型類比組合 (SAC) 模組,開發人員可以對該模組進行編程設定以滿足特定要求。
每個 SAC 模組包括 12 位元 DAC、軌對軌運算放大器 (OA) 和反饋電阻梯形網路,可將 OA 轉變為可編程增益放大器 (PGA)。每個元件的專用暫存器可控制其設定和操作模式。例如,開發人員只要在 SAC (SACx) 模組的 OA 暫存器 (SACxOA) 中載入 0:1 位元,即可將 OA 的正輸入設定成某個外部電源、DAC 輸出或已配對的 SAC 電源 (如下所述)。
TI 的驅動程式函式庫可將這些位元操作抽象化,成為一組直覺的應用程式開發介面 (API) 調用。因此,開發人員只需要幾行程式碼 (清單 1) 就可以將 SAC 模組設定為一般用途放大器,來完全取代感測器訊號調整放大器,也可一併節省零件數量並縮減設計尺寸 (圖 2)。
複製
//Select external source for both positive and negative inputs
SAC_OA_init(SAC0_BASE, SAC_OA_POSITIVE_INPUT_SOURCE_EXTERNAL, SAC_OA_NEGATIVE_INPUT_SOURCE_EXTERNAL);
//Select low speed and low power mode
SAC_OA_selectPowerMode(SAC0_BASE, SAC_OA_POWER_MODE_LOW_SPEED_LOW_POWER)
// Enable OA
SAC_OA_enable(SAC0_BASE);
// Enable SAC
SAC_enable(SAC0_BASE);
(程式碼來源:Texas Instruments)SAC_OA_init
SAC_OA_selectPowerMode
圖 2:開發人員可以使用 Texas Instruments 的 MSP430FR2355 MCU 四種智慧型類比組合 (SAC) 模組之一,將外部運算放大器替換為該 MCU 內部實作的放大器。(圖片來源:Texas Instruments)
若要當作輸出波形產生器使用,SAC 模組需要使用更多元件 (圖 3)。在這種情況下,開發人員以編程方式將數據載入到專用的數據暫存器 (SACxDAT),用以設定內部 DAC 的輸出,進而達到控制波形的目的。DAC 輸出接著就為 OA 提供參考電壓。在此設定中,開發人員可以將 PGA 暫存器 (SACxPGA) 中的 0:1 位元 (MSEL) 設定為緩衝模式 (01b) (對應於浮動輸入),藉此來增強 OA 驅動強度。若要設定此操作模式,開發人員只需多進行幾次 API 調用 (清單 2) 即可,其實只比上述一般用途設定所需的調用次數多出一些而已。
圖 3:開發人員可以使用 SAC 模組的數位類比轉換器和運算放大器元件,進行可編程波形產生器的實作。(圖片來源:Texas Instruments)
複製
//Select internal shared reference as DAC reference voltage
SAC_DAC_selectRefVoltage(SAC0_BASE, SAC_DAC_SECONDARY_REFERENCE);
//Select the load trigger for DAC data latch
//DAC always loads data from DACDAT at the positive edge of Timer output TB2.1
SAC_DAC_selectload(SAC0_BASE, SAC_DAC_LOAD_DEVICE_SPECIFIC_0);
//Enable DAC Interrupt
SAC_DAC_interruptEnable(SAC0_BASE);
//Write data to DAC Data Register SACxDAT
//DAC_data is an unsigned int type variable defined by user SAC_DAC_setData(SAC0_BASE, DAC_data);
//Enable DAC
SAC_DAC_enable(SAC0_BASE);
//Select internal DAC for positive input and PGA source for negative input
SAC_OA_init(SAC0_BASE, SAC_OA_POSITIVE_INPUT_SOURCE_DAC,
SAC_OA_NEGATIVE_INPUT_SOURCE_PGA);
//Select Buffer Mode
SAC_PGA_setMode(SAC0_BASE, SAC_PGA_MODE_BUFFER);
//Enable OA
SAC_OA_enable(SAC0_BASE);
//Enable SAC
SAC_enable(SAC0_BASE);
清單 2:若要將 SAC 模組設定為波形產生器,開發人員只需比一般用途放大器所需的 API 調用次數,再額外執行幾次調用即可。(程式碼來源:Texas Instruments)
多階段
在許多情況下,開發人員需要使用內含超過一個放大器的訊號調整或輸出鏈。例如,感測器系統設計人員通常會串接放大器以緩衝傳感器輸出,然後放大緩衝訊號,以便匹配訊號鏈末端的 ADC 滿刻度回應。同樣地,輸出介面的開發人員通常需要串接放大器來產生波形,並控制閘極驅動器。例如,為了建立電流迴路介面,開發人員可以使用一個設定在 DAC 模式的 SAC 模組來提供調變訊號電壓。第二個 SAC 模組設定為 OA 模式,可使用外部電晶體將訊號電壓轉換成電流 (圖 4)。
圖 4:為了建立電流迴路介面,工程人員可使用一個 DAC 模式 SAC 模組產生調諧的訊號電壓,再使用一個 OA 模式 SAC 模組驅動電晶體,進而產生迴路電流 ILOOP (I1 + I2)。(圖片來源:Texas Instruments)
MSP430FR2355 MCU 提供更有效率的方法來串接放大器。對於不需要其他外部元件的設計,開發人員可以利用內建佈線,在內部將 SAC 模組互連成兩對:SAC0 內部連接至 SAC2,而 SAC1 則連接至 SAC3。
這種互連可應用於類似煙霧探測器的感測器系統,需要將光電二極體的電流輸出轉換成電壓位準,以便進行轉換。開發人員只需要幾行程式碼,即可使用一對 SAC 模組來實作這個訊號鏈 (清單 3)。SAC2 在此設定為轉阻放大器,將光電二極體的電流輸出轉換為電壓,而配對的 SAC0 則將電壓放大以用於下游 ADC (圖 5)。SAC_OA_init
SAC0_BASE
SAC_OA_NEGATIVE_INPUT_SOURCE_PGA
SAC_OA_POSITIVE_INPUT_SOURCE_PAIR_OA
複製
//Configure Op-Amp functionality
GPIO_setAsPeripheralModuleFunctionInputPin(GPIO_PORT_P3,
GPIO_PIN1 | GPIO_PIN3 | GPIO_PIN2,
GPIO_TERNARY_MODULE_FUNCTION);
//Select external source for both positive and negative inputs
SAC_OA_init(SAC2_BASE, SAC_OA_POSITIVE_INPUT_SOURCE_EXTERNAL,
SAC_OA_NEGATIVE_INPUT_SOURCE_EXTERNAL);
//Select low speed and low power mode
SAC_OA_selectPowerMode(SAC2_BASE, SAC_OA_POWER_MODE_LOW_SPEED_LOW_POWER);
SAC_OA_enable(SAC2_BASE); // Enable SAC2 OA
SAC_enable(SAC2_BASE); // Enable SAC2
//Select external source for both positive and negative inputs
SAC_OA_init(SAC0_BASE, SAC_OA_POSITIVE_INPUT_SOURCE_PAIR_OA,
SAC_OA_NEGATIVE_INPUT_SOURCE_PGA);
SAC_OA_enable(SAC0_BASE); // Enable SAC0 OA
SAC_enable(SAC0_BASE); // Enable SAC0
(程式碼來源:Texas Instruments)SAC_OA_POSITIVE_INPUT_SOURCE_PAIR_OA
圖 5:開發人員可以設定 MSP430FR2355 MCU 的配對 SAC 模組,實作典型煙霧探測器輸入訊號鏈所需的轉阻放大器 (TIA) 和可編程增益放大器 (PGA),即可有效免除煙霧探測器設計對外部類比 IC 的需求。(圖片來源:Texas Instruments)
透過此作法,開發人員幾乎可以實作 IoT 設計和穿戴式裝置所需的全套類比輸入和輸出電路。例如,開發人員可以使用 MSP430FR2355 SAC 模組將複雜的類比設計 (如圖 1 所示的脈衝血氧儀) 壓縮成明顯更小型的版本 (圖 6)。除了 LED、光電二極體和相關電阻外,設計人員只需 MCU 即可提供相同的功能。
圖 6:開發人員可以使用 MSP430FR2355 MCU 及其 SAC 模組,大幅減少設計的零件數量。例如,脈衝血氧儀即屬於此類設計,需要多個輸出激磁來源和多階段輸入訊號鏈。(圖片來源:Texas Instruments)
為了評估 MSP430FR2355 MCU 及其 SAC 模組的使用,開發人員可以利用 Texas Instruments 的 MSP-EXP430FR2355 LaunchPad 開發套件。此板件專為加快原型開發而設計,包括一個以 MSP430FR2355 為基礎的完整系統,其中包含光感測器、LED 和幾個與簡易型範例應用程式互動的按鈕,以及軟體開發用的板載偵錯探針。
Grove 連接器可以存取眾多的 Grove 式附加元件,而 TI 的 BoosterPack 連接器能讓開發人員利用 RF BoosterPack 輕鬆擴充基礎平台達到無線連線。TI 還提供一組範例軟體應用程式,可立即在 LaunchPad 套件上執行。除了執行 LaunchPad 板,軟體範例還展示基本的設計模式,例如清單 3 程式碼片段顯示的 SAC 模組互連方法。
結論
任何與現實世界互動的裝置通常都需要類比介面。然而,在許多穿戴式裝置和 IoT 裝置的設計中,打造這些介面所需的額外裝置,與更小型設計和減少零件數量的要求背道而馳。
針對整合在 Texas Instruments MSP430FR2355 MCU 中的類比元件進行設計,開發人員通常只需幾個額外的被動元件,即可實作這些設計所需的訊號鏈功能。

聲明:各作者及/或論壇參與者於本網站所發表之意見、理念和觀點,概不反映 DigiKey 的意見、理念和觀點,亦非 DigiKey 的正式原則。