当前位置: 首页 > news >正文

任经理 徐州网站建设做网站图片素材

任经理 徐州网站建设,做网站图片素材,中国国家培训网官网,外贸网站制作费用BARO模块BMP388气压计的PCB硬件设计和PX4驱动配置 BMP388简介硬件设计封装原理图PCB设计引脚选择问题 PX4驱动配置飞控板的配置文件夹结构default.px4board文件nuttx-config/nsh/defconfig文件nuttx-config/include/board.h文件src/board_config.h文件src/i2c.cpp文件init/rc.b…

BARO模块BMP388气压计的PCB硬件设计和PX4驱动配置

    • BMP388简介
    • 硬件设计
      • 封装
      • 原理图
      • PCB设计
      • 引脚选择问题
    • PX4驱动配置
      • 飞控板的配置文件夹结构
      • default.px4board文件
      • nuttx-config/nsh/defconfig文件
      • nuttx-config/include/board.h文件
      • src/board_config.h文件
      • src/i2c.cpp文件
      • init/rc.board_sensors文件
    • 编译BootLoader和Firmware并烧录进自己的飞控板

BMP388简介

BMP388是一款基于成熟传感原理的压力和温度测量数字传感器。

硬件设计

封装

采用了标准的LGA封装,单位是毫米。

在这里插入图片描述

引脚序号。

在这里插入图片描述

引脚定义。

在这里插入图片描述

原理图

使用I2C总线进行连接时的原理图。

在这里插入图片描述

使用I2C总线进行连接时的原理图。

在这里插入图片描述

PCB设计

我这里使用的是I2C总线进行连接,连接到MCU主控的I2C1接口。

在这里插入图片描述

主控选择的是STM32H743VIH6,I2C1总线是使用的SDA-PB9引脚、SCL-PB8引脚,气压计的数据准备完毕信号Data_Ready是使用PB7引脚,这些信息需要记录下来,之后在PX4配置中需要用到。

在这里插入图片描述

引脚选择问题

这里需要注意不是所有的引脚都可以作为BMP388的连接引脚,这个需要在给定的几种方案中选择。

对于主控STM32H743VIH6来说,有以下的引脚映射头文件。

引脚映射头文件stm32h7x3xx_pinmap.h

其中有以下内容:

#define GPIO_I2C1_SCL_1           (GPIO_ALT|GPIO_AF4|GPIO_SPEED_50MHz|GPIO_OPENDRAIN|GPIO_PORTB|GPIO_PIN6)
#define GPIO_I2C1_SCL_2           (GPIO_ALT|GPIO_AF4|GPIO_SPEED_50MHz|GPIO_OPENDRAIN|GPIO_PORTB|GPIO_PIN8)
#define GPIO_I2C1_SDA_1           (GPIO_ALT|GPIO_AF4|GPIO_SPEED_50MHz|GPIO_OPENDRAIN|GPIO_PORTB|GPIO_PIN7)
#define GPIO_I2C1_SDA_2           (GPIO_ALT|GPIO_AF4|GPIO_SPEED_50MHz|GPIO_OPENDRAIN|GPIO_PORTB|GPIO_PIN9)
#define GPIO_I2C1_SMBA            (GPIO_ALT|GPIO_AF4|GPIO_SPEED_50MHz|GPIO_PUSHPULL|GPIO_PORTB|GPIO_PIN5)

所以I2C1总线的SCL引脚只能从PB6、PB8中选择,SDA引脚只能从PB7、PB9中选择。

对于数据准备完毕信号的选择,由于该信号使用的是STM32的外部中断输入功能,所以它们的外部中断号不能重复,比如PE3的外部中断号是EXTI3、PE4的外部中断号是EXTI4,如果使用了外部中断号是EXTI3的PE3,那么在之后的其他数据准备完毕信号的选择中就不能选择外部中断号是EXTI3的PA3、PB3、PC3等引脚。

PX4驱动配置

飞控板的配置文件夹结构

飞控板的配置文件夹结构为下列所示。

YanQi
├─extras
|  └─UCAS_YanQi_bootloader.bin
├─init
|  ├─rc.board_defaults
|  └─rc.board_sensors
├─nuttx-config
|  ├─bootloader
|  |  └─defconfig
|  ├─include
|  |  ├─board.h
|  |  └─board_dma_map.h
|  ├─nsh
|  |  └─defconfig
|  ├─scripts
|  |  ├─bootloader_script.ld
|  |  └─script.ld
|  ├─src
|  └─Kconfig
├─src
|  ├─board_config.h
|  ├─bootloader_main.c
|  ├─CMakeLists.txt
|  ├─hw_config.h
|  ├─i2c.cpp
|  ├─init.c
|  ├─...
|  └─usb.c
├─bootloader.px4board
├─default.px4board
└─firmware.prototype

default.px4board文件

default.px4board文件是最常使用的文件,它负责配置每个串口的映射,配置哪些源码被编译到飞控固件中。由于需要使用BMP388的驱动,所以需要添加一行代码。

CONFIG_DRIVERS_BAROMETER_BMP388=y

