(比较WXS师兄的)USB 同步传输和异步传输固件的区别

本文深入分析了WXS师兄所开发的固件中同步传输与异步传输的区别,重点解析了IFCONFG寄存器中bit3与bit76的含义,并探讨了为何在异步模式下选择0xCB而非0x0B的原因,揭示了底层硬件配置与传输模式之间的内在联系。

比较WXS师兄同步传输固件和异步传输固件的区别,发现dscr.a51、fw.c文件完全一致,tcxmaster.c有一行存在区别,位于初始化函数TD_Init(void)中:

  1. 在同步固件中:IFCONFG=0x03;//0000 0011
  2. 在异步固件中:IFCONFG=0xCB;//1100 1011

同步0x03,FIFO CLK来自外部,Slave FIFO工作在同步模式之下,Slave FIFO Interface;

异步0xCB,FIFO CLK来自内部,IFCLK频率选为48MHz,Slave FIFO工作在异步模式之下,Slave FIFO Interface;

 

下面是IFCONFG寄存器中bit 3的注释:

Bit3 ASYNC: Slave FIFO Asynchronous Mode.

0 The Slave FIFOs operate synchronously. A clock is supplied either internally or externally on the IFCLK pin; the FIFO control signals function as read and write enable signals for the clock signal.

1 The Slave FIFOs operate asynchronously. No clock signal input to IFCLK is required; the FIFO control signals function directly as read and write strobes.

下面是IFCONFG寄存器中bit 7\6的解释:

Bit7 IFCLKSRC: FIFO/GPIF Clock Source.

This bit selects the clock source for both the FIFOS and GPIF.

0 The external clock on the IFCLK pin is selected.

1 An internal 30 or 48 MHz (default) clock is used (default).

Bit6 3048MHZ: Internal FIFO/GPIF Clock Frequency

This bit selects the internal FIFO and GPIF clock frequency.

0 30 MHz (default)

  1. 48 MHz

 

总结:由于Bit3=1时,FIFO工作在异步模式下,根据注释,IFCLK并不需要时钟信号输入,所以异步模式中IFCONFG(7,6)=11没有什么实际意义,为什么WSX师兄要写成0xCB而不是直接写成0x0B呢?

转载于:https://www.cnblogs.com/sunmaoduo/p/3917386.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值