AC690X驱动WS2812(SM16703P)点亮RGB灯带

在使用AC690X系列蓝牙时,需要设计驱动几十个RGB灯带的程序,经一段时间学习后成功驱动,现在把实现过程分享给大家共同学习。

1.芯片说明

此类芯片协议采用的是单极性归零码,每一个码元都必须有高低电平。本协议的每个码元起始为高电平,高电平时间宽度决定“0”码或者“1”码。

名称 描述 最小值 典型值 最大值 单位
T0H 0码,高电平时间 0.3 us
T1H 0码,低电平时间 0.9 us
T0L 1码,高电平时间 0.9 us
T0H 1码,低电平时间 0.3 us
Trst Reset码,低电平时间 80 us

关于其他的参数,级联等,芯片手册均有说明,这里不再赘述。作者在查阅资料时发现关于归零码高低电平时间的定义有多种,只要范围在如下时间左右基本都可实现驱动,零码:高电平时间400ns,低电平时间800ns;‘1’码:高电平时间800ns,低电平时间400ns,‘0’码:高电平时间400ns,低电平时间800ns。

2.驱动方法

作者通过SPI驱动RGB灯条,在AC690X的SDK基础上利用SPI1的PB12和PB11分别作为数据线和时钟线进行驱动,此驱动方法的弊端就是PB11会有时钟信号输出不能再用于其他功能,PB10只要设置SPI1为单向通讯即可做普通IO使用。

3.代码设计

SPI1驱动的方式是8 Bit 模拟一个归零码的一个‘0’或者‘1’;因此‘0’码对应的数据为0xC0,‘1’码对应的数值为0xFC。读者亦可使用三个时钟周期模拟一个‘0’码或者‘1’码,这种方式一个IC的24BIT刚好是1Byte的时钟周期,注意两种模拟方式时钟周期不同。回归正题,首先在lcd_spi.c文件做出如下修改:

//#if LCD_128X64_EN
#if 1

尽量不要在sdk_cfg.h中直接修改LCD_128X64_EN 的值为1,这样的操作会编译不需要的代码。 开启此SPI相关函数定义之后,在初始化时初始SPI相关寄存器(SDK直接调用SPI1_init()函数即可,速度设置为8M)。

while(1)
{clear_wdt();SPI1_DmaWrite(RGBData,24*RGBNum);
}

RGBNum为RGB灯珠的数目,可依据实际数目进行设置参数;若实际RGB颜色出现混乱的现象,RGBData数据组成修改为:N个0x00 + RGB数据 + M个0x00,N和M的取值用户自行设置验证。

4.结束语

以上便是本人使用AC690X设计RGB驱动的实现过程,鄙人才疏学浅,文章如存在错误之处望大家不吝赐教,赠于鄙人学习的机会。欢迎大家进行交流学习,企鹅583671536。

JL690X(2)驱动RGB灯带相关推荐

  1. FPGA驱动RGB灯带WS2812B

    记录一下短学期做的东西 -- FPGA驱动RGB灯带WS2812B 设计目标 1.有多种模式,按键调节模式等参数: 2.模式1:红绿蓝白四色循环显示,速度.亮度可调: 3.模式2:7彩虹+白色,闪烁, ...

  2. 驱动RGB灯带MCU阐述

    驱动RGB灯带MCU推荐 本文仅分享个人工作中积累的经验,无任何商业行为,若有更好的方案欢迎交流共同进步. 一.RGB灯带驱动IC简介 市面上存在多种RGB驱动IC,比如:WS2812,YX1903B ...

  3. PWM+DMA驱动SK6812MINI灯带

    SK6812MINI是一款常见的RGB灯带,它的工作状态稳定,驱动简单,通过简单的代码即可实现流动彩虹灯的功能.下面让我们来看一下它的具体实现流程吧! 1.硬件配置 PWM配置: 选择对应IO口的TI ...

  4. esp32 micropython 控制ws2812 RGB灯带

    ws2812RGB灯带 ==注意:==灯带需要三个线头都接好,然后程序输出控制后才能亮,只是正负极插好不会亮的 连接走线: esp32 RGB灯带 5v引脚 母头电源处 gnd 母头gnd D12引脚 ...

  5. 基于arduino uno + WS2812b RGB灯带控制程序三

    基于arduino uno + WS2812b RGB灯带控制程序三 下面这个函数,中的NEO_GRB + NEO_RGB参数搭配不一样,显示的效果和变换的样式就有差异,自由组合测试看效果. Adaf ...

  6. 51单片机-RGB灯带

    这个实验是灯带上有30颗RGB灯,每颗芯片控制3颗RGB灯,要使这30颗灯全亮蓝色. 这个DIN就是输入口,它输出高电平或者低电平,然后将高低电平分配给OUTR(红),OUTG(绿),OUTB(蓝), ...

  7. RGB灯带简单案例 - 玛克君arduino

    #include <Adafruit_NeoPixel.h> //128盏灯 信号口7 Adafruit_NeoPixel pixels = Adafruit_NeoPixel(128, ...

  8. STM32F103ZE开发板WS2812B RGB灯带调试

    调试时采用5颗灯珠的灯带. WS2812B每一颗灯都由24位控制,分为8位G,8为位R,8位B.从0到0xFF,数值越大那一种颜色越亮.发送的信号根据高低电平的时间分为1,0,和RES信号.103开发 ...

  9. ws2812/6810 RGB灯带在高通芯片上的控制

    前段时间开发ws2812驱动.网上有一些参考,但是全部是在单片机上用pwm实现,估计是考虑实时性和时间高精度要求. 而我的项目的架构中,就只有一个高通的8939,并且只有一路pwm,还被红外ir给霸占 ...

最新文章

  1. PlaceHolder 控件使用
  2. maven 打包指定依赖包_[Maven]-Maven基础-01-基础概念
  3. MySQL基础总结,认真看完这篇就够了!!!
  4. [零基础学JAVA]Java SE面向对象部分-17.面向对象高级(05)
  5. c语言算法课件,《C语言常见算法》PPT课件.ppt
  6. [20170612]FOR ALL COLUMNS SIZE repeat(11g).txt
  7. js 浅拷贝(浅复制、浅克隆)、深拷贝(深复制、深克隆)
  8. 编译内核是几个常用的命令备忘
  9. 阿里巴巴CTO程立:双11的再进化
  10. 定制通达信多周期同列版面
  11. win10解决IE浏览器安装不上的问题
  12. 考研作息时间安排表(19通信考研党)
  13. 明尼苏达大学计算机工程,关于美国明尼苏达大学电气与计算机工程系洪明毅博后学术报告的通知...
  14. 2019 Python接口自动化测试框架实战开发(一)
  15. 兔年首文迎新春-Cesium橘子洲烟花礼赞
  16. 【ShaderToy】跳动的心❤️
  17. FineReport报表工具最新版本细则
  18. Registration小结2
  19. Bilateral Filter、Cross/Joint Bilateral Filter
  20. openfoam 源代码解析

热门文章

  1. Wonderware-InTouch脚本程序、字符串拆分
  2. Python爬虫违法吗?如何判断爬虫采集内容是否违法?
  3. 腊月廿五链界观区块链资讯
  4. 天线巴伦制作和原理_传输线巴伦的原理设计、制作及测试
  5. TMS320C6657GPIO相关函数理解
  6. unittest集成数据驱动-ddt
  7. 人脸区域马赛克,圆形(心形)模糊Mask
  8. 达梦数据库培训学习心得
  9. python练习题!
  10. zan php demo,Zan 连接池