ICM60206的Verilog版代码在这:https://download.csdn.net/download/qq_39864882/11959023
因为笔者需要使用这个芯片的SPI模式,所以这篇学习笔记主要关于SPI。
ICM20602是六轴运动跟踪设备,集成了3轴加速度计和3轴陀螺仪。
Gyroscope:陀螺仪;Accelerometer:加速度计。
几个有用的性能特征
- 3轴陀螺仪可选量程有±250dps,±500dps,±1000dps,±2000dps。(dps:degrees per second);
- 3轴加速度计可选量程有±2g,±4g,±8g和±16g;
- 10MHz SPI和400kHz快速I2C。
芯片框图
采到的数据经过16bit ADCs传到Sensor Registers,通过SPI协议从SR里读出数据。Sensor Register是只读寄存器,存储陀螺仪、加速度计、温度传感器信息。数据随时可读。
测量过程
三轴陀螺仪测量过程:
陀螺仪在任意三轴方向转动时,电容传感器会感知到振动,经过处理产生与角速度成比例的电压再经过ADC转换成16bit数字信号(量程可选)。
三轴加速度计测量过程:
每个轴使用单独的标准质量,沿特定轴的加速度会引起与标准质量相关的位移,电容传感器检测位移。假设将设备放在平坦的表面上,它将在X轴和Y轴上测量0g,在Z轴上测量+ 1g。每个传感器都有一个ADC提供数字输出。
输出形式:二进制补码。
SPI
- CS=0:SPI模式,CS=1:I2C模式,为了禁止在使用SPI的过程中跳到I2C模式,需要将I2C_IF的I2C_IF_DIS寄存器配置为禁止I2C的模式。
- 数据形式是MSB在前LSB在后、SPI的时钟频率最大为10MHz、Read(1)Write(0)。
- 数据在clk的上升沿被锁存,数据过度应在下降沿时执行,最大时钟频率为10MHz
- 第一个字节传输地址、第二个字节传输数据,第一个字节的第一个比特是R/W位,后7比特是寄存器地址: SPI时序图: (经过实际试验,每次命令完成之后都要将CS置高,不然读不到数据)