99精品伊人亚洲|最近国产中文炮友|九草在线视频支援|AV网站大全最新|美女黄片免费观看|国产精品资源视频|精彩无码视频一区|91大神在线后入|伊人终合在线播放|久草综合久久中文

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

基于FPGA的cy7c68013a雙向通信教程

e9Zb_gh_8734352 ? 來源:chengfengwenalan ? 作者:chengfengwenalan ? 2023-03-09 09:40 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

01基于FPGA的cy7c68013a雙向通信實(shí)驗(yàn)

cy68013

教程是基于FPGA的cy7c68013a的USB雙向通信實(shí)驗(yàn),本教程主要內(nèi)容:

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

2.cy7c68013a的slave模式,以及他的讀寫時(shí)序

3.cy7c68013a的FPGA的上板測(cè)試,包括發(fā)送和接收兩部分

02開發(fā)過程

cy68013

01驅(qū)動(dòng)

在進(jìn)行試驗(yàn)前要先安裝好Cypress提供的usb驅(qū)動(dòng),插上usb后,電腦就會(huì)檢測(cè)到未識(shí)別的設(shè)備,這時(shí)打開設(shè)備管理器,右鍵未識(shí)別的usb,然后手動(dòng)選擇驅(qū)動(dòng)。

在驅(qū)動(dòng)會(huì)在本教程最后的鏈接中給出,如圖所示:

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

02固件

固件是在CY68013的FPGA內(nèi)部有一個(gè)MCU,需要給MCU固化程序,固件的編寫主要是確定IN和OUT端點(diǎn),以及一些標(biāo)志信號(hào)。

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

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

EP6為IN端點(diǎn),512字節(jié),4緩沖,bulk

flag_a 為EP2的EF,也就是空標(biāo)志信號(hào),為低時(shí)表示空,也就是沒有數(shù)據(jù)過來,為高則表示有數(shù)據(jù)來了

flag_d 為EP6的FF,也就是滿標(biāo)志信號(hào),為低時(shí)表示寫滿了,這時(shí)再去寫就是無效寫了,為高則表示沒有寫滿,可以繼續(xù)寫。

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

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

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

03時(shí)序

Slave FIFO的時(shí)序如圖所示。

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

有圖很容易看出,再寫之前要先把FIFOADR確認(rèn)好,這個(gè)決定了你寫的對(duì)象是誰

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

slave讀操作

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

然后在該fifo非滿時(shí)(相應(yīng)的FF標(biāo)志位高),才可以進(jìn)行寫操作,這個(gè)時(shí)序很簡單,就是拉低slwr信號(hào)就可以了,注意FD要與slwr對(duì)齊。

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

讀時(shí)序跟寫也是類似的,再讀之前先確定FIFOADR,然后拉低sloe,這時(shí)FD總線就會(huì)出現(xiàn)第一個(gè)數(shù)據(jù),然后檢測(cè)到slrd為低時(shí),F(xiàn)D就會(huì)顯示下一個(gè)數(shù)據(jù)。

04FPGA與cy7c68013a通信

前面主要是準(zhǔn)備工作,現(xiàn)在正是進(jìn)入測(cè)試:

項(xiàng)目工程如下:

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

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

具體代碼都已經(jīng)有了詳細(xì)注釋了,這里就不詳細(xì)解釋。

本教程所用的調(diào)試工具是官方的工具

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

03調(diào)試

Deep learnning

下面給出寫的signal tap 的調(diào)試截圖

寫是一次寫512個(gè)字節(jié)數(shù)據(jù),0-255,注意usb的fifo是一次發(fā)送16位的,也就是2個(gè)字節(jié)。先發(fā)送低字節(jié),然后再發(fā)送高字節(jié),這我直接把低字節(jié)給賦值為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為高時(shí),slwr為低才是有效寫,否則就是無效寫,因?yàn)楫?dāng)flag_d為低時(shí),表示寫滿了,這時(shí)fifo就會(huì)丟棄后面寫的數(shù)據(jù)。

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

PC端接收到的數(shù)據(jù)要2個(gè)字節(jié)一起讀,因?yàn)閡sb是16位發(fā)送的,可以看出接收到的數(shù)據(jù)的確是0000-00FF。

注意:pc接收數(shù)據(jù)按照下圖標(biāo)的編碼順序執(zhí)行

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

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

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

pc發(fā)送數(shù)據(jù)按1-->2-->3的步驟,可以看出我們發(fā)送了12 34 56 78 這4個(gè)字節(jié)

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

注意這里我是設(shè)置了cmd_flag標(biāo)志信號(hào)的,只有cmd_flag為高時(shí)的cmd_data的數(shù)據(jù)才是有效的,也就是pc發(fā)送過來的數(shù)據(jù)

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

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

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

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

至此本教程就全部介紹完了,教程只挑了最關(guān)鍵的部分講述USB的開發(fā),但是包括了固件,驅(qū)動(dòng)和FPGA程序,一個(gè)完整的USB和FPGA開發(fā)的工程完全可以進(jìn)行在此基礎(chǔ)上進(jìn)行二次開發(fā)。

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • FPGA
    +關(guān)注

    關(guān)注

    1645

    文章

    22050

    瀏覽量

    618619
  • usb
    usb
    +關(guān)注

    關(guān)注

    60

    文章

    8190

    瀏覽量

    273024
  • Cypress
    +關(guān)注

    關(guān)注

    11

    文章

    137

    瀏覽量

    83258
  • CY7C68013A
    +關(guān)注

    關(guān)注

    2

    文章

    20

    瀏覽量

    21947
  • 編寫
    +關(guān)注

    關(guān)注

    0

    文章

    29

    瀏覽量

    8613
  • 雙向通信
    +關(guān)注

    關(guān)注

    0

    文章

    13

    瀏覽量

    8780

