USB2.0學習筆記連載(十八):keil實現寄存器的配置及相關函數講解(二)

来源:http://www.cnblogs.com/raymon-tec/archive/2016/04/08/5368797.html
-Advertisement-
Play Games

其實之前也有提及過,Cypress公司提供的官方文件和應用手冊真的可以解決很多問題。做的也很人性化,操作也及其簡單,幾乎只要在 TD_int()裡面配置一些常用的參數即可,其他都可以不用操作。 作為一個常用查詢手冊吧!!!! 《EZ-USB一些重要寄存器的配置》博客中已經提及過相關寄存器的配置,那麼 ...


  其實之前也有提及過,Cypress公司提供的官方文件和應用手冊真的可以解決很多問題。做的也很人性化,操作也及其簡單,幾乎只要在 TD_int()裡面配置一些常用的參數即可,其他都可以不用操作。

  作為一個常用查詢手冊吧!!!!

《EZ-USB一些重要寄存器的配置》博客中已經提及過相關寄存器的配置,那麼對於slave fifo模式需要配置的寄存器如下所示:

image   此外還有兩個需要配置一下,如下:

REVCTL

CPUCS

image

image

  接下來對上述寄存器的配置,都要根據上述原理圖來進行,一定要配置時查看此原理圖,很有幫助。當然更多的配置信息請參考之前的博客《EZ-USB一些重要寄存器的配置》,這裡講解為什麼這麼配置。

  1.CPUCS(TRM手冊page338)

image   針對CY原理圖,可以有12MHz,24Mhz,以及48MHz可以進行配置,CY的工作輸入時鐘是24MHz ,經過內部的PLL電路然後進行倍頻和分頻。

  參考AN61453,設置為48MHz,當然也可以設置為其他頻率,這個主要影響8051內核工作頻率。

  設置 CPUCS = 0x12

  2.IFCONFIG

image   若要將CY配置成slave fifo模式,那麼需要 IFCONFIG[1:0]為 11.同步模式下IFCONFIG.3為1.

image

image

image

image

  b7選擇時鐘源,為0時,設置為外部時鐘,設為1時,內部時鐘(30~48MHz) ;此外若是使用外部ifclk,在固件設置b7等於0之前,ifclk必須達到。

  b6選擇30M還是48M,1為48MHz,0為30MHz。

  b5是設置ifclk引腳的輸出使能,0為三態,1為驅動。(當使用外部時鐘時,此位必須設置為1)

  b4設置時鐘是否反向,0為不反向,1為反向。

  b3設定工作在同步狀態還是非同步狀態。0為同步,1為非同步。

  b2是設置port E,筆者使用的是56pin,沒有port E埠。

  b1:0設為11,為slave模式

  IFCONFIG =0x43; //選擇為外部時鐘,且時鐘頻率為48MHz,且為同步slaveFIFO模式,輸入IFCLK(5~48MHz)(0000_0011)。

  3.FD控制

  可以配置為8bit或者16bit,若是配置為8bit,port D可以作為普通的IO,但是若是配置為16bit,則port D就不能作為普通的IO使用,上電覆位預設是16bit。

image

image   4.flagABCD

  fifo 的flag工作在兩種模式:indexed 和 fixed模式,通過pinflagADCD來控制。

image

image   5.sloe,slrd,slwr,pktend,fifoadr[1:0]

image

image   註意上述的描述,在同步狀態下,是伴隨ifclk的上升沿改變而改變,在非同步狀態下,是伴隨 slwr或者slrd的變化而變化。

image

  註意下麵關於pktend的說法,這個是主機箱發送一個短的數據包時,使用此功能。PKTEND預設是低電平,且PKTEND可以在任何時候設置,但是需在SLWR或者SLRD之後執行。

 

 

 

 

 

 

 

 

 

 

 

 

image

image    6.revctl

image   7.EPxCFG

image image    b7設定為1,激活埠,設置為0,不激活埠;

   b6控制方向,0是輸出,1是輸入;

   b5-4模式選擇:

image   b3緩衝區大小,0是512, 1是1024bytes;其中4和8只能是512,  2和6可選。

   b1-0是幾個緩衝區:

  image  7.1 EPXFIFOCFG

