ISELED---氛围灯方案的新选择

11 篇文章 36 订阅

1.ISELED 介绍

1.1 前言

现在主流的车内氛围灯方案分为两种,一种是带自动寻址功能的LIN总线方案,代表的芯片如ELMOS的E521.31/E521.36,迈来芯的MLX81106/MLX81108,英迪芯的IND83209/IND83211。一种是使用了ISELED技术的Smart RGB LED方案(将LED Driver&Controller和LEDs封装在一起),代表芯片如统明亮的seddLED 3.0系列,弘凯光电的iCLed系列等。两种方案的对比如下表:

1.2 ISELED联盟

ISELED联盟是一个开放的工业联盟,其目标是开发一个基于 ISELED 技术的综合生态系统——即用于创新汽车照明的完整系统解决方案。如今,已有多家制造商提供的各种ISELED产品。

从2016年底(ISELED 成立时)最初的5个成员,联盟成员的数量已增加到 30多家公司和机构。联盟成员如下图,包含LED厂商,MCU厂商,汽车零部件厂商等。

ISELED联盟成员

1.3 ISELED产品

ISELED官网的产品分如下几种:

  • SMART DIGITAL LEDS
  • LED Driver & Controller
  • Microcontrollers
  • ADK - Application & Development Kit

ISELED系统框图

以上图为例,简单介绍一下这几种产品,

  • INLC10AQ属于LED Driver & Controller,主要负责通信协议和驱动LED。目前这部分产品只有Inova能提供
  • A3A-FKG-1400-1属于Smart Digital LEDs,可以认为是INLC10AQ和LED的结合体。目前这部分产品有四家能提供,分别是统明亮、弘凯、亿光和欧司朗,做这类产品需要找Inova购买LED Driver & Controller然后和自家的LED进行结合,最终变成Smart Digital LEDs。
  • S32K属于ISELED主机节点指定的MCU,NXP提供了基于S32K的ISELED驱动库,客户使用S32K可以很方便的和Smart Digital LEDs进行通信并实现各种灯效。目前这部分产品主要有两家能提供,除了NXP还有Microchip。
  • ADK属于应用和开发套件,方便客户快速评估ISELED方案。目前能提供ADK的主要是Inova和feno两家公司。

1.4 ISLED应用方向

ISELED目前应用方向有三个,分别是:

  • AMBIENT LIGHTING,环境照明,如车内静态氛围灯。
  • FUNCTIONAL LIGHTING,功能照明,如人手脱离方向盘时进行警示。
  • DYNAMIC LIGHTING EFFECTS,动态灯效,如仪表盘的动态背光灯。

2.ISELED Driver获取及安装

本篇文章主要介绍基于S32K144控制的ISELED方案试用,所以需要先准备好S32K1的ISELED软件驱动。

S32K1xx的官方IDE安装之后是不带ISELED驱动的,需要从NXP官网下载对应的exe文件并选择IDE的安装目录进行覆盖安装,才能使用ISELED功能。下面介绍一下如何安装S32K1的ISELED驱动,在进行ISELED安装之前推荐先安装好S32DS 2.2,具体安装方式参考如下链接:

S32 Design Studio for ARM 2.2 快速入门

2.1 ISELED Driver获取

1.浏览器中输入如下网址:https://www.nxp.com/design/designs/s32k-iseled-led-lighting-solution:S32K-ISELED),并登录在NXP官网注册的个人账号,如下图:

2.点击Design Resources,往下移动到Softeware,能看到S32K SDK ISELED driver的下载选项,如下图:

3.点击下载按钮,在跳转的界面点击Previous,能够看到RTM 4.0.0版本的ISELED驱动:

4.点击SW32K1-ISELED-RTM-4.0.0,在弹出的协议界面点击同意,会跳转至如下界面,接着点击S32K1_ISELED_RTM_4.0.0.exe进行下载,建议ReleaseNotes也下载一下,里面包含了对SDK的要求;

5.下载的同时,点击License Keys,会跳出如下界面;

6.勾选复选框,点击Generate,弹出如下界面;

7.点击Save All按钮,会将license文件下载到本地。

2.2 ISELED Driver安装

2.2.1 安装前准备

打开上一章节提到的S32K1_ISELED_RTM_4.0.0_ReleaseNotes.pdf,可以看到ISELED RTM4.0.0的驱动包是和S32K1xx的RTM3.0.0,RTM3.0.1, RTM3.0.2匹配的,所以安装ISELED驱动之前,先要保证安装了S32DS For ARM 2.2,这个开发环境自带的就是S32K1xx的RTM3.0.0版本的SDK。

ISELED ReleaseNotes

如果不了解S32DS 2.2如果安装,可以参考之前的文章:

S32 Design Studio for ARM 2.2 快速入门

2.2.2 安装注意事项

在S32DS for ARM 2.2安装好之后,双击S32K1_ISELED_RTM_4.0.0.exe进行安装,安装过程中需要加载之前保存的license文件以及选择S32DS安装目录下的S32K1xx_RTM_3.0.0文件夹,如下面两张图:

2.2.3 安装后检查

安装完,可以检查下S32K1xx_RTM_3.0.0文件夹内的相关文件夹是否有了ISELED相关的文档和库文件。

3.ISELED方案试用

3.1 Demo方案介绍

由于手上没有ISELED的ADK,只能利用S32K144开发板加上之前客户送的一套ISELED灯板搭建一套演示套件,如下图所示:

ISELED演示套件

整体的demo框图如下所示:

ISELED DEMO 框图

3.2 编写Demo程序

3.2.1 图形化界面配置

