SN3218是一款18路呼吸灯驱动芯片,每路单独256级细腻亮度可控,采用i2c接口

SN3218 寄存器宏定义

#define  SN3218_ADDRESS 0xA8     //地址10101000#define SN3218_REG_SHUT_DOWN 0x00#define    SN3218_REG_PWM1     0x01
#define SN3218_REG_PWM2     0x02
#define SN3218_REG_PWM3     0x03
#define SN3218_REG_PWM4     0x04
#define SN3218_REG_PWM5     0x05
#define SN3218_REG_PWM6     0x06
#define SN3218_REG_PWM7     0x07
#define SN3218_REG_PWM8     0x08
#define SN3218_REG_PWM9     0x09
#define SN3218_REG_PWM10    0x0a
#define SN3218_REG_PWM11    0x0b
#define SN3218_REG_PWM12    0x0c
#define SN3218_REG_PWM13    0x0d
#define SN3218_REG_PWM14    0x0e
#define SN3218_REG_PWM15    0x0f
#define SN3218_REG_PWM16    0x10
#define SN3218_REG_PWM17    0x11
#define SN3218_REG_PWM18    0x12#define SN3218_REG_CTL_LED1_LED6    0x13
#define SN3218_REG_CTL_LED7_LED12   0x14
#define SN3218_REG_CTL_LED13_LED18  0x15#define SN3218_REG_UPDATE_DATA  0x16#define SN3218_REG_REST_SET 0x17

I2C接口

static int sn3218_write_bytes(struct device *i2c_dev,u8_t addr,u8_t *data, u32_t num_bytes)
{u8_t wr_addr[2];struct i2c_msg msgs[2];/* FRAM address *///wr_addr[0] = ( addr>> 8) & 0xFF;//wr_addr[1] = addr & 0xFF;wr_addr[0]=addr;/* Setup I2C messages *//* Send the address to write to */msgs[0].buf = wr_addr;msgs[0].len = 1;msgs[0].flags = I2C_MSG_WRITE;/* Data to be written, and STOP after this. */msgs[1].buf = data;msgs[1].len = num_bytes;msgs[1].flags = I2C_MSG_WRITE|I2C_MSG_STOP;return i2c_transfer(i2c_dev, &msgs[0], 2, SN3218_ADDRESS);
}static int sn3218_write_data(u8_t addr, u8_t data)
{u8_t buf[2];int ret=0;manager_app_context_t*  manager = manager_app_get_context();if(manager->i2c_dev == NULL){return 0;}buf[0] = data;ret = sn3218_write_bytes(manager->i2c_dev, addr,buf, 1);if(ret < 0){printk("sn3218_write_data error\n");}return 0;
}

sn3218 初始化

void led_sn3218_init(void)
{manager_app_context_t* manager = manager_app_get_context();manager->i2c_dev = device_get_binding(CONFIG_I2C_GPIO_1_NAME);if (manager->i2c_dev == NULL) { printk("cannot find i2c 1 _dev\n");return;}i2c_configure(manager->i2c_dev,I2C_SPEED_FAST|I2C_MODE_MASTER);sn3218_write_data(SN3218_REG_SHUT_DOWN,0x01);sn3218_write_data(SN3218_REG_PWM1,0x00);sn3218_write_data(SN3218_REG_PWM2,0x00);sn3218_write_data(SN3218_REG_PWM3,0x00);sn3218_write_data(SN3218_REG_PWM4,0x00);sn3218_write_data(SN3218_REG_PWM5,0x00);sn3218_write_data(SN3218_REG_PWM6,0x00);sn3218_write_data(SN3218_REG_PWM7,0x00);sn3218_write_data(SN3218_REG_PWM8,0x00);sn3218_write_data(SN3218_REG_PWM9,0x00);sn3218_write_data(SN3218_REG_PWM10,0x00);sn3218_write_data(SN3218_REG_PWM11,0x00);sn3218_write_data(SN3218_REG_PWM12,0x00);sn3218_write_data(SN3218_REG_CTL_LED1_LED6,0xff);sn3218_write_data(SN3218_REG_CTL_LED7_LED12,0xff); sn3218_write_data(SN3218_REG_UPDATE_DATA,0xff);
}

创建定时器更新数据即可

测试LED是否正常

u8_t led_sn3218_test = 0;
void led_sn3218_test1(void)
{sn3218_write_data(SN3218_REG_PWM1,0x00);sn3218_write_data(SN3218_REG_PWM2,0x00);sn3218_write_data(SN3218_REG_PWM3,0x00);sn3218_write_data(SN3218_REG_PWM4,0x00);sn3218_write_data(SN3218_REG_PWM5,0x00);sn3218_write_data(SN3218_REG_PWM6,0x00);sn3218_write_data(SN3218_REG_PWM7,0x00);sn3218_write_data(SN3218_REG_PWM8,0x00);sn3218_write_data(SN3218_REG_PWM9,0x00);sn3218_write_data(SN3218_REG_PWM10,0x00);sn3218_write_data(SN3218_REG_PWM11,0x00);sn3218_write_data(SN3218_REG_PWM12,0x00);sn3218_write_data(SN3218_REG_PWM13,0x00);sn3218_write_data(SN3218_REG_PWM14,0x00);sn3218_write_data(SN3218_REG_PWM15,0x00);sn3218_write_data(SN3218_REG_PWM16,0x00);sn3218_write_data(SN3218_REG_PWM17,0x00);sn3218_write_data(SN3218_REG_PWM18,0x00);led_sn3218_test++;if(led_sn3218_test>=18){led_sn3218_test = 0;}sn3218_write_data(led_sn3218_test+1,0xff);sn3218_write_data(SN3218_REG_CTL_LED1_LED6,0xff);sn3218_write_data(SN3218_REG_CTL_LED7_LED12,0xff); sn3218_write_data(SN3218_REG_UPDATE_DATA,0xff);
}

