一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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

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

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

基于FPGA的cy7c68013a雙向通信教程

e9Zb_gh_8734352 ? 來(lái)源:chengfengwenalan ? 作者:chengfengwenalan ? 2023-03-09 09:40 ? 次閱讀

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

cy68013

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

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

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

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

02開(kāi)發(fā)過(guò)程

cy68013

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

在進(jìn)行試驗(yàn)前要先安裝好Cypress提供的usb驅(qū)動(dòng),插上usb后,電腦就會(huì)檢測(cè)到未識(shí)別的設(shè)備,這時(shí)打開(kāi)設(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固化程序,固件的編寫(xiě)主要是確定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來(lái)說(shuō)的,OUT表示PC--->cy7c68013a,IN則相反)

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

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

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

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

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

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

03時(shí)序

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

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

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

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

slave讀操作

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

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

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

讀時(shí)序跟寫(xiě)也是類(lèi)似的,再讀之前先確定FIFOADR,然后拉低sloe,這時(shí)FD總線(xiàn)就會(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

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

寫(xiě)是一次寫(xiě)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為低才是有效寫(xiě),否則就是無(wú)效寫(xiě),因?yàn)楫?dāng)flag_d為低時(shí),表示寫(xiě)滿(mǎn)了,這時(shí)fifo就會(huì)丟棄后面寫(xiě)的數(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ā)送過(guò)來(lái)的數(shù)據(jù)

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

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

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

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

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

