BetaFlight统一硬件AOCODARC H7DUAL配置文件讨论

news2024/12/22 20:19:45

BetaFlight统一硬件AOCODARC H7DUAL配置文件讨论

  • 1. 源由
  • 2. Review配置
  • 3. 分析整理
    • 3.1 生产商信息
    • 3.2 磁力计
    • 3.3 气压计
    • 3.4 陀螺仪
    • 3.5 串口RxTx
    • 3.6 板载Flash
    • 3.7 模拟OSD MAX7456
    • 3.8 PPM接收机
    • 3.9 伺服器
    • 3.10 LED灯带
    • 3.11 蜂鸣器
    • 3.12 电机 X8
    • 3.13 ADC(电压/电流/RSSI信号强度/空速计)
    • 3.14 LED指示灯
    • 3.15 pinio设置
    • 3.16 RC链路
    • 3.17 USB OTG功能
    • 3.18 其他问题
  • 4. 问题汇总
  • 5. 参考资料

1. 源由

手边正好有一块AOCODARC H7DUAL的板子,后续也许可以派上用处。

鉴于BetaFlight统一硬件配置文件研读有了一个大概的了解,针对上述板子做一个简单review,并记录澄清一些问题。

在这里插入图片描述
在这里插入图片描述

2. Review配置

详见:AOCODARC H7DUAL

进行讨论的配置文件版本:

#define USE_ACCGYRO_BMI270
#define USE_BARO_DPS310
#define USE_FLASH_W25N01G
#define USE_MAX7456

board_name AOCODARCH7DUAL
manufacturer_id SJET

# resources
resource BEEPER 1 A15
resource MOTOR 1 B00
resource MOTOR 2 B01
resource MOTOR 3 A00
resource MOTOR 4 A01
resource MOTOR 5 A02
resource MOTOR 6 A03
resource MOTOR 7 D12
resource MOTOR 8 D13
resource SERVO 1 E05
resource SERVO 2 E06
resource PPM 1 A10
resource LED_STRIP 1 A08
resource SERIAL_TX 1 A09
resource SERIAL_TX 2 D05
resource SERIAL_TX 3 D08
resource SERIAL_TX 4 B09
resource SERIAL_TX 6 C06
resource SERIAL_TX 7 E08
resource SERIAL_TX 8 E01
resource SERIAL_RX 1 A10
resource SERIAL_RX 2 D06
resource SERIAL_RX 3 D09
resource SERIAL_RX 4 B08
resource SERIAL_RX 6 C07
resource SERIAL_RX 7 E07
resource SERIAL_RX 8 E00
resource I2C_SCL 1 B06
resource I2C_SCL 2 B10
resource I2C_SDA 1 B07
resource I2C_SDA 2 B11
resource LED 1 E03
resource LED 2 E04
resource SPI_SCK 1 A05
resource SPI_SCK 2 B13
resource SPI_SCK 3 B03
resource SPI_SCK 4 E12
resource SPI_MISO 1 A06
resource SPI_MISO 2 B14
resource SPI_MISO 3 B04
resource SPI_MISO 4 E13
resource SPI_MOSI 1 D07
resource SPI_MOSI 2 B15
resource SPI_MOSI 3 B05
resource SPI_MOSI 4 E14
resource ESCSERIAL 1 C07
resource ADC_BATT 1 C00
resource ADC_RSSI 1 C05
resource ADC_CURR 1 C01
resource ADC_EXT 1 C04
resource PINIO 1 D10
resource PINIO 2 D11
resource FLASH_CS 1 D03
resource OSD_CS 1 B12
resource GYRO_EXTI 1 B02
resource GYRO_EXTI 2 E15
resource GYRO_CS 1 C15
resource GYRO_CS 2 E11
resource USB_DETECT 1 E02

# timer
timer A10 AF1
# pin A10: TIM1 CH3 (AF1)
timer B00 AF2
# pin B00: TIM3 CH3 (AF2)
timer B01 AF2
# pin B01: TIM3 CH4 (AF2)
timer A00 AF2
# pin A00: TIM5 CH1 (AF2)
timer A01 AF2
# pin A01: TIM5 CH2 (AF2)
timer A02 AF2
# pin A02: TIM5 CH3 (AF2)
timer A03 AF2
# pin A03: TIM5 CH4 (AF2)
timer D12 AF2
# pin D12: TIM4 CH1 (AF2)
timer D13 AF2
# pin D13: TIM4 CH2 (AF2)
timer D14 AF2
# pin D14: TIM4 CH3 (AF2)
timer D15 AF2
# pin D15: TIM4 CH4 (AF2)
timer E05 AF4
# pin E05: TIM15 CH1 (AF4)
timer E06 AF4
# pin E06: TIM15 CH2 (AF4)
timer A08 AF1
# pin A08: TIM1 CH1 (AF1)

