| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 嵌入式 -> CYUSB3014 USB3.0与FPGA设计 -> 正文阅读 |
|
[嵌入式]CYUSB3014 USB3.0与FPGA设计 |
目录 1. USB3014连接框图?????????为了充分发挥 USB3.0芯片的特性,特将 CYUSB3014芯片的所有数字 IO与 FPGA连接,包括 32根数据线,13根控制线、4根 I2S信号线以及 UART线等。 2. 复位设置????????CYUSB3014有一个复位输入接口,当复位输入为低电平时,芯片处于复位状态。只有当该引脚为高电平时,芯片才能正常工作,AC6102开发板在设计时,充分考虑了实际应用和系统调试时的情况,给 CYUSB3014设计了两种复位方式,分别为 FPGA控制复位和上电自动复位。默认使用上电自动复位方式,该方式非常适合我们调试系统原型时使用,这样不必担心因为重新下载 FPGA 的 sof固件而导致 USB芯片复位,影响 USB3.0芯片的正常运行。增加调试时候的工作量。(如果使用 fpga控制复位,那么每次下载完 fpga的 sof后,都会对USB芯片执行一次复位操作,从而使芯片内烧写的固件丢失,那么用户只能再烧写一次 usb芯片固件,从而增加了调试时候的工作量)。如下图,R64默认没有焊接,即断开了 CYUSB芯片与 FPGA芯片的连接,从而避免受到 FPGA固件的影响,如果产品最终定型需要测试使用 FPGA直接控制 USB芯片复位,给 R64安装 100R左右的电阻即可。 ????????对比USRP B2X0系列FPGA芯片,对于复位则是加了按键复位操作,见下图,也是大多数FPGA的通用复位方法。 3. 时钟晶振????????CYUSB3014支持外部晶振提供时钟信号,支持 19.2、26、38.4和 52MHz的时钟频率,AC6102开发板上使用 19.2MHz的晶振为 CYUSB3014提供时钟源。另外,CYUSB3014内部有一个看门狗定时器,用来在需要的时候对全局系统服务,看门狗定时器使用外部 32.768KHz时钟输入,所以 AC6102上也设计了一个 32.768KHz的晶振。当然,在大多数系统中,该部分可以不考虑。? 4. 时钟源配置????????CYUSB3014芯片的时钟源是可配置的,EZ-USBFX3允许在 XTALIN和 XTALOUT引脚之间连接晶振,也允许在 CLKIN引脚上连接外部时钟。支持的晶振频率为 19.2MHz,支持的外部时钟频率为 19.2、26、38.4和 52MHz。EZ-USBFX3有一个片上振荡器电路,使用外部19.2MHz(±100ppm)晶振(使用晶振选项时)。FSLC[2:0]引脚必须进行适当配置,以选择晶振选项/时钟频率选项。配置选项请参见下表。 ?????????AC6102开发板在设计时,将 FSLC配置脚使用电阻跳线的方式引出,如下图,每个 FSLC ? ? ? ? 对比USRP B2X0系列板子,也通用19.2Mhz晶振。 5. 引导方式配置????????EZ-USBFX3芯片总共支持 7种引导方式,所谓引导,就是 EZ-USBFX3芯片上电以后,片上的 ARM9处理器从何处开始读取程序并运行。其支持的 7种启动方式如下所示: 1、从 USB 引导? ????????3014芯片具体提供了 3个启动配置引脚,通过设置启动引脚不同的值,来选择不同的启动方式。这三个引脚名叫 PMODE脚。? ?????????这三个配置引脚,每个引脚都有三种状态,1(接高电平)、0(接低电平)、F(浮空,既不接高电平,也不接低电平),三个配置引脚的不同状态与对应的启动方式如下表所示 ?????????其中,对于 FPGA和 USB3.0组成的系统,我们很少用到第 1、2、4种启动方式。第 7种启动方式,即使用 SPI引导,主要用在 EZ-USBFX3作为整个系统的主机层,片上的处理器需要运行复杂的程序的情况下,使用片外的大容量 SPI FLASH存储器启动。FPGA + EZ-USBFX3,使用最多的是 SlaveFifo接口,因此,可以选择 EEPROM存储器,即 IIC方式启动。同时,为了保证系统在 IIC接口的 EEPROM存储器失效的情况下,能够有其他方式可以恢复,所以,AC6102上的启动方式设置为了方式 5,即默认从IIC引导,如果从IIC引导失败,则启用从USB引导。对应的PMODE[2:0]的配置为 F1F,在原理图上,即电阻 R51使用 0R电阻,其他电阻全部不焊接即可。 ????????USRP B2X0系列也采用IIC方式启动,对应的PMODE[2:0]设置了F1F,如下图,?这里DNP(Do Not Populate)不焊接,FX3_PMODE1留了10k的保护电阻。 6. IIC存储器? ??????????CYUSB3014支持从 IIC存储器引导程序,AC6102开发板上,为 CYUSB3014芯片提供了一颗 256Kb的 IIC接口的 EEPROM存储器 24LC256,方便用户存储 CYUSB3014的固件。 ? ???????????USRP B2X0系列同样采用EPROM存储器来存放固件。 7. SPI flash存储器????????CYUSB3014芯片支持从 SPI FLASH存储器引导程序,AC6102开发板上,为 CYUSB3014芯片提供了一颗 64Mb的 SPI接口的 FLASH存储器 M25P64,由于 CYUSB3014的 SPI接口和UART接口引脚是复用的,一个时刻内只能工作在一种模式,在 FPGA和 CYUSB3014的典型应用系统中,我们通常使用 Slave Fifo模式,不需要 CYUSB3014运行复杂的应用程序,但是由于 Slave Fifo接口虽然适合传输大量的数据,却不适合传输控制信号,我们可以考虑使用UART在两者之间传递控制信号,因此 AC6102上默认将 CYUSB的 SPI/UART复用引脚通过排阻跳线设置为了 UART模式。如下图,RN5和 RN6为两个排阻,M25P64为 SPI FLASH存储器,当焊接 RN6,悬空 RN5时,SPI FLASH是被硬件旁路掉的,并没有连接到 CYUSB3014芯片上,AC6102上默认就是此种配置方式。 ????????USRP B2X0系列SPI配置如下,同样SPI接口和UART接口引脚是复用的,一个时刻内只能工作在一种模式。 ?8. FPGA外接串口? ? ? ?????????? ????????由于上述SPI和UART口共用,USB串口传输要遵循FX3协议,C/C++开发语言,相对复杂,所以为了如果为了简单进行FPGA的串口开发,可以采用RS232外接,用串口助手进行数据收发。 |
|
嵌入式 最新文章 |
基于高精度单片机开发红外测温仪方案 |
89C51单片机与DAC0832 |
基于51单片机宠物自动投料喂食器控制系统仿 |
《痞子衡嵌入式半月刊》 第 68 期 |
多思计组实验实验七 简单模型机实验 |
CSC7720 |
启明智显分享| ESP32学习笔记参考--PWM(脉冲 |
STM32初探 |
STM32 总结 |
【STM32】CubeMX例程四---定时器中断(附工 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 3:49:26- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |