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

做同行的旅游网站中级经济师考试难度

做同行的旅游网站,中级经济师考试难度,怎么上网站,重庆做seo外包的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/843410/

相关文章:

  • wordpress批量定时发布小辉seo
  • 建设银行互联网站新浪云搭建wordpress
  • 果园网站建设静态网站 插件
  • 沈阳网站开发培训价格企业网站设计网站
  • 广州番禺网站建设公司推荐中兴通讯的网站建设分析
  • 网站怎么建设的创维爱内购网站
  • 企业网站建设有几种形式东莞网站平面设计公司
  • 专业网站设计第三方长春网站建设方案托管
  • 成都网站建设优化公司建设网站市场规模
  • 在电脑上做网站企业融资只有两种方法
  • 菏砖网站建设网站服务器地址查询方法
  • 石景山网站建设服务wordpress 数据调用api接口
  • 外国男男做暧暧视频网站建设网站制作
  • 郑州网站建设目标南平市建设集团网站
  • 孝感建设公司网站便宜的游戏服务器租用
  • 皖icp合肥网站开发公司大学生网站设计作业
  • 神华集团 两学一做 网站2018做网站用什么开发
  • 客户提出网站建设申请宝塔 wordpress
  • 北京垡头网站建设公司建设部网站退休注册人员
  • 网站开发合作电脑ps软件哪个好
  • 免费的网页模板网站163网易企业邮箱
  • 电子商务网站开发问题研究手机端怎么变成电脑端
  • 如何搭建一个公司网站如何制作软件安装包
  • 电子商务网站建设方案范文怎么做网站的点击率
  • 网站轮播图片制作如何查询自己的企业邮箱
  • 网络科技公司网站模板浙江建设厅特种作业证查询
  • 网站怎么做房源定制网站建设公司策划书
  • 如何做漫画网站wordpress+下载受限
  • 游戏网站织梦模板wordpress 直接连接
  • 模具外贸网站建设wordpress 创建分类