MAXREFDES14#為隔離式電能測量提供緊湊的解決方案,采用MAX78615+LMU。默認(rèn)情況下,此參考設(shè)計配置為 SPI 通信。本應(yīng)用筆記描述了如何配置MAX78615+LMU用于UART通信,并給出了該接口的一些交易示例。
配置串行接口
Maxim Integrated的所有電能測量器件均支持三種不同的串行接口,在與不同的主機處理器和應(yīng)用接口時具有最大的靈活性。但是,一次只能有一個串行接口處于活動狀態(tài)。上電期間,Maxim集成電能測量器件將輪詢其硬件接口引腳的狀態(tài),以確定哪個串行協(xié)議處于活動狀態(tài)。要在器件導(dǎo)通后更改通信模式,用戶必須對器件執(zhí)行電源重啟,并將新的配置邏輯應(yīng)用于接口引腳。MAX78615+LMU具有兩個接口引腳:引腳16上的MP0/IFC1和引腳2上的IFC0。表1顯示了哪個串行接口與上電時這些引腳的邏輯狀態(tài)相對應(yīng)。
表 1.串行接口選擇邏輯
接口模式 | IFC1 | IFC0 |
---|---|---|
SPI | X | 0 |
UART | 0 | 1 |
I2C | 1 | 1 |
MAXREFDES14#系統(tǒng)板如圖1所示。該設(shè)計在IFC0和IFC1上均具有10kΩ下拉電阻,默認(rèn)情況下選擇SPI模式。要啟用UART通信而不是SPI,原理圖中的R10應(yīng)上拉至V抄送而不是拉低到 GND。由于選擇接口后MP0可用作“多用途”引腳,因此建議使用下拉,而不是將引腳直接連接到GND。通過這些連接,MAX78615+LMU將在上電期間配置為UART模式。UART 接口的默認(rèn)設(shè)置為 38,400 波特、8 個數(shù)據(jù)位、無奇偶校驗和一個停止位。
圖1.MAXREFDES14# 原理圖 — 非隔離側(cè)。
設(shè)置 SSI ID
用于通過UART通信的協(xié)議是簡單串行接口或SSI。SPI和UART接口的一個主要區(qū)別是,SPI主機通過硬件芯片選擇(MAX78615+LMU上的SSB)選擇器件,而UART接口使用每個器件定義的SSI ID建立通信。MAX78615+LMU的SSI ID范圍為1至255,SSI ID分兩步選擇。MAX78615+LMU中的DEVADDR[5:0]寄存器位用于定義SSI ID的前6位。SSI ID 的最低 2 位由硬件引腳 MP6/ADDR1 和 SPCK/ADDR0 引腳設(shè)置。這些引腳的狀態(tài)在上電時采樣的方式與MP0/IFC1和IFC0引腳采樣以確定串行接口的方式相同。MAX78615+LMU SSI ID等于器件總地址+1。因此,如果 DEVADDR[5:0] = 000000 且 ADDR1 = ADDR0 = 0,則 SSI ID 將為 1。由于 255 是允許的最大 SSI ID,因此不支持設(shè)備總地址“FF”。MAX78615+LMU具有默認(rèn)的DEVADDR = 0。
建立溝通
MAX78615+LMU在UART模式下上電并設(shè)置SSI ID后,可通過UART接口發(fā)送數(shù)據(jù)。下拉ADDR1和ADDR0將配置MAX78615+LMU,SSI ID為1??梢园l(fā)送以下數(shù)據(jù)包以選擇設(shè)備:
表 2.SSI 選擇目標(biāo)數(shù)據(jù)包
字節(jié)號 | 數(shù)據(jù) | 描述 |
---|---|---|
1 | 0xAA | 標(biāo)頭字節(jié) |
2 | 0x04 | 字節(jié)計數(shù) |
3 | 0xC1 | 選擇 SSI ID 目標(biāo)“1” |
4 | 0x91 | 校驗和 |
校驗和的計算方法是將前三個字節(jié)相加,并取總和的最低字節(jié)的兩個補碼。如果配置正確,MAX78615+LMU將以單字節(jié)響應(yīng)0xAD響應(yīng),這是無數(shù)據(jù)的確認(rèn)。圖 2 顯示了事務(wù)的邏輯分析器捕獲。
圖2.SSI 選擇目標(biāo)邏輯波形。
更改 SSI ID
SSI ID 可以在固件和硬件中配置。DEVADDR 寄存器可以通過任何串行接口寫入 — SPI、I2C 或 UART。要通過UART寫入寄存器的內(nèi)容,應(yīng)發(fā)出“設(shè)置讀/寫地址”命令,然后首先發(fā)送兩個表示寄存器字節(jié)地址的LSB。接下來是“寫入 3 個字節(jié)”命令,后跟首先發(fā)送 LSB 的三個數(shù)據(jù)字節(jié)。只有 DEVADDR 的最低字節(jié)用于確定 SSI ID;上面的兩個字節(jié)未使用??梢园l(fā)送以下數(shù)據(jù)包以將 DEVADDR 寄存器設(shè)置為 1。MAX78615+LMU應(yīng)響應(yīng)“0xAD”——無需數(shù)據(jù)即可確認(rèn)。
表 3.SSI DEVADDR 寫入數(shù)據(jù)包示例
字節(jié)號 | 數(shù)據(jù) | 描述 |
---|---|---|
1 | 0xAA | 標(biāo)頭字節(jié) |
2 | 0x0A | 字節(jié)計數(shù) |
3 | 0xA3 | 設(shè)置讀/寫地址 [15:0] |
4 | 0x69 | DEVADDR 寄存器地址 [7:0] |
5 | 0x00 | DEVADDR 寄存器地址 [15:8] |
6 | 0xD3 | 寫入 3 字節(jié)命令 |
7 | 0x01 | 數(shù)據(jù)字節(jié)低 |
8 | 0x00 | 數(shù)據(jù)字節(jié)中 |
9 | 0x00 | 數(shù)據(jù)字節(jié)高 |
10 | 0x6C | 校驗和 |
最初,DEVADDR 寄存器的新內(nèi)容不會保存到閃存中。要將設(shè)備地址存儲在片上閃存中,必須專門調(diào)用閃存訪問命令。否則,器件將在下一次上電時將先前存儲的值加載到寄存器中。位于字地址 0 的 COMMAND 寄存器可用于啟動校準(zhǔn)、執(zhí)行軟件復(fù)位或?qū)⒓拇嫫鲾?shù)據(jù)存儲到閃存中。要訪問閃存,請將0xACC2寫入 COMMAND 寄存器的上部字節(jié)??梢园l(fā)送以下數(shù)據(jù)包以將寄存器內(nèi)容存儲到閃存:
表 4.SSI 閃存訪問命令數(shù)據(jù)包示例
字節(jié)號 | 數(shù)據(jù) | 描述 |
---|---|---|
1 | 0xAA | 標(biāo)頭字節(jié) |
2 | 0x0A | 字節(jié)計數(shù) |
3 | 0xA3 | 設(shè)置讀/寫地址 [15:0] |
4 | 0x00 | 命令寄存器地址 [7:0] |
5 | 0x00 | 命令寄存器地址 [15:8] |
6 | 0xD3 | 寫入 3 字節(jié)命令 |
7 | 0x00 | 數(shù)據(jù)字節(jié)低 |
8 | 0xC2 | 數(shù)據(jù)字節(jié)中 |
9 | 0xAC | 數(shù)據(jù)字節(jié)高 |
10 | 0x68 | 校驗和 |
執(zhí)行此步驟后,寄存器內(nèi)容將在下次上電時加載新的閃存內(nèi)容。
區(qū)分 DEVADDR、設(shè)備地址和 SSI ID
由于使用的實現(xiàn)和命名約定,應(yīng)在 DEVADDR、設(shè)備地址和 SSI ID 之間進(jìn)行一些澄清。 DEVADDR 是存儲用戶可編程數(shù)據(jù)以設(shè)置設(shè)備地址的寄存器的名稱。然而,實際的器件地址是DEVADDR的下六位與器件上電或復(fù)位時ADDR1和ADDR0引腳狀態(tài)的組合。DEVADDR[5:0] 位對應(yīng)于設(shè)備地址的前六位,ADDR1 分配給位 1,ADDR0 分配給位 0。設(shè)置設(shè)備地址后,SSI ID 只是設(shè)備地址 + 1。在上面的示例中,如果 DEVADDR[5:0] = 1 且 ADDR1 = ADDR0 = 0,則上電或復(fù)位后的新設(shè)備地址將為 4,這將使上例中的 SSI ID 值為 5。
總結(jié)
MAXREFDES14#隔離式電能測量子系統(tǒng)參考設(shè)計中的MAX78615+LMU支持SPI、I2C 和 UART 接口。參考設(shè)計默認(rèn)配置了SPI接口。通過在上電時改變硬件引腳的邏輯狀態(tài),可以使能MAX78615+LMU上的UART接口。一旦激活,SSI 協(xié)議就會通過 UART 實現(xiàn)通信。通過硬件和固件設(shè)置唯一地址,可以并行連接多個設(shè)備。
審核編輯:郭婷
-
處理器
+關(guān)注
關(guān)注
68文章
19102瀏覽量
228819 -
寄存器
+關(guān)注
關(guān)注
31文章
5295瀏覽量
119823 -
uart
+關(guān)注
關(guān)注
22文章
1219瀏覽量
101121
發(fā)布評論請先 登錄
相關(guān)推薦
評論