游戏电视苹果数码历史美丽
投稿投诉
美丽时装
彩妆资讯
历史明星
乐活安卓
数码常识
驾车健康
苹果问答
网络发型
电视车载
室内电影
游戏科学
音乐整形

利用SPI控制WS2812的显示

  简介:利用ESP32中的硬件SPI控制WS2812的显示。使用了高频三极管9018作为输出接口反向器,确定合适的电阻参数,验证了驱动方案的硬件和软件的可行性。
  关键词:WS2812,ESP32,SPI
  01WS2812
  智能集成LED光源WS2812〔1〕通过简单的外部接口、特有的级联方案便于利用MCU完成多个LED控制,极大简化了LED控制接口。相比于传统的单片机LEDIO口复用控制方案〔2〕,使用WS2812则更加的简介。
  图1。1灯珠控制闪烁一、芯片简介1、特点与优势在5050封装内集成有控制电路和RGB芯片,形成完整像素点控制;内置扫执行好整形电路,传递到级联下一节点时,不会产生信号失真累积效应;内置复位电路与掉电复位电路;每个RGB灯都有256亮度级别,可以形成中颜色,刷新频率不低于400Hz;通过信号线完成端口级联;传输距离在5米之内,无需增加额外电路;在刷新频率30帧秒中,低速模式下可以控制不少于512颗灯,高速模式下则超过1024颗灯;数据传输速率为800kbps;颜色一致性强,价格低;
  图1。1。1灯带点亮后的效果2、应用全色彩模块;全色彩柔光灯带;LED装饰灯带;室内、室外LED不规则显示屏;3、管脚封装
  图1。1。2WS2812封装与管脚功能定义二、工作原理1、工作电压
  根据WS2812〔3〕数据手册,它的工作电压范围在,输入信号电压在工作电压VDD0。5V范围内。三路LED的参数:
  【表211RGB参数】
  EmittingcolorWavelength(nm)Luminousintensity(mcd)Current(mA)Voltage(V)Red620630550700161。82。2Green51553011001400162。83。1Blue465475200400163。03。42、控制协议
  WS2812的级联控制协议非常简单。通过一根信号线就可以进行串行异步信号发送。
  下面显示了四个WS2812通过数据性级联的方式。在串行通讯中使用不同高低电平脉冲表示数据0,1编码。
  图1。2。1级联方法与编码波形
  【221。脉冲编码参数】
  脉冲定义时间误差T0H0code,highvoltagetime0。4us150nsT1H1code,highvoltagetime0。85us150nsT0L0code,lowvoltagetime0。85us150nsT1L1code,lowvoltagetime0。4us150nsRESlowvoltagetimeAbove50s
  下面是三个WS2812级联发送过程对应的波形。可以看到通过发送三组24bit的编码,可以控制三个级联的WS2812灯的颜色。数据D1是直接由MCU数据端口控制,D2,D3,D4则是WS8212内部整形放大后再进行传输。
  使用RESET编码,也就是超过50us的低电平形成WS2812输出锁定。
  图1。2。2三个WS2812级联发送过程对应的波形
  每组24bit对应的的GRB编码如下所示。发送颜色顺序为GRB,字节的高位在前。
  图1。2。3每组24bit对应的的GRB编码
  图1。1。3灯带点亮后的效果02ESP32SPI
  由于控制WS2812的脉冲高低电平在0。85us,0。4us,时间间隔,为了产生这样的脉冲,使用普通的软件控制IO口是无法完成的,下面测试使用其中的硬件SPI〔4〕产生控制脉冲信号。一、ESP32中的硬件SPI
  在ESP32中具有两路硬件SPI端口,可以最快达到始终速率80MHz,这可以满足对WS2812的控制脉冲的速率。1、SPI缺省管脚
  如果使用SPI缺省配置管脚,输出速率可以达到80MHz,如果使用其它GPIO,则输出的速率则需要限制在40MHz以下。
  【表211ESP32硬件SPI缺省端口】
  管脚HSPI(id1)HSPI(id2)SCK1418MOSI1323MISO12192、ESP32实验转接板
  利用ESP32实验转接板〔5〕,测试硬件SPI端口。
  图2。1。1ESP32实验转接板
  使用SPIid1,对应的SPI,MOSI,MISO的对口为,14,13,12,对应的实验转接板上的输出管脚如下图所示,从右往左分别是:
  ESP32转接板SPI管脚定义:
  SCK:PIN9
  MISO:PIN8
  MOSI:PIN7
  图2。1。2ESP32中对应的SPI,MOSI,MISO的管脚3、测试SPI输出波形
  初始化SPI端口,使得输出速率为10MHz,输出数据0x55,0xaa,使用示波器观察MOSI,SPI波形。(1)测试缺省SPI模式frommachineimportPin,Timer,SPIimporttimehspiSPI(1,10000000,sckPin(14),mosiPin(13),misoPin(12))bufbytes((0x55,0xaa))print(buf)whileTrue:hspi。write(buf)time。sleepms(10)
  通过测试波形可以看到输出SPI的频率为5MHz。SPI正常的电平为低电平。
  图2。1。3测量SPI,MOSI的输出波形
  设置输出的波特率为2。5MHz,此时便可以输出0。4us的低脉冲。
  设置输出波特率为2。5MHz,可以产生所需要的0。4us的电平输出。波形如下图所示:
  图2。1。4设置输出波特率为2。5MHz,可以产生所需要的0。4us的电平输出二、使用晶体管反向MOSI
  使用晶体管将MOSI波形进行反向,这可以:能够满足WS2812控制脉冲电平极性要求。它要求控制信号在平时为高电平,通过低电平脉冲获得复位信号、01数据位信号。提高带载能力。1、信号反向电路
  图2。2。1MOSI信号反向电路2、电路测试(1)晶体管BC547
  由于BC547B的截止频率只有300MHz,信号通过BC547之后,引起了很大的失真。下图显示了信号波形。
  图2。2。2MOSI输入输出信号(2)晶体管9018
  为了提高响应速度,对电路进行如下的调整:
  电路元器件参数:
  Q1:9018
  R1:10k
  R2:200
  图2。2。3电路参数修改之后输入输出波形三、产生控制波形1、产生RESET信号
  根据WS2812控制信号协议,RESET是时长超过50us的低电平,因此,在2。5MHz的波特率下,连续输出125bit的高电平,也就是16个byte的0xff,则可以产生:个1输出,便可以产生的低电平。frommachineimportPin,Timer,SPIimporttimehspiSPI(1,2500000,sckPin(14),mosiPin(13),misoPin(12),polarity0)bufbytes(〔0xff〕16)print(buf)whileTrue:hspi。write(buf)time。sleepms(10)
  图2。3。1连续输出16个0xff所产生的RESET信号2、产生RGB数据
  根据WS2812协议,每一组RGB需要24个bit,每个bit可以有SPI输出的3个bit来表示,因此输出一组RGB数据,则需要SPI输出。
  由于存在MOSI输出反向,所以对应的RGB输出的高低电平需要进行反相。
  RGB的0,1bit对应SPI:
  RGB0:SPI011
  RGB1:SPI001(1)转换代码frommachineimportPin,Timer,SPIimporttimehspiSPI(1,2500000,sckPin(14),mosiPin(13),misoPin(12),polarity0)defbyte2bin(b):bstrbin(b)〔2:〕return0(8len(bstr))bstrdefrgb2byte(r,g,b):strbyte2bin(g)byte2bin(r)byte2bin(b)spistr。join(〔(lambdas:011ifs0else001)(x)forxinstr〕)rgbdim〔int(spistr〔i8:i88〕,2)foriinrange(9)〕returnbytes(rgbdim)rgbbytergb2byte(0xff,0x80,0x3f)print(rgbbyte)rstbytebytes(〔0xff〕16)outbyterstbytergbbytewhileTrue:hspi。write(outbyte)time。sleepms(10)(2)输出波形
  输出RGB分别为:0xff,0x80,0x3f,对应的数据波形为:
  图2。3。2带有一个RST信号的一组RGB波形
  将RGB对应的输出脉冲展开后的波形,可以检查输出波形是否符合WS2812对应的控制信号协议。
  图2。3。3将RGB对应的输出脉冲展开后的波形四、测试WS28121、波形失真
  编程输出RGB为(0xff,0x0,0x0),对应WS2812应该是输出红色,但直接接入之后,WS2812输出为白色。
  通过观察DI的波形,可以看到它处于高电平的时间超过400us,并且低电平大约为1。5V。这说明Q1的驱动不足。
  图2。4。1DI波形以及对应的WS2812颜色2、降低R1的阻值
  降低R1阻值,提高Q1响应时间,以及输出低电平降低。最后将R1的阻值更换成3。3k欧姆之后,D1波形有了改善,此时WS2812的颜色与设置的参数相符了。
  图2。4。2DI波形以及对应的WS2812颜色
  图2。4。3最终对应的电路图中的参数3、RGB转换颜色
  编程依次输出RGB颜色。3、RGB转换颜色frommachineimportPin,Timer,SPIimporttimehspiSPI(1,2500000,sckPin(14),mosiPin(13),misoPin(12),polarity0)defbyte2bin(b):bstrbin(b)〔2:〕return0(8len(bstr))bstrdefrgb2byte(r,g,b):strbyte2bin(g)byte2bin(r)byte2bin(b)spistr。join(〔(lambdas:011ifs0else001)(x)forxinstr〕)rgbdim〔int(spistr〔i8:i88〕,2)foriinrange(9)〕returnbytes(rgbdim)rgbbytergb2byte(0xff,0x0,0x0)rstbytebytes(〔0xff〕16)outbyterstbytergbbyterstbytewhileTrue:rgbbytergb2byte(0xff,0x0,0x0)outbyterstbytergbbyterstbytehspi。write(outbyte)time。sleepms(500)rgbbytergb2byte(0x0,0xff,0x0)outbyterstbytergbbyterstbytehspi。write(outbyte)time。sleepms(500)rgbbytergb2byte(0x0,0x0,0xff)outbyterstbytergbbyterstbytehspi。write(outbyte)time。sleepms(500)
  下面显示了WS2812在SPI输出波形控制下完成颜色的转换。
  图2。4。4RGB转换颜色实验总结
  利用ESP32中的硬件SPI输出脉冲波形,控制WS2812响应。
  通过电路调整,选择了高频晶体管9018作为输出反向晶体管,确定了放大电路参数,测试验证了利用高速SPI控制WS2812的硬件电路和软件。参考资料
  〔1〕
  WS2812:https:wenku。baidu。comviewc8b79d88fad6195f312ba6d3。html
  〔2〕
  单片机LEDIO口复用控制方案:https:zhuoqing。blog。csdn。netarticledetails116725947
  〔3〕
  WS2812:https:d2j2m4p6r3pg95。cloudfront。netmodulefilesledcubeassetsdatasheetsWS2812B。pdf
  〔4〕
  硬件SPI:https:docs。micropython。orgenlatestesp32quickref。htmlhardwarespibus
  〔5〕
  ESP32实验转接板:https:zhuoqing。blog。csdn。netarticledetails115563474

