【发布时间】:2019-03-13 01:43:10
【问题描述】:
我正在使用带有 USB CDC 库的 STM32F411,该库的最大速度约为 1Mb/s。 我正在创建一个项目,其中有 8 个麦克风连接到 ADC 线路(这部分工作正常),我需要一个 16 位信号,所以我通过从一条线路添加前 16 个信号来提高准确性(ADC 只提供 12-位信号)。在我的项目中,一条线需要 96k 16 位样本,因此所有 8 条线都有 0,768M 信号。这个信号需要12000Kb的空间,而STM32只有128Kb的SRAM,所以我决定一秒发送120个左右,100Kb的数据。
结论是我需要 ~11,72Mb/s 来发送这个。
问题是我无法做到这一点,因为 CDC USB 将我限制在 ~1Mb/s。
问题是如何将 STM32F4 的 USB 速度提高到 12Mb/s。我需要一些提示符或库。
或者我应该在 CubeMX 中设置“音频设备”吗?
【问题讨论】:
-
对于音频设备,使用同步传输和 USB 音频规范会更有意义。
-
什么是 Mb?位还是字节?
-
@P__J__ 我的意思是位,位总是用小写字母。 Mb = 兆位; MB = 巨型 bajt。所以在这个问题中,我需要每秒 12 兆比特或每秒 1.5 兆比特
-
bit is always with lower letter. Mb = mega bit; MB = mega bajt.但您不使用此约定:This signal needs 12000Kb space, but STM32 have only 128Kb SRAM。你不一致,请不要指导我。 -
@P__J__ 对不起,你说得对。我不是来冒犯任何人的,所以冷静点:)。 STM32 有 128KB SRAM。所以从一开始:一行 - 96k 16 位样本,8 行 - 1500KB; 15 个包,每个包每秒发送 100KB(这是不正确的,因为从 ADC 线我只接收 12 位样本,我必须提高精度,但这不是主要问题)。那么STM32中的USB可以以1,46484375MB/s的速度发送吗?如果不是,我还有另一个问题,如果我将样本数从 96k 更改为 48k,是否可以以 0,732421875MB/s 的速度发送?如果你觉得被冒犯了,再次抱歉:)。