OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2528|回复: 3

MBI5030如何用SPI直接驱动

[复制链接]

3

主题

10

帖子

0

精华

初级会员

Rank: 2

积分
94
金钱
94
注册时间
2016-11-8
在线时间
23 小时
发表于 2019-6-12 16:38:49 | 显示全部楼层 |阅读模式
2金钱
正在用两片HC595和3片MBI5030驱动16*16的RBG点阵灯,采取逐行扫描的方式。
硬件简述:
1. 两片HC595通过SDO接SDI方式级联,共用Latch_1;
2. 三片MBI5030也采用SDO接SDI方式级联联,共用Latch_2;
3. 第一级MBI5030控制RGB灯红色,第二极绿色,第三极蓝色,共13行LED,每个芯片只用13端口;
3. 第一级HC595与第一级MBI5030共用SCK和SDI。

软件问题:
1. IO模拟时序来实现扫描点亮的方式会出现闪烁:
    1.1 每发送一行的RGB数据给MBI5030(grayscale[3][16],三极芯片,每级16通道,每通道16bit),紧接着就发送一个16位的选通数据给HC595打开对应LED行的电源开关,如此循环完成扫描。但是IO翻转的方式发送数据消耗时间太长,导致每次更新完MBI5030数据,HC595不能很快切换至下一行选通的电源,从而导致更新MBI5030数据后上一行LED出现闪烁。
    1.2 现在想用SPI取代IO模拟的方式,这样发送数据应该要快很多,节省些CPU资源。但是MBI5030的latch信号是在SDI接收最后一位数据的时间段完成翻转(如附图时序),而普通SPI的数据传输无法获取传输最后一位数据的时间点,所以很难实现。有一个想法是用两个SPI,SPI1传输数据给SDI,SPI2用来模拟Latch_2的时序。但会产生一个新的问题,如何让两个SPI同步发送。

请各位不吝赐教,谢谢!



Capture.JPG
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2019-6-13 02:41:12 | 显示全部楼层
回复

使用道具 举报

3

主题

10

帖子

0

精华

初级会员

Rank: 2

积分
94
金钱
94
注册时间
2016-11-8
在线时间
23 小时
 楼主| 发表于 2019-6-15 14:12:43 | 显示全部楼层

看来还是沉掉了,打算换TLC5940,这种标准的SPI驱动应该会更快。
回复

使用道具 举报

3

主题

11

帖子

0

精华

新手上路

积分
39
金钱
39
注册时间
2019-7-8
在线时间
10 小时
发表于 2019-8-20 15:16:50 | 显示全部楼层
tlc5940为什么会在数据传输完成之后非要产生一个时钟pulse,如果使用标准SPI那么如何产生那个脉冲
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-28 06:46

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表