原文標(biāo)題:基于FPGA的cy7c68013a雙向通信教程

文章出處:【微信號(hào):gh_873435264fd4,微信公眾號(hào):FPGA技術(shù)聯(lián)盟】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    CY7C68013A無法加載EEPROM中的程序是為什么?

    我通過cycontrol將.IIC文件下載到24lc64中,但是再次啟動(dòng)時(shí)無法加載到CY7C68013A中,必須再使用cycontrol將hex文件下載到ram中才能使用,這是為什么?
    發(fā)表于 06-03 14:07

    使用CY7C68013A GPIF和FIFO的疑問求解

    我想把這樣使用 CY7C68013A 的GPIF 和 FIFO功能: 1. 兩路數(shù)據(jù)傳輸,CY7C68013都作為從機(jī)接收數(shù)據(jù) 2. 每一路都數(shù)據(jù)格式為:1個(gè)clock pin,8個(gè)數(shù)據(jù)pin 3.
    發(fā)表于 06-03 13:35

    cy7c68013a異步slave fifo模式,外部mcu無法讀寫fifo怎么解決?

    cy7c68013a 異步slave fifo 模式,外部mcu無法讀寫fifo 上位機(jī)發(fā)送bulk數(shù)據(jù),flag標(biāo)志是對(duì)的,SLCS也拉低了,是設(shè)置的低有效, 檢測(cè)到了flag不為空的標(biāo)志后
    發(fā)表于 06-03 10:49

    cy7c68013a的數(shù)據(jù)傳輸錯(cuò)誤的原因?

    cy7c68013aFPGA采用同步slfifo模式通訊,當(dāng)上位機(jī)使用control center發(fā)送2個(gè)字節(jié)時(shí),FPGA收到數(shù)據(jù)正確,當(dāng)發(fā)送4個(gè)以上字節(jié)時(shí)會(huì)出現(xiàn)頭兩個(gè)字節(jié)丟失,后兩個(gè)字節(jié)重復(fù)的現(xiàn)象,百思不得其解?固件使用官網(wǎng)
    發(fā)表于 06-03 10:44

    可以使用CY7C68013A的CLKOUT輸出37.125KHz的時(shí)鐘嗎?

    我想這樣使用CY7C68013A的CLKOUT輸出37.125KHz的時(shí)鐘, 請(qǐng)問能輸出這種頻率嗎? 如果能,怎么樣才能輸出這個(gè)頻率呢? 如果不能,其它pin可以輸出這個(gè)頻率嗎?怎樣輸出?
    發(fā)表于 06-03 10:05

    CY7C68013A客戶配置成slavefifo模式,FPGA發(fā)送數(shù)據(jù)到PC則會(huì)丟包或者收到的數(shù)據(jù)對(duì)不上,什么原因?

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

    USB芯片CY7C68013AFPGA進(jìn)行通信,從EP6讀取512字節(jié)是正常的,但是讀取2個(gè)字節(jié)失敗,為什么?

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

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

    cy7c68013a的固件已經(jīng)配置成異步slave模式,是否有MCU用IO口控制cy7c68013a通過數(shù)據(jù)總線來實(shí)現(xiàn)與PC的USB口通信,這樣應(yīng)用的示例程序或教程? 目的就是在現(xiàn)有的MCU系統(tǒng)中增加一個(gè)USB
    發(fā)表于 05-30 06:32

    如何使用EZ-USB FX2LP CY7C68013A開發(fā)大容量存儲(chǔ)設(shè)備?

    我應(yīng)該如何使用 EZ-USB FX2LP CY7C68013A 開發(fā)大容量存儲(chǔ)設(shè)備,我找不到允許在 FX2LP 上開發(fā)大容量存儲(chǔ)設(shè)備的文檔,請(qǐng)幫幫我,謝謝
    發(fā)表于 05-29 06:15

    請(qǐng)問CY7C68013A高速模式如何配置?

    請(qǐng)問CY7C68013A高速模式如何配置?手冊(cè)里只有提到了中斷和ram
    發(fā)表于 05-28 07:14

    如何使用/編程CY7C68013A?

    CY7C68013A USB 微控制器的新手。 我打算在我的設(shè)計(jì)中使用這些 IC,但是,我不知道當(dāng) PCB 通過 USB 連接到筆記本電腦時(shí),需要什么來訪問該芯片或?qū)ζ溥M(jìn)行編程。 所以, 1. 我的筆記本電腦需要安裝哪些軟件或驅(qū)動(dòng)程序才能使用 CY7C68013A 芯片?
    發(fā)表于 05-20 06:41

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

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

    如何通過上位機(jī)控制CYUSB3014的指定管腳實(shí)現(xiàn)類似功能?

    我們?cè)瓉硎褂?b class='flag-5'>CY7C68013A實(shí)現(xiàn)了上位機(jī)與FPGA之間雙向通信,通過控制端點(diǎn)可以實(shí)現(xiàn)對(duì)諸如CY7C68013A上的PA0等管腳進(jìn)行控制以便FPG
    發(fā)表于 05-13 06:24

    CY7C68013A的windows 10驅(qū)動(dòng)現(xiàn)在支持嗎?如何獲取?

    CY7C68013A 的windows 10 驅(qū)動(dòng)現(xiàn)在支持嗎?如何獲???
    發(fā)表于 05-12 07:56

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

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