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. C++ 经常使用类 string类
  2. Lucene查看分析器的分词效果
  3. Java中Array和ArrayList之间的9个区别
  4. 论文阅读笔记(四)【ACL 2021】FEW-NERD: A Few-shot Named Entity Recognition Dataset
  5. Composer 安装时要求输入授权用户名密码
  6. 启动Virtual User Generator提示ArgumentNullException:值不能为null
  7. lisp 获取横断面数据_CAD中高程点提取横断面数据的方法
  8. 用java写新年快乐特效代码_蓝叶分享新年快乐大红灯笼特效代码
  9. python远程调用摄像头_教你如何利用python调用摄像头
  10. HTML表格和样式及选择器
  11. appdesigner生成exe文件并转移至不上网机
  12. mysql round不四舍五入_MySQL中ROUND函数进行四舍五入操作陷阱分析
  13. 云南小学、初中、高中标准教学实验室设备配置清单整体解决方案
  14. ebs各模块名称及英文缩写
  15. 怎样做网络推广浅析网站标题如何写更利于SEO?
  16. 用户标签体系的搭建方法
  17. VBA+ADO查询ACCESS数据库
  18. 中国互联网公司都要国际化,美图如何成为出海的另类?
  19. win7 计算机 管理 打不开
  20. 腾讯云是什么?腾讯云TCA和腾讯云TCP是什么?

热门文章

  1. 计算机化学转行机算机应用不研究,专业故事丨化学生物学 :大一就开始劝退,生化环材真的碰不得吗?...
  2. c语言2010怎么添加行号,windows10系统下VS2010怎样显示行号
  3. 水龙头发出呜呜声的解决方法
  4. linux上传下载工具lrzsz
  5. csdn服务器给我返回http 500, 呵呵哒!------后来才知道, 每天最多写5篇, 我晕啊, 能给个友好点的提示不?
  6. Spring MVC学习(8)—HandlerInterceptor处理器拦截器机制全解
  7. 【步兵 shader】扫光
  8. 计算机内存 管理,试析计算机内存的优化及管理
  9. 寒武纪招聘计算机博士,中科寒武纪 AI研发招聘(base 西安)
  10. 三星集团家族式管理遭投资者施压 为增强透明性三星电子或分拆上市