【问题标题】:Android - USB communication with FTDI chip and d2xx driverAndroid - 与 FTDI 芯片和 d2xx 驱动程序的 USB 通信
【发布时间】:2014-06-27 17:19:23
【问题描述】:

我正在开发一个 android (Android 4.2) 项目,在该项目中我从通过 USB 连接的设备读取数据。在连接的传感器板上,我有一个 FTDI 芯片组,所以我正在使用他们的 d2xx 驱动程序。

一开始一切正常:我能够通过 USB 连接获取数据并进行处理。我在AsyncTask 中运行的循环中执行此操作,其中我向传感器板写入采集命令,告诉它采集数据。收到所有数据后,将对其进行处理。然后再次将采集命令写入传感器板,采集并处理新数据。

但是一段时间后(似乎不是固定时间),设备无法从传感器板上读取任何其他数据。请注意,这里的传感器板没有问题,因为我已经能够使用执行相同处理但在我的笔记本电脑上运行的程序对其进行彻底测试。

如果我查看 DDMS 日志,我总是会发现,当我的应用程序无法接收数据时,会出现以下调试消息:

Tag: extractReadData::
Text: written != totalData, written= 16384 totalData=196

(文本中的数字并不总是相同)。 和

Tag: ProcessBulkIn::
Text Buffer is full, waiting for read....

在这些消息之后,除了看到结束的几个处理线程的日志之外,我得到的唯一日志(重复,直到我停止应用程序)是:

Tag: UsbRequestJNI
Text: init

在正常操作期间,我会收到来自应用程序不同部分(采集、数据处理等)的日志消息,但一旦我收到报告的这些消息,这些消息就不会再出现了。

我知道,当我通过 USB 连接进行通信时,在正常操作期间会出现标记为UsbRequestJNI 的日志消息,特别是当我执行写入命令时(向传感器板发送命令以获取和发送一些数据)。因此,似乎在收到这两条消息后,我的应用程序在尝试写入传感器板时被卡住了。

我不知道另外两条消息是从哪里来的。我最好的猜测是它们来自 d2xx FTDI 驱动程序或某些底层 USB 主机库。

谁能帮我理解:

  • 这两条消息的来源
  • 出现的原因
  • 如何解决导致它们的问题

非常感谢任何可以参与的人。

最好, 马特奥

【问题讨论】:

    标签: android usb ftdi


    【解决方案1】:

    我后来发现(通过与 FTDI 的支持团队讨论这个问题)我所面临的问题是由 Android 的 FTDI 驱动程序中的错误引起的。关于他们线程中的锁定。
    截至今天(2014 年 10 月 22 日),这些错误尚未得到解决。此外,类似的错误会影响 Windows CE7 ARM 版本的驱动程序。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多