完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛|
几天来我一直在尝试与 ADS8330 ADC 通信,但我无法让它工作。问题出在 SPI 模式附近,因为似乎没有适合该设备的模式:无论使用何种模式,更改 CPHA 都会以相同的方式影响 MOSI 和 MISO,但该 ADC 使用下降沿对 MOSI 和锁存 MISO 的下降沿。
在屏幕中,从上到下显示了四个波形: 1:SCLK 2:CS 3:MISO 4:MOSI 可以看出: MISO 在下降沿被锁存,因此应在上升沿进行采样。 MOSI 在上升沿被锁存,因此应在下降沿进行采样。 空闲时 SCLK 为低电平。 MISO 数据已准备好在第一个上升沿进行采样。 根据ESP32s3手册: 模式0:CPOL = 0,CPHA = 0;当 SPI 处于空闲状态时,SCK 为 0;数据在 SCK 的下降沿改变,在上升沿采样。第一个数据在 SCK 的第一个下降沿之前移出。 模式 1:CPOL = 0,CPHA = 1;当 SPI 处于空闲状态时,SCK 为 0;数据在 SCK 的上升沿改变,在下降沿采样。 模式 2:CPOL = 1,CPHA = 0;SPI处于空闲状态时SCK为1;数据在 SCK 的上升沿改变,在下降沿采样。第一个数据在 SCK 的第一个上升沿之前移出。 模式 3:CPOL = 1,CPHA = 1;SPI处于空闲状态时SCK为1;数据在 SCK 的下降沿改变,在上升沿采样。 因此,将 SPI 模式设置为 0 将导致 MISO 的通信正确但 MOSI 的通信错误,而将 SPI 模式设置为 1 将导致 MOSI 的通信正确但 MISO 的通信错误。这确实是真实的,并且与尝试与芯片通信的真实世界测试相匹配。 SPI 模式当前设置为 1,我可以看到 ADC 正在正确接收配置数据,但由于 MISO 是错误的,我读取数据的时间已经晚了半个时钟周期,数据已损坏。测试信号的值约为 0x7fff,而我正在读取的值约为 0xffff。 如果我将模式设置为 0,ADC 无法将我的配置命令解释为仅采样一个通道,因此即使配置错误,它也会吐出 ADC 数据。通过这种方式,我可以在软件中看到我在 0x7fff 附近收到了正确的采样值,但其他所有值都来自错误的通道。 我正在寻找的行为是: * 在上升沿锁存 MOSI 上的 数据 * 在上升沿上 MISO 上的样本数据 我如何配置 ESP32 来做到这一点?我正在使用带有 ESP-IDF v 5.0、SPI2 单元的 ESP32s3 芯片。 |
|
相关推荐
1个回答
|
|
|
|
|
|
|
|
只有小组成员才能发言,加入小组>>
455 浏览 0 评论
977 浏览 0 评论
1701 浏览 0 评论
请问一下我想用ESP8685直接替换ESP8266而不用写程序,可以让ESP8685直接通过之前ESP8266的外挂的flash运行程序吗
1357 浏览 1 评论
1248 浏览 1 评论
为blufi_device设置自定义名称,但是无法修改,为什么?
1273浏览 4评论
请问ESP32-S2-WROOM怎么获得ESP32-S2外接FLASH的唯一序列号?
941浏览 3评论
2371浏览 3评论
ESP-IDF的VScode插件的build按钮点击会报错的原因?
2557浏览 3评论
ESP-Jumpstart例程中第5个工程:5_cloud连接报错是哪里的问题?
1066浏览 2评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-9 22:37 , Processed in 0.594339 second(s), Total 42, Slave 35 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
578
