前段时间开发ws2812驱动。网上有一些参考,但是全部是在单片机上用pwm实现,估计是考虑实时性和时间高精度要求。

而我的项目的架构中,就只有一个高通的8939,并且只有一路pwm,还被红外ir给霸占了,被逼到墙角了。没办法,活还的干,想到用其他频率高的通讯方式。

最后尝试了几种,选择了spi+bam的方式,这玩意就类似spi+dma,只是bam是高通家定义的。

ws2812们的要求如下:

思路如下:

1、选择合适高的频率,例如4.8MHZ或者9.6MHZ,我选用9.6M,这样spi传1bit花的时间大概是100ns;

2、结合上面的数据传输时间,换算出0码和1码的组合数据;

3、输入rgb的数组,例如(255,0,0)这个是红色,换算出相应的要发送的数据,放到spidev的tx buffer中。

for(i =0; i<8; i++){

temp = ((pData[0]<<i)&0x80) ? logic_one:logic_zero;

spidev_t->buffer[next++]=(temp>>8)&0xff;
spidev_t->buffer[next++]=(temp)&0xff;

}

pData[0]就是上面255,g和b的数据转换采用一样的方式。

4、把转换的数据全部转换完以后,就放到

status = spidev_sync_write(spidev, (size_t)next);

进行传输。

这样就完成了数据的传输,这样就可以亮起一个灯。想要亮多个灯,就在这个数据转换外面(第三步)加上一个led_nums的循环就可以了。注意,全部的数据转换完了,这个时候才执行(第四步)。

但是,不要以为这样就能轻易的按照你的想法点亮,坑还在后面,硬件坑(碰到这种情况,直接diao硬件)。

=================软硬分割线=================

硬件一定要看清楚ws这家伙的电器特性并且按照电器特性连接电路和供电,不然会让软件怀疑自己的实现能力的。直接上图,一看就知道了。

*高通的芯片gpio是1.8v 输出,要做电平转换。

插曲:

之前试过的几种方法中,有一种是gpio操作,发现时间精度达不到,我不调用它的封装函数,直接操作寄存器,测量出来的最低时间那就400ns多,所以不满足要求,放弃了。

完结。

ws2812/6810 RGB灯带在高通芯片上的控制相关推荐

  1. 驱动RGB灯带MCU阐述

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

  2. esp32 micropython 控制ws2812 RGB灯带

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

  3. FPGA驱动RGB灯带WS2812B

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

  4. JL690X(2)驱动RGB灯带

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

  5. iphone手机信号差?教你一招辨别基带是高通还是英特尔

    iphone手机信号差?教你一招辨别基带是高通还是英特尔,望转告! 虽说iPhone手机的优势很多,很多的人愿意购买iPhone手机,但是iPhone手机从一开始出来到现在一直是有一个问题,那就是iP ...

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

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

  7. 鸿蒙系统依靠高通芯片,鸿蒙系统+高通芯片合体!iPhone再见了

    关于鸿蒙系统,相信数码爱好者已经不是很陌生了,2019年8月9日华为开发者大会上,华为消费者业务首席执行官余承东正式宣布发布自有操作系统鸿蒙 032503br7pbrzpid7nbdcy.jpg (2 ...

  8. 为什么苹果难以放弃高通芯片?

    目前苹果的基带芯片供应商主要是高通,三星则很注意平衡,除联发科之外基本所有的基带芯片厂商都是三星的供应商. 苹果自己设计芯片,但是还是绕不过高通,目前高通是苹果的基带芯片供应商.不过基带芯片是指什么? ...

  9. 华为郭平:很愿意使用高通芯片制造手机

    9月23日消息,在华为全联接2020媒体见面会上,华为轮值董事长郭平谈到"未来是否在旗舰机使用高通芯片"问题时表示,我们注意到高通正在向美国申请向华为供货的许可证,如果美国政府允许 ...

最新文章

  1. SQL Server中常用的SQL语句
  2. Scala apply()方法用于创建伴生类对象
  3. Matlab随笔之求解线性方程
  4. Linux 内存管理 | 物理内存、内存碎片、伙伴系统、SLAB分配器
  5. LeetCode 535. TinyURL 的加密与解密(哈希)
  6. 案例解析|广东自由流收费稽核方案,AI稽核新模式
  7. nacos初探--作为配置中心
  8. myEtherWallet在线钱包的使用
  9. oracle listener启动问题
  10. 简述网卡的作用和工作原理_发电机调节器的作用及工作原理
  11. WCF开发实战系列四:使用Windows服务发布WCF服务
  12. 一段oracle中的“复杂”分组统计sql
  13. mysql innodb count 优化_MySQL · 引擎特性 · InnoDB COUNT(*) 优化(?)
  14. 西门子S7系列中间人攻击:PLC探测和流量分析(二)
  15. ArcGIS网络分析之中国邮递员问题
  16. 产业升级再加码 鼎捷软件助力宜兴打造智造新名片
  17. 互联网发展简史(1)ARPANET的建立
  18. Qt程序在arm板上运行
  19. 产品经理知识框架+求职面经——快手,字节跳动,
  20. ganglia监控hadoop集群配置

热门文章

  1. django mysql 教程_Django 入门教程
  2. NSString详解
  3. java timertask 销毁_java中TimerTask 如何才能停止呢
  4. python之文件批量重命名
  5. 希冀平台1-4:对于如下表actor,其对应的数据为: actor_id first_name last_name 1 PENELOPE GUINESS 2 NICK WAHLBERG
  6. 51单片机最小系统电路设计
  7. python box2d 教程_python下的Box2d物理引擎的配置
  8. wtg系统_WTG的完整形式是什么?
  9. 基于分段式随机惯性权重和最优反馈机制的鲸鱼优化算法
  10. python 0or2_Python表达式 0 and 1 or not 2True的值为(     )