基于 NXP QN9080 平台如何用 IIC 跟 AW9523B 通信实现灯效功能

关键字 :NXPQN9080AW9523B

一、前言

本文将以介绍如何用 IIC 跟 AW9823B 驱动来实现灯效功能为主题,在 QN9080 的 SDK 中已经有 IIC 的例程,可以以例程为参考先熟悉 IIC 的通信过程。下面将给大家介绍世平集团代理产线的产品 AW9523B 的调试过程。

 

二、环境搭建

2.1 SDK 及软件下载

本文基于 NXP QN9080 IC,SDK 和软件可在 NXP 官网 https://mcuxpresso.nxp.com 下载。

2.2 硬件

本文基于 QN9080 官方板进行开发,官方板如图 2.2 所示:

图 2.2

 

2.3 开发软件

本文基于 NXP QN9080 平台,SDK 可在 NXP 官网 https://mcuxpresso.nxp.com 中下载。 SDK 支持 IAR、Keil、MCUXpresso IDE 三种开发软件、下面以 IAR 为开发环境作为介绍。

 

三、芯片说明与特性

3.1 芯片说明

    AW9523B 是一款 IIC 接口、16 路呼吸灯、每路可作扩展 GPIO 控制器。上电后,16 路 GPIO 默认为输出模式,输出默认值可以通过 2 位器件地址进行配置,每一路 GPIO 都可单独配置输入输出。

3.2  特性

  • 支持 16 路共阳极恒流型 LED 驱动
  • 256 级线性调光,四个电流范围可选择
  • 输入端口状态的变化可产生中断输出
  • 400kHz 快速 IIC 接口,可支持 8V 通信
  • 支持硬件复位,复位端口 10 微秒去抖动处理
  • 工作电压:4 V ~ 5.5 V
  • 单路LED电流最大值:37 mA
  • 封装形式:TQFN4X4-24L

 

四、参考电路


调试过程

       通过上面的说明,大家可以对这个芯片以及具体硬件设计有了基本的思路和了解,设计自己想要的灯效,可以加入 PWM 脉宽控制去设置呼吸灯,依次增大减小灯光的电流值,还可设置不同的跑马灯,不同的颜色等,可以通过对 RGB 三个内部灯光进行电流值的配置



来改变颜色,三个灯全亮是显示白色。现在我们直接上干货。让我们一起来看具体的调试过程。

      在本篇博文中,以 IIC 写函数为例,读函数也可类推。写函数主要是通过 MCU 来对从机设备的写值地址中写入所需的值,主机到从机通信的一个过程。

 

下面是 IIC 的初始化函数,主要包含更改默认的波特率配置、IIC 主机的初始化配置函数、为非阻塞传输创建 IIC 句柄的函数等。

在头文件中,不要忘了对各个寄存器地址进行宏定义,这样能够提高代码的可读性。

下面是一个灯效的 Demo 演示函数以及效果,能够实现流水灯效果。首先是对IIC的初始化,然后是对从机设备的输出模式进行设置,默认的输出状态设置为 0,每个 GPIO 可设置为 GPIO 模式或者 LED 模式。For 循环中是如何具体的对每个 IO 进行控制,第一个是从机地址,第二个是控制哪个 IO,第三个是 IO 的输出电流值。

 

下面是灯效演示图,灯的亮度可通过设置 256 级电流来控制。

 易错点提示

1、硬件上先确认电源、时钟、IIC、RST 等控制信号是否正确以及上电时序满足要求,是否有上拉电阻。

2、 查看软件上写入的IIC地址是否正确,并用示波器或者逻辑分析仪确认,以及能否正常的对 IO 拉高拉低。

3、 在 IIC 读写中,有人会比较困惑,为什么从地址要左移 1 位?这是 IIC 协议决定的,它的地址实际为 7 位,因为 IIC 协议为左对齐,所以需要对 IIC 地址左移 1 位。但是,有些 API 里面,已经把地址左移 1 位了。编程中需要注意这个问题,通常从机地址的问题都会在 Datasheet 中有特殊说明,大家在查阅 Datasheet 的时候需要注意这一点。

在本文中,API 是没有对地址进行移动的,我们要对这个驱动的从机地址先进行处理,否则主机无法寻找从机地址。

 

总结

经过对以上了解,相信大家已经可以调通这个驱动芯片了,同时能够对 IIC 通信有进一步的理解。只要掌握了上面的要点,配合上芯片的数据手册,你也可以设计出充满创意的 RGB 灯效。

 

、参考资料

[1] AW9523B_呼吸灯驱动 BREATHINGLEDDRIVER_2018-02-02.pdf

★博文内容均由个人提供,与平台无关,如有违法或侵权,请与网站管理员联系。

★文明上网,请理性发言。内容一周内被举报5次,发文人进小黑屋喔~

评论