东京奥运会即将闭幕,综合体验下来,我发现这款手机最适合看比赛8月8日19点,2020东京奥运会将正式举办闭幕式,虽然开幕式不尽如人意,但是闭幕式还是值得关注,这一届的奥运会给我们带来了各种惊喜。首先,最令人瞩目的无疑是耀眼的成绩,在今年……获顶级投资机构青睐!恒大汽车实力凸显视频加载中。。。恒大汽车在本届上海国际车展上大放异彩,成为本届车展人气王,不仅吸引了千家媒体争相报道,还收获了数百家国内外顶级投资机构的青睐。4月20日至22日,嘉……券商晨会精华指数震荡整理能源转型和价值股修复奏响主旋律财联社11月2日讯,昨日市场,沪指、创业板收跌,中证1000指数涨近1。新能源车产业链持续拉升,板块内约30股涨停或涨幅超10;光伏、风电、储能等板块仍表现活跃,但个股分化明显……华为P50无5G,4G可用5G不行,期待翻身华为P50Pro搭载6。6120Hz柔性OLED曲面屏,P50为6。5寸90Hz屏幕,拥有300Hz触控采样率,支持10。7亿色。机身漂亮高端商务,奈何4G,似乎再退步,但是也……千万日产车主相约云家宴1本是后山人,偶做前堂客。一次闯入东风日产云家宴的围观,让网友在惊讶于内容丰富的家宴同时,被一封封充溢着浓浓幸福感的家书所感动。来自东风日产车主的满屏弹幕,刷新了不辞长作……怎么在小程序做本地生活服务?生活服务类小程序怎么做?大家在日常生活中有没有见过预约线下生活服务类的微信小程序?也就是,在人们的生活范围领域内,提供便利的生活服务,可以线上预约,简单方便又实用,比如包车服务、洗衣服务、代驾服务、全……如何制作H5页面?新手教程分享相信大家在微信朋友圈都有浏览或使用过H5微传单页面吧,比如婚礼邀请函、大型会议展会活动邀请函、商家节日促销、招聘广告、培训招生等。由于H5页面极易传播,宣传推广效果好很多商家企……幸福有礼,呼伦贝尔秦ProEV直降0。5万元刚刚小编在车友圈看到好多朋友都在讨论秦ProEV最高优惠0。5万元,这么诱人的降价幅度,想要购车的朋友们不考虑一下趁机拿下?比亚迪王朝呼伦贝尔益丰祥泰店,活动时间10月29日1……日常用中文写代码系列Ruby脚本将mov文件转换为gif因为需要将之前苹果系统下用QuickTime录屏生成的文件(mov格式)转换成gif文件,便于传到某些博客平台,于是找到了一个转换工具,将命名中文化并简化。Ruby和视频转换都……在同一个领域里,小米和华为不单是竞争者,他们也是互补者在同一个领域里面,所有的厂家基本都属于竞争对手。在现在的社会里没有竞争就没有对比也就没有进步。只有大家相互的发现对方的缺点,并且取长补短,这样才能够日渐的提升自己,完善自己。像……高盛集团美元将重演数年来最疲软走势高盛集团(GoldmanSachs)预计,美元将会再次重演近年最疲软的走势,而摩根士丹利则认为美元指数会向上。高盛指出,逆差是其看跌美元的关键,该行分析师ZachPand……这个小区里有好多漂亮的美人,引得不少摄影爱好者前来拍摄在边城黑河的农发行住宅小区里,长了好多虞美人花。从进入7月开始,花儿就到了盛开期,红艳艳的美人吸引了不少摄影爱好者,他们在每天早上花儿着光的那一段时间来到小区进行拍摄。实……
兰花的冬季养护技巧建兰、墨兰、寒兰耐寒性差,要提早入室,春兰、蕙兰有冰冻时也要入室,室温保持5~15之间,春兰室温控制在3~8,一般以1~5为宜,若高于15时对花蕾、花箭发育有不良的影响。……朱耿洲求人不如求己,融资自救有绝招新冠疫情下,很多公司都在主动冲破资金危机,创新经营,利用销售回笼资金,改善企业生存环境,房地产公司更是如此。房地产行业整体资金链紧张大家应该知道,目前房地产行业整体……华为台式机登陆华为官网近日华为台式机正式登陆了华为官网,除未公布售价外,其余参数基本流出。华为MateStationB515的桌面工作站,包括一台搭载AMD锐龙4000系列处理器的主机、一台2……终身免费质保要求太多不如花钱买延保?别被骗了近年来,随着汽车市场的加速发展,越来越多的车企开始提出了更为完善的服务。比如说我们可以发现越来越多上市的新车都标注着终身免费质保,甚至有不少还没有上市的新车也加入到了终身免费质……蟹爪兰的养护技巧,如何才能养护好?蟹爪兰有些耐旱,喜欢疏松透气的排水性良好的土壤,要想栽培蟹爪兰最好使用腐叶土混合一些园土、河沙等等。栽培时间长了,土壤的养分消耗殆尽,或者略微有些板结,在春天也可以及时更换植料……老板用人,除了能力,这九点最重要俗话说:一人难挑千斤担,众人能移万座山。一个人的力量是很有限的,哪怕是一个公司的老板。一个公司想要得到长远的发展,仅仅依靠老板一个人的力量是行不通的,还需要得力的左右手。……第二代微云台蔡司加持,手机影像的又一大步对于vivoX60Pro的拍照,相信大家都会有这两个疑问,一是蔡司光学镜头的成像性能,二是vivo二代微云台的防抖效果。蔡司作为百年光学大厂,不仅为vivoX60Pro带来了更……可抽拉双出水的厨房龙头用起来更方便大家好,我是手撕鲈鱼,一个上得了厅堂,进不了厨房,但却拧得动水管的汉子。最近家里厨房的水槽水龙头彻底GG了,开关那里出水比水龙头这里出水还多o()o,浪费水十分严重,大概是用了……拍照不如尼康索尼,拍视频不如松下富士,为何佳能卖得那么好?稍微懂行的人都知道,如果论静态照片拍摄,同级别的型号中尼康的画质最好,索尼次之。而论视频拍摄,索尼、松下和富士才是视频强机,尼康和佳能相对来说都有些跟不上趟,总是差那么点意思。……11。2国内中风险地区等级又更新了,提前知道哪些地方不能去国内地区风险等级更新国内中高风险地区人员管理措施一览表附件国内中高风险地区人员管理措施一览表(截止10月31日下午19时)省市、地、州……小米近700名青年工程师获授1604。2万股股票激励,他们值小米于7月2日傍晚宣布,向集团3904名员工,总授予70,231,664股的股票。据小米官方披露,集团优秀青年工程师、应届生和团队核心岗位的优秀员工、以及年度技术大奖的优秀工程……鱿鱼游戏加密币跌至近零后,上海一位外国投资者损失严重当伯纳德听说有一枚以韩国Netflix热门电视剧《鱿鱼游戏》(SquidGame)命名的代币时,他快速浏览了网络,看看这种加密货币是否合法。《鱿鱼游戏》讲述了一些身无分文的人们……
友情链接:易事利快生活快传网聚热点七猫云快好知快百科中准网快好找文好找中准网快软网