# dma
dma ADC 1 8
# ADC 1: DMA2 Stream 0 Request 9
dma ADC 3 9
# ADC 3: DMA2 Stream 1 Request 115
dma TIMUP 1 0
# TIMUP 1: DMA1 Stream 0 Request 15
dma TIMUP 3 2
# TIMUP 3: DMA1 Stream 2 Request 27
dma TIMUP 4 1
# TIMUP 4: DMA1 Stream 1 Request 32
dma TIMUP 5 0
# TIMUP 5: DMA1 Stream 0 Request 59
dma pin A10 0
# pin A10: DMA1 Stream 0 Request 13
dma pin B00 0
# pin B00: DMA1 Stream 0 Request 25
dma pin B01 1
# pin B01: DMA1 Stream 1 Request 26
dma pin A00 2
# pin A00: DMA1 Stream 2 Request 55
dma pin A01 3
# pin A01: DMA1 Stream 3 Request 56
dma pin A02 4
# pin A02: DMA1 Stream 4 Request 57
dma pin A03 5
# pin A03: DMA1 Stream 5 Request 58
dma pin D12 6
# pin D12: DMA1 Stream 6 Request 29
dma pin D13 7
# pin D13: DMA1 Stream 7 Request 30
dma pin D14 12
# pin D14: DMA2 Stream 4 Request 31
dma pin E05 0
# pin E05: DMA1 Stream 0 Request 105
dma pin A08 14
# pin A08: DMA2 Stream 6 Request 11

# feature
feature RX_SERIAL
feature TELEMETRY
feature OSD

# serial
serial 0 64 115200 57600 0 115200

# master
set gyro_to_use = BOTH
set mag_bustype = I2C
set mag_i2c_device = 1
set baro_bustype = I2C
set baro_i2c_device = 2
set blackbox_device = SPIFLASH
set current_meter = ADC
set battery_meter = ADC
set ibata_scale = 500
set beeper_inversion = ON
set beeper_od = OFF
set max7456_spi_bus = 2
set pinio_config = 129,1,1,1
set pinio_box = 39,40,255,255
set flash_spi_bus = 3
set gyro_1_bustype = SPI
set gyro_1_spibus = 1
set gyro_1_sensor_align = CW90
set gyro_1_align_yaw = 900
set gyro_2_spibus = 4
set gyro_2_sensor_align = CW180
set gyro_2_align_yaw = 1800

3. 分析整理

3.1 生产商信息

board_name AOCODARCH7DUAL
manufacturer_id SJET

3.2 磁力计

//板载无磁力计,但是总线还是申明了【兼容,挺好的方法;实用】
set mag_bustype = I2C
set mag_i2c_device = 1

resource I2C_SCL 1 B06
resource I2C_SDA 1 B07

3.3 气压计

#define USE_BARO_DPS310
set baro_bustype = I2C
set baro_i2c_device = 2

resource I2C_SCL 2 B10
resource I2C_SDA 2 B11

3.4 陀螺仪

#define USE_ACCGYRO_BMI270
set gyro_to_use = BOTH

set gyro_1_bustype = SPI
set gyro_1_spibus = 1
resource SPI_SCK 1 A05
resource SPI_MISO 1 A06
resource SPI_MOSI 1 D07

resource GYRO_EXTI 1 B02
resource GYRO_CS 1 C15

set gyro_1_sensor_align = CW90
set gyro_1_align_yaw = 900

//问题1:为什么没有配置gyro_2_bustype?
set gyro_2_spibus = 4
resource SPI_SCK 4 E12
resource SPI_MISO 4 E13
resource SPI_MOSI 4 E14

resource GYRO_EXTI 2 E15
resource GYRO_CS 2 E11

set gyro_2_sensor_align = CW180
set gyro_2_align_yaw = 1800

3.5 串口RxTx

resource SERIAL_TX 1 A09
resource SERIAL_TX 2 D05
resource SERIAL_TX 3 D08
resource SERIAL_TX 4 B09
resource SERIAL_TX 6 C06
resource SERIAL_TX 7 E08
resource SERIAL_TX 8 E01
resource SERIAL_RX 1 A10
resource SERIAL_RX 2 D06
resource SERIAL_RX 3 D09
resource SERIAL_RX 4 B08
resource SERIAL_RX 6 C07
resource SERIAL_RX 7 E07
resource SERIAL_RX 8 E00

