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