十分钟点亮iCLed35

文章目录

    • 前言
    • iCLed35整体介绍
      • iCLed概念
      • iCLed系列产品优势
      • iCLed35(6pin)的特性:
    • iCLed35(6pin)的硬件设计
    • iCLed35(6pin)的软件配置
      • 通讯时序:
      • 通讯协议介绍:
        • 整体的数据结构:
        • 睡眠模式:
    • 点亮iCLed35(6pin)
      • S32K144EVB配置
      • 驱动iCLed35(6pin)

前言

之前朋友送了一包弘凯光电的iCLed35系列的样品,一直都放在抽屉里没有碰过。正好最近遇到客户在做氛围灯时选择了他家的产品,便抽空研究了一下,从使用感受上来说,相比ISELED,iCLed控制方式更加简单灵活。

下文简要介绍下iCLed35的性能以及借助S32K144EVB控制iCLed35实现一些简单的效果。

iCLed35整体介绍

iCLed概念

iCLed是弘凯开发的一款IC内置的全彩led封装,通过IC直接封装在标准LED尺寸内,在生产上降低产品工艺难度,在体积上减少独立外置IC所需的额外空间,在色彩上满足了单点可控全彩的控制能力。

iCLed系列产品优势

十分钟点亮iCLed35_第1张图片

如上图所示,iCLed的产品优势主要有三部分:

  • 结构优势:相比驱动IC+LED分立方案,占据的PCB面积更小;
  • 设计优势:iCLed集成方案不用考虑内部IC和LED之间的电路,硬件设计非常简单。
  • 颜色优势:iCLed的三基色都有256灰阶,可以呈现出16777216种颜色。

iCLed35(6pin)的特性:

iCLed35系列有4pin和6pin两类产品,本文介绍的是6pin的iCLed35,主要特性如下:

  • ELA STD封装
  • 自动识别位置序号
  • 两线制串行通信(一根时钟线,一根数据线)
  • RGB三色的调整范围都为0-255,每通道电流最大为20mA
  • 支持休眠/唤醒,静态电流低至5uA

iCLed35(6pin)的硬件设计

十分钟点亮iCLed35_第2张图片

上图为iCLed35(6pin)的推荐电路,注意事项如下:

  • MCU和第一个iCLed35的通信线建议串接电阻,推荐阻值为300Ω;
  • 每个iCLed35的VDD和GND之间建议串一个电容,推荐容值为0.1uF;
  • VDD的供电范围为4.5-5.5V,推荐使用5V供电。

iCLed35(6pin)的软件配置

通讯时序:

十分钟点亮iCLed35_第3张图片

iCLed35(6pin)的通讯时序如上图,注意点如下:

  • 时钟速率在0-15MHz;
  • 数据传输,高位在前,即MSB;
  • 兼容SPI的模式0,即时钟相位(CPHA)为0,时钟极性(CPOL)为0。

通讯协议介绍:

整体的数据结构:

十分钟点亮iCLed35_第4张图片

整体的数据结构如上图,由起始帧、LED帧和结束帧三部分组成。

  • 起始帧为连续32bit的‘0’;
  • 结束帧为连续32bit的‘1’;
  • LED帧由五部分组成:
    • 最高的3bit用于normal模式("111’)和睡眠模式(“101”)切换,
    • 接着的5bit用于调节电流(如下图)
      十分钟点亮iCLed35_第5张图片
    • 后面的24bit分为3个8bit,分别控制蓝色,绿色和红色的灰阶数值。

从整体的数据结构可以看出,LED帧的取值范围和结束帧是有重合的,即0xFF,笔者手上的数据手册比较早,没有描述iCLed35 (6pin)如何区分这两种帧。后面测试时遇到的一些小问题感觉和这种情况有关。

睡眠模式:

Sleep mode

  • 睡眠指令(0xA0)如上,对应的iCLed接收到该指令后,进入睡眠模式,电流在1uA左右;
  • 当收到非0xA0的数据时,对应的iCLed会在1ms之内从睡眠模式切换到正常模式。

点亮iCLed35(6pin)

为了快速点亮iCLed35(6pin),笔者选择了最熟悉的S32K144EVB。另外,iCLed35的样品袋里也有连接好的软灯带,将电源和通讯线引出即可。

S32K144EVB配置

  1. S32K144EVB用到的引脚如下图所示:

十分钟点亮iCLed35_第6张图片

  • 左边的 5V和GND pin连接到iCLed的VDD和GND;
  • 右边的PTB2/SPI_SCK和PTB4/SPI_SOUT分别连接到时钟线和数据线。
  1. 在S32DS 2.2种新建工程,先配置对应的SPI引脚,如下图:

十分钟点亮iCLed35_第7张图片

  1. 然后进行SPI模块的详细配置,如下图:

十分钟点亮iCLed35_第8张图片

  1. 最后生成对应配置的代码并在mian.c中进行调用:

十分钟点亮iCLed35_第9张图片

驱动iCLed35(6pin)

  1. 先准备需要用到的宏定义,数组以及函数,如下图:

十分钟点亮iCLed35_第10张图片

  1. 然后在主函数中进行循环调用,如下图:

十分钟点亮iCLed35_第11张图片

  1. 最终实现的效果为实现红绿蓝三种颜色的流水效果,如下视频:

iCLed35

实际连接的iCLed35数量为10颗,在点亮绿色和蓝色时,需要发送11个LED帧才能使10个iCLed35都正常点亮,否则最后一个iCLed35显示异常;但是在点亮红色时,只需要正常发送10个LED帧就可以。

具体原因笔者也不太清楚,有知道的朋友欢迎告知!!!


如果觉得本文对你有用,帮忙给个三连!!!

你可能感兴趣的:(车灯,氛围灯)