ATS2835 驱动SN3218相关推荐

  1. 嵌入式Linux设备驱动程序:在运行时读取驱动程序状态

    嵌入式Linux设备驱动程序:在运行时读取驱动程序状态 Embedded Linux device drivers: Reading driver state at runtime 在运行时了解驱动程 ...

  2. 0、Spring 注解驱动开发

    0.Spring注解驱动开发 0.1 简介 <Spring注解驱动开发>是一套帮助我们深入了解Spring原理机制的教程: 现今SpringBoot.SpringCloud技术非常火热,作 ...

  3. 安装 Python MySQL 驱动(mysql-connector-python、MySQL-python)

    1. 安装 由于 MySQL 服务器以独立的进程运行,并通过网络对外服务,所以,需要支持 Python 的MySQL 驱动来连接到 MySQL 服务器. 目前,有两个MySQL驱动: mysql-co ...

  4. Linux驱动框架之framebuffer驱动框架

    1.什么是framebuffer? (1)framebuffer帧缓冲(一屏幕数据)(简称fb)是linux内核中虚拟出的一个设备,framebuffer向应用层提供一个统一标准接口的显示设备.帧缓冲 ...

  5. [Ubuntu] 安装/卸载 声卡驱动

    卸载 sudo apt-get --purge remove linux-sound-base alsa-base alsa-utils 安装 sudo apt-get install linux-s ...

  6. pci串口驱动安装失败_TSC TTP-243E Pluse装LTP并口驱动无法安装

    一.前言描述 接到客户报修说,电脑无法开机,即到哥上门维修立即安排人员到现场查看原因,到现场后,查看的确是电脑系统问题,重新安装系统,安装完成系统后,发现打印机无法使用.这个打印机型号是TSC TTP ...

  7. linux mipi驱动分析_寒武纪社招内推数字IC设计、DSI驱动、软件架构、产品经理、芯片架构、工具链开发、深度学习、FAE工程师...

    点击上方蓝字关注我吧! 为什么内推更靠谱?内推是基于人脉关系链的推荐,其背后有一定的信用背书,靠谱的人推荐的人相对也会比较靠谱,所以企业一般职位都是从内部开始分享的,相较于自己海投简历,内推的效率和成 ...

  8. i7 7700hq安装Linux,黑苹果安装火影金刚4K VULCAN JinGang GTX i7-7700HQ 独显驱动 Hackintosh...

    严格来说,这不是一台笔记本,更像是一台移动一体机.火影金刚4K,独显GTX 1060,核显HD 630,在BIOS里是可以屏蔽核显的.所以这一次安装黑苹果时,直接当是一台IMAC来安装,连机型都是选择 ...

  9. java获取达梦数据库_Java连接达梦数据库驱动dm_jdbc

    [实例简介] Java连接达梦数据库驱动dm_jdbc: dm_jdbc\com.dameng.floader.jar dm_jdbc\com.dameng.impexp.jar dm_jdbc\Dm ...

最新文章

  1. bootsrap+jquery+组件项目引入文件的常见报错
  2. 188tokens_Affiliate 追踪技术: tokens 和 postback URL 设置的教程
  3. 如何建立论坛的核心用户--引发的思考
  4. iOS中AVFoundation的简单使用—音乐的播放
  5. .net WebApi 开发中某些注意事项
  6. 发布单机端DELPHI程序访问MySQL必备文件
  7. word文本框跨页显示方法
  8. Android 简单实现控件的拖动
  9. 快速突破面试算法之动态规划篇
  10. 【最新黑苹果】Big Sur/Win双系统-小米笔记本pro/gtx 安装教程!
  11. Palabos User Guide中文解读 | 第一章 | 介绍
  12. archlinux下Thinkpad的trackpoint配置
  13. 从MWC到AWE,中国柔性黑科技为消费电子产业撒下蒲公英的种子
  14. RDA5856ETE系列_(1)新手入门
  15. kafka消费组和分区关系详解
  16. SIGGRAPH 2018 见闻录
  17. 债务大爆发,中国30%家庭不堪一击!
  18. 10bit为什么比8bit节省带宽
  19. ABCD四个人说真话的概率都是1/3。假如A声称B否认C说D是说谎了,那么D说过的那句话真话的概率是多少
  20. 无线通信——链路裕量的计算

热门文章

  1. PeakDo毫米波无线投屏器测评:0延迟+4K无损传输,手机秒变电脑
  2. XXX.EXE已停止工作
  3. 深度学习算法2-SVM的原理
  4. Apache Mina:一个简单的tcp通信demo
  5. 【接口测试】Day5-使用pymysql库对mysql数据库进行增删改查操作
  6. 三维空间中左右手坐标系的判定
  7. react高阶组件和hooks
  8. 亲爱的,我怀了别人的孩子
  9. 机器学习之K均值的SSE和轮廓系数
  10. ubuntu18.04如何更新软件源(切换为国内软件源)