This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] MSP430F5659:通过 USB 进行的串行通信可能会破坏 A/D 读取

Guru**** 2526700 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/953511/msp430f5659-serial-communications-over-usb-may-be-corrupting-a-d-reads

器件型号:MSP430F5659

我们使用复合 USB 接口传输串行数据和键盘按压。 当应用未连接到 PC/监视器侧时、串行通信在示波器上似乎具有1ms 的同步。 一旦 PC 应用程序启动(只能是一个终端窗口)、串行通信将每25微秒接收一条同步消息、并且消息是 NAK'ed

下面是 USB 端口分析器的屏幕截图:

我们的系统具有一个模拟器件 AD7766、即在设置 DATA_RDY 时执行多字节读取的 A/D 芯片。 怀疑 USB 流量会中断 A/D 数据读取、导致数据未对齐、因为字节看起来会丢失。 A/D 读操作通过 SPI 总线进行。 似乎没有任何勘误表会根据我们的使用情况导致 SPI 总线损坏。

是否有办法控制 PC 端同步消息的时序、或从 MSP 端对其进行 ACK? 如果他们得到确认、同步是否会减慢?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Sean、

    [报价用户="Sean Stufflebeam">我们使用复合 USB 接口传输串行数据和键盘按压操作。 当应用未连接到 PC/监视器侧时、串行通信在示波器上似乎具有1ms 的同步。 一旦 PC 应用程序启动(只能是一个终端窗口)、串行通信将每25微秒接收一条同步消息、并且消息为 NAK'ed.

    我不确定主机应用程序是如何确定发送同步消息的时间段的。 这似乎被称为"USB 中断传输"、由主机完成。   《MSP430x5xx 和 MSP430x6xx 系列用户指南》中的第42.3.2节讨论了 USB 器件行为。

    [引用 user="Sean Studiolbeam"]我们的系统具有一个模拟器件 AD7766、即在设置 DATA_RDY 时执行多字节读取的 A/D 芯片。 怀疑 USB 流量会中断 A/D 数据读取、导致数据未对齐、因为字节看起来会丢失。 A/D 读操作通过 SPI 总线进行。 根据我们的使用情况、似乎没有任何勘误表会导致 SPI 总线损坏。

    我认为您的怀疑是正确的。 当 USB 设备正在处理 USB 数据包时、其他外设中断很可能被禁用。 除了减慢 USB 主机的中断传输请求、您还可以考虑使用另一个 DMA 通道通过 SPI 自动捕获 ADC 数据。

    用于 USB 和 SPI 传输的 DMA

    msp430f5529:有关 USB 数据传输和(GPIO)中断的问题

    此致、

    James