image  此參數,若是對於out,設置為0x10,若是對於in,設置為0x08;設為自動模式。

  7.2 EPXAUTOINLENH:L

  註意,這個和上述的EPXCFG,假定端點2緩衝區設置為512位元組,4倍緩衝,儘管這一端點占有了2048位元組RAM,但CPU只認識“激活的”512位元組緩衝區。這可以從寄存器長度看得出來,比如,EP2BCH:L是11位,可對1024位元組的最大緩衝區長度進行計數,EP4BCH:L是10位,可對512自己的最大緩衝區長度進行計數。

image

image

8.CPU是否獲取輸入輸出包

  當設定為AUTOIN = 1時,如下圖所示,就不需要CPU參與,直接寫給host。

image image image

image image image  9.中斷

image   10.埠可選功能 portXFG

  對於下麵埠,如果使用SLCS功能,則需要將b6設置為1.

image

image   11.I2C寄存器配置

image   12.自動指針功能

image 13.OEABC使能

  0~7對應 A,B,C的7個埠image image   14.pinflagABCD

  通過下麵的幾個編程,可以實現對端點那個是空,哪個是滿,PF空,FF滿。

image image   15.FIFO reset

image   16.FIFOPINPOLAR

wpsDD57.tmp

wps1800.tmp

  在硬體設計中,將SLRD直接拉高處理;PKEND也直接拉高,不做包處理;

  FIFOPINPOLAR = 0x04; //BIT[5:0] = {PKTEND, SLOE, SLRD, SLWR, EMPTY, FULL}

   //Set SLWR High Valid; PKTEND,SLOE,SLRD EMPTY, FULL Low Active

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  17.INPKTEND/OUTPKTEND

  image image image   18.portACFG

image image   19.USBCS

image image


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

-Advertisement-
Play Games
更多相關文章
  • 今天給大家說說安卓中類似這樣的引導頁面怎麼實現,我自己簡單的添加了個跳過按鈕方便跳轉到主界面,圖片跟小點圖片資源大家自己去網上找 下麵這個是我定義的一個activity_guide.xml文件 ...
  • 安裝環境: SqlServer版本:Sql Server 2008 (安裝包您應該已有準備) 以下開始安裝,多圖,基本軟體操作不做太多說明,註意查看圖片 1、打開軟體 2、選擇安裝內容 3、安裝程式自動檢測,需要重啟 4、重啟後,重新檢測 5、選擇安裝版本或通過密鑰自動識別版本 6、下一步 7、安裝 ...
  • 回到目錄 對於多WEB的環境現在已經是必須的了,很難想像一臺WEB伺服器面對百萬併發的響應,所以,我們需要多台WEB伺服器集群合作,來緩解這種高併發,高吞吐的場景,而對於多WEB的場景又會有個問題出現,即session存儲的問題,如一個用戶登陸後,把一個狀態信息存儲到當前WEB伺服器的session ...
  • Doc ID 461911.1 Patch 6602742 Applies to: Oracle Database - Enterprise Edition - Version 10.2.0.3 and later Information in this document applies to an ...
  • 大家都知道 Windows 有休眠模式,其實 Ubuntu 也有。休眠模式簡單來說,就是可以在用戶暫時離開時將記憶體中的所有內容都寫入到硬碟當中,當用戶下次開機時,就可以直接啟動到上次保存的時間狀態。 打個比方,你正用 LibreOffice 在處理一個文檔,同時打開了很多參考網頁和其它文件,下班時間 ...
  • .NET CORE的官方(http://dotnet.github.io/getting-started/)只提供了Windows, Ubuntu14.04, 及Docker(也是基於Ubuntu14.04做的Image). 但鑒於微軟已經把RedHat做為參考平臺而且用Ubuntu14.04做Se ...
  • SCP服務實現Linux交互 在實際工作中,我們可以使用scp伺服器進行Linux與Linux之間的信息交互。 基本指令: scp 本地文件 遠程文件 scp 遠程文件 本地文件 scp –r 文件夾 文件夾 scp –P 埠 文件 文件 例1:上傳文件到其... ...
  • tcp簡單實驗 server.c #include /* See NOTES */ #include #include #include #include #include #include #include #include /*socket * bind * listen * accept * ... ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...