女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

基于FPGA的cy7c68013a雙向通信教程

e9Zb_gh_8734352 ? 來源:chengfengwenalan ? 作者:chengfengwenalan ? 2023-03-09 09:40 ? 次閱讀

01基于FPGA的cy7c68013a雙向通信實驗

cy68013

教程是基于FPGA的cy7c68013a的USB雙向通信實驗,本教程主要內容:

1.cy7c68013a的固件編寫,以及生成iic固件和下載固件。

2.cy7c68013a的slave模式,以及他的讀寫時序

3.cy7c68013a的FPGA的上板測試,包括發送和接收兩部分

02開發過程

cy68013

01驅動

在進行試驗前要先安裝好Cypress提供的usb驅動,插上usb后,電腦就會檢測到未識別的設備,這時打開設備管理器,右鍵未識別的usb,然后手動選擇驅動。

在驅動會在本教程最后的鏈接中給出,如圖所示:

a07b7700-bdb5-11ed-bfe3-dac502259ad0.pnga0968bbc-bdb5-11ed-bfe3-dac502259ad0.png

02固件

固件是在CY68013的FPGA內部有一個MCU,需要給MCU固化程序,固件的編寫主要是確定IN和OUT端點,以及一些標志信號

a0ca9b28-bdb5-11ed-bfe3-dac502259ad0.png

固件只需要改這些參數即可,一般情況下不需要修改,很容易看出本教程中設置的時鐘是48MHz,然后設置EP2為OUT端點,512字節,4緩沖,bulk (注意OUT,IN都是相對PC來說的,OUT表示PC--->cy7c68013a,IN則相反)

EP6為IN端點,512字節,4緩沖,bulk

flag_a 為EP2的EF,也就是空標志信號,為低時表示空,也就是沒有數據過來,為高則表示有數據來了

flag_d 為EP6的FF,也就是滿標志信號,為低時表示寫滿了,這時再去寫就是無效寫了,為高則表示沒有寫滿,可以繼續寫。

a0e72a9a-bdb5-11ed-bfe3-dac502259ad0.png

教程提供的固件所在文件夾:固件源碼什么的都在Firmware文件中

a0fd7138-bdb5-11ed-bfe3-dac502259ad0.png

03時序

Slave FIFO的時序如圖所示。

a1231fb4-bdb5-11ed-bfe3-dac502259ad0.png

有圖很容易看出,再寫之前要先把FIFOADR確認好,這個決定了你寫的對象是誰

a135a710-bdb5-11ed-bfe3-dac502259ad0.png

slave讀操作

a1472b34-bdb5-11ed-bfe3-dac502259ad0.png

然后在該fifo非滿時(相應的FF標志位高),才可以進行寫操作,這個時序很簡單,就是拉低slwr信號就可以了,注意FD要與slwr對齊。

注意:寫操作時,slwr與FD的數據都是FPGA來控制的,為了讓cy7c68013a更好的采樣,ifclk與clk反向之后再發送給cy7c68013a.

讀時序跟寫也是類似的,再讀之前先確定FIFOADR,然后拉低sloe,這時FD總線就會出現第一個數據,然后檢測到slrd為低時,FD就會顯示下一個數據。

04FPGA與cy7c68013a通信

前面主要是準備工作,現在正是進入測試:

項目工程如下:

a16fadca-bdb5-11ed-bfe3-dac502259ad0.png

a186aff2-bdb5-11ed-bfe3-dac502259ad0.png

具體代碼都已經有了詳細注釋了,這里就不詳細解釋。

本教程所用的調試工具是官方的工具

a1a73164-bdb5-11ed-bfe3-dac502259ad0.png

03調試

Deep learnning

下面給出寫的signal tap 的調試截圖

寫是一次寫512個字節數據,0-255,注意usb的fifo是一次發送16位的,也就是2個字節。先發送低字節,然后再發送高字節,這我直接把低字節給賦值為0了

a1c3ec78-bdb5-11ed-bfe3-dac502259ad0.png

