完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛|
我在主模式下使用 HSPI 外围设备将数据传输到另一个设备。我想使用 26.67MHz 的时钟频率(即 80MHz 除以 3)。其他设备可以处理该速度,但是从 SCLK 到在 MISO 上输出其数据的延迟可能高达 15ns。
我遇到的问题是,当对 SPI_CLOCK 寄存器进行编程以将系统时钟除以 3 时,我只能让它输出时钟高电平 12.5ns 和低电平 25ns。我使用的是 SPI 模式 1,因此数据在前沿发生变化,在后沿被计时为 ni。为了处理 15ns 的延迟,我需要时钟是相反的,即高电平持续 25ns,低电平持续 12.5ns。 但它没有提供设置分频因子 3 的替代方法。 我尝试了 SPI1CLK 寄存器的各种设置: SPI1CLK = (2 << 12) | (2 << 6) | 2; // 失败,时钟保持高电平 SPI1CLK = (2 << 12) | (2 << 6) | 1; // 失败,时钟变为 HLHLL SPI1CLK = (2 << 12) | (2 << 6) | 0; // 12.5ns 高,25ns 低 SPI1CLK = (2 << 12) | (1 << 6) | 2; // 12.5ns 高,25ns 低 SPI1CLK = (2 << 12) | (1 << 6) | 1; // 失败,时钟为 80MHz SPI1CLK = (2 << 12) | (1 << 6) | 0; // 失败,时钟变为 HLHLL SPI1CLK = (2 << 12) | (0 << 6) | 2; // 失败,时钟变为 HLHLL SPI1CLK = (2 << 12) | (0 << 6) | 1; // 12.5ns 高, 25ns 低SPI1CLK = (2 << 12) | (0 << 6) | 0; // 失败,时钟为 80MHz 我错过了什么吗? 我想我可以通过切换到 SPI 模式 0 来解决这个问题,这样数据在下降沿发生变化并在上升沿计时。但是当我这样做时(通过清除寄存器 SPI_USER 的第 6 位和第 7 位而不是设置它们),时钟变为 25ns 高和 12.5ns 低,这违背了更改为模式 1 的目的。另外,谁能告诉我什么 位7的SPI_USER呢?技术参考中没有记录,但是当选择模式 1 时,驱动程序设置(连同位 6)。 |
|
相关推荐
|
|
只有小组成员才能发言,加入小组>>
944 浏览 0 评论
1671 浏览 0 评论
请问一下我想用ESP8685直接替换ESP8266而不用写程序,可以让ESP8685直接通过之前ESP8266的外挂的flash运行程序吗
1330 浏览 1 评论
1233 浏览 1 评论
5015 浏览 2 评论
为blufi_device设置自定义名称,但是无法修改,为什么?
1252浏览 4评论
请问ESP32-S2-WROOM怎么获得ESP32-S2外接FLASH的唯一序列号?
927浏览 3评论
2334浏览 3评论
ESP-IDF的VScode插件的build按钮点击会报错的原因?
2526浏览 3评论
ESP-Jumpstart例程中第5个工程:5_cloud连接报错是哪里的问题?
1051浏览 2评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-2 01:57 , Processed in 0.802279 second(s), Total 69, Slave 52 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
450
