发帖
12 0 1

12F-kit使用bl_iot_sdk的硬件spi例程 时序异常

KevinLi
高级会员

5

主题

38

回帖

520

积分

高级会员

积分
520
Ai-WB2系列 1109 12 2025-1-29 21:29:17

我试了 0.1Mhz和 8Mhz 下 的硬件spi,发现这24 Byte在8Mhz情况下如右图,时序不对。

(uint8_t send_data_RED_1[24];
ws2812的1个灯珠,模拟的01物理电平,需要用24Byte存储。所以我测试发送24Byte数据)

例程是bl-iot SDK的【/bl_iot_sdk/customer_app/peripheral/demo_spi/demo_spi/demo_spi_master.c】

求泽哥年后解答一下,明明硬件spi写着是支持40Mhz的。

附件为截图、时序图、log。其中最后一张图的报错overflow,我使用WB2-SDK的硬件spi(改gpio[0]!=22)也是这样。
上传的附件: 0129BUG.zip (775.36 KB, 下载次数: 1)


1.png 2.png 3.png 4.png 5.png 6.png


──── 0人觉得很赞 ────

使用道具 举报

2025-1-29 21:43:06
本帖最后由 KevinLi 于 2025-1-29 21:48 编辑

二分法测试了几个SPI频率:

1M 是 11个溢出
0.7M 是7个溢出
0.6M 是 4个溢出
0.5M 没有溢出。

0.5M是 (125ns *16 =) 2us
2us>1us(最大电平保持时间) 绝对驱动不了ws2812
2025-1-29 22:13:14

下图分别是启用DMA后的 0.6M与8M,虽然没报错溢出,但后者时序还是存在错误的

7-0.6M-DMA-secceed.png
7-8M-DMA-faild.png

2025-2-1 22:07:57
这是SPI模拟得2812单线协议吗,是不是硬件上其他电路有干扰,或者线上干扰
2025-2-3 19:36:42
HaydenHu 发表于 2025-2-1 22:07
这是SPI模拟得2812单线协议吗,是不是硬件上其他电路有干扰,或者线上干扰

硬件spi,仅MOSI输出。

您提到的干扰我确实没考虑到,我刚刚测了下,我全部引脚不接跳线、只把kit插到面包板上,问题依旧;另外,这个溢出我认为和外围没太大关系,因为是否 外接 逻辑分析仪/spi设备 ,USB 串口提示的溢出信息数量无变化。

我在网上查到的 spi任务优先级、DMA缓存区大小:前者我尝试0.6Mhz修改mk文件的【CONFIG_SYS_APP_TASK_PRIORITY】(因为就一个main task,没新建task)从15到20 但还是没区别; 我认为DMA缓存区大小无关,芯片手册看到的足够大。
2025-2-5 08:51:34
现在问题解决了没~
7 天前
爱笑 发表于 2025-2-5 08:51
现在问题解决了没~

没有,并且没思路。
每一个wb2 spi论坛帖子我都逛了,bl sdk我也试了。
目前还有2个没试过:
一个是 论坛spi-sd卡的,我关闭串口输出试试;
另一个是,用【vTaskSuspendAll、xTaskResumeAll】来终止调度,期间专注于spi输出。
KevinLi 发表于 2025-2-6 22:46
没有,并且没思路。
每一个wb2 spi论坛帖子我都逛了,bl sdk我也试了。
目前还有2个没试过:

我让这方面的技术同事给你看一下
6 天前
本帖最后由 KevinLi 于 2025-2-7 10:40 编辑

前者我保持WB2 sdk的默认gpio[0]是22就行对吧,我直接编译烧录,时序图我稍后记录一下;我的需求就是用后者,这都搞了半个月了8Mhz都没成功。

前者这个例程,我还是无法正常运行,我10天前也试过,我知道和readme文档效果不同,但不知道哪出问题了。

默认10Mhz,周期应该是100ns,一样的固件烧录到两个板子。

12F-kit如图,io初始化就没执行下去,不知道文档怎么成功的:
temp-pic1.png


32s-kit 初始化成功,但传输成功一会,就变成溢出了;时序D7是mosi乱乱的,后边溢出也没输出了:
temp-pic2.png


这个压缩包是32s的截图、log、时序图,2者的固件
上传的附件: 32s-spi-0207.zip (185.19 KB, 下载次数: 0)



论坛spi_SD卡读写,我用人家编译好的固件烧录到12f-kit 时序也是异常的,我在他评论区留言了。
您需要登录后才可以回帖 立即登录
高级模式
12下一页