Linux-SPI-ICM20608
Linux-SPI-ICM20608
环境
硬件环境
开发板型号: 100ask_imx6ull_pro 开发板
处理器类型:NXP IMX6ULL
处理器架构:恩单核 Cortex-A7
处理器主频:800MHZ
内存容量:512 MB DDR3
存储介质:4GB eMMC
本次测试的驱动:ICM20608 六轴传感器
软件环境
宿主机
宿主机操作系统:Ubuntu 18.04
交叉编译器:100ask 提供的工具链 arm-buildroot-linux-gnueabihf- 支持的最低内核版本:4.9.0
开发板
U-Boot:一开始用的 NXP 官方提供的版本但不能正常启动内核,后改为 100ask 提供的版本
内核版本: NXP 提供的 4.9.88 版本
根文件系统类型:BusyBox 1.29.0
ICM20608
ICM20608 是由 InvenSense 公司生产的一款 6 轴惯性测量单元(IMU),它集成了 3 轴陀螺仪和 3 轴加速度计。这款传感器广泛应用于需要精确运动跟踪的场合,比如无人机、机器人、智能手机和可穿戴设备等。
陀螺仪支持 X ...
Linux-I2C-AP3216C
Linux-I2C-AP3216C
环境
硬件环境
开发板型号:100ask_imx6ull_pro 开发板
处理器类型:NXP IMX6ULL
处理器架构:恩单核 Cortex-A7
处理器主频:800 MHZ
内存容量:512 MB DDR3
存储介质:4GB eMMC
本次测试的驱动:AP3216C 传感器芯片
软件环境
宿主机
宿主机操作系统:Ubuntu 18.04
交叉编译器:100ask 提供的工具链 arm-buildroot-linux-gnueabihf- 支持的最低内核版本:4.9.0
开发板
U-Boot:一开始用的 NXP 官方提供的版本但不能正常启动内核,后改为 100ask 提供的版本
内核版本: NXP 提供的 4.9.88 版本
根文件系统类型:BusyBox 1.29.0
AP3216C 介绍
AP3216C 是一款由敦南科技研发的高度集成的三合一环境传感器组件,集成了环境光传感器(ALS——Ambient Light Sensor)、接近传感器(PS——Proximity Sensor)和红外 LED(IR LED——Infra ...
Linux-SPI驱动
Linux-SPI驱动
序言
SPI 具体通信协议本文不涉及,本文主要介绍在 Linux 中 SPI 的驱动框架。
SPI 有四条线:SCLK、MOSI、MISO、SS/CS
SCLK:时钟线
MOSI:主机数据输出从机数据输入
MISO:主机数据输入从机数据输出
SS/CS:片选信号,由主机控制
SPI 通信时,SPI 的片选信号可以作为硬件片选与软件片选。
硬件片选:如果选择使用硬件片选的方式,则在数据传输时,CS 片选信号的电平硬件上会拉低。当数据传输结束后,硬件上CS片选信号的电平拉高。
软件片选:软件片选即 SPI 通信过程中, CS 片选信号需要在软件上做处理,也就需要嵌入式开发者在数据传输前手动(程序中)拉低 CS 片选信号的电平,在数据传输结束后,也需要软件拉高 CS 片选信号的电平。
SPI 驱动框架
Linux SPI 驱动可分为:SPI 总线驱动和 SPI 设备驱动。
SPI 总线驱动:主要包含 SPI 硬件体系结构中适配器(SPI 控制器)的控制,用于产生 SPI 读写时序。
SPI 设备驱动:通过 SPI 主机驱动与 CPU 交换数据。
SPI 设 ...
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 i2 ...
基于IIC的OLED驱动代码编写
基于IIC的OLED驱动代码编写
序言
支持软件 IIC 和硬件 IIC。
mqttFx测试
mqttFx测试
使用 mqttFx 软件测试连接阿里云平台和 OneNET 平台。
阿里云平台
1. 平台添加产品设备
首先到阿里云物联网平台,添加一个产品,然后在这个产品下面添加一个设备,接着点开 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)
/ ...
芯片相关名词
芯片相关名词
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 又分为 SRAM(静态随机存储器以触发器原理寄存信息)和 DRAM(动态随机存储器以电容充放电原理寄存信息)。SRAM 速度非常快,是目前读写最快的存储设备了,但是它也非常昂贵,所以只在要求很苛刻的地方使用,譬如 CPU 的一级缓冲,二级缓冲。DRAM 保留数据的时间很短,速度也比 SRAM 慢,不过它还是比任何的 ROM 都要快,但从价格上来说 DRAM 相比 SRAM 要便宜很多,计算机内存就是 DRAM 的。
DDR RAM(Date-Rate RAM)也称作 DDR SDRAM,简称为 DDR。这种改进型的 RAM 和 SDRAM 是基本一样的,不同之处在于它可以在一个时钟读写两次数据,这样就使得数据传输速度加倍了,这是目前电脑中用得最多的内存。
内存(DRAM)工作原理
内存是用来存放当前正在使用的(即执行中)的数据和程序,我们平常所提到的计算机的内 ...