審核編輯:湯梓紅

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

    關(guān)注

    1642

    文章

    21918

    瀏覽量

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

    關(guān)注

    60

    文章

    8066

    瀏覽量

    269655
  • Cypress
    +關(guān)注

    關(guān)注

    11

    文章

    137

    瀏覽量

    82740
  • CY7C68013A
    +關(guān)注

    關(guān)注

    2

    文章

    20

    瀏覽量

    21830
  • 編寫(xiě)
    +關(guān)注

    關(guān)注

    0

    文章

    29

    瀏覽量

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

    關(guān)注

    0

    文章

    13

    瀏覽量

    8724

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

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

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    請(qǐng)問(wèn)DLP Discovery 4100的USB固件程序在哪可以下載?

    我使用的DLP4100的USB芯片是USB2.0 CY7C68013A,我想問(wèn)一下相關(guān)的固件程序在哪可以下載,我想對(duì)該固件程序進(jìn)行更改。
    發(fā)表于 02-28 07:56

    CY7C65215與MSP430的連接,還有與FPGA的SPI能否留空?

    圖中CY7C65215與MSP430的連接,還有與FPGA的SPI能否留空?如果不使用CY7C65215。
    發(fā)表于 02-27 07:06

    請(qǐng)問(wèn)是否可以提供XTR117或者其他的電流環(huán)雙向通信電路?

    請(qǐng)問(wèn)是否可以提供XTR117或者其他的電流環(huán)雙向通信電路,謝謝!
    發(fā)表于 01-09 06:21

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

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

    使用STM32的外部數(shù)據(jù)總線(xiàn)與CY7C68013建立連接,如何獲得更高的傳輸速率?

    我試圖使用 STM32 的外部數(shù)據(jù)總線(xiàn)(如 FSMC)與 CY7C68013 建立連接,但不知道這樣能否成功連接并獲得更高的傳輸速率。 我還沒(méi)有找到這樣使用的例子。
    發(fā)表于 07-23 07:12

    北斗短報(bào)文終端如何進(jìn)行雙向通信?

    北斗短報(bào)文終端的雙向通信功能是基于中國(guó)北斗衛(wèi)星導(dǎo)航系統(tǒng)(BDS)的衛(wèi)星通信能力實(shí)現(xiàn)的。以下是北斗短報(bào)文終端進(jìn)行雙向通信的具體過(guò)程和特點(diǎn):北斗短報(bào)文終端一、雙向通信過(guò)程發(fā)送短報(bào)文:當(dāng)用戶(hù)
    的頭像 發(fā)表于 07-12 11:19 ?1110次閱讀
    北斗短報(bào)文終端如何進(jìn)行<b class='flag-5'>雙向通信</b>?

    CY7C68013A/CYUSB3014的GPIF接口可以連接單片機(jī)的SDIO接口嗎?

    硬件小白請(qǐng)教一下各位大神,單片機(jī)沒(méi)有自帶USB接口,高速接口只有SDIO 3.0的情況下,有辦法通過(guò)68013或者3014來(lái)對(duì)接上位機(jī)的USB接口么? 我在網(wǎng)上找到的資料,GPIF接口一般是對(duì)接FPGA或者一些視頻采集芯片之類(lèi)的,沒(méi)有SDIO的示例。
    發(fā)表于 07-03 16:46

    cy7c68013a-56ltxc搭載fpga傳輸數(shù)據(jù)丟包是哪里出了問(wèn)題?

    1.8m的一個(gè)圖像數(shù)據(jù)由fpga傳輸給usb芯片,再由cy7c68013-56ltxc芯片把數(shù)據(jù)傳輸給電腦,然后由軟件排列起來(lái),發(fā)現(xiàn)數(shù)據(jù)出現(xiàn)了丟包,數(shù)據(jù)卻行,大家有什么看法?
    發(fā)表于 07-03 08:26

    求助,是否可以將CYUSB2014-BZXIT與AR0144CSSC00SUKA0-CPBR連接起來(lái)?

    目前,我們使用的是 CY7C68013A(USB 微控制器)和 AR0144CSSC00SUKA0-CPBR(圖像傳感器)。 是否可以將 CYUSB2014-BZXIT
    發(fā)表于 07-03 06:42

    求助,如何用esp32-wroom-32d實(shí)現(xiàn)一主多從雙向通信,從站數(shù)量大概在25左右?

    如何用esp32-wroom-32d實(shí)現(xiàn)一主多從雙向通信,從站數(shù)量大概在25左右
    發(fā)表于 06-17 08:06

    ESP32三線(xiàn)SPI雙向通信的話(huà)需要怎么配置呢?

    尋求幫助: ESP32三線(xiàn)SPI雙向通信的話(huà)需要怎么配置呢?
    發(fā)表于 06-06 06:45

    FX2 CY7C68013A如何在C++環(huán)境中使用LoadEEPROM函數(shù)?

    我使用的是 FX2 CY7C68013A 芯片。 我知道 CyUSB.NET 庫(kù)中有我需要的 LoadEEPROM 函數(shù)。 請(qǐng)問(wèn)如何在 C++ 環(huán)境而不是 C#/CLR 環(huán)境中使用該函數(shù)? C
    發(fā)表于 05-31 06:59

    FX2從CY7C68013A移植到CYUSB2014的過(guò)程是怎樣的?

    我計(jì)劃將我的設(shè)計(jì)從 CY7C68013A 移植到 CYUSB2014。 我是否可以使用相同的開(kāi)發(fā)工具,只是選擇不同的組件? 有什么潛在問(wèn)題需要注意嗎?
    發(fā)表于 05-28 07:18

    請(qǐng)問(wèn)CY7C68013A-56LFXI的替代型號(hào)是什么?

    型號(hào):CY7C68013A-56LFXI 的替代型號(hào)是什么?
    發(fā)表于 05-24 08:29

    求助,關(guān)于CY68013的傳輸問(wèn)題求解

    我的應(yīng)用是:上位機(jī)循環(huán)讀取USB數(shù)據(jù),下位機(jī)是FPGA+CY68013發(fā)送USB數(shù)據(jù),FPGA判斷CY68013的寫(xiě)滿(mǎn)標(biāo)志,非滿(mǎn)時(shí)進(jìn)行寫(xiě)操作,否則不進(jìn)行任何操作,在原處等待非滿(mǎn)標(biāo)志,現(xiàn)發(fā)現(xiàn)上位機(jī)
    發(fā)表于 05-24 08:04