打印
[APM32F0]

APM32F072驱动elmos LED Drive IC

[复制链接]
549|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
概述
某客户的新项目使用APM32F072RBT7应用在车灯领域,使用到的多通道LED Drive IC(型号因涉及到NDA,暂时不方便透露)需要特定的时序要求,因客户对072不太熟并且要求的时序较复杂,所以协助客户实现072驱动LED Drive,实现LED的基本控制。
时序要求如下:
1、072的串口1产生波特率500Kbps、1位停止位、偶校验
2、数据发送前需要26us的持续低电平(25-27us,经典值26us)
需求分析
1、第一个需求比较简单,按普通串口配置即可,需要注意的是,使用了奇偶校验后,数据长度的配置需要改成USART_WORD_LEN_9B;
2、第二个需要是最关键也是客户解决不了的,26us的低电平结合波特率500Kbps联想,刚好是LIN的break长度(13bit);
现在需求基本明了,可以按照需求进行简单的配置。
实现步骤
步骤实现分两大方面,第一个是串口通信的配置实现,第二个是26us持续低电平的实现。
1、串口通信配置比较简单,按照需求配置即可,如下图所示。

2、26us持续低电平开启LIN模式和发送数据前置位“请求发送断开帧(Transmit Break Frame Request)”

3、示波器抓波形发现 break长度竟然是27.2us,客户测试会出现概率性发送命令失败的情况。经过分析发现是一开始配置成串口的参数里有数据长度是9B,导致break长度也多了1个bit。
4、把串口参数配置usartConfigStruct.wordLength = USART_WORD_LEN_8B,开始段break持续时间满足LED IC,这里就需要进行不同的配置,才能满足break段和串口发送数据帧。主要区别是发送break段需要usartConfigStruct.wordLength = USART_WORD_LEN_8B,发送数据帧需要usartConfigStruct.wordLength = USART_WORD_LEN_9B。

5、通过更改不同串口参数的方式,终于模拟出LED 驱动IC的时序,但又有个问题就是配置时间比较耗时,约72us,客户评估一旦数据多的时候,会影响到灯效。


6、最后通过直接修改寄存器的方式,把时间减少至25us,满足客户的需求。



总结
随着新能源车的技术发展,车灯也从传统的亮灭方式逐渐普及到贯穿式的流水式灯,需要的LED驱动IC通道数量和数量也越来越多;同时对通信的时序要求也越来越复杂,这样才能满足一根总线挂多颗LED驱动并且通信数据的可靠性。

图七.png (491.74 KB )

图七.png

图六.png (38.57 KB )

图六.png

图五.png (493.61 KB )

图五.png

图四.png (492.19 KB )

图四.png

图三.png (499.25 KB )

图三.png

图二.png (23.42 KB )

图二.png

图一.png (56.01 KB )

图一.png

使用特权

评论回复
沙发
Fanexs168| | 2023-2-24 15:24 | 只看该作者
顶一下

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

5

主题

6

帖子

1

粉丝