nuttx-config/nsh/defconfig文件

nuttx-config/nsh/defconfig文件配置的是飞控固件中需要调用的底层资源,比如串口驱动、SPI驱动、I2C驱动等等。

这里使用的是I2C1总线,所以需要添加以下代码。

CONFIG_STM32H7_I2C1=y

nuttx-config/include/board.h文件

board.h文件用于配置NuttX操作系统中的时钟和引脚,对于所有具有多功能引脚(比如STM32中的有些引脚既可以作为UART也可以作为普通GPIO)的外围设备,NuttX需要知道每个引脚的设定功能,它们在芯片特定的引脚映射头文件stm32h7x3xx_pinmap.h中定义。

需要按照之前的原理图设计对应引脚映射头文件进行修改。

引脚映射头文件stm32h7x3xx_pinmap.h

I2C1的引脚定义设置的代码。

#define GPIO_I2C1_SCL GPIO_I2C1_SCL_2       /* PB8  */
#define GPIO_I2C1_SDA GPIO_I2C1_SDA_2       /* PB9  */#define GPIO_I2C1_SCL_GPIO                  (GPIO_OUTPUT | GPIO_OPENDRAIN |GPIO_SPEED_50MHz | GPIO_OUTPUT_SET | GPIO_PORTB | GPIO_PIN8)
#define GPIO_I2C1_SDA_GPIO                  (GPIO_OUTPUT | GPIO_OPENDRAIN |GPIO_SPEED_50MHz | GPIO_OUTPUT_SET | GPIO_PORTB | GPIO_PIN9)

src/board_config.h文件

board_config.h文件是一些LED灯定义、ADC采样定义。需要按照之前的原理图设计的数据准备完毕信号进行配置。

#define GPIO_I2C1_DRDY1_BMP388  /* PB7  */  (GPIO_INPUT|GPIO_FLOAT|GPIO_EXTI|GPIO_PORTB|GPIO_PIN7)

src/i2c.cpp文件

需要启动I2C1总线。

constexpr px4_i2c_bus_t px4_i2c_buses[I2C_BUS_MAX_BUS_ITEMS] = {initI2CBusInternal(1),initI2CBusExternal(2),// initI2CBusExternal(3),// initI2CBusExternal(4),};

init/rc.board_sensors文件

rc.board_sensors文件作用是启动连接到板上的传感器。

-I 是 Internal I2C 启动,-X 是 External I2C 启动。

-a 后面是 I2C 地址。

# 内部 I2C 总线 BMP388 气压计
bmp388 -I -a 0x76 start

编译BootLoader和Firmware并烧录进自己的飞控板

在Firmware文件夹中输入命令即可对BootLoader和固件进行编译。

make UCAS_YanQi_bootloader
make UCAS_YanQi_default

没有安装烧录工具的先安装dfu-util烧录工具包。

sudo apt install dfu-util

按住飞控板上的BOOT键同时将USB线插入飞控板,进入DFU模式,运行命令即可进行BootLoader烧录。

dfu-util -a 0 --dfuse-address 0x08000000 -D ./build/UCAS_YanQi_bootloader/UCAS_YanQi_bootloader.bin

之后使用QGC安装UCAS_YanQi_default.px4飞控固件即可。

http://www.yayakq.cn/news/622866/

相关文章:

  • 郯城做网站钦州网站建设公司哪家好
  • 做微网站是订阅号还是服务号号网络课程网站建设
  • 排版设计的网站网站开发的常见编程语言有哪些
  • 做西服的网站网站域名放国外
  • 毕节城乡建设厅网站易联网站建设
  • 哪里有做旅游包车的网站安通建设有限公司网站
  • 电商网站建设目的wordpress国内主题
  • wordpress 语言设定重庆网站优化
  • php网站超市源码互联网营销专家
  • 服务型网站建设池州网站建设费用
  • 温州网站建设icp备网站建设北京个人
  • 众划算网站开发青岛网站设计方案
  • 重庆建设行业网站可信网站认证必需做吧
  • 公司网站搭建流程网站推广和优化系统
  • 为什么要做营销型网站个人网站咋推广啥叫流量
  • led灯散热片技术支持 东莞网站建设免费咨询制度
  • 网站建设续费是什么费用wordpress jetpack
  • 专注做xp的网站绍兴seo排名公司
  • vue.js合作做网站么网站制作公司网站建设网站
  • 网站怎么做跳转链接上海计算机培训机构
  • 做网站和网页php mysql购物网站开发
  • 做网站 内容越多越好定做衣服的店附近哪里有
  • asp做的网站怎么运行公司的企业诚信建设分析
  • 专门做图的网站家居企业网站建设公司
  • 石家庄网站开发建设兰州网络推广技术
  • 营销策划好的网站辽宁省交通投资建设集团网站
  • 网站被镜像怎么做台州网站制作网站建设
  • 网站建设公司投融资分析wordpress自动跳转
  • 崇明建设镇网站中国建设银行手机银行官网
  • 网站建设数据安全分析如何让我的网站被百度收录