a1d8294a-bdb5-11ed-bfe3-dac502259ad0.png

a1eb6a96-bdb5-11ed-bfe3-dac502259ad0.png

前面局部放大圖

a202dc6c-bdb5-11ed-bfe3-dac502259ad0.png

后面局部放大圖,注意只有在flag_d為高時,slwr為低才是有效寫,否則就是無效寫,因為當flag_d為低時,表示寫滿了,這時fifo就會丟棄后面寫的數據。

a2205e90-bdb5-11ed-bfe3-dac502259ad0.png

PC端接收到的數據要2個字節一起讀,因為usb是16位發送的,可以看出接收到的數據的確是0000-00FF。

注意:pc接收數據按照下圖標的編碼順序執行

a2331e86-bdb5-11ed-bfe3-dac502259ad0.png

a2524220-bdb5-11ed-bfe3-dac502259ad0.png

a26cf6e2-bdb5-11ed-bfe3-dac502259ad0.png

pc發送數據按1-->2-->3的步驟,可以看出我們發送了12 34 56 78 這4個字節

a280d608-bdb5-11ed-bfe3-dac502259ad0.pnga29715bc-bdb5-11ed-bfe3-dac502259ad0.png

注意這里我是設置了cmd_flag標志信號的,只有cmd_flag為高時的cmd_data的數據才是有效的,也就是pc發送過來的數據

a2a8ace6-bdb5-11ed-bfe3-dac502259ad0.png

alter 的fifo ip 是可以讀寫位寬不一致的,具體看下面的圖。

a2c8d782-bdb5-11ed-bfe3-dac502259ad0.png

由上圖可以看出這個和usb是一樣的格式,都是先發低字節,然后再發高字節。或者說先接收低字節,然后再接收高字節。

至此本教程就全部介紹完了,教程只挑了最關鍵的部分講述USB的開發,但是包括了固件,驅動和FPGA程序,一個完整的USB和FPGA開發的工程完全可以進行在此基礎上進行二次開發。

審核編輯:湯梓紅

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • FPGA
    +關注

    關注

    1643

    文章

    21954

    瀏覽量

    613980
  • usb
    usb
    +關注

    關注

    60

    文章

    8136

    瀏覽量

    270744
  • Cypress
    +關注

    關注

    11

    文章

    137

    瀏覽量

    82897
  • CY7C68013A
    +關注

    關注

    2

    文章

    20

    瀏覽量

    21863
  • 編寫
    +關注

    關注

    0

    文章

    29

    瀏覽量

    8583
  • 雙向通信
    +關注

    關注

    0

    文章

    13

    瀏覽量

    8737

原文標題:基于FPGA的cy7c68013a雙向通信教程