1.打开S32DS2.2,新建application工程,命名为S32K144EVB_ISELED_Demo_Test,并选择S32K144_SDK 3.0.0版本。

2.等界面加载完成后,添加ISELED组件,如下图,和其相关的其他组件也会自动添加。

3.打开ISELED组件,按下图配置,相关参数后面章节再详细介绍。

4.打开timing_pal组件,使用lpit定时器的通道0。

5.打开时钟组件,使能Flexio时钟。

至此,图形化界面配置结束。

3.2.2 main函数编写

首先是clock,timing,iseled的初始化,如下所示:

int main(void)
{
  /* Write your local variable definition here */
	testInitType.crcEnable = 1;
	testInitType.firstLedAdr = 1;
	testInitType.tempCmpEnable = 0;
	testInitType.voltSwing = 0;
  /*** Processor Expert internal initialization. DON'T REMOVE THIS CODE!!! ***/
  #ifdef PEX_RTOS_INIT
    PEX_RTOS_INIT();                   /* Initialization of the selected RTOS. Macro is defined by the RTOS component. */
  #endif
  /*** End of Processor Expert internal initialization.                    ***/
  /* Write your code here */
  /* For example: for(;;) { } */
	CLOCK_SYS_Init(g_clockManConfigsArr, CLOCK_MANAGER_CONFIG_CNT, g_clockManCallbacksArr, CLOCK_MANAGER_CALLBACK_CNT);
	CLOCK_SYS_UpdateConfiguration(0U, CLOCK_MANAGER_POLICY_FORCIBLE);


	/*Initialize timing pal instance used by the ISELED Driver for the timeout mechanism*/
	TIMING_Init(&timing_pal1_instance, &timing_pal1_InitConfig);

	digLED_Init_Interface(NUMBER_OF_INTERFACES, iseled1_InitConfig);
	digLED_Init_Strip(&testInitType, &digLEDResultStrip1, strip);

其中,

  • digLED_ReturnType digLED_Init_Interface(uint8_t nrOfInterfaces, const digLED_ConfigType *configStruct);主要是进行ISELED接口的配置,如选择Flexio还是SPI,控制多少路ISELED,选用哪些引脚,外设的超时时间,使用中断还是DMA等。

  • digLED_ReturnType digLED_Init_Strip(const digLED_InitType* ChainInitPtr, digLED_ReadDataResultType* ChainInitResultPtr, uint8_t StripNr);主要是针对具体某一路ISELED的通信协议进行配置,如首ISELED的地址,是否进行CRC校验,差分电压幅值,是否进行相位偏移等。

然后调用digLED_ReturnType digLED_Set_RGB(uint8_t Red, uint8_t Green, uint8_t Blue, uint16_t Address, uint8_t StripNr);实现灯效。其中Red,Green,Blue用于设置灯颜色的RGB值,Address代表要设置的ISELED芯片地址(0代表设置所有ISElED),StripNr代表要设置第几路ISELED。

如设置红色单颗流水效果的代码如下:

void RunWaterRed(void)
 {
	  OSIF_TimeDelay(1);
	  digLED_Set_RGB(0       , 0       , 0       , 0, strip);
	  OSIF_TimeDelay(1);
	  uint8_t ledNr;
	  uint8_t r = 255, g = 0,  b = 0;
	  for(ledNr=1; ledNr<=NUM_OF_LED; ledNr++){
		  digLED_Set_RGB(r       , g       , b       , ledNr, strip);
		  OSIF_TimeDelay(100);
		  digLED_Set_RGB(0       , 0       , 0       , ledNr, strip);
		  OSIF_TimeDelay(1);
	  }
 }
3.2.3 Demo工程分享

整套工程代码的链接如下:

  • 链接:https://pan.baidu.com/s/1Bx5gTDurymVcxB1y-SSTwA
  • 提取码:5bkl

3.3 Demo测试

ISELED_demo

3.4 ISELED组件说明

由于ISELED组件的参数比较多,如下图在这里着重说明一下。

ISELED组件参数

  1. Interface,选择ISELED的接口,主要选项有Flexio,LPSPI0,LPSPI1和LPSPI2。
  2. Strip Number,表示第几路ISELED,最多可以有13路,其中Strip1到strip10使用Flexio接口,Strip11到Strip13使用LPSPI接口。
  3. Data Pin和Clock Pin,选择和第一个ISELED芯片连接的数据引脚以及时钟引脚。ISELED芯片直接通过差分总线相连,只有和MCU相连接的ISELED芯片(首地址芯片)走同步信号。

注意Data Pin和Clock pin不能选择相同的Logical pins。以下图为例,选择PTA10位data pin时,不能选择PTD0或者PTD9为Clock pin,因为他们都属于FXIO_D0。
Flexio pin

  1. DMA配置,如果使能了DMA配置,下面的DMA接收、发送通道以及EDMA组件也需要同步配置。
  2. callback,回调函数设置,如果填写了回调函数名称,当指令接收、发送完成,或者发生超时,CRC error等错误时,会调用该函数。
  3. Timer channel,配置iseled调用的定时器通道,需要同步在timing_pal进行配置。
  4. timeout duration,配置三种指令的超时时间,分别是初始化,读和ping。

超时时间推荐的计算公式如下(N代表LED数量,最终计算结果的单位为us):

  1. Interface CLK,显示选择的接口的时钟来源,注意在clockMan组件使能对应的时钟。
  2. Timer CLK,显示使用的定时器的时钟来源。

4.参考资料和网站

  • 10
    点赞
  • 71
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 14
    评论
评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Auto FAE进阶之路

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值