resource ESCSERIAL 1 C07

//问题2:serial 0配置主要目的是什么,不能默认让用户进行配置吗?
serial 0 64 115200 57600 0 115200

3.6 板载Flash

#define USE_FLASH_W25N01G

set blackbox_device = SPIFLASH
set flash_spi_bus = 3
resource SPI_SCK 3 B03
resource SPI_MISO 3 B04
resource SPI_MOSI 3 B05

resource FLASH_CS 1 D03

3.7 模拟OSD MAX7456

#define USE_MAX7456
feature OSD

set max7456_spi_bus = 2
resource SPI_SCK 2 B13
resource SPI_MISO 2 B14
resource SPI_MOSI 2 B15

resource OSD_CS 1 B12

3.8 PPM接收机

resource PPM 1 A10

timer A10 AF1
# pin A10: TIM1 CH3 (AF1)

dma pin A10 0
# pin A10: DMA1 Stream 0 Request 13

3.9 伺服器

resource SERVO 1 E05
resource SERVO 2 E06

timer E05 AF4
# pin E05: TIM15 CH1 (AF4)
timer E06 AF4
# pin E06: TIM15 CH2 (AF4)

dma pin E05 0
# pin E05: DMA1 Stream 0 Request 105

//问题3:为什么伺服器SERVO 1分配了DMA资源,但是SERVO 2没有分配?

3.10 LED灯带

resource LED_STRIP 1 A08

timer A08 AF1
# pin A08: TIM1 CH1 (AF1)

dma pin A08 14
# pin A08: DMA2 Stream 6 Request 11

3.11 蜂鸣器

resource BEEPER 1 A15

set beeper_inversion = ON
set beeper_od = OFF

3.12 电机 X8

resource MOTOR 1 B00
resource MOTOR 2 B01
resource MOTOR 3 A00
resource MOTOR 4 A01
resource MOTOR 5 A02
resource MOTOR 6 A03
resource MOTOR 7 D12
resource MOTOR 8 D13

timer B00 AF2
# pin B00: TIM3 CH3 (AF2)
timer B01 AF2
# pin B01: TIM3 CH4 (AF2)
timer A00 AF2
# pin A00: TIM5 CH1 (AF2)
timer A01 AF2
# pin A01: TIM5 CH2 (AF2)
timer A02 AF2
# pin A02: TIM5 CH3 (AF2)
timer A03 AF2
# pin A03: TIM5 CH4 (AF2)
timer D12 AF2
# pin D12: TIM4 CH1 (AF2)
timer D13 AF2
# pin D13: TIM4 CH2 (AF2)

dma pin B00 0
# pin B00: DMA1 Stream 0 Request 25
dma pin B01 1
# pin B01: DMA1 Stream 1 Request 26
dma pin A00 2
# pin A00: DMA1 Stream 2 Request 55
dma pin A01 3
# pin A01: DMA1 Stream 3 Request 56
dma pin A02 4
# pin A02: DMA1 Stream 4 Request 57
dma pin A03 5
# pin A03: DMA1 Stream 5 Request 58
dma pin D12 6
# pin D12: DMA1 Stream 6 Request 29
dma pin D13 7
# pin D13: DMA1 Stream 7 Request 30

3.13 ADC(电压/电流/RSSI信号强度/空速计)

resource ADC_BATT 1 C00
resource ADC_RSSI 1 C05
resource ADC_CURR 1 C01
resource ADC_EXT 1 C04

dma ADC 1 8
# ADC 1: DMA2 Stream 0 Request 9
dma ADC 3 9
# ADC 3: DMA2 Stream 1 Request 115

set current_meter = ADC
set battery_meter = ADC

set ibata_scale = 500

注:电流传感器校准参数

3.14 LED指示灯

resource LED 1 E03
resource LED 2 E04

注:FCs should implement at least one LED to indicate activity. The second is preferable, and the third optional.

3.15 pinio设置

resource PINIO 1 D10
resource PINIO 2 D11

set pinio_config = 129,1,1,1
set pinio_box = 39,40,255,255

3.16 RC链路

feature RX_SERIAL
feature TELEMETRY

注:这个其实厂家也可以不配置,在BetaFlight Configurator的UI界面是可以配置的。

在这里插入图片描述

3.17 USB OTG功能

//问题3:USB_DETECT有什么特殊用途吗?

resource USB_DETECT 1 E02

3.18 其他问题

//问题4:板子配置文件中dma TIMUP配置主要用途是什么?

