当单片机遇到这颗LED驱动芯片,

最近和一个小伙伴调试一个驱动芯片

这是一颗简单的 LED 驱动芯片,串行LED 驱动芯片

芯片驱动核心时序如下

常规的LED驱动方式是一个GPIO口控制一个 LED 灯,如果要控制LED灯的亮度的话,GPIO口还需要具备PWM的功能。

这颗芯片的特点是串联式的,可以使用一个 GPIO 通过发送编码信号来控制一串的 LED 灯。

这里面有一个核心的问题

就是逻辑 1 和逻辑 0 需要的最短时间是 0.3us,如果我们用单片机延时的话,那必然在发送的时候需要延时一段时间,这段时间单片机的核心就被占用无法做其他工作了。

那如果用 SPI 来编码的话,SPI 要求的频率是1/0.3u = 3333333HZ。

逻辑1发送SPI数据:0x6,对应二进制 110

逻辑0发送SPI数据:0x4,对应二进制100

问题是很多常见的单片机不能设置这样的 SPI 频率,普通的单片机时钟频率大部分都是 100HZ 的倍数。

当然了,在众多的串行LED芯片中,是有其他频率时间供我们选择的。

➵➵➵➵➵➵➵➵➵➵➵➵➵➵➵

直接用单片机延时拉高拉低GPIO口来实现这个时序的话

**逻辑 1 发送:**拉高 GPIO ,延时 0.6 us,拉低 GPIO ,延时 0.3us

**逻辑 1 发送:**拉高 GPIO ,延时 0.3 us,拉低 GPIO ,延时 0.6us

问题来了,我们用的一颗赛元微的单片机,在执行 for 指令的时候,就会出现执行很慢,直接跑到 ms 级别(因为这样的限制,这个方案直接被否决了)。

我查了下这颗芯片的内核,用的是51的内核,但我在使用51单片机没有遇到这样的问题。

使用这样方案的话

发送一个字节需要延时:0.9us * 8 = 7.2us

一个LED 灯需要发送3个字节:7.2us * 3 = 21.6us

如果我们硬件设计10个LED 灯,那就需要延时 216us

➵➵➵➵➵➵➵➵➵➵➵➵➵➵➵

还有一种方案是用定时器中断来完成的,跟一个大佬讨论了这个芯片的时序,我们交流下来的方法是这样的

核心的思想是在第二种方案的基础发送逻辑1和逻辑0的时候,不要使用延时的方式,而在定时器中断中去完成。

这个方案的难点在软件的处理上需要复杂一些,发送LED数据和操作逻辑1和0的时候有点异步的思想。

➵➵➵➵➵➵➵➵➵➵➵➵➵➵➵

浅谈了下这颗芯片的操作,大家有其他想法,欢迎评论讨论

相关推荐
雅欣鱼子酱3 分钟前
Type-C 终端应用里 给产品增加PD快充取电 PD取电诱骗芯片有什么推荐?
人工智能·单片机·芯片·电子元器件
polarislove021424 分钟前
9.4 呼吸灯实验-嵌入式铁头山羊STM32笔记
笔记·stm32·嵌入式硬件
菩提祖师_40 分钟前
基于单片机指纹密码门禁的设计与实现
数据库·单片机·嵌入式硬件
广州灵眸科技有限公司41 分钟前
瑞芯微(EASY EAI)RV1126B RTC使用
单片机·物联网·实时音视频
白书宇1 小时前
【STM32实战】从零开始写Linux 0.12内核 第2个实验 准备开发板
linux·stm32·嵌入式硬件
三佛科技-134163842121 小时前
SM7055-18 输出18V 250mA低成本非隔离BUCK、 BUCK-BOOST方案典型应用电路(电磁炉方案)
单片机·嵌入式硬件·物联网·智能家居·pcb工艺
d111111111d1 小时前
STM32 I2C通信详解:从机地址 vs 寄存器地址
笔记·stm32·单片机·嵌入式硬件·学习·模块测试
q_30238195561 小时前
宇树机器人又刷第一!具身智能靠强化学习解锁直立行走与快速奔跑
人工智能·python·单片机·机器人·ai编程
安当加密1 小时前
断网服务器如何防“物理入侵”?用SLA 操作系统双因素认证实现离线双因子认证
服务器·stm32·单片机
广州灵眸科技有限公司10 小时前
瑞芯微(EASY EAI)RV1126B CAN使用
linux·网络·单片机·嵌入式硬件