工具/软件:
存在许多风险
我正在从事一个 ESP32-S3项目。 我正在使用 HSPI 与 ADS8688进行通信、该 HSPI 在1MHz 处以模式1 (在 SCK 下降沿采样)运行。
我使用 esp-idf 框架(4.4.7)设置总线、设备并使用 DMA 运行半双工传输。
问题
经过多次头部刮擦、我发现了 SCK 下降与 MISO 采样之间的延迟。 我通过对传输进行示波、并注意 ADC 在施加0V 电压时的输出(约为0x8000、是我 ADC 计数的中点)与采样内容(约为0xFFFF 或0x0000)对此进行了验证。
请参阅下面的读数、我应该采样的位置是0x7FF6 (接近0x8000的值)、但我实际得到的值是0xFF60 (接近满量程的值)。
如果它测量的只是中点的北部(0x8005)、则也是如此、然后得到0x0050。
我已经确定 MCU 采样延迟会导致信号出现抖动、从而使整个物体左移。 从"处理它"开始、我可以看到 MISO 在 SCK 下降后最多保持17ns、因此我的问题是这样的。
以下是信号转换(BE:SCK、YW:MISO)、以防您想知道振铃:
我尝试过的东西
- 增加 SCK -令我更接近15MHz 与1MHz 的预期。
- 添加电容来减慢信号速度并使用模式0 -这实际上是它之前的工作方式(错误)。 再次证明获取了正确的 MISO 位。 然而,这就是我所说的一个柏忌。
问题
这是您之前在实施过程中遇到的问题吗? 如何解决该问题? 我考虑添加缓冲器或锁存器来延迟/保持 MISO 状态的时间延长一点(10-50ns)、这种常见的做法是吗?
谢谢