工具/软件:
大家好、im 使用 ADS8866 对信号进行采样(使用 ESP32-S3)、我可以完全利用单核以大约 40ksps 的速率进行采样。 问题是在一个循环中发送单个 SPI 读取请求。 我已经尽可能地进行了优化、以便可以测量该采样率 (40KSPS)。 如果没有发送多个 SPI 事务(每个样本一个)、我看不到从芯片读取数据的任何方法。 我缺少什么吗? 如何在不加载 CPU 的情况下读取多个样本、以便该 CPU 也可用于其他任务?
此致
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.
工具/软件:
大家好、im 使用 ADS8866 对信号进行采样(使用 ESP32-S3)、我可以完全利用单核以大约 40ksps 的速率进行采样。 问题是在一个循环中发送单个 SPI 读取请求。 我已经尽可能地进行了优化、以便可以测量该采样率 (40KSPS)。 如果没有发送多个 SPI 事务(每个样本一个)、我看不到从芯片读取数据的任何方法。 我缺少什么吗? 如何在不加载 CPU 的情况下读取多个样本、以便该 CPU 也可用于其他任务?
此致
尊敬的 Eysteinn:
感谢您的帖子和您的耐心,因为我一定错过了这个帖子。 我不熟悉该 ESP32-S3 MCU、但需要注意的一个一般提示是尝试减少中断时间。 也就是说、尽量不要执行任何耗时的操作、例如打印读取的数据。 这将使循环更快完成。 另一种方法(如果您的 MCU 有) 是使用 DMA 将 SPI 读取数据传输到存储器(您可以在存储器中对其进行后处理)、从而使 CPU 更快地返回到 SPI 读取。 我建议也联系 ESP32 支持。
此致、
Samiha