MAX1452通過單引腳接口進(jìn)行異步串行數(shù)據(jù)通信。本應(yīng)用筆記詳細(xì)介紹了所使用的串行通信系統(tǒng),應(yīng)結(jié)合MAX1452數(shù)據(jù)資料閱讀。
本應(yīng)用筆記描述了MAX1452中使用的串行通信系統(tǒng),最好結(jié)合MAX1452數(shù)據(jù)資料閱讀。它擴(kuò)展了數(shù)據(jù)手冊(cè)中包含的串行通信信息,并提供了通信示例。
MAX1452數(shù)字模式
MAX1452數(shù)字輸入/輸出(DIO)提供單引腳串行通信,具有內(nèi)部控制功能和存儲(chǔ)器。所有命令輸入流入一組 16 個(gè)寄存器,這些寄存器構(gòu)成接口寄存器集 (IRS)??刂七壿嬏峁┝似渌?jí)別的命令處理,該邏輯從 IRS 獲取其輸入。雙向 16 位鎖存器緩沖進(jìn)出 16 位校準(zhǔn)寄存器和內(nèi)部(8 位寬)EEPROM 位置的數(shù)據(jù)。圖3顯示了各種串行命令與MAX1452內(nèi)部架構(gòu)之間的關(guān)系。
通信協(xié)議
DIO串行接口用于MAX1452與主機(jī)校準(zhǔn)測(cè)試系統(tǒng)或計(jì)算機(jī)之間的異步串行數(shù)據(jù)通信。MAX1452在主機(jī)發(fā)送初始化序列時(shí)自動(dòng)檢測(cè)上位機(jī)的波特率??梢詸z測(cè)和使用 4800 到 38,400 之間的波特率。數(shù)據(jù)格式始終為 1 個(gè)起始位、8 個(gè)數(shù)據(jù)位和 1 個(gè)停止位。8個(gè)數(shù)據(jù)位首先傳輸LSB,最后傳輸MSB。當(dāng)MAX1處于數(shù)字模式時(shí),弱上拉電路可用于在DIO上保持邏輯1452。這是為了防止此引腳上出現(xiàn)意外的 1 到 0 轉(zhuǎn)換,這將被解釋為通信起始位。僅當(dāng)安全鎖時(shí)才允許通信?字節(jié)被禁用(即 CL[7:0] = 00十六進(jìn)制) 或 解鎖 保持高電平。
初始化順序
MAX1452使用上電后或收到重新初始化命令后發(fā)送給MAX1452的第一個(gè)命令字節(jié)來學(xué)習(xí)通信波特率。初始化序列是 1 個(gè)十六進(jìn)制的 81 字節(jié)傳輸,如下所示:
起始位(如上以粗體顯示)啟動(dòng)波特率同步。8 個(gè)數(shù)據(jù)位 81 十六進(jìn)制(首先是 LSB)遵循此數(shù)據(jù)位,然后是停止位,也以上面的粗體顯示。MAX1452使用該序列計(jì)算1位傳輸?shù)臅r(shí)間間隔,作為其內(nèi)部振蕩器周期的倍數(shù)。然后,得到的振蕩器時(shí)鐘周期數(shù)在內(nèi)部存儲(chǔ)為 8 位數(shù)字 (BITCLK)。請(qǐng)注意,在發(fā)送初始化序列之前,設(shè)備的電源應(yīng)至少穩(wěn)定 1 毫秒。這為上電復(fù)位功能完成和 DIO 由安全鎖定字節(jié)或解鎖配置留出時(shí)間。
重新初始化順序
MAX1452提供重新建立或重新學(xué)習(xí)波特率。重新初始化序列是 FF 十六進(jìn)制的 1 字節(jié)傳輸,如下所示:
當(dāng)收到串行重新初始化序列時(shí),接收邏輯將自身復(fù)位到其上電狀態(tài)并等待初始化序列。初始化序列必須遵循重新初始化序列才能重新建立波特率。
串行接口命令格式
MAX1452的所有通信命令均遵循起始位、8個(gè)命令位(一個(gè)命令字節(jié))和一個(gè)停止位的格式。命令字節(jié)控制接口寄存器集的內(nèi)容,包括一個(gè) 4 位接口寄存器集地址 (IRSA) 半字節(jié)和一個(gè) 4 位接口寄存器集數(shù)據(jù) (IRSD) 半字節(jié)。IRS 字節(jié)命令的結(jié)構(gòu)如下:
國(guó)稅局[7:0] = 國(guó)稅局[3:0] , IRSA[3:0]
所有命令首先傳輸 LSB。起始位之后的第一個(gè)位是 IRSA[0],停止位之前的最后一個(gè)位是 IRSD[3],如下所示:
IRS 的一半寄存器內(nèi)容用于數(shù)據(jù)保存和轉(zhuǎn)向信息。將數(shù)據(jù)寫入 IRS 中的兩個(gè)位置會(huì)導(dǎo)致立即操作(命令執(zhí)行)。這些位置位于地址 9 和 15,分別是內(nèi)部邏輯和重新初始化命令的命令寄存器。表 9 顯示了 IRS 地址解碼的完整列表。
命令序列可以作為連續(xù)流寫入MAX1452,例如起始位、命令字節(jié)、停止位、起始位、命令字節(jié)、停止位等。MAX1452接收數(shù)據(jù)時(shí),命令之間沒有延遲要求。
命令寄存器到內(nèi)部邏輯 (CRIL)
寫入 CRIL 位置(IRS 地址 9)的數(shù)據(jù)會(huì)導(dǎo)致立即執(zhí)行與寫入的 4 位數(shù)據(jù)半字節(jié)關(guān)聯(lián)的命令。所有EEPROM和校準(zhǔn)寄存器讀寫以及EEPROM ERASE命令都通過CRIL位置進(jìn)行處理。CRIL還用于使能MAX1452模擬輸出,并將輸出數(shù)據(jù)(串行數(shù)字輸出)放在DIO上。表 10 顯示了 CRIL 命令的完整列表。
串行數(shù)字輸出
通過將讀取 IRS (RdIRS) 命令(5 十六進(jìn)制)寫入 CRIL 位置,將 DIO 配置為數(shù)字輸出。收到此命令后,MAX1452輸出一個(gè)字節(jié)的數(shù)據(jù),其內(nèi)容由IRS[3:0] = 3十六進(jìn)制位置的IRS指針(IRSP[0:8])值確定。數(shù)據(jù)以單個(gè)字節(jié)輸出,由起始位和停止位成幀。表 12 列出了為每個(gè) IRSP 地址值返回的數(shù)據(jù)。
發(fā)送RdIRS命令后,所有與DIO的連接必須三態(tài),以允許MAX1452驅(qū)動(dòng)DIO線路。收到RdIRS命令后,MAX1452在一個(gè)字節(jié)后將DIO驅(qū)動(dòng)為高電平。MAX1452保持DIO高電平1452位,然后通過驅(qū)動(dòng)DIO低電平來置位起始位。然后,起始位后跟數(shù)據(jù)字節(jié)和停止位。在停止位傳輸后,MAX1452將立即三態(tài)DIO,釋放線路。MAX<>在釋放DIO后一個(gè)字節(jié)即可接收下一個(gè)命令序列。
注意,在MAX1452發(fā)送數(shù)據(jù)字節(jié)之前和之后會(huì)有時(shí)間間隔,此時(shí)DIO線路上的所有器件都將處于三態(tài)狀態(tài)。建議在這些時(shí)間間隔內(nèi)對(duì) DIO 線路施加弱上拉,以防止不必要的轉(zhuǎn)換。在DIO和模擬輸出(OUT)未連接的應(yīng)用中,上拉電阻應(yīng)永久連接到DIO。如果MAX1452 DIO和OUT連接,則在模擬測(cè)量期間不要加載該公共線路非常重要。在這種情況下,合適的事件順序如下:
將上拉電阻連接到 DIO/OUT 線路(最好使用 接力)。
發(fā)送 RdIRS 命令。
用戶連接的三態(tài)(設(shè)置為高阻抗)。
從MAX1452接收數(shù)據(jù)。
激活用戶連接(將 DIO/OUT 線拉高)。
松開上拉電阻。
圖1所示為發(fā)送/接收序列示例,發(fā)送RdIRS命令(59十六進(jìn)制),MAX1452響應(yīng)字節(jié)值為10十六進(jìn)制。
圖1.DIO 輸出數(shù)據(jù)格式。
內(nèi)部時(shí)鐘設(shè)置
初始上電后或電源復(fù)位后,MAX1452內(nèi)的所有校準(zhǔn)寄存器都包含00十六進(jìn)制,必須進(jìn)行編程。請(qǐng)注意,在模擬模式下,內(nèi)部寄存器從EEPROM自動(dòng)刷新。
當(dāng)MAX1452以數(shù)字模式啟動(dòng)時(shí),應(yīng)特別注意配置寄存器的3個(gè)CLK位:3MSB。MAX1452內(nèi)部振蕩器的頻率在生產(chǎn)測(cè)試期間測(cè)量,計(jì)算3位調(diào)整(校準(zhǔn))代碼并存儲(chǔ)在EEPROM位置3十六進(jìn)制(EEPROM上部配置字節(jié))的上161位中。MAX1452內(nèi)部時(shí)鐘控制所有定時(shí)功能,包括信號(hào)路徑增益、DAC功能和通信。建議在數(shù)字模式下,為配置寄存器CLK位分配EEPROM中包含的值(上部配置字節(jié))。3 個(gè) CLK 位代表一個(gè) 9 的補(bǔ)碼數(shù),標(biāo)稱時(shí)鐘調(diào)整為每位 15%。表 <> 顯示了可用的代碼和調(diào)整。
對(duì)配置寄存器中包含的CLK位值的任何更改都必須遵循MAX1452波特率學(xué)習(xí)序列(重新初始化和初始化命令)。為了在時(shí)鐘復(fù)位期間最大限度地提高通信系統(tǒng)的魯棒性,一次僅將CLK位更改1LSB值。因此,配置寄存器CLK位的推薦設(shè)置過程如下:在設(shè)置過程中使用9600的最小波特率,以防止時(shí)鐘值接近最大值時(shí)MAX1452波特率計(jì)數(shù)器可能溢出。
以下示例基于所需的 CLK 代碼 010 二進(jìn)制文件:
第 1 步。從 EEPROM 位置讀取 CLK 位 (3MSB) 161 十六進(jìn)制 CLK = 010 二進(jìn)制。
第 2 步。將配置寄存器中的 CLK 位設(shè)置為 001 二元的。
第 3 步。發(fā)送重新初始化命令,然后初始化 (波特率學(xué)習(xí))命令。
第 4 步。 將配置寄存器中的 CLK 位設(shè)置為 010 二元的。
第5步。發(fā)送重新初始化命令,然后初始化 (波特率學(xué)習(xí))命令。
內(nèi)部振蕩器的頻率可以隨時(shí)通過讀取 BITCLK[7:0] 的值來檢查。這個(gè) 8 位數(shù)字表示對(duì)應(yīng)于通信波特率的一個(gè)周期(一位時(shí)間)的內(nèi)部振蕩器周期數(shù)。
擦除和寫入 EEPROM
在對(duì)所需內(nèi)容進(jìn)行編程之前,必須擦除內(nèi)部EEPROM(字節(jié)設(shè)置為FF十六進(jìn)制)。MAX1452以標(biāo)稱擦除狀態(tài)供電,字節(jié)161十六進(jìn)制和字節(jié)16B十六進(jìn)制除外。字節(jié) 3 十六進(jìn)制的 161MSB 包含內(nèi)部振蕩器校準(zhǔn)設(shè)置。字節(jié) 16B 十六進(jìn)制設(shè)置為 00 十六進(jìn)制以允許串行通信,而不管“解鎖”狀態(tài)如何。
擦除 EEPROM 時(shí),首先保存字節(jié) 3 十六進(jìn)制的 161MSB。擦除后,必須重寫這 3 位,以及 00 十六進(jìn)制的安全鎖字節(jié)值。如果不這樣做,可能會(huì)導(dǎo)致部件停止通信。在重寫這些值之前,請(qǐng)勿斷開設(shè)備的電源。
內(nèi)部EEPROM可以使用擦除命令完全擦除,也可以使用PageEras命令部分擦除(請(qǐng)參閱表10,CRIL命令)。發(fā)出 ERASE 或 PageErase 命令后需要等待 6 毫秒。任何在6ms之前與器件通信或中斷電源的嘗試都可能在EEPROM中產(chǎn)生不確定的狀態(tài)。
要擦除 EEPROM 中的頁面(頁面擦除命令):首先將所需的頁碼(見表1)加載到IRS位置IEEA[3:0]。然后發(fā)送 CRIL PageErase 命令(79 十六進(jìn)制)。
要將字節(jié)寫入 EEPROM: 使用字節(jié)地址(地址 [9:8])加載 IRS 位置 IEEA[7:4]、IEEA[3:0] 和 IEEA[9:0]。加載 IRS 位置 DHR[7:4] 和 DHR[3:0] 以及要寫入的 8 個(gè)數(shù)據(jù)位 (Data[7:0])。將EEPROM WRITE命令發(fā)送到CRIL(19十六進(jìn)制)。
要從 EEPROM 讀取字節(jié): 加載國(guó)稅局位置 IEEA[9:8], IEEA[7:4] 和帶有字節(jié)地址(地址 [3:0])的 IEEA[9:0]。發(fā)送一個(gè) 將EEPROM命令讀取到CRIL寄存器(49十六進(jìn)制);這將加載所需的 EEPROM 字節(jié)轉(zhuǎn)換為 DHR[7:0]。加載 IRS 位置 IRSP[3:0] 與 00 十六進(jìn)制(返回 經(jīng)[7:0])。將讀取 IRSP 命令發(fā)送到 CRIL 寄存器(59 十六進(jìn)制)。
多路復(fù)用模擬輸出
MAX1452提供在數(shù)字模式下通過讀取模擬(RdAlg)命令輸出模擬信號(hào)的功能。在收到RdAlg命令后的一個(gè)字節(jié)時(shí)間,由ALOC[3:0]寄存器確定的內(nèi)部模擬信號(hào)(見表14)被多路復(fù)用為OUT。信號(hào)在 ATIM[3:0] 寄存器設(shè)置的持續(xù)時(shí)間內(nèi)保持與 OUT 的連接。ATIM功能使用通信波特率作為定時(shí)基礎(chǔ)。詳見表13。在ATIM[3:0]確定的周期結(jié)束時(shí),模擬信號(hào)與模擬輸出斷開,OUT恢復(fù)三態(tài)狀態(tài)。MAX1452在OUT恢復(fù)三態(tài)狀態(tài)后,可以在DIO 1字節(jié)上接收進(jìn)一步的命令。圖 2 說明了此方案的時(shí)序。
MAX1452 DIO在模擬輸出有效期間為三態(tài)。這是為了允許 OUT 和 DIO 引腳并聯(lián)連接。當(dāng)DIO和OUT并聯(lián)連接時(shí),上位機(jī)還必須三態(tài)其與MAX1452的通信連接。這一要求將產(chǎn)生與DIO的所有連接同時(shí)三態(tài)的周期,因此在這些期間必須對(duì)DIO施加一個(gè)弱上拉電阻。有關(guān)更多詳細(xì)信息,請(qǐng)參閱“串行數(shù)字輸出”部分。
“連續(xù)輸出”模式可用于模擬輸出,可通過將 ATIM[3:0] 設(shè)置為 F 十六進(jìn)制來選擇。僅當(dāng) DIO 和 OUT 分開時(shí),才能使用此模式。在此模式下,在收到 RdAlg 命令或任何其他命令后,DIO 三態(tài)為 32,769 字節(jié)時(shí)間。經(jīng)過此時(shí)間段后,DIO 將進(jìn)入接收模式,并將接受進(jìn)一步的命令輸入。在連續(xù)模式下,模擬輸出始終處于活動(dòng)狀態(tài)。
注意:連接到OUT時(shí),內(nèi)部模擬信號(hào)不緩沖。在測(cè)量這些內(nèi)部信號(hào)之一時(shí),任何OUT負(fù)載都可能產(chǎn)生測(cè)量誤差。讀取內(nèi)部信號(hào)(如BDR、FSOTC等)時(shí),不要加載OUT引腳。
圖2.模擬輸出定時(shí)。
圖3.MAX1452串行命令結(jié)構(gòu)和硬件原理圖
通信命令示例
以下是MAX1452中各種功能的命令序列示例。
示例 1:更改波特率設(shè)置,并檢查通信。注意:如果在發(fā)送重新初始化命令之前,由于系統(tǒng)波特率變化導(dǎo)致與MAX1452的通信中斷,則必須進(jìn)行電源復(fù)位以保證初始化條件。
命令 | 行動(dòng) |
FF 六角 | 重新初始化準(zhǔn)備進(jìn)行波特率學(xué)習(xí)的零件。 |
將系統(tǒng)波特率更改為新值。 | |
81 十六進(jìn)制 | 學(xué)習(xí)波特率。 |
F8 六角 | 將 15(F 十六進(jìn)制)加載到 IRSP[3:0] 寄存器。 |
59 十六進(jìn)制 | 閱讀國(guó)稅局。 |
主機(jī)必須準(zhǔn)備好在發(fā)送讀取 IRS 命令的一個(gè)(波特率)字節(jié)時(shí)間內(nèi)接收串行線路上的數(shù)據(jù)。MAX1452將返回CA十六進(jìn)制(IRSP值為10至15,配置為返回CA十六進(jìn)制,用于通信檢查)。 |
示例 2:讀取查找表指針 (臨時(shí)索引)。
命令 | 行動(dòng) |
78 十六進(jìn)制 | 將 7 加載到 IRSP[3:0] 寄存器。 |
59 十六進(jìn)制 | 閱讀國(guó)稅局。 |
主機(jī)已準(zhǔn)備好在發(fā)送讀取 IRS 命令后的一個(gè)字節(jié)內(nèi)接收數(shù)據(jù)。MAX1452將返回當(dāng)前溫度指數(shù)指針值。 |
例3:在 OUT 引腳上啟用 BDR 測(cè)量,持續(xù)時(shí)間為 3.4 秒,波特率為 9600。
命令 | 行動(dòng) |
1B 十六進(jìn)制 | 加載 1(BDR 測(cè)量)到 ALOC[3:0] 寄存器。 |
CA六角 |
將 12 加載到 ATIM[3:0] 寄存器:(212+1)![]() 8/9600 = 3.4秒 |
69 十六進(jìn)制 | RdAlg |
DIO 引腳為三態(tài),OUT 引腳在內(nèi)部連接到 BDR 引腳,持續(xù)時(shí)間約為 3.4 秒。 |
例4: 將 8C40 十六進(jìn)制寫入 FSODAC 寄存器。
命令 | 行動(dòng) |
00 十六進(jìn)制 | 將 0 十六進(jìn)制加載到 DHR[3:0] 寄存器。 |
41 十六進(jìn)制 | 將 4 十六進(jìn)制加載到 DHR[7:4] 寄存器。 |
C2 六角 | 將 C 十六進(jìn)制加載到 DHR[11:8] 寄存器。 |
83 十六進(jìn)制 | 將 8 十六進(jìn)制加載到 DHR[15:12] 寄存器。 |
36 十六進(jìn)制 | 將 3 (FSODAC) 加載到 ICRA[3:0] 寄存器。 |
09 十六進(jìn)制 | 低沉管 |
8C40十六進(jìn)制寫入FSODAC寄存器。 |
例5: 將 8C40 十六進(jìn)制寫入 FSODAC 查找表位置 溫度指數(shù)為 40。本示例使用“頁面擦除”命令清除 EEPROM的相關(guān)部分,并假設(shè)沒有現(xiàn)有數(shù)據(jù) 在該部分中需要保留。
命令 | 行動(dòng) |
A6 六角 | 加載 A 十六進(jìn)制(對(duì)應(yīng)于 EEPROM 位置的頁碼 280 十六進(jìn)制 和 281 十六進(jìn)制)到 IEEA[3:0] 寄存器。 |
79 十六進(jìn)制 | “頁面擦除”命令。 |
等待 6 毫秒,然后再發(fā)送任何進(jìn)一步的命令。 | |
06 十六進(jìn)制 | 將 0 十六進(jìn)制加載到 IEEA[3:0] 寄存器。 |
87 十六進(jìn)制 | 將 8 十六進(jìn)制加載到 IEEA[7:4] 寄存器。 |
28 十六進(jìn)制 | 將 2 個(gè)十六進(jìn)制加載到 IEEA[9:8] (IRSP[3:0]) 寄存器。 |
00 十六進(jìn)制 | 將 0 十六進(jìn)制加載到 DHR[3:0] 寄存器。 |
41 十六進(jìn)制 | 將 4 十六進(jìn)制加載到 DHR[7:4] 寄存器。 |
19 十六進(jìn)制 | 編寫 EEPROM。40 十六進(jìn)制加載到 EEPROM 地址 280 十六進(jìn)制,其中 是對(duì)應(yīng)于 TEMP-INDEX 指針值的低字節(jié)位置 的 40。 |
16 十六進(jìn)制 | 將 1 加載到 IEEA[3:0] 寄存器。IEEA[7:4] 和 IEEA[9:8] 已經(jīng) 分別包含 8 和 2。 |
C0 六角 | 將 C 十六進(jìn)制加載到 DHR[3:0] 寄存器。 |
81 十六進(jìn)制 | 將 8 十六進(jìn)制加載到 DHR[7:4] 寄存器。 |
19 十六進(jìn)制 | 編寫 EEPROM。8C十六進(jìn)制加載到EEPROM地址281十六進(jìn)制,其中 是對(duì)應(yīng)于 TEMP-INDEX 指針的高字節(jié)位置 值為 40。 |
審核編輯:郭婷
-
寄存器
+關(guān)注
關(guān)注
31文章
5432瀏覽量
124077 -
存儲(chǔ)器
+關(guān)注
關(guān)注
38文章
7644瀏覽量
166980 -
EEPROM
+關(guān)注
關(guān)注
9文章
1085瀏覽量
83597
發(fā)布評(píng)論請(qǐng)先 登錄
MAX1452需要使用外部存儲(chǔ)器嗎?針對(duì)電橋calibration怎么做?
MAX1452傳感器信號(hào)調(diào)理芯片 大連??齐娮?/a>
labview軟件環(huán)境支持的MAX1452評(píng)估軟件打開時(shí)有錯(cuò)誤提示!??!
max1452通信問題
MAX1452
低成本高精度傳感器信號(hào)調(diào)理器MAX1452相關(guān)資料下載
如何實(shí)現(xiàn)STM32結(jié)合MAX1452來對(duì)壓阻式傳感器進(jìn)行溫度補(bǔ)償?
MAX1452中文資料pdf
利用MAX1452實(shí)現(xiàn)遠(yuǎn)端傳感器補(bǔ)償

MAX1452非線性修正應(yīng)用電路

MAX1452/MAX1455常見問題
MAX1452 Serial Communications
MAX1452的串行通信資料下載

使用MAX1452進(jìn)行遠(yuǎn)程傳感器補(bǔ)償

利用MAX1452實(shí)現(xiàn)遠(yuǎn)端傳感器補(bǔ)償

評(píng)論