USB论坛
直播中

乐骞添

8年用户 1083经验值
私信 关注
[问答]

请问CY7C68013A可以使用8bit FIFO数据接口吗?

因为FPGA管脚不太够,想问下CY7C68013A-56PVXI可以使用8bit FIFO数据接口吗?可以的话,FPGA连接的是低8bit(FD0~FD7) 还是高8bit(FD8~FD15)呢?

回帖(1)

王霞

2025-6-6 17:26:20

是的,CY7C68013A-56PVXI 可以使用 8 位 FIFO 数据接口,这是一个非常灵活的功能。通过配置其内部寄存器,你可以将其外部 FIFO 接口设置为 8 位模式。


以下是关键点和连接方法:




  1. 支持 8 位模式:



    • CY7C68013A 的 External FIFO 接口可以通过 FIFOADR 端口选择不同的 FIFO 宽度(16位或 8位)以及连接到哪个逻辑端点 FIFO。

    • 你需要将 FIFOADR[1:0] 配置为 10 (0x2) 来选择目标 FIFO(端点)处于 8 位从 FIFO 模式(8-bit Slave FIFO Mode)。




  2. 数据总线连接:使用低 8 位 (FD[7:0])



    • 当芯片配置为 8 位 FIFO 模式时,你只需要连接数据总线的低 8 位 FD[7:0]

    • 高 8 位 FD[15:8] 在此模式下不使用,可以悬空(或接地/VCC,为安全起见建议悬空或在原理图上标记为不连接)。连接 FD[15:8] 在 8 位模式下是无效的。




  3. PORT E 寄存器设置:



    • 对于 8 位从 FIFO 模式,还有一项重要的相关配置在 PORTECFG 寄存器(或者类似的,请参考“External FIFO Interface”章节)中。

    • 在固件初始化外部 FIFO 接口时,你必须

      • 启用外部 FIFO 接口(通常通过 IFCONFIG 设置)。

      • 启用自动打包(AutoIn/Out)模式(通过 AUTOPTRSETUPFIFOPINPOLAR 相关位设置)。

      • 配置 PORT E (FD[15:8]) 的相应引脚为 输出使能并设置为固定状态(通常是高电平)。这会将高 8 位强制输出为高电平(0xFF),防止它们呈现不稳定状态影响总线或消耗额外电流。参考手册中一般会明确说明在 8 位模式下应将 PORT E 配置为输出且输出高。





总结与建议:



  1. 连接线: 在 FPGA 上,只需要连接以下引脚到 CY7C68013A:

    • FD[7:0] (低8位数据总线)

    • FLAGA, FLAGB, FLAGC (可选的 FIFO 状态标志位,如满、空、可编程标志 - 根据需要连接,至少连接满/空是常规做法)

    • SLRD (读选通)

    • SLWR (写选通)

    • SLOE (输出使能)

    • PKTEND (包结束,用于IN传输)

    • FIFOADR[1:0] (端点/模式选择地址)

    • IFCLK (接口时钟,可选为芯片输出或外部输入,根据你选择的同步模式)


  2. 配置固件: 在 CY7C68013A 固件中,必须正确初始化外部 FIFO 接口:

    • 开启外部 FIFO 接口 (IFCONFIG.2 = 1)。

    • 启用适当的同步时钟模式 (IFCONFIG[1:0])。

    • 为使用的端点启用自动打包模式 (EPxFIFOCFG 寄存器)。

    • FIFOADR[1:0] 设置为 10 (0x2) 选择目标 FIFO 为 8 位模式。

    • 配置 PORT E (FD[15:8]) 为输出并输出高电平(通常在 PORTECFG / OEE 寄存器中设置,具体见手册“External FIFO Interface”章节和 PORT E 控制寄存器部分)。


  3. FPGA 逻辑: FPGA 需要根据配置好的同步时钟模式 (IFCLK)、SLOE, SLRD, SLWR, PKTEND 以及 FIFO 状态标志来执行读写操作。在 8 位模式下,每次读写操作只传输一个字节。


注意事项:



  • 性能: 8 位模式的数据吞吐量是 16 位模式的一半。确保这对于你的应用需求来说是可接受的。

  • 参考手册: 在你使用的 CY7C68013A 数据手册和应用笔记(AN61345 是关于外部 FIFO 最权威的)中查阅详细内容。仔细阅读 “External FIFO Interface” 章节,特别是关于 8-bit Slave FIFO ModePORT E Configuration 的部分。配置寄存器的细节很重要。

  • 信号方向: 注意 SLOE, SLRD, SLWR, PKTEND 通常是由 FPGA 控制作为输出驱动 CY7C68013A(对于 CY7C68013A 是输入)。而 FLAGA, FLAGB, FLAGC, IFCLK (如果设为内部时钟源) 是由 CY7C68013A 输出驱动的(对于 FPGA 是输入)。FD[7:0] 在写入 CY7C68013A 时由 FPGA 驱动,在读取时由 CY7C68013A 驱动(此时 SLOE 有效)。


结论:


你的方案是可行的且官方支持。将 FPGA 连接到 FD[7:0],同时在 CY7C68013A 固件中将目标端点配置为 8-bit Slave FIFO 模式FIFOADR[1:0] = 10)并正确设置 PORT E 输出高电平。这样就能有效利用较少的 FPGA 引脚完成 USB 数据传输。记得仔细查阅手册中关于外部 8 位 FIFO 接口的具体配置步骤。

举报

更多回帖

发帖
×
20
完善资料,
赚取积分