Linux-I2C-AP3216C
Linux-I2C-AP3216C
AP3216C 介绍
AP3216C 是一款由敦南科技研发的高度集成的三合一环境传感器组件,集成了环境光传感器(ALS——Ambient Light Sensor)、接近传感器(PS——Proximity Sensor)和红外 LED(IR LED——Infrared LED)的三合一数字模块。
I2C 接口(工作在 FS 模式,400kHz)
环境光传感器具有 16 位 ADC 输出,确保高精度的环境光检测
接近传感器具有 10 位 ADC 输出(0~1023),用于精确的接近距离测量
设备地址:0x1E,寄存器 8 位,寄存器位宽 8 位
AP3216C 广泛应用于手机和平板电脑等便携式设备中,例如用于自动调节屏幕背光亮度(根据环境光线强度变化调整),以及在打电话时检测脸部接近的距离以实现熄屏、解锁等功能。
典型原理图如下:
涉及到的寄存器:
SYSTEM_CONFIGURATION 寄存器的配置表:
开启三种模式,并且是连续测量的,采集 ALS 需要 100 ms,PS 需要 12.5 ms,因此后续在测试程序的时候需要采集间隔需要延 ...
Linux-I2C驱动
Linux-I2C驱动
序言
I2C 具体通信协议本文不涉及,本文主要介绍在 Linux 中 I2C 的驱动框架。
I2C 有两条信号线:SCL 和 SDA。
SCL:时钟线,数据收发同步
SDA:数据线,传输具体数据
I2C 驱动框架
Linux I2C 驱动由三部分组成:I2C 核心、I2C 总线驱动、I2C 设备驱动。
I2C 核心层驱动作为顶层驱动,管理整个I2C子系统,并提供了基本的I2C操作接口。
I2C 适配器驱动负责与底层硬件的 I2C 控制器进行交互,通过适配器驱动,I2C总线核心驱动能够与硬件进行通信。
I2C 设备驱动则针对具体的 I2C 设备编写,实现了对设备的初始化、读写数据等操作。
I2C 核心(I2C Core Driver)
I2C 核心负责管理 I2C 总线适配器和设备,提供 I2C 总线驱动和设备驱动和注册、注销方法,完成 I2C 设备和 I2C 驱动匹配过程。这一部分不涉及硬件的操作,一般由系统厂编写。
I2C 核心中主要函数如下:
12345678910111213141516// 1.i2c_adapter 注册/注销函数int i2c ...
基于IIC的OLED驱动代码编写
基于IIC的OLED驱动代码编写
序言
支持软件 IIC 和硬件 IIC。
mqttFx测试
mqttFx测试
阿里云平台
首先到阿里云物联网平台,添加一个产品,然后在这个产品下面添加一个设备,接着点开 DeviceSecret,复制设备的三个要素 ProductKey、DeviceName、DeviceSecret。
2. 生成 Client ID 用户名和密码
打开 MQTT_Password 软件(将阿里云连接的三元素转换为 MQTT 连接的 Client ID 用户名和密码)
保存生成的计算结果。
3. 填入 mqttFx 软件中
计算得到的结果填入 Client ID、User Name、Password
域名地址 Broker Address:iot-06z00h6z06dknsn.mqtt.iothub.aliyuncs.com
端口号 Broker Port:非加密端口 1883
消息发布主题(Publish)
/sys/ProductKey/DeviceName/thing/event/property/post
消息订阅主题(Subscribe)
/sys/ProductKey/DeviceName/thing/service/proper ...
芯片相关名词
芯片相关名词
CPU、GPU、MPU、NPU、TPU等概念
CPU
中央处理器(CPU,Central Processing Unit),是电子计算机的主要设备之一,电脑中的核心配件。其功能主要是解释计算机指令以及处理计算机软件中的数据。电脑中所有操作都由 CPU 负责读取指令,对指令译码并执行指令的核心部件。
CPU 的结构主要包括运算器(ALU, Arithmetic and Logic Unit)、控制单元(CU, Control Unit)、寄存器(Register)、高速缓存器(Cache)和它们之间通讯的数据、控制及状态的总线。
MPU
MPU (Micro Processor Unit)微处理器,微机中的中央处理器(CPU)称为微处理器(MPU),是构成微机的核心部件,也可以说是微机的心脏。它起到控制整个微型计算机工作的作用,产生控制信号对相应的部件进行控制,并执行相应的操作。
GPU(Graphics Processing Unit)
GPU 即图形处理器,就如它的名字一样,GPU 最初是用在个人电脑、工作站、游戏机和一些移动设备(如平板电脑、智能手机等)上运行绘图运算 ...
ROM-RAM-FLASH
ROM、RAM、FLASH 基本介绍
随机存储器(RAM)
RAM 是一种可读/写存储器,特点是存储器的任何一个存储单元的内容都可以随机存取,而且存取时间与存储单元的物理位置无关。**RAM **通常都是在 掉电之后就丢失数据,典型的RAM就是计算机的内存。
RAM 又分为 SRAM(静态随机存储器以触发器原理寄存信息)和 DRAM(动态随机存储器以电容充放电原理寄存信息)。SRAM 速度非常快,是目前读写最快的存储设备了,但是它也非常昂贵,所以只在要求很苛刻的地方使用,譬如CPU的一级缓冲,二级缓冲。DRAM 保留数据的时间很短,速度也比 SRAM慢,不过它还是比任何的 ROM 都要快,但从价格上来说 DRAM 相比 SRAM 要便宜很多,计算机内存就是DRAM 的。
DDR RAM(Date-Rate RAM)也称作 DDR SDRAM,这种改进型的 RAM 和 SDRAM 是基本一样的,不同之处在于它可以在一个时钟读写两次数据,这样就使得数据传输速度加倍了,这是目前电脑中用得最多的内存。
内存(DRAM)工作原理
内存是用来存放当前正在使用的(即执行中)的数据和程序,我们平常所提 ...
刷路由器流程
校园网路由器
前言
实现路由器自动认证广大校园网。
基本步骤
刷入 Breed
刷入 Openwrt 系统
装入 MiniEAP 插件
配置路由器
刷入Breed
简要
为了防止刷入 Openwrt 失败导致路由器变砖,我们需要先刷入 Breed (不死鸟)。因为有些官方升级固件自带 bootloader(引导加载程序),如果从官方固件升级,会导致现有 bootloader 被覆盖。而当 Breed 更新固件时,它会自动删除固件附带的 bootloader(引导加载程序),从而可以防止 Breed 被覆盖。
刷入 Breed 之前我们可以先将几个重要的 bin 文件(all、bootloader、eeprom)保存,保留路由器原来的系统(如果需要保留的话),一般能够刷机的路由器网上资料都很多,这里我就没有进行保存了。
注意:你需要有一台能够刷机的路由器,请自行到网上查询你的路由器是否能刷机
方法
刷入 Breed 一般有两种方法,一种是 telnet 方法,另一种是 ssh 方法。主要就是通过 PC 端远程控制路由器内部的文件。Breed 常用平台有 MT7620平台、MT7621 ...