一些概念
-
飞控GPIO pins的用途由
SERVOx_FUNCTION
参数来指定,常用的用途如:- 用作传统的GPIO功能;
- 用作MOTOR的控制信号;
- 用作PWM信号输出,控制PWM设备。
- 用作SERVO信号输出。控制伺服设备如伺服电机;
- 用作输入信号,如电机的转速测量;
- 等等…
-
对于4.2以上版本的ardupilot,对于
PWM / SERVO / MOTOR
功能的使用和设置方式不同于以往。控制参数由原来的BRD_PWM_COUNT
变为SERVOx_FUNCTION
。 -
控制参数
- SERVOx_FUNCTION
- SERVO_GPIO_MASK
-
飞控的GPIO pins 主要用于
PWM / SERVO / MOTOR
功能,即:- PWM信号输出。用于控制支持PWM控制的设备。
- 伺服信号输出。用于控制伺服设备,如伺服电机、舵机。
- 电机控制信号。本质上是PWM信号。
-
MAIN pins 和 AUX pins
飞控的 GPIO pins 由 MAIN pins 和 AUX pins组成。
其中MAIN pins是飞控主处理器的 gpio pins;AUX pins是飞控副处理器的 gpio pins。
-
GPIO pins 的物理引脚映射
参考:GPIO “PIN” NUMBER
例如,MAIN pin 1~8分别映射到f飞控主处理器的GPIO引脚号101至108。
在hwdef.dat 声明映射关系! -
如果SERVOx_FUNCTION用作remote device使用(DroneCAN or KDECAN ESC,),那么可以SERVO_GPIO_MASK来配置GPIO功能。
用作SERVO
待续…
用作MOTOR
待续…
用作PWM
比如用遥控器通道控制某个pin的PWM值,可以这样设置:
是设置为RCPassThru还是RCIN10??