ST意法半导体
直播中

史晓明

7年用户 883经验值
私信 关注
[问答]

如何计算微控制器加载数据的速度?

  • 我如何计算微控制器的速度,它可以使用 SDIO 1 位和 SPI 加载数据的速度是多少?我可以使用 SPI 将数据加载到存储卡中吗?如果是,我是否必须使用 FATFS 库来加载?我有使用 SDIO 的经验,它使用 FATFS。
  • 速度是否取决于使用 f_write 和 f_printf 之类的编码,还是速度取决于我们提供的时钟速度 (HSI)?
  • 我在哪里可以得到这些信息?
  • 我正在寻找可能以 20,000 个样本/秒的速率将数据加载到存储卡中的最快串行通信










回帖(1)

王雷

2022-12-28 13:57:35
>>如何计算微控制器加载数据的速度。
机器是同步的,所有时钟彼此之间都有定义的比率。
您可以进行时间转换,就像在现实生活中使用秒表一样,看看编写 X 长度的块需要多长时间。测量多个微秒或毫秒内的操作。使用自由运行的 TIM 提供一个计数器,为您提供经过的时间。
只有在需要文件系统时才需要 FATFS。你可以在没有它的情况下使用记忆,但这会使交换变得困难。即,如果您希望能够将卡插入 Windows PC,最好有一个可识别的文件系统,否则您必须编写应用程序和驱动程序,我不怀疑您知道该怎么做。
预计 SPI/1 位模式至少比 SDIO/4 位慢 4 倍,而且可能更糟。
BSP中有一个支持SPI模式的AdaFruit SD库。
>>速度是否取决于使用 f_write 和 f_printf 之类的编码,还是速度取决于我们提供的时钟速度 (HSI)?
这将取决于多个变量,为接口计时是一个,另一个是正在写入的数据的大小和对齐方式。写入小块数据需要大量交互,而且会很慢,将一个扇区写入媒体也会产生显着的命令/响应开销,可以通过写入更大的扇区组来减少。
>> 我在哪里可以得到这些信息?
可以使用简单的数学推断天花板,并尝试简单的实验。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分