MAX22530系列器件為4通道隔離式ADC。4-模擬輸入持續(xù)數(shù)字化,并支持使用內(nèi)部數(shù)字比較器的通道輸入閾值檢測。
介紹
MAX22530系列器件(MAX22530/MAX22531/MAX22532)為電隔離、四通道、多路復(fù)用12位模數(shù)轉(zhuǎn)換器(ADC)。現(xiàn)場側(cè)ADC通過隔離式DC-DC轉(zhuǎn)換器在內(nèi)部供電,因此除了ADC輸入的模擬輸入連接外,不需要額外的硬件開銷。
該器件連續(xù)數(shù)字化現(xiàn)場側(cè)的輸入,并以每通道20ksps (典型值)的速度通過隔離柵傳輸數(shù)據(jù)。ADC數(shù)據(jù)的每個通道均可通過串行外設(shè)接口(SPI)獲得。此外,該器件還提供現(xiàn)場側(cè)診斷和濾波后的ADC數(shù)據(jù)平均讀數(shù)。
MAX22530、MAX22531和MAX22532功能相似。MAX22530具有SPI,但沒有數(shù)字比較器輸出引腳。MAX22531具有用于ADC1和ADC2通道的數(shù)字比較器輸出引腳,MAX22532具有用于所有四個ADC通道的數(shù)字比較器輸出引腳選項。
本應(yīng)用筆記給出了簡單且經(jīng)過驗證的解決方案的示例源代碼,用于對MAX22530進行編程和接口(圖1)。示例代碼以 ANSI-C 格式提供,易于移植到任何常見的微控制器。有關(guān)MAX22530/MAX22531/MAX22532引腳、工作模式和控制寄存器的詳細信息,請參考MAX22530/MAX22531/MAX22532數(shù)據(jù)資料。
圖1.MAX22530/MAX22531/MAX22532功能框圖
圖1所示為MAX22530系列的主要功能塊,包括:
隔離式 DC-DC 轉(zhuǎn)換器,為現(xiàn)場側(cè) ADC 和 1.8V 基準(zhǔn)供電。
逐次逼近寄存器 (SAR) ADC,具有內(nèi)部生成的 1.8V 基準(zhǔn)電壓源。
跨現(xiàn)場和邏輯端的內(nèi)部隔離。
帶有SPI端口的邏輯端接口,用于訪問所有器件寄存器和硬件標(biāo)志以進行診斷。
MAX22530 SPI
MAX22530 SPI命令的長度為24位(8位指令+16位數(shù)據(jù)),CRC禁用,如果使能CRC,則CRC8將增加8位。命令字節(jié)的 6 MSB 是寄存器地址位,后跟一個寫入或讀取位,以及一個突發(fā)位,用于執(zhí)行突發(fā)讀取操作。
禁用CRC的SPI命令結(jié)構(gòu)如表1所示,啟用CRC的SPI命令結(jié)構(gòu)如表2所示。MAX22530的SPI模式為CPOL = 0 (CLK空閑= 0),CPHA = 0 (上升沿/第一沿對數(shù)據(jù)進行采樣)。數(shù)據(jù)/命令需要首先以 MSB 為單位計時。
表 1.MAX22530 SPI命令結(jié)構(gòu),禁用CRC
8 位 | 16 位 | ||
---|---|---|---|
地址 | 控制 | 數(shù)據(jù) | |
6 位 A[5:0], MSB 至 LSB |
W/R 讀取 = 0,寫入 = 1 |
突發(fā)位 0 = 正常操作 1 = 突發(fā)讀取操作 |
數(shù)據(jù) [15:0] MSB 到 LSB |
表 2.MAX22530 SPI命令結(jié)構(gòu),使能CRC
8 位 | 16 位 | 8 位 | ||
---|---|---|---|---|
地址 | 控制 | 數(shù)據(jù) | 結(jié)直腸癌 | |
6 位 A[5:0], MSB 至 LSB |
W/R 讀取 = 0,寫入 = 1 |
突發(fā)位 0 = 正常操作 1 = 突發(fā)讀取操作 |
數(shù)據(jù) [15:0] MSB 到 LSB |
C [7:0] MSB 到 LSB |
SPI讀寫周期的完整細節(jié)以及寄存器表和指令可在MAX22530數(shù)據(jù)資料中找到。
MAX22530代碼應(yīng)用示例
MAX22530設(shè)計用于支持終端設(shè)備中的工業(yè)應(yīng)用,如過程自動化和配電自動化,這些應(yīng)用需要使用多通道隔離式ADC進行連續(xù)監(jiān)測。典型應(yīng)用電路如圖2所示。
圖2.高壓線路監(jiān)控。
連接每個單獨的輸入(AIN1 到 AIN4)以監(jiān)視現(xiàn)場側(cè)的高壓線,該線路使用電阻分壓器衰減,以將模擬電壓相對于現(xiàn)場接地保持在 1.8V 以內(nèi)。除了從ADC讀取模擬電壓外,MAX22530還為每個輸入提供內(nèi)部數(shù)字比較器,用于執(zhí)行二進制輸入操作。MAX22530的現(xiàn)場側(cè)ADC功能診斷和SPI通信系統(tǒng)自診斷簡化了系統(tǒng)設(shè)計和維護。
源代碼
本應(yīng)用筆記提供C源代碼示例,提供基本的驅(qū)動功能,用于訪問MAX22530中的多個寄存器,以實現(xiàn)配置、數(shù)據(jù)讀取、控制和診斷功能。MAX22530、MAX22531和MAX22532在功能上等效,三款器件的C代碼接口示例相同。所有軟件均使用MAX22530評估板進行實現(xiàn)和測試。僅使用本文檔中的功能作為參考,并根據(jù)應(yīng)用程序中的微控制器和硬件實現(xiàn)設(shè)計自己的固件/軟件。
初始化
該例程在初始化時運行,以識別MAX22530并執(zhí)行應(yīng)用中的初始配置。以下函數(shù)通過讀取產(chǎn)品 ID 寄存器來識別設(shè)備。成功識別后,內(nèi)部數(shù)字比較器配置為給定設(shè)置和上限/下限閾值電平。
/***************************************************************************//** @brief Example code for first time initialization of the device. @return status – MAX2253x Status = 0; device not recognized/ unavailable MAX2253x Status = 1; if device recognized after Init() Function When successfully recognized, configure registers *******************************************************************************/ Void Initialize() { uint8_t answer = MAX22530_Init(); /* Initializes and checks if the device is present*/ printf("MAX2253x status = "); printf(answer); /* Answer: 1 when the device is initialized and the ID is read and recognized */ if (answer == 1) { printf("Device Recognized. Device Configuration ongoing"); // Configuring the Digital Comparators /* Digital Input Mode with Unfiltered ADC results, setting upper threshold to 50% of range * and lower threshold to 10% of range*/ MAX22530_write_register(COUTHI1,0x0800); MAX22530_write_register(COUTLO1,0x019A); /* Digital Status Mode with filtered ADC results, setting upper threshold to 70% of range * and lower threshold set to 40%*/ MAX22530_write_register(COUTHI2,0xcb32); MAX22530_write_register(COUTLO2,0x0667); /* Writing default upper threshold values for COUTHI3 and COUTHI4 * in Digital Status mode and using default lower threshold values*/ MAX22530_write_register(COUTHI3,0x8b32); MAX22530_write_register(COUTHI3,0x8b32); } }
以下“Test”函數(shù)演示了設(shè)備初始化后的設(shè)備讀取寄存器。在此示例中,將打印寄存器讀取數(shù)據(jù)。實際應(yīng)用可能必須采取進一步措施,但這超出了本應(yīng)用筆記的范圍。
void test() { printf("COUTHI1: "); printf(MAX22530_read_register(COUTHI1)); printf("COUTHI2: "); printf(MAX22530_read_register(COUTHI2)); printf("COUTHI3: "); printf(MAX22530_read_register(COUTHI3)); printf("COUTHI4: "); printf(MAX22530_read_register(COUTHI4)); printf("COUTLO1: "); printf(MAX22530_read_register(COUTLO1)); printf("COUTLO2: "); printf(MAX22530_read_register(COUTLO2)); printf("COUTLO3: "); printf(MAX22530_read_register(COUTLO3)); printf("COUTLO4: "); printf(MAX22530_read_register(COUTLO4)); printf("ADC1: "); printf(MAX22530_read_register(ADC1)); printf("ADC1 Voltage: "); printf(Convert_to_Voltage(ADC1)); printf("COUTLO2 Voltage: "); printf(Convert_to_Voltage(COUTLO2)); MAX22530_Burst_read_register(ADC1); printf(Burst_reg1); printf(Burst_reg2); printf(Burst_reg3); printf(Burst_reg4); printf(Burst_INT_status); }
結(jié)論
本應(yīng)用筆記介紹了如何對MAX22530進行編程,以讀取/突發(fā)讀取ADC通道、配置寄存器和監(jiān)視診斷。該代碼使用MAX22530評估板進行測試。通過利用本應(yīng)用筆記中的C代碼示例,工程師可以快速輕松地實現(xiàn)常用微控制器與MAX22530之間的接口。
審核編輯:郭婷
-
轉(zhuǎn)換器
+關(guān)注
關(guān)注
27文章
8744瀏覽量
148045 -
adc
+關(guān)注
關(guān)注
99文章
6533瀏覽量
545757 -
比較器
+關(guān)注
關(guān)注
14文章
1658瀏覽量
107431
發(fā)布評論請先 登錄
相關(guān)推薦
評論