MAX22530系列器件為4通道隔離式ADC。4-模擬輸入持續數字化,并支持使用內部數字比較器的通道輸入閾值檢測。
介紹
MAX22530系列器件(MAX22530/MAX22531/MAX22532)為電隔離、四通道、多路復用12位模數轉換器(ADC)。現場側ADC通過隔離式DC-DC轉換器在內部供電,因此除了ADC輸入的模擬輸入連接外,不需要額外的硬件開銷。
該器件連續數字化現場側的輸入,并以每通道20ksps (典型值)的速度通過隔離柵傳輸數據。ADC數據的每個通道均可通過串行外設接口(SPI)獲得。此外,該器件還提供現場側診斷和濾波后的ADC數據平均讀數。
MAX22530、MAX22531和MAX22532功能相似。MAX22530具有SPI,但沒有數字比較器輸出引腳。MAX22531具有用于ADC1和ADC2通道的數字比較器輸出引腳,MAX22532具有用于所有四個ADC通道的數字比較器輸出引腳選項。
本應用筆記給出了簡單且經過驗證的解決方案的示例源代碼,用于對MAX22530進行編程和接口(圖1)。示例代碼以 ANSI-C 格式提供,易于移植到任何常見的微控制器。有關MAX22530/MAX22531/MAX22532引腳、工作模式和控制寄存器的詳細信息,請參考MAX22530/MAX22531/MAX22532數據資料。
圖1.MAX22530/MAX22531/MAX22532功能框圖
圖1所示為MAX22530系列的主要功能塊,包括:
隔離式 DC-DC 轉換器,為現場側 ADC 和 1.8V 基準供電。
逐次逼近寄存器 (SAR) ADC,具有內部生成的 1.8V 基準電壓源。
跨現場和邏輯端的內部隔離。
帶有SPI端口的邏輯端接口,用于訪問所有器件寄存器和硬件標志以進行診斷。
MAX22530 SPI
MAX22530 SPI命令的長度為24位(8位指令+16位數據),CRC禁用,如果使能CRC,則CRC8將增加8位。命令字節的 6 MSB 是寄存器地址位,后跟一個寫入或讀取位,以及一個突發位,用于執行突發讀取操作。
禁用CRC的SPI命令結構如表1所示,啟用CRC的SPI命令結構如表2所示。MAX22530的SPI模式為CPOL = 0 (CLK空閑= 0),CPHA = 0 (上升沿/第一沿對數據進行采樣)。數據/命令需要首先以 MSB 為單位計時。
表 1.MAX22530 SPI命令結構,禁用CRC
8 位 | 16 位 | ||
---|---|---|---|
地址 | 控制 | 數據 | |
6 位 A[5:0], MSB 至 LSB |
W/R 讀取 = 0,寫入 = 1 |
突發位 0 = 正常操作 1 = 突發讀取操作 |
數據 [15:0] MSB 到 LSB |
表 2.MAX22530 SPI命令結構,使能CRC
8 位 | 16 位 | 8 位 | ||
---|---|---|---|---|
地址 | 控制 | 數據 | 結直腸癌 | |
6 位 A[5:0], MSB 至 LSB |
W/R 讀取 = 0,寫入 = 1 |
突發位 0 = 正常操作 1 = 突發讀取操作 |
數據 [15:0] MSB 到 LSB |
C [7:0] MSB 到 LSB |
SPI讀寫周期的完整細節以及寄存器表和指令可在MAX22530數據資料中找到。
MAX22530代碼應用示例
MAX22530設計用于支持終端設備中的工業應用,如過程自動化和配電自動化,這些應用需要使用多通道隔離式ADC進行連續監測。典型應用電路如圖2所示。
圖2.高壓線路監控。
連接每個單獨的輸入(AIN1 到 AIN4)以監視現場側的高壓線,該線路使用電阻分壓器衰減,以將模擬電壓相對于現場接地保持在 1.8V 以內。除了從ADC讀取模擬電壓外,MAX22530還為每個輸入提供內部數字比較器,用于執行二進制輸入操作。MAX22530的現場側ADC功能診斷和SPI通信系統自診斷簡化了系統設計和維護。
源代碼
本應用筆記提供C源代碼示例,提供基本的驅動功能,用于訪問MAX22530中的多個寄存器,以實現配置、數據讀取、控制和診斷功能。MAX22530、MAX22531和MAX22532在功能上等效,三款器件的C代碼接口示例相同。所有軟件均使用MAX22530評估板進行實現和測試。僅使用本文檔中的功能作為參考,并根據應用程序中的微控制器和硬件實現設計自己的固件/軟件。
初始化
該例程在初始化時運行,以識別MAX22530并執行應用中的初始配置。以下函數通過讀取產品 ID 寄存器來識別設備。成功識別后,內部數字比較器配置為給定設置和上限/下限閾值電平。
/***************************************************************************//** @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”函數演示了設備初始化后的設備讀取寄存器。在此示例中,將打印寄存器讀取數據。實際應用可能必須采取進一步措施,但這超出了本應用筆記的范圍。
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); }
結論
本應用筆記介紹了如何對MAX22530進行編程,以讀取/突發讀取ADC通道、配置寄存器和監視診斷。該代碼使用MAX22530評估板進行測試。通過利用本應用筆記中的C代碼示例,工程師可以快速輕松地實現常用微控制器與MAX22530之間的接口。
審核編輯:郭婷
-
轉換器
+關注
關注
27文章
8849瀏覽量
149719 -
adc
+關注
關注
99文章
6594瀏覽量
547455 -
比較器
+關注
關注
14文章
1768瀏覽量
108114
發布評論請先 登錄
相關推薦
三通道LED驅動芯片MAX16824/MAX16825及其應用
16通道高壓模擬開關MAX14805資料推薦
16通道高壓模擬開關MAX14802資料推薦
四通道電源管理電路MAX16922相關資料分享
8通道16位同時采樣ADC模數轉換芯片MAX11046電子資料
八通道超聲前端與CW多普勒混頻器MAX2078電子資料
4通道16位同時采樣ADC模數轉換芯片MAX11044相關資料下載
MAX1415, MAX1416 低功耗、16位、2通道、Σ
MAX5965A, MAX5965B 單芯片4通道PSE控制
MAX16070, MAX16071 12通道/8通道、閃存
MAX11044,MAX11045,MAX11046 4/6/8通道16位同時采樣ADC

MAX11040K/MAX11060 4通道數模轉換器(ADC)
基于集成的隔離DC/DC轉換器場側診斷

評論