搜索
bottom↓
回复: 12

实现 WS2812 Like 接口

[复制链接]

出0入0汤圆

发表于 2020-6-9 23:55:33 | 显示全部楼层 |阅读模式
解码WS2812 协议为24位并行输出





本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2020-6-10 08:18:57 来自手机 | 显示全部楼层
感谢,楼主有没有ws2812的驱动库呢

出0入0汤圆

 楼主| 发表于 2020-6-10 14:56:10 | 显示全部楼层
本帖最后由 Eworm001 于 2020-6-10 14:58 编辑
shh6899 发表于 2020-6-10 08:18
感谢,楼主有没有ws2812的驱动库呢


CX32L003 GPIO 驱动 WS2812

  1. __asm void ws_send_asm(uint32_t *p,uint8_t n,uint32_t *dose)
  2. {
  3.           
  4.     PUSH      {r0-r7,lr}
  5.     MOVS       r3,#0x08            //Pin_3

  6.     STR        r3,[r2,#0x04]       //docl = Pin_3
  7.     MOVS       r4,#221            //tmp
  8. DelayLoop
  9.     NOP
  10.     NOP
  11.     SUBS       r4,r4,#1            //tmp--
  12.     CMP        r4,#0               //tmp==0
  13.     BNE        DelayLoop           //if(tmp!=0) goto DelayLoop

  14.     NOP
  15.     MOVS       r4,#0x00            //bitIdx
  16.     MOVS       r5,#0x00            //byteIdx
  17.     LSLS        R1,#2               //n = n * sizeof(n)
  18.     LDR         r6,[r0,r5]          //d
  19.     //reset finished And bit start
  20. START
  21.     STR        r3,[r2]             //dose = Pin_3   
  22.     LSLS       r7,r6,#8            //d_0 = d<<8
  23.     LSRS       r7,r7,#31           //d_0>>=31
  24.     CMP        r7,#0x00            //d_0 == 0
  25.     BNE        H_1                 //if(d_0 == 0) goto H_1
  26. H_0
  27.     NOP
  28. //   NOP
  29.     B          H_END
  30. H_1
  31.     NOP
  32.     NOP
  33.     NOP
  34.     NOP
  35.     NOP
  36.     NOP
  37.     NOP
  38.     NOP
  39.     NOP
  40.     NOP
  41. H_END
  42.     STR         r3,[r2,#0x04]       //docl = Pin_3
  43.     CMP         r7,#0x00            //d_0 == 0
  44.     BNE         L_1                 //if(d_0 == 0) goto L_1
  45. L_0
  46.     NOP
  47.     NOP
  48.     NOP
  49.     NOP
  50.     B            L_END
  51. L_1
  52.     NOP
  53. L_END
  54.     LSLS         r6,r6,#1             //d <<=1
  55.     CMP          r4,#23              //bitIdx == 23
  56.     BNE          B_NEND              //if(bitIdx != 23) goto B_END
  57. B_END
  58.     MOVS         r4,#0               //bitIdx = 0
  59.     ADDS         r5,r5,#4            //byteIdx += sizeof(*p)
  60.     CMP          r5,r1               //byteIdx == n*sizeof(*p)
  61.     BEQ          FRAME_END           //if(==) goto FRAME_END
  62.     LDR                 r6,[r0,r5]          //d
  63.     B            START               //else goto START
  64. B_NEND
  65.     ADDS         r4,r4,#1            //bitIdx ++
  66.     NOP
  67.     NOP
  68.     B            START
  69. FRAME_END
  70.     //STR          r3,[r2]             //dose = Pin_3
  71.     POP          {r0-r7,pc}
  72. }
复制代码

出0入0汤圆

发表于 2020-6-10 15:26:10 | 显示全部楼层
74LS595,楼主看看.

出0入0汤圆

 楼主| 发表于 2020-6-10 15:36:48 | 显示全部楼层

了解;单线有单线的好处

出0入0汤圆

发表于 2020-6-10 16:31:33 | 显示全部楼层
这是将串行转并行了?

出0入0汤圆

发表于 2020-6-10 21:51:15 来自手机 | 显示全部楼层
谢谢,汇编我已经看不懂了

出0入0汤圆

发表于 2020-11-1 15:38:09 | 显示全部楼层
3.3V的STM32能驱吗,看资料WS2811需要高电平3.5V以上才能驱动,后面用个光耦做电平转换,发现速度跟不上,请教有什么方案可以实现高速电平转换吗?

出110入170汤圆

发表于 2020-11-1 16:10:47 来自手机 | 显示全部楼层
jaky80000 发表于 2020-11-1 15:38
3.3V的STM32能驱吗,看资料WS2811需要高电平3.5V以上才能驱动,后面用个光耦做电平转换,发现速度跟不上, ...

三极管啊,最简单了。
而且2811这种电路,只需要搞定第一个的,后面的芯片输出靠前一个。

出0入0汤圆

发表于 2020-11-1 16:21:50 | 显示全部楼层
18161319737 发表于 2020-11-1 16:10
三极管啊,最简单了。
而且2811这种电路,只需要搞定第一个的,后面的芯片输出靠前一个。 ...

三极管速度够吗,我用了2个9014,发现前级给的波形是方波,三极管出来的压根就不是波形了

出110入170汤圆

发表于 2020-11-2 00:59:16 | 显示全部楼层
jaky80000 发表于 2020-11-1 16:21
三极管速度够吗,我用了2个9014,发现前级给的波形是方波,三极管出来的压根就不是波形了 ...

一个肯定不够啊,搭配起来比较麻烦

你还是74LVC1G17之类的管子吧,足够简单

出0入4汤圆

发表于 2020-11-2 09:04:46 | 显示全部楼层
jaky80000 发表于 2020-11-1 15:38
3.3V的STM32能驱吗,看资料WS2811需要高电平3.5V以上才能驱动,后面用个光耦做电平转换,发现速度跟不上, ...

3.3V得实际也可以用,不放心可以用个74LVC1T45,一二百Mbps用到800k上不要太给力。

出0入0汤圆

发表于 2021-5-4 11:16:38 | 显示全部楼层
好东东呀
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-18 13:06

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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