2016-12-16 64 views
3

我們在批量生產定製ARM板中使用了一批新的DDR3 IC,它們在某些存儲器參數和最顯着的數據速率(1600 VS 1866 MT/s)方面與舊的不同。以編程方式區分DDR3

有趣的是舊的bootloader仍然可以在新主板上啓動,並且我們已經運行了72小時以上的內存測試並沒有錯誤,但是我們不確定不同的時序參數是否會產生任何影響從長遠來看。

那麼有沒有什麼辦法來以編程方式區分它們?或者,除了手動檢查DDR3部件號外,對不同的引導程序進行編程的最佳方式是什麼?

+0

運行1866與1600的定時運行很好。您的電路板佈局將具有與零件本身一樣的影響力。在大多數主機控制器上,您沒有太多時間來控制時序。我會在CAS之間保留CAS等。否則,你將會在不同的主板上產生微妙的軟件競爭條件。此外,EMF(Rf噪聲)在兩種可能違反FCC類型規定的電路板上會有所不同。一般來說,你必須處理它。一個NV存儲器的地方。如果你的CPU具有融合的內存,這是理想的。 HW BOM也可以改變GPIO的上拉/下拉。 –

+0

爲什麼不使用安全,較低的頻率。對於大多數平臺而言,10%不會顯着降低性能。基準你的關鍵部分(無論如何你必須這樣做),只有當你真的**有問題時才考慮這個問題。這樣你就不必維護兩個不同版本的固件。 – Olaf

回答

1

如果您的DDR3 DIMM模塊帶有SPD EEPROM,則可以通過I2C查詢EEPROM以獲取內存的時序參數。

但是您的電路板上可能只有原始DRAM芯片。我知道無法查詢DDR3 DRAM芯片的任何信息,例如零件編號或時序參數。

通常,DRAM參數被硬編碼到嵌入式ARM設備上的引導加載程序中。 SoC之間的完全不同。也許你可以使用像GPIO線那樣綁定不同值的東西來確定哪個版本板正在運行,然後根據該參數編程合適的DRAM參數?通常有幾條GPIO線非常易於讀取,並且可以放入引導加載程序配置DRAM之前運行的代碼。