恩智浦 DDR 記憶體 SPD IC 客戶使用問題案例分析分享

關鍵字 :I2C恩智浦NXPTemp SensorSPD

前言:

 

恩智浦在30多年前發明了I2C匯流排,透過簡單但功能強大的串列結構取代了複雜的平行介面,徹底改變了晶片與晶片之間的通訊。

它採用簡單的雙線格式,每次傳送一位數據,執行晶片間的尋址、選擇、控制和數據傳輸,速度可達100MHz(標準模式)、400KHz(快速模式)。

1MHz(快速模式+)、3.4MHz(高速模式)或5MHz(超快速模式)等應用。

 

在 I2C 總線的應用衍生中,應用於 DDR 記憶體模組的溫度感知內建 SPD 功能 IC SE97B 的確是一種非常特別的應用。

因為其特性為複合IC,除了需要隨時監測DDR記憶體模組的溫度狀況外,還內建了256字節的EEPROM供客戶存放該DDR記憶體模組的廠商資訊。

所以 SE97B 這顆 IC 在 I2C 接口共提供了三種地址:

溫度感測器

b. EEPROM

c. EEProm 軟體保護指令

 

最近有個客戶發現 SE97B EEPROM 無法寫入的問題,希望我們協助分析。後來在解決客戶疑問後,覺得這個問題挺有趣的,所以在這裡分享給大家分析一下。

客戶表示這顆有問題的 SE97B 大約在生產線上反覆讀寫 EEProm 約 600 次後,就發現 EEProm 的某些地址無法再次寫入。

但是規格書中載明 EEPROM 可循環寫入清除共 10 萬次。

拿到該 IC 後,使用工具進行了一些 EEPROM 的寫入和讀取測試。

時間模組讀/寫主/從功能比特率地址長度資料
06:20.1I2C      I2C比特率設定為:400
06:20.1SPI      SPI比特率設定為:4000
06:24.2I2C      I2C上拉電阻已禁用
07:39.7I2CRegWM---4000x5011
07:39.7I2CRegRM---4000x5010
07:47.6I2CWM---4000x50201 FF
07:49.3I2CRegWM---4000x5011
07:49.3I2CRegRM---4000x5010
08:06.9I2CRegWM---4000x50155
08:06.9I2CRegRM---4000x5016E
08:09.0I2CWM---4000x50255 FF
08:11.4I2CRegWM---4000x50155
08:11.4I2CRegRM---4000x5016E
08:28.2I2CRegWM---4000x501FF
08:28.2I2CRegRM---4000x501FF
08:34.8I2CWM---4000x502FF 00
08:36.4I2CRegWM---4000x501FF
08:36.4I2CRegRM---4000x5010
09:01.4I2CRegWM---4000x501
09:01.4I2CRegRM---4000x501FF
09:04.6I2CWM---4000x502FE 00
09:06.3I2CRegWM---4000x501
09:06.3I2CRegRM---4000x5010
09:12.6I2CWM---4000x502FE 55
09:13.8I2CRegWM---4000x501
09:13.8I2CRegRM---4000x50155
09:47.2I2CRegWM---4000x50180
09:47.2I2CRegRM---4000x501FF
09:50.6I2CWM---4000x50280 55
09:52.6I2CRegWM---4000x50180
09:52.6I2CRegRM---4000x50155
10:10.4I2CRegWM---4000x5017樓
10:10.4I2CRegRM---4000x501FF
10:15.4I2CWM---4000x5027F 55
10:17.0I2CRegWM---4000x5017F
10:17.0I2CRegRM---4000x501FF

解析內容:

  1. 對 01h 先讀取,值為 0,然後對 01h 寫入 FF,讀回為 0,證明 01h 無法寫入。
  2. 對 55h 先讀取,值為 6F,然後對 55h 寫入 FF,讀回為 6F,證明 55h 無法寫入。
  3. 對 FFh 先讀取,值為 FF,然後對 FFh 寫入 00,讀回為 0,此時發現 FFh 可正常寫入。
  4. 後續又對 FEh 及 80h 也是先讀後寫,這兩個位置也都可以寫入。
  5. 最後先讀取 7Fh,值為 FF,此時對 7Fh 寫入 55,讀回值仍為 FF,證明 7Fh 無法寫入。

由以上得知此顆 SE97B 0h~7Fh 無法寫入,而從 80h ~ FFh 仍可正常讀寫。

 

從規格書上的說明得知,前128字節可以由軟體保護,符合客戶這顆IC的驗證狀態。

 

由規格書得知保護方式有三種:PWP(永久寫入保護)、RWP(可逆寫保護)、CRWP(清除可逆寫入保護)

但由於除了 PWP 以外,RWP 和 CRWP 都需要 A0 Pin 接 7~10V 電壓配合,這較不符合客戶硬體環境可能發生的狀態。

所以就朝著 PWP 方向再進行澄清。

 

 

從規格書中確認在軟體保護狀態下,PWP下30h SE97B不會回應。

 

經過驗證,這顆 SE97B 果然沒有回應 ACK。

最後向客戶解釋,由於 PWP 是不可逆的,

客戶只能在軟體上避免符合以下格式 30h -> XXh -> XXh 這樣連續 3 種 Byte 的寫法,以避免 IC 被寫入 PWP 永久寫入保護。

另外,SPD 在 DDR 記憶體模組中本來就是用於廠商資訊記錄用途,在完成資料寫入後進行 PWP 也是正常程序,以避免以後資料被改寫。

或許執行 PWP 才是這顆 IC 在正常應用中應該執行的程式。

 

SE97B 規格書:https://www.nxp.com/docs/en/data-sheet/SE97B.pdf

★博文內容均由個人提供,與平台無關,如有違法或侵權,請與網站管理員聯繫。

★文明上網,請理性發言。內容一周內被舉報5次,發文人進小黑屋喔~

參考來源

:

評論