首页
产品
驱动程序
固件
技术支持
参考文档
参考设计
软件示例
实用工具
知识库
相关链接
常见问题解答
安卓(Android)
嵌入式图像引擎(EVE)
微处理器(MCU)
销售网络
网上商店
新闻稿
企业介绍
联系方式

 

 

 常见问题解答
一般
可以将FTDI设备显示为不同的USB设备类吗?

应用软件 - 一般
如何打开Windows CE上的COM端口?

硬件 - 一般
如何防止溢出缓冲器在245 FIFO模式?
FTDI如何处理USB暂停(suspend)?
FTDI芯片如何作RTS / CTS的流量控制?

驱动程序 - 一般
为什么我编辑的驱动程序可以在VISTA工作但是不能在VISTA x64工作?
为什么无法在Windows CE加载驱动程序?

 一般

可以将FTDI设备显示为不同的USB设备类吗?

FTDI已经定义了自己的设备类,所以FTDI的设备会返回一个0在bDeviceClass表示是供应商类(Vendor class)。

设计者不能定义不同的设备类

我们的设备没有返回正确的USB设备描述符是USB HID类或USB海量存储类。或许可以写一个附有过滤器驱动程序, 将使得我们的芯片看起来是一个HID类或大容量存储类(mass storage class)设备,但这样做将涉及到大量的工作。

 

 

  应用软件 - 一般

如何打开Windows CE上的COM端口?

如果CreateFile(“COM x”...),其中COM端口x号失败,您可能需要通过全名来打开该端口。

例如

CreateFile("\$device\COMx",......)

 

 

  硬件 - 一般

如何防止溢出缓冲器在245 FIFO模式?

只有当TXE#引脚为逻辑0时,245 FIFO接口才能被写入。

该TXE#引脚成为逻辑1再变回逻辑0,当每个字节被锁定。

如果在PC上的应用程序从不读取任何数据在PC(64k字节)则芯片上的缓冲器将会被写满。

当缓冲器被写满时,TXE#引脚应保持在逻辑1,直到PC上的应用程序作读取然后腾出空间。

有些用户报告TXE#变回逻辑0,在一个短暂时期之后(实际上与延迟定时器(latency timer)匹配)。

这会导致数据丢失由于数据溢出缓冲器。

为了防止这种情况的发生在PC上,应用程序应设置控制流量的RTS_CTS作流量控制。

虽然硬件没有RTS/CTS引脚而驱动程序并不知道,但现在不得不监控特定的状态位(certain status bits), 使TXE#引脚保持在逻辑1,直到有空间可用为止。

 

 

FTDI如何处理USB暂停(suspend)?

USB暂停由USB主机告诉告诉外围设备进入暂停状态。

FTDI的驱动程序不强制FTxxx设备进入暂停状态。

如果USB数据总线空闲时间>3毫秒,USB主机应该将FTxxx设备进入暂停状态。

为了防止这种情况发生,应该在3毫秒以内都保有数据。这可以藉由发送伪数据(dummy data)来完成。

另一种隐性解决方法是设置等待计时器(latency timer)为2毫秒。这迫使每2毫秒返回两个byte的状态字节 (status bytes),从而产生足够的流量,以保持设备的清醒。

 

 

FTDI芯片如何作RTS / CTS的流量控制?

FTxxx的RTS#是输出引脚。它应该在UART链路的另一端被连接到该设备的CTS#输入引脚。

如果RTS#为逻辑0则表示FTxxx设备可以接受更多的数据在RXD引脚上。

如果RTS#为逻辑1则表明FTxxx设备无法接受更多的数据。

当芯片缓冲器剩下最后32个字节的空间时,RTS#改变其状态,如此有足够的时间让外部设备停止发送数据到ftxxx装置。

FTxxx的CTS#是输入引脚。它应该在UART链路的另一端被连接到该设备的RTS#输出引脚。

如果CTS#为逻辑0则表示该外部设备可以接受更多的数据,FTxxx将在TXD引脚上发送数据。

如果CTS#为逻辑1则指示该外部设备不能接受更多数据。FTxxx将在0〜3个字符内停止传输, 这取决于什么样的数据在缓冲器内。

这种潜在的3个字符溢出偶尔会出现问题。客户应意识到FTxxx是USB设备,而不是作为看到PC上的“一般”的RS232设备。 是以数据包为基础的操作装置,而不是一个字节为基础。

明眼人不用多说。RS232的电平移位装置(例如MAX232)不仅做电平移位,而且也将信号作反相。

 

 

  驱动程序 - 一般

为什么我编辑的驱动程序可以在VISTA工作但是不能在VISTA x64工作?

在VISTA x64上驱动程序需要通过微软签署,在被安装之前。

在我们网站原本的驱动程序是安装在Vista 64位。

如果客户编辑驱动程序,并希望使用它在Vista 64位,则客户必须重新验证驱动程序。

Vista32位则没有此限制。

 

 

为什么无法在Windows CE加载驱动程序?

有时候在WinCE平台下,用户拥有正确的VID/PID在INF文件,然而驱动程序却仍然无法加载。

CE 4.2系统上的注册表项(registry keys)(每个系统中只有一个,但可能在任何一个位置)似乎控制内存的大小, 透过Microsoft OHCI 主机驱动程序来分配作为设备上的设备描述(device descriptors)和缓冲器。如果所分配的内存 低于驱动程序需要连接设备的数量,则后面所枚举(enumerated)的将不会被加载。

[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\OHCI]

"PhysicalPageSize" = dword:00100000 ; 使用这个设定来获得128 KB的缓冲空间

[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\PCI\Template\OHCI]

"PhysicalPageSize" = dword:00100000 ; 使用这个设定来获得128 KB的缓冲空间

 
 
 



 

© Future Technology Devices International Ltd.(飞特蒂亚)