DM9000時序設置

来源:http://www.cnblogs.com/chd-zhangbo/archive/2016/01/28/5166012.html
-Advertisement-
Play Games

想瞭解一下DM9000的移植修改原理,所以分析了一下時序圖和引腳連接 首先看一下DM9000的引腳和MINI2440的引腳連接 DM9000 MINI2440 功能描述 SD0 DATA0 數據信號 | | SD15 DATA15 數據信號 CMD ADDR2 識別為地址還是數據 INT EINT7


 

想瞭解一下DM9000的移植修改原理,所以分析了一下時序圖和引腳連接

 

首先看一下DM9000的引腳和MINI2440的引腳連接

 

DM9000  MINI2440 功能描述

 

SD0   DATA0  數據信號

 

|           |

 

SD15  DATA15  數據信號

 

CMD  ADDR2  識別為地址還是數據

 

INT   EINT7  中斷

 

IOR#   nOE   讀命令使能

 

IOW#  nWE   寫命令使能

 

AEN   nGCS4  片選使能

 

可以看出連接了16條數據線,1條地址線,而這唯一的一條地址線用於判斷數據線傳輸的是地址還是數據,所以這16條數據線為數據和地址復用

 

而片選信號使用的BANK4,則訪問0x2000 0000 – 0x27FF FFFF這個範圍的地址時會激活片選使能信號nGCS4

 

而在MINI2440提供的內核中,DM9000的地址IO地址為0x2000 0000,數據IO為0x2000 0004

 

則向地址IO寫數據的時候不會激活ADDR2,所以向DM9000傳送的數據為地址,而向數據IO寫數據的時候會激活ADDR2,所以向DM9000傳送的數據為數據

 

現在看看DM9000和S3C2440的時序信號

 

DM9000的寫時序

   

IO16,IO32這兩個引腳在MINI2440並沒有連接,所以不看這兩個引腳的時序

 

呢麽整理如下:

   

還有就是寫命令使能結束後到下一個寫命令使能需要最少84ns的間隔時間,為T6

 

然後是S3C2440的寫時序,由於DM9000是連接在BANK4上的,而BANK的寫時序如下

   

由於DM9000在MINI2440上只需要片選使能,寫命令使能和數據信號,所以我們不看ADDR和nBE信號,呢麽整理如下

 

呢麽這些值為多少呢?~

 

來看看BANKCON4

   

這裡的值以時鐘為周期,而BANKCON是接在Memory Controller上的(參考S3C2440A數據手冊的表1-4),而Memory Controller使用的是Hclk匯流排時鐘信號(參考S3C2440A數據手冊的圖7-1,感謝kasim大大指點),根據S3C2440手冊,Hclk是由Fclk分頻來的,具體的分頻比每個板子的設置不一樣,所以這裡頻率的設定要自己根據板子的設置來分析,假設主頻為400MHz,然後 Fclk,Hclk,Pclk的分頻比為1:2:4,呢麽Hclk就是200MHz,呢麽每個時鐘周期就是5ns

 

開始和DM9000的時序圖進行對比,計算

 

Tcos對應T1,呢麽最少應該為5ns,也就是1個clock

 

Tacc對應T2,呢麽最少應該為22ns,呢麽我們這裡最少也要選6個clock,也就是30ns

 

Toch對應T5,在這裡無設置,不過根據字面意思,我認為Tcoh就是Toch,Toch最少應該為5ns,也就是1個clock

 

Tcah對應T4,由於之前已經有Toch了,呢麽這裡可以設置為0ns,也就是0個clock

 

在S3C2440中,一個寫命令使能結束到下一個寫命令使能開始的時間間隔為Toch + Tcah + Tacp + Tacs + Tcos

 

Tacs是地址信號之後片選信號的起始間隔,我們這裡先設為0ns,也就是0個clock

 

Toch + Tcah + Tacp + Tacs + Tcos應該 > 84

 

5 + 0 + Tacp + 0 + 5 > 84

 

Tacp > 74

 

但是Tacp的最大值為6個clock,也就是30ns,還少了44ns,大概9個clock

 

只要修改Toch Tcah Tacs和Tcos了,雖然我們給的都是最小值,但是為了信號穩定,可以放寬其範圍,

 

將Tcos和Toch設置為4個clock

 

將Tacs和Tcah設置為2個Clock

 

這樣總時間為 (4 + 2 + 6 + 2 +4)*5 = 90ns

 

最後DM9000 1個周期只能處理1個數據,所以PMC應該為normal(1data)

 

