星期四, 8月 28, 2008

DDR2 BUS Impedance

一、透過Xmodem 上傳檔案開機模式

  Soc 內帶有 16k sram, xmodem Loader程序,在上電時,透過Uart 提示 “CCCC... ”等待PC端使用者以Xmodem通訊方式上傳Bootloader 檔案,然後將上傳後的Bootloader 放到 TCM 上執行,然後Bootloader做下列的動作。

  • DDR Ram Init

  • Uart Init

  • SOC register Init

  • Flash Init

  • Uart Init

  • 啟動Bootloader內的Xmodem等待使用者載入檔案。

    • Xmodem booloaderCode內約350行,Object670 byte

二、讀寫Ram 錯誤( Ram 32M )

  寫一個測試MemoryBootloader,對每個位置的記憶體寫入0xff00ff00再將其讀回比對,發現有些位置的資料是錯誤的,規則如下。

  • Memory Address 5M 幾乎都是好的。

  • 後面 0xAAAA AAAAB ( A = 任意, B = 0 or 4 ),會隨機發生錯誤,並不是每個4結尾的Address 都會錯。

經修改了幾次bootloader、跟Hardware後,發現原因發生在 SOC DDR 之間的阻抗匹配問題導致。

三、Questions
  1. SOC xmodem 如何實作,內嵌ROM or NOR Flash,由SOC啟動?亦或是Hardware可以達到?

    1. Q:原則上猜測應該是Nor。
  2. SOC的某隻腳位是用來調整組抗匹配,這隻腳再我們寫 Pin Define同樣有使用?因為這看起來是調整阻抗,數位電路設計時也須考量這個問題?還是這是在Transistor Level 所考量的層次?

  3. 經詢問Hardware 人員,通常SOC內有Register可調整Pin Fanout,這問題同上,是不是在Gate Level 之上不需要考量這個問題,只在Transistor Level以後才兜那塊電路?

沒有留言: