【飞控开发基础教程6】开源编队无人机-SPI(六轴传感器数据获取).docx

上传人:lao****ou 文档编号:82069 上传时间:2023-02-14 格式:DOCX 页数:18 大小:515.66KB
下载 相关 举报
【飞控开发基础教程6】开源编队无人机-SPI(六轴传感器数据获取).docx_第1页
第1页 / 共18页
【飞控开发基础教程6】开源编队无人机-SPI(六轴传感器数据获取).docx_第2页
第2页 / 共18页
【飞控开发基础教程6】开源编队无人机-SPI(六轴传感器数据获取).docx_第3页
第3页 / 共18页
【飞控开发基础教程6】开源编队无人机-SPI(六轴传感器数据获取).docx_第4页
第4页 / 共18页
【飞控开发基础教程6】开源编队无人机-SPI(六轴传感器数据获取).docx_第5页
第5页 / 共18页
亲,该文档总共18页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《【飞控开发基础教程6】开源编队无人机-SPI(六轴传感器数据获取).docx》由会员分享,可在线阅读,更多相关《【飞控开发基础教程6】开源编队无人机-SPI(六轴传感器数据获取).docx(18页珍藏版)》请在第一文库网上搜索。

1、COCOFLY教程疯壳无人机系列目录一、ICM20602 简介1二、SPI 概述2三、SPI总线协议2四、SPI寄存器3五、六轴传感器数据获取实验4编队飞行Al开源编队无人机Al OPEN SOURCE FORMATION DRONE语音控制视觉追踪高级功能光流定点3D翻滚AI语音控制图形化多机编队飞行O0泛视觉追踪形状有头无头双模式激光,压双定高遥控控制飞行自主巡线飞行视觉追踪图码WIFI图传控制支椅图形化编程视觉跟随移动小车视觉追踪II色视频地址:http:www.fengke.club5SPI (六轴传感器数据获取)一、ICM20602 简介六轴传感器在当今智能穿戴和定位导航产品中被广泛

2、应用,而六轴传感器中做的最好的要属InvenSense公司的产品了,1CM20602便是其推出的优秀六轴传感器之一。ICM20602集成3轴加速度计和3轴陀螺仪,其中陀螺仪量程范围可以选择+A250dps, +A500dps, +/-1000dps和+/-2000dps这四种,而加速度计量程范围可选择+/2g, +/-4g, +/-8g 和+/-16g 四种。ICM20602支持高达400KHz的12c以及高达10MHz的SPL具有较高的接口兼容性。ICM20602的实物图如下所示。ICM20602的引脚如下图所示。REGOUTRESVVDDVDDIOSCL/SPCSDA/SDISAO/SDO

3、CSICM-206021312l710TGNDRESVRESVRESVRESVFSYNCRESVZT二、SPI概述SPI是指Serial Peripheral Interface的缩写,即串行外围设备接口,是一种高速的、全双工、同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的引脚,SPI的4条通信线为:(1) MISO主入从出接口;(2) MOSI主出从入接口;(3) SCLK由主设备产生的时钟信号;(4) CS由主设备控制的从设备片选信号。STM32F103的SPI的时钟最高可达18MHz,支持DMA。SPI主从机通信,如下图所示:MOSISCLKMISOCS当有多个设备挂载在S

4、PI总线上,其接线图如下图所示。单片机和外围器件之间进行SPI同步串行数据传输时,在主器件的移位脉冲下,数据按位传输,低位在前,高位在后,为全双工通信,数据传输速度总体来说比12c总线要快,速度可达到几Mbp,相比于其它总线,SPI协议简单,相对数据速率高,但是SPI也有它的缺点,比如没有指定的流控制,没有应答机制确认是否接收到数据。三、SPI总线协议SPI通信需要掌握以下知识:时钟极性、时钟相位以及SPI的传输时序。 时钟极性,SPI通过时钟极性(CPOL)来决定在总线空闲时,同步时钟(SCLK)信号线的电平是高电平还是低电平。当时钟极性为0时(CPOL=0),SCLK信号线在空闲时为低电平

5、;当时钟极性为1时(CPOL=1) , SCLK信号线在空闲时为高电平;2 时钟相位,SPI通过时钟相位(CPHA)用来决定何时进行信号采样。当时钟相位为1时(CPHA=1),在SCK信号线的第二个跳变沿进行采样;这里的跳变沿究竟是上升沿还是下降沿?这取决于时钟的极性。当时钟极性为0时,取下降沿;当时钟极性为1时,取上升沿;如下图所示:cpol - LTLrLrLTLrLrLjn_I I 1111cpol . oLrLrLrLjLrLFLriI I I I I II Ime。(or 16 bit depend jig on th Data frane formaj bit (see )FF i

6、inSpLCR 1)MosiTrnnn r I褊 卜IIIII!IIIIIIIIIINSS:;:;:(,;!P:Capture strobe II|I|IIISPI时钟相位CPHA=1时不同的时钟极性下的采样规律当时钟相位为0时(CPHA=0),在SCK信号线的第一个跳变沿进行采样。跳变沿同样与时钟极性有关:当时钟极性为。时,取上升沿;当时钟极性为I时,取下降沿;如下图所示:cpol=1-cpol.o 门门门innrinIIIII II Imiso wT?mnrTTTY?TrIIIj . Illi8 or 16 bitsidepending on th Data frame tormatibi

7、t sqq DFF In SPI_CR1)m。,. msb; y :IIIlliII_IIIlliII_NSS IIIlliII/(to slave) Iiii i “ i iii,iiiiiiiiCapture strobeIII I I |ISPI时钟相付为0时.不同的时钟机件下的采桂规律SPI寄存器在本次实验中使用到的是STM32的硬件SPL STM32的硬件SPI所涉及的寄存器较多,这里挑选较为重要的来讲解。(1) SPI_CR1: SPI控制寄存器1,如下图所示:1514131211109876543210BIDIMODEBIDIOECRCENCRCNEXTDFFRXONLYSSMS

8、SILSBFIRSTSPEBR 2:0MSTRCPOLCPHArwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrw其中SPE为SPI使能控制位,等于1时使能SPL等于0时关闭SPI; BR2:0|为SPI的波特率控制位,BR2:0等于00()则波特率为fpcLK/2,等于()01则波特率为fpCLK/4,等于010则波特率为fpCLK/8,等于011则波特率为fpCLK/16,等于100则波特率为fpcLK/32,等于101则波特率为fpcLK/64,等于110则波特率为fpcLK/128,等于111则波特率为fpcLK/256; MSTR为SP1主从模式选择位,等于0时.为从模式

9、,等于1时为主模式;CPOL为SPI时钟极性设置位,为0则空闲时钟为低电平,为1则空闲时钟为高电平;CPHA为SPI时钟相位设置位,等于0时,在第一个时钟跳边沿开始采集,等于1时,在第2个时钟跳边沿开始采集。(2) SPI_SR: SPI状态寄存器,如下图所示:1514131211109876543210ReservedFREBSYOVRMODFCRCERRUDRCHSIDETXERXNErrrrrc.wOrrrr其中TXE是发送缓冲区状态位,该位为0时发送缓冲区非空,为1时发送缓冲区为空;RXNE为接收缓冲区状态位,该位为0时接收缓冲区为空,该位为1时,接收缓冲区为非空。(3) SPI_DR

10、: SPI数据寄存器,用于存储接收或者发送的数据。SPI_DR的描述如下图所示:1514131211109876543210DR15:0rwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrw其中DR15:0存放SPI数据。五六轴传感器数据获取实验六轴传感器数据获取实验使用STM32的硬件SPI与六轴传感器ICM20602相连接,串口 1即UART1,通过USB转串口模块连接电脑,把SPI获取到的六轴数据通过串口 1传输到电脑端的串口调试助手显示出来。做该实验的时候需要把视觉模组暂时取下,并且把USB转串口的线接到视觉模组接口处。六轴传感器ICM20602在无人机顶部的白色RGB彩灯盒

11、里,通过软排把SPI及供电口接11出,如下图所示。SPICON812345678根据原理图,可以看到ICM20602的的SPI接口分别是:PB13、PA5、PA6、PA7,如下图所示。5VDGNDSCKMOSIMISOCS1CS2CS3-串口 1的配置可以参考串口(基础收发),配置代码(通过调用官方库)获取ICM20602的数据代码编写的思路如下:代码思路1管脚配置1、定义结构体;2、使能时钟;3、填充结构体;4、装载结构体。2SPI配置1、定义结构体;2、使能时钟;3、填充结构体;4、装载结构体;5、使能SPIo3SPI读写逻辑1、读一个字节;2、写一个字节。4ICM20602 驱动1、从传

12、感器读;2、从传感器写;3、ICM20602 初始化。SPI初始化代码如下:6 void My_SPI_Init(void)7 8 SPI_InitTypeDef SPI_I nit Structure;9 GPIO_InitTypeDef GPIO_InitStructure;10 一11 RCC_APB2PeriphClockCmd(RCC_GPIO_SPI/ ENABLE);12 RCc2APB2PeriphClockCmd(RCCCSN,ENABLE);13 RCc2APB2PeriphClockCmd(RCc2APB2Periph_SPIlz ENABLE);1415 /配置 SPI

13、 NRF SP工的 05,14工50,乂00工引脚 */16 GPIO_InitStructure.GPIO_Pin = SPI_Pin_SCK| SPI_Pin_MISO| SPI_Pin_MOSI;17 GPIOInitStructure.GPIOSpeed = GPIO_Speed_10MHz;18 GPIOInitStructure .GPIOMode = GPIO_Mode_AF_PP; /曳用功自519 GPIOInit(GPIO_SPIZ &GPIO_InitStructure)720 -一21 GPIO_InitStructure.GPIO-Pin = Pin_Cl;22 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_10MHz;23 GPIOInitStructure.GPIOMo

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 应用文档 > 汇报材料

copyright@ 2008-2022 001doc.com网站版权所有   

经营许可证编号:宁ICP备2022001085号

本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有,必要时第一文库网拥有上传用户文档的转载和下载权。第一文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知第一文库网,我们立即给予删除!



客服