dma TIMUP 1 0
# TIMUP 1: DMA1 Stream 0 Request 15
dma TIMUP 3 2
# TIMUP 3: DMA1 Stream 2 Request 27
dma TIMUP 4 1
# TIMUP 4: DMA1 Stream 1 Request 32
dma TIMUP 5 0
# TIMUP 5: DMA1 Stream 0 Request 59


//问题5:D14和D15的用途是什么?

timer D14 AF2
# pin D14: TIM4 CH3 (AF2)
timer D15 AF2
# pin D15: TIM4 CH4 (AF2)

dma pin D14 12
# pin D14: DMA2 Stream 4 Request 31

4. 问题汇总

  • 问题1:为什么没有配置gyro_2_bustype?

已反馈生厂商或研读代码,待继续跟进。

  • 问题2:serial 0配置主要目的是什么,不能默认让用户进行配置吗?

已反馈生厂商或研读代码,待继续跟进。

  • 问题3:USB_DETECT有什么特殊用途吗?

a) 目前BetaFlight上没有用到这个引脚的功能。
b) 从精简的角度考虑,可以删除(已经与厂商确认)。
c) 个人认为这个引脚不配置,还可以做其他用途。不知道板子是否引出到GPIO口子上,估计没有。

  • 问题4:板子配置文件中dma TIMUP配置主要用途是什么?

已反馈生厂商或研读代码,待继续跟进。

  • 问题5:D14和D15的用途是什么?

厂家反馈:S9(D14)和S10(D15)分别对应电机#9和电机#10
但是电机相关的resource/timer/dma相关定义又不全

上述问题汇总,希望大家能指正/纠错,让博主和读者更加了解这些配置项。如有更新信息,会尽快将问题的答案更新上来,请感兴趣的朋友持续关注!

5. 参考资料

【1】BetaFlight开源代码框架简介
【2】BetaFlight统一硬件资源简单配置修改
【3】BetaFlight统一硬件配置文件研读
【4】BetaFlight Manufacturer Section

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/494200.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

(六)Spring源码阅读:invokeBeanFactoryPostProcessors方法

一、概述 invokeBeanFactoryPostProcessors的执行顺序大致如下,先执行子类BeanDefinitionRegistryPostProcessor再执行父类BeanFactoryPostProcessor。而对于同一个类的执行顺序是先执行外部的集合再到子集,之后再到父集。更小维度执行的顺序按照order注…

私人图片云盘 - 本地快速搭建简单的EasyImage图床并实现公网访问

文章目录 1.前言2. EasyImage网站搭建2.1. EasyImage下载和安装2.2. EasyImage网页测试2.3.cpolar的安装和注册 3.本地网页发布3.1.Cpolar云端设置3.2 Cpolar内网穿透本地设置 4. 公网访问测试5. 结语 1.前言 一个好的图床,是网站或者文章图片能稳定显示的关键&…

学习网络安全如何避免成为脚本小子或者安全工具人

想要避免成为工具人或者脚本小子,你需要注意学习初期和工作初期的选择。 首先,在学习初期,打好基础最重要,避免成为脚本小子。 你可能发现很多人仅仅会写个Python然后会用工具,积累一点经验就可以找到一份还不错的工…

传奇人物《周兴和》书连载之67 不辱神圣的使命

不辱神圣的使命 这里,先前还是一个十分神秘的地方。 外人和车辆要想进入这片区域,那是绝对不允许的。这片区域隐于群山之中,且戒备森严,外人若想进入,那是要经过好几道政治审查和随身检查的。近年来,随着…

外卖项目优化-02-mysql主从复制、读写分离(shardingJdbc)、Nginx(反向代理,负载均衡)

文章目录 瑞吉外卖项目优化-Day02课程内容前言1. MySQL主从复制1.1 介绍1.2 搭建1.2.1 准备工作1.2.2 主库配置1.2.3 从库配置 1.3 测试 2. 读写分离案例 (shardingJdbc)2.1 背景介绍2.2 ShardingJDBC介绍2.3 数据库环境2.4 初始工程导入2.5 读写分离配置2.6 测试 3. 项目实现读…

GPT-4等大语言模型对教育的未来意味着什么?

‍ ‍ shadow Mixlab这些年举办了非常多的活动和workshop,都带有很强的教育属性。今天我抽空学习了可汗学院的《AI-for-Education》课程,非常有启发。我记录了精华内容,分享给大家。 课程地址: www.khanacademy.org/college-caree…

8086CPU汇编环境安装

之前是使用XP虚拟机中的DOS窗口,后来在B站上逛到的视频【《汇编语言》速成指南(全程敲代码)】中介绍了DOSBox这个软件,觉得很好用,使用方式记录在这里。 软件下载好是这样: 一、安装BOX程序 双击exe安装 ,默认下一步…