寫時序分析完了,現在來看看讀時序

 

DM9000的讀時序如下

   

呢麽整理如下:

   

讀命令使能結束後到下一個讀命令使能需要最少80ns的間隔時間,為T6

 

然後是S3C2440的讀時序,時序如下

   

整理如下:

   

Tcos對應T1,呢麽最少應該為5ns,也就是1個clock,這裡設置為和寫操作一樣的4個clock

 

Tacc對應T2,呢麽最少應該為22ns,這裡設置為和寫操作一樣的6個clock

 

Toch對應T5,呢麽最少應該為5ns,也就是1個clock,這裡設置為和寫操作一樣的4個clock

 

其它時間間隔先設置和寫操作一樣

 

Tcah為2個clock

 

Tacp為6個clock

 

Tacs為2個clock

 

PMC為normal(1data)

 

然後看看滿足讀命令使能結束後到下一個讀命令使能的時間間隔80ns不

 

還是Toch + Tcah + Tacp + Tacs + Tcos

 

(4 + 1 + 6 + 1 + 4) * 5 = 15 * 5 = 90ns,能符合條件

 

呢麽BANKCON4的設置如下

 

Tacs = 2個clock = 10

 

Tcos = 4個clock = 11

 

Tacc = 6個clock = 100

 

Tcoh = 4個clock = 11

 

Tcah = 2個clock = 10

 

Tacp = 6個clock = 11

 

PMC = normal(1data) = 00

 

也就是0x5CEC

 

再來看BWSCON,這個寄存器負責配置BANK的帶寬和等待狀態

 

我們接的是nGCS4,呢麽主要就看ST4,WS4和DW4這幾個欄位

 

DW4的描述為BANK4的帶寬,DM9000接了16條地址線,呢麽帶寬就是16,這裡選01

 

WS4的描述為是否為BANK4使用等待狀態,DM9000沒有接WAIT引腳,所以可以不管這個欄位

 

ST4的描述為是否為BANK4使用UB/LB(寫高/低位元組使能),DM9000沒有接nWBE[3:0]這4個引腳,所以也不管這個欄位


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • --時間:2016年1月27日--Author:zhenxing yu 查詢回收站 SELECT * FROM RECYCLEBIN; SELECT * FROM USER_RECYCLEBIN; --USER_RECYCLEBING與RECYCLEBIN是同義詞,欄位完全一樣 --開啟或關閉回收站
  • memcached是一個高性能的分散式記憶體緩存伺服器,memcached在Linux上可以通過yum命令安裝,這樣方便很多,在生產環境下建議用Linux系統,memcached使用libevent這個庫在Linux系統上才能發揮它的高性能。它的分散式其實在服務端是不具有分散式的特征的,是依靠客戶端的
  • 一,mysql命令行參數 Usage: mysql [OPTIONS] [database] //命令方式 -?, --help //顯示幫助信息並退出 -I, --help //顯示幫助信息並退出 --auto-rehash //自動補全功能,就像linux裡面,按Tab鍵出提示差不多,下麵有例子
  • B 樹 即二叉搜索樹: 1.所有非葉子結點至多擁有兩個兒子(Left和Right); 2.所有結點存儲一個關鍵字; 3.非葉子結點的左指針指向小於其關鍵字的子樹,右指針指向大於其關鍵字的子樹; 如: B樹的搜索,從根結點開始,如果查詢的關鍵字與結點的關鍵字相等,那麼就命中;否則,如果查詢關鍵字比結點
  • Windows Server 2012 (R2) 預設沒有安裝 .NET Framework 3.5,但可以通過線上安裝或指定備用源路徑方式。 之前在這個 在Win Server 2012中安裝.NET Framework 3.5的問題 中寫的方法是需要Windows Server的ISO鏡像介質的
  • 一.概述 上一篇arp請求使用的是鏈路層的原始套接字。icmp封裝在ip數據報裡面,所以icmp請求可以直接使用網路層的原始套接字,即socket()第一個參數是PF_INET。如下: 1 sockfd = socket(PF_INET, SOCK_RAW, IPPROTO_ICMP); icmp報
  • 如何通過命令向遠程伺服器上傳下載文件
  • S3C6410的中斷主要改進是. 增加中斷向量控制器,這樣在S3C2440里需要用軟體來跳轉的中斷處理機制,在S3C6410完全由硬體來跳轉。你只要把ISR地址是存在連續向量寄存器空間,而不是象S3C2440自行分配空間自行管理。 換句話說,在S3C2440下是由CPU觸發IRQ/FIQ異常,由異常
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...