日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

[Craftor原创]EZ-USB与FPGA的通信接口设计

發(fā)布時(shí)間:2025/3/13 编程问答 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [Craftor原创]EZ-USB与FPGA的通信接口设计 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

?

聲明:Craftor原創(chuàng),轉(zhuǎn)載請(qǐng)注明出處。

?

使用芯片:CY7C68013A(Cypress)與XC3S50AN(Xilinx)

?

一、原理圖

FPGA與EZ-USB通過(guò)異步FIFO方式連接,以下截圖來(lái)自于Cypress的手冊(cè)EZ-USB_TRM.pdf。

將圖9-19和9-22兩圖中的信號(hào)合并在一起,與FPGA連接即可。

本例子中使用了以下信號(hào): FIFOADR[7:0](只用了8位總線)、SLRD、SLOE、SLWR、FLAGA(配置成EP6 FULL)、FLAGB(配置成EP2 EMPTY)、PKTEND(常1)、SLCS#(常0)

?

二、FPGA讀寫SlaveFIFO時(shí)序

異步寫,在FULL不為0的時(shí)候,SLWR下降沿的時(shí)候?qū)懙臄?shù)據(jù)放到總線上,保持一個(gè)周期即可將數(shù)據(jù)寫入。

異步讀,在EMPTY不為0的時(shí)候,將SLOE和SLRD拉低,過(guò)半個(gè)周期讀總線上的數(shù)即可。

?

-->附件中有原理圖可以參考

?

三、FPGA代碼

工程結(jié)構(gòu)如下圖,在Xilinx ISE中。

1)usb_bmd.v為頂層測(cè)試文件,測(cè)試上行和下行的數(shù)據(jù)。

2)RX_FIFO為下行數(shù)據(jù)緩存FIFO,TX_FIFO為上行數(shù)據(jù)緩存FIFO。

本工程中直接例化了FPGA內(nèi)部的FIFO,可根據(jù)實(shí)際情況適當(dāng)加大或減小FIFO,最小深度不得低于512。

3)usb_trx為FPGA與CY7C68013A通信的核心模塊,包括:rx_engine.v下行接口,tx_engine上行接口,clk_div.v分頻模塊(控制FPGA讀寫SlaveFIFO的頻率,不高于48M)。

可以根據(jù)實(shí)際電路情況調(diào)高或降低分頻系數(shù),但不建議修改,源代碼中的分頻系數(shù)已經(jīng)為實(shí)測(cè)最佳情況,雙面板沒(méi)有做任何阻抗匹配的情況下,可以穩(wěn)定傳輸數(shù)據(jù)。如果PCB阻抗做的比較好,可又適當(dāng)調(diào)高試試。

4)S3an.ucf為管腳約束文件,可又根據(jù)自己的FPGA管腳進(jìn)行修改。

?

-->附件中有Verilog源代碼

?

二、固件程序,見(jiàn)附件CFR-FIFO-1.1.iic

通過(guò)CyConsole下載到外部的EEPROM中即可(在學(xué)習(xí)筆記[1]中有說(shuō)明如何下載)。

該固件中使用了異步SlaveFIFO模式,使用端點(diǎn)EP2和EP6,512B 大小,4倍緩沖。

-->該固件僅供學(xué)習(xí)使用,源代碼不公開(kāi),也不需要公開(kāi)。

?

三、測(cè)試

1)使用EZ-USB CyConsole,選擇Endpoint 6 IN,接收到的數(shù)為00~FF。

因?yàn)樵趗sb_bmd.v代碼中,不斷向TX_FIFO中寫入8位的cnt,從0開(kāi)始。如下圖

2)使用CyBulkLoop程序,進(jìn)行閉環(huán)測(cè)試。數(shù)據(jù)包長(zhǎng)度為512,從0開(kāi)始累加,測(cè)試結(jié)果如下圖。

細(xì)心的讀者可以發(fā)現(xiàn),實(shí)際在usb_bmd代碼中做了手腳,上傳的數(shù)據(jù)并不是真正下發(fā)的數(shù)據(jù),而是自己上傳的00~FF。

因?yàn)槿绻麑⒋a中的RX和TX進(jìn)行閉環(huán),是下行一個(gè)數(shù)據(jù)(8b)立即上傳一個(gè)數(shù)據(jù)的。而USB的SlaveFIFO是512B的,每次上行數(shù)據(jù)最小是512B,而且必須是512B的整數(shù)倍。在實(shí)際應(yīng)用中需要注意。

附件:

http://dl.dbank.com/c04h9fkkbu

轉(zhuǎn)載于:https://www.cnblogs.com/craftor/archive/2011/11/05/2236870.html

總結(jié)

以上是生活随笔為你收集整理的[Craftor原创]EZ-USB与FPGA的通信接口设计的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。