文章出處:【微信號:gh_873435264fd4,微信公眾號:FPGA技術聯盟】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦
    熱點推薦

    CY7C68013A客戶配置成slavefifo模式,FPGA發送數據到PC則會丟包或者收到的數據對不上,什么原因?

    我們這邊有個客戶使用CY7C68013A,客戶配置成slavefifo模式,PC端發送數據到FPGA時數據正常,FPGA發送數據到PC則會丟包或者收到的數據對不上。能否幫忙看下客戶的配置是否正確。
    發表于 05-30 08:21

    下位機CY7C68013A發送數據,上位機C#讀取數據,510字節一幀,會丟幀或者幀內錯位是怎么回事?

    下位機CY7C68013A發送數據,上位機C#在1個while循環內不斷地讀取數據,510字節1幀,1秒333幀、1秒667幀、1秒1333幀,會整幀丟幀或者幀內丟部分字節導致錯位(幀頭不在開始的位置),這個怎么回事?
    發表于 05-30 07:43

    請問CY7C68013A可以使用8bit FIFO數據接口嗎?

    因為FPGA管腳不太夠,想問下CY7C68013A-56PVXI可以使用8bit FIFO數據接口嗎?可以的話,FPGA連接的是低8bit(FD0~FD7) 還是高8bit(FD8~F
    發表于 05-30 07:20

    USB芯片CY7C68013AFPGA進行通信,從EP6讀取512字節是正常的,但是讀取2個字節失敗,為什么?

    大家好,USB芯片CY7C68013AFPGA進行通信,從EP6讀取512字節是正常的,但是讀取2個字節失敗(fpga端一直在發)Bulk IN failed,謝謝
    發表于 05-30 07:12

    通過control center上位機讀取USB芯片CY7C68013A數據失敗的原因?怎么解決?

    大家好,通過control center上位機讀取CY7C68013A芯片的數據,連續讀取512個字節能夠成功,讀取2個字節失敗,錯誤碼是997,一開始讀取2個字節也是失敗的,先讀取512個字節再讀取2個字節也是失敗的。
    發表于 05-30 06:43

    MCU是否可以使用普通IO口和數據總線控制cy7c68013a,用異步slavefifo模式增加一個與PC通信的USB口?

    cy7c68013a的固件已經配置成異步slave模式,是否有MCU用IO口控制cy7c68013a通過數據總線來實現與PC的USB口通信,這樣應用的示例程序或教程? 目的就是在現有的MCU系統中增加一個USB
    發表于 05-30 06:32

    怎樣配置CY7C68013A進入test packet mode 以可以進行眼圖一致性測試?怎樣配置相關寄存器?

    請教下大家怎樣配置CY7C68013A進入test packet mode 以可以進行眼圖一致性測試?怎樣配置相關寄存器?
    發表于 05-29 06:21

    如何使用EZ-USB FX2LP CY7C68013A開發大容量存儲設備?

    我應該如何使用 EZ-USB FX2LP CY7C68013A 開發大容量存儲設備,我找不到允許在 FX2LP 上開發大容量存儲設備的文檔,請幫幫我,謝謝
    發表于 05-29 06:15

    請問CY7C68013A高速模式如何配置?

    請問CY7C68013A高速模式如何配置?手冊里只有提到了中斷和ram
    發表于 05-28 07:14

    CY7C68013A-56LFXI 的替代型號是什么?

    型號:CY7C68013A-56LFXI 的替代型號是什么?
    發表于 05-22 07:51

    如何使用/編程CY7C68013A

    CY7C68013A USB 微控制器的新手。 我打算在我的設計中使用這些 IC,但是,我不知道當 PCB 通過 USB 連接到筆記本電腦時,需要什么來訪問該芯片或對其進行編程。 所以, 1. 我的筆記本電腦需要安裝哪些軟件或驅動程序才能使用 CY7C68013A 芯片?
    發表于 05-20 06:41

    CY7C68013A無PID和VID,如何制作PDF?

    我用 CY7C68013A MCU 設計了一個 PCB,所以這意味著我不是程序員之類的。 但是我嘗試上傳一些代碼,但沒有 PID 和 VID。 我找到了一些關于如何制作的 PDF,但那些對我來說很難。 有人可以幫我嗎?
    發表于 05-13 07:50

    如何通過上位機控制CYUSB3014的指定管腳實現類似功能?

    我們原來使用CY7C68013A實現了上位機與FPGA之間雙向通信,通過控制端點可以實現對諸如CY7C68013A上的PA0等管腳進行控制以便FPG
    發表于 05-13 06:24

    CY7C68013A的windows 10驅動現在支持嗎?如何獲取?

    CY7C68013A 的windows 10 驅動現在支持嗎?如何獲取?
    發表于 05-12 07:56

    使用wavevison5軟件時,FPGA中的程序是在線加載的,CY7C68013A中的固件也是在線加載的嗎?

    指示燈都沒有亮,但是OVER_RANGE指示燈亮了,請問這是什么原因呢? 再請教一個問題,使用wavevison5軟件時,FPGA中的程序是在線加載的,CY7C68013A中的固件也是在線加載的嗎?
    發表于 12-27 08:11