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