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.

[参考译文] MSP430上的 USB 从零开始-项目设计[帮助]

Guru**** 2551300 points
Other Parts Discussed in Thread: MSP430F5529, MATHLIB

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/587293/usb-on-msp430-from-scratch---project-design-help

主题中讨论的其他器件:MSP430F5529MSP430WAREMATHLIB

大家好。

我在这个学期的项目中、我们必须设计一个可以通过 MATLAB 进行设置的盒子、它必须处理生成的信号(在微控制器中生成)、并且我们必须在 Matlab (实时、如数据采集)中查看这两个信号的测量结果 (生成的输入和获得的输出)。

我有这个方框图:

我想使用 MSP430F5529微控制器(此 uC 内置 USB 控制器)、我有一些问题:

1) 1) MSP430 USB 不支持等时传输类型、因此我可以使用批量传输类型来传输此类信息。 MSP430上生成的输入信号是一个16位信号、由 I2C、SPI 接口或类似器件发送到 DAC。 然后、转换后的信号(模拟)由受控体进行滤波、在输入信号生成之前、由 K (根轨迹)设置极点和零点。 输出被馈送到 ADC、该 ADC 将信号转换回数字域、因此我们必须通过 USB 将其连续发送到主机(PC - Matlab)。 每个样本有16位=> 2字节、USP 2.0全速支持高达每秒1.5MB 的速度、即使实际带宽低于该值、我也有足够的带宽预算来构建此应用(我猜)。 我的问题是:

1A) Bulks 传输类型适用于此类应用? 我认为一个好主意是定义一个基本的数据包或帧(信息和大小)、并每隔"T"秒通过 USB 将其发送给主机。

1b)为此、是否必须在 MSP 上创建缓冲区来保存信息、直到信息通过 USB 端口发送? 我必须考虑哪种限制? 我的意思是、很显然、缓冲区中有一个信息流(速率)、我想知道哪个参数或值可以帮助我解决这个问题。

2) 2)到目前为止、我已经尝试过 USB 开发包中的 TI USB 示例、但不确定是否允许我使用 USB 描述符工具、这就是为什么我想要(从头开始)编写一个简单但功能齐全的 USB 代码来完成此操作的原因。 我已经阅读了一些文档、例如:

  • 使用 MSP430TM MCU 开始 USB 设计  
  • USB 器件()

    感谢大家的帮助。

    非常感谢!

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    批量传输不保证带宽。 但是、如果同一总线上的其他器件没有干扰、这就没有问题。

    USB 模块有一个单独的2KB 的缓冲存储器块、其中存放了 USB 数据包的内容;请参阅用户指南的第42.2.4节。 TI USB 框架将其中的一些内容抽象出来。

    从头开始编写 USB 代码非常复杂、尤其是在您不知道 USB 规范和硬件的情况下。

    为了避免您在主机端编写自己的驱动程序、我建议创建一个串行(CDC)器件。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Matias、
    我们在 MSP430Ware 中有一个适用于 HID USB 的示例。 您可能需要对此进行检查、因为您可以实现常规传输、甚至可以使用它实例化多个 HID 通道。 检查您的 MSP430Ware 根目录\usblib430\MSP430_USB_Software (我的根目录为 c:\ti\MSP\MSP430Ware_version)。

    这些也是 root\usblib430\Host_USB_Software 中的 Java GUI。

    您可能还需要查看 Mathlib、IQMathlib、DSPLIB 和 LEA 以在固件端处理数据。 前三个库中包含可能对您的应用有用的函数。 LEA 代表低功耗加速器、是某些 MSP 上用于高效信号处理的外设。  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Matias、
    您是否仍然需要帮助? 如果是、请作出响应、问题将自动重新打开。