看看好不好用,使用 Netty+SpringBoot 打造的 TCP 长连接通讯方案

项目背景 正文 一、项目架构 二、项目模块 三、业务流程 四、代码详解 五、测试 六、源码 后记 项目背景 最近公司某物联网项目需要使用socket长连接进行消息通讯。本猿为了解决这个问题,经过长时间的研究、调试和测试,最终找到了一个可行的方…

基于ASAM ODS标准的试验数字化平台-WDP

一 现状 随着现代测控技术的提高,数据结构变得越来越复杂多样,测量的数据量也在日益增大。此外,由于试验条件的限制,大多数企业的数据管理方式主要是通过各类电子文档将试验数据保存在每个工程师的移动电脑中,再进行汇…

【技术选型】Elasticsearch 和Solr那个香?

我们为什么在这里?我存在的目的是什么?我应该运动还是休息并节省能量?早起上班或晚起并整夜工作?我应该将炸薯条和番茄酱或蛋黄酱一起吃吗? 这些都是古老的问题,可能有也可能没有答案。其中一些是非常困难或…

值得关注!正在引领行业变革的15家AI明星创业公司

夕小瑶科技说 原创 作者 | 小戏、iven 星星之火,可以燎原。 在大模型横空出世的这个疯狂的春天,一场关于 AI 产品的革命也正在席卷全球。这边是大公司一个接一个模型搞军备竞赛,那边是各路豪强纷纷下场创业招兵买马。那么,除了咱…

PAT A1032 Sharing

1032 Sharing 分数 25 作者 CHEN, Yue 单位 浙江大学 To store English words, one method is to use linked lists and store a word letter by letter. To save some space, we may let the words share the same sublist if they share the same suffix. For example, l…

FreeRTOS:任务挂起和恢复

目录 一、任务挂起和恢复定义二、任务挂起2.1含义2.2任务挂起内部实现2.3函数vTaskSuspend() 三、任务恢复3.1含义3.2任务恢复内部实现3.3函数vTaskResume() 四、任务挂起和恢复实验4.1实验要求4.2程序代码 一、任务挂起和恢复定义 有时候我们需要暂停某个任务的运行&#xff…

代码随想录算法训练营第三十二天 | 利润题、覆盖范围题

122.买卖股票的最佳时机II 文档讲解:代码随想录 (programmercarl.com) 视频讲解:贪心算法也能解决股票问题!LeetCode:122.买卖股票最佳时机II_哔哩哔哩_bilibili 状态:根本做不出来,思路太巧了。 思路 想获…

浅谈Java、PHP、C++编程的优缺点

Java 、PHP、C 编程语言都是非常流行的编程语言,在开发、Web 开发、移动应用开发等领域都有广泛的应用。本文将从以下几个方面分析 Java、PHP、C 编程语言的优缺点。 一、Java 编程语言的优缺点 优点 (1)具有跨平台特性,能够在不…

Java8中DateTimeFormatter真的是线程安全的吗?

文章目录 [toc] 1.背景2.解决办法2.1办法一:换姿势或者升级JDK的版本2.1办法二:更换文件名称字生成策略 Java8中DateTimeFormatter真的是线程安全的吗? 答案是否定的 1.背景 由于之前写了一个旷世的ocr的服务,接入了旷世的FaceID的人脸比对…

初识WebAssembly

WebAssembly是一种新型的低级字节码格式,它可以在现代的浏览器中运行,同时也支持其它的平台,例如Node.js、Web Worker等。WebAssembly的目标是在Web平台上提供一种高效、安全、可移植的运行时环境,可以被用于执行任意类型的二进制…

ChatGPT实现leetcode 刷题和变型

leetcode 刷题和变型 作为一个程序员,Leetcode 是一个非常重要的网站。它不仅可以帮助程序员提高算法和数据结构的能力,还能帮助我们准备技术面试。但是,刷 Leetcode 也需要花费大量的时间和精力来解决各种难题。那么,有没有什么…

达成事务条件的实现原理

事务存在的意义:保证系统中的数据,都是符合预期的;相互关联的数据之间,不会产生矛盾 达成事务的条件 原子性:一个操作,要么同时成功、要么同时失败 隔离性:各业务,读写相互独立 持…

arm 源码编译kernel 对比image zimage uimage vmlinux

一 源码编译kernel 下载交叉编译工具链 下载cc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf.tar.xz ,这是官网的。使用下面命令下载。 585 wget https://releases.linaro.org/components/toolchain/binaries/4.9-2017.01/arm-linux-gnueabihf/gcc-linaro-4.9…