这个SPI驱动2812感觉有点鸡肋,CPU解放了似乎又没完全解放,还多占内存。
还是手动码代码模拟IO驱动等AI805 ...
如果使用的是8051U的话,试试HSSPI+DMA的组合。
指定PLL输出时钟为96MHz,然后通过HSCLKDIV、SPI_CLKDIV和SPCTL的组合乘积为30分频,使得最终SPI获取的时钟频率始终为3.2MHz。
不管mcu的频率如何变化,SPI外设获取的频率不受影响 21cnsound 发表于 2025-6-9 21:57
用逻辑分析仪抓一下第一颗2812输入、输出的时序就很容易发现问题所在了。初步猜测是你输出的时序问题。 ...
你好,用示波器观察到mcu重启后,MOSI针脚有持续760us时长的高电平时间。不知道是否跟这个有关系。
更新:
应用了第13楼的解决方法后,再次观测上电后MOSI针脚的输出,仍会有一段时间持续输出某种电平,不好描述是高还是低电平:电压幅值只有1.44V。但这已经不会影响第一颗灯珠了。
更新:
又查了这个灯珠的手册,所谓低电平最大值为0.3Vcc。恰好,1.44V < 0.3Vcc。可是这个情况也太危险了,差一点,配置为双向I/O的解决方法也不灵了。
完美,最终从GPIO配置上解决了这个上电后第一颗灯珠刺眼的问题!
具体来讲:将原本配置为推挽输出的MOSI,修改为准双向I/O,即可解决这个问题 :-)
再次感谢大家 ! BeHappy 发表于 2025-6-10 16:12
你好,用示波器观察到mcu重启后,MOSI针脚有持续760us时长的高电平时间。不知道是否跟这个有关系。
更新 ...
是MOSI直连2812的IN吗?这之间有上拉、下拉电阻之类的连接吗? 21cnsound 发表于 2025-6-10 19:24
是MOSI直连2812的IN吗?这之间有上拉、下拉电阻之类的连接吗?
对,直连的。
没有配置任何上/下拉电阻 还可以端口MOSI和第一颗2812的IN,单独测量一下到底是MCU的MOSI输出的某种电平,还是2812的IN影响的?
玩单片机最好能知其所以然。 21cnsound 发表于 2025-6-10 19:33
还可以端口MOSI和第一颗2812的IN,单独测量一下到底是MCU的MOSI输出的某种电平,还是2812的IN影响的?
玩 ...
老师儿,您好
将MOSI配置为推挽输出,并断开WS2812与MOSI的连接,再次测量,仍然能够观测到MOSI针脚,在mcu上电后有一段高电平持续时间。
所以,出现这种刺眼的情况,确系mcu的GPIO配置所致。 BeHappy 发表于 2025-6-10 19:57
老师儿,您好
将MOSI配置为推挽输出,并断开WS2812与MOSI的连接,再次测量,仍然能够观测到MOSI针脚,在m ...
断开后,准双向模式还输出异常电平吗?
MCU用的哪一款?用的哪个PIN? 21cnsound 发表于 2025-6-10 19:59
断开后,准双向模式还输出异常电平吗?
MCU用的哪一款?用的哪个PIN?
mcu: 8051U-32bit
MOSI:P1.5
以下均为将MOSI配置为准双向I/O时的截图。
第一张,断开WS2812的IN与MOSI的连接测得的图像;
第二张,连接WS2812的IN与MOSI针脚测得的图像。
BeHappy 发表于 2025-6-10 20:13
mcu: 8051U-32bit
MOSI:P1.5
以下均为将MOSI配置为准双向I/O时的截图。
这么长时间的高电平肯定不正常,代码贴上来看看。
页:
1
[2]