ATS2835 驱动SN3218
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相关推荐
- 嵌入式Linux设备驱动程序:在运行时读取驱动程序状态
嵌入式Linux设备驱动程序:在运行时读取驱动程序状态 Embedded Linux device drivers: Reading driver state at runtime 在运行时了解驱动程 ...
- 0、Spring 注解驱动开发
0.Spring注解驱动开发 0.1 简介 <Spring注解驱动开发>是一套帮助我们深入了解Spring原理机制的教程: 现今SpringBoot.SpringCloud技术非常火热,作 ...
- 安装 Python MySQL 驱动(mysql-connector-python、MySQL-python)
1. 安装 由于 MySQL 服务器以独立的进程运行,并通过网络对外服务,所以,需要支持 Python 的MySQL 驱动来连接到 MySQL 服务器. 目前,有两个MySQL驱动: mysql-co ...
- Linux驱动框架之framebuffer驱动框架
1.什么是framebuffer? (1)framebuffer帧缓冲(一屏幕数据)(简称fb)是linux内核中虚拟出的一个设备,framebuffer向应用层提供一个统一标准接口的显示设备.帧缓冲 ...
- [Ubuntu] 安装/卸载 声卡驱动
卸载 sudo apt-get --purge remove linux-sound-base alsa-base alsa-utils 安装 sudo apt-get install linux-s ...
- pci串口驱动安装失败_TSC TTP-243E Pluse装LTP并口驱动无法安装
一.前言描述 接到客户报修说,电脑无法开机,即到哥上门维修立即安排人员到现场查看原因,到现场后,查看的确是电脑系统问题,重新安装系统,安装完成系统后,发现打印机无法使用.这个打印机型号是TSC TTP ...
- linux mipi驱动分析_寒武纪社招内推数字IC设计、DSI驱动、软件架构、产品经理、芯片架构、工具链开发、深度学习、FAE工程师...
点击上方蓝字关注我吧! 为什么内推更靠谱?内推是基于人脉关系链的推荐,其背后有一定的信用背书,靠谱的人推荐的人相对也会比较靠谱,所以企业一般职位都是从内部开始分享的,相较于自己海投简历,内推的效率和成 ...
- i7 7700hq安装Linux,黑苹果安装火影金刚4K VULCAN JinGang GTX i7-7700HQ 独显驱动 Hackintosh...
严格来说,这不是一台笔记本,更像是一台移动一体机.火影金刚4K,独显GTX 1060,核显HD 630,在BIOS里是可以屏蔽核显的.所以这一次安装黑苹果时,直接当是一台IMAC来安装,连机型都是选择 ...
- java获取达梦数据库_Java连接达梦数据库驱动dm_jdbc
[实例简介] Java连接达梦数据库驱动dm_jdbc: dm_jdbc\com.dameng.floader.jar dm_jdbc\com.dameng.impexp.jar dm_jdbc\Dm ...
最新文章
- C++ 经常使用类 string类
- Lucene查看分析器的分词效果
- Java中Array和ArrayList之间的9个区别
- 论文阅读笔记(四)【ACL 2021】FEW-NERD: A Few-shot Named Entity Recognition Dataset
- Composer 安装时要求输入授权用户名密码
- 启动Virtual User Generator提示ArgumentNullException:值不能为null
- lisp 获取横断面数据_CAD中高程点提取横断面数据的方法
- 用java写新年快乐特效代码_蓝叶分享新年快乐大红灯笼特效代码
- python远程调用摄像头_教你如何利用python调用摄像头
- HTML表格和样式及选择器
- appdesigner生成exe文件并转移至不上网机
- mysql round不四舍五入_MySQL中ROUND函数进行四舍五入操作陷阱分析
- 云南小学、初中、高中标准教学实验室设备配置清单整体解决方案
- ebs各模块名称及英文缩写
- 怎样做网络推广浅析网站标题如何写更利于SEO?
- 用户标签体系的搭建方法
- VBA+ADO查询ACCESS数据库
- 中国互联网公司都要国际化,美图如何成为出海的另类?
- win7 计算机 管理 打不开
- 腾讯云是什么?腾讯云TCA和腾讯云TCP是什么?
热门文章
- 计算机化学转行机算机应用不研究,专业故事丨化学生物学 :大一就开始劝退,生化环材真的碰不得吗?...
- c语言2010怎么添加行号,windows10系统下VS2010怎样显示行号
- 水龙头发出呜呜声的解决方法
- linux上传下载工具lrzsz
- csdn服务器给我返回http 500, 呵呵哒!------后来才知道, 每天最多写5篇, 我晕啊, 能给个友好点的提示不?
- Spring MVC学习(8)—HandlerInterceptor处理器拦截器机制全解
- 【步兵 shader】扫光
- 计算机内存 管理,试析计算机内存的优化及管理
- 寒武纪招聘计算机博士,中科寒武纪 AI研发招聘(base 西安)
- 三星集团家族式管理遭投资者施压 为增强透明性三星电子或分拆上市