mirror of
https://github.com/PX4/PX4-Autopilot.git
synced 2026-05-27 10:17:45 +08:00
uavcannode: Add CANNODE_TERM parameter (configure CAN termination on ARK cannodes)
- adds functionality to enable the built in can termination on the ARK cannodes
This commit is contained in:
@@ -48,6 +48,7 @@
|
|||||||
|
|
||||||
/* CAN termination software control */
|
/* CAN termination software control */
|
||||||
#define GPIO_CAN1_TERMINATION /* PB13 */ (GPIO_OUTPUT|GPIO_PUSHPULL|GPIO_SPEED_2MHz|GPIO_OUTPUT_CLEAR|GPIO_PORTB|GPIO_PIN13)
|
#define GPIO_CAN1_TERMINATION /* PB13 */ (GPIO_OUTPUT|GPIO_PUSHPULL|GPIO_SPEED_2MHz|GPIO_OUTPUT_CLEAR|GPIO_PORTB|GPIO_PIN13)
|
||||||
|
#define GPIO_CAN_TERM GPIO_CAN1_TERMINATION
|
||||||
|
|
||||||
/* Boot config */
|
/* Boot config */
|
||||||
#define GPIO_BOOT_CONFIG /* PC15 */ (GPIO_INPUT|GPIO_PULLUP|GPIO_PORTC|GPIO_PIN15|GPIO_EXTI)
|
#define GPIO_BOOT_CONFIG /* PC15 */ (GPIO_INPUT|GPIO_PULLUP|GPIO_PORTC|GPIO_PIN15|GPIO_EXTI)
|
||||||
|
|||||||
@@ -60,6 +60,7 @@
|
|||||||
|
|
||||||
/* CAN termination software control */
|
/* CAN termination software control */
|
||||||
#define GPIO_CAN1_TERMINATION /* PB13 */ (GPIO_OUTPUT|GPIO_PUSHPULL|GPIO_SPEED_2MHz|GPIO_OUTPUT_CLEAR|GPIO_PORTB|GPIO_PIN13)
|
#define GPIO_CAN1_TERMINATION /* PB13 */ (GPIO_OUTPUT|GPIO_PUSHPULL|GPIO_SPEED_2MHz|GPIO_OUTPUT_CLEAR|GPIO_PORTB|GPIO_PIN13)
|
||||||
|
#define GPIO_CAN_TERM GPIO_CAN1_TERMINATION
|
||||||
|
|
||||||
/* ICM42688p FSYNC */
|
/* ICM42688p FSYNC */
|
||||||
#define GPIO_42688P_FSYNC /* PB8 */ (GPIO_OUTPUT|GPIO_PUSHPULL|GPIO_SPEED_2MHz|GPIO_OUTPUT_CLEAR|GPIO_PORTB|GPIO_PIN8)
|
#define GPIO_42688P_FSYNC /* PB8 */ (GPIO_OUTPUT|GPIO_PUSHPULL|GPIO_SPEED_2MHz|GPIO_OUTPUT_CLEAR|GPIO_PORTB|GPIO_PIN8)
|
||||||
|
|||||||
@@ -60,6 +60,7 @@
|
|||||||
|
|
||||||
/* CAN termination software control */
|
/* CAN termination software control */
|
||||||
#define GPIO_CAN1_TERMINATION /* PB13 */ (GPIO_OUTPUT|GPIO_PUSHPULL|GPIO_SPEED_2MHz|GPIO_OUTPUT_CLEAR|GPIO_PORTB|GPIO_PIN13)
|
#define GPIO_CAN1_TERMINATION /* PB13 */ (GPIO_OUTPUT|GPIO_PUSHPULL|GPIO_SPEED_2MHz|GPIO_OUTPUT_CLEAR|GPIO_PORTB|GPIO_PIN13)
|
||||||
|
#define GPIO_CAN_TERM GPIO_CAN1_TERMINATION
|
||||||
|
|
||||||
/* ICM42688p FSYNC */
|
/* ICM42688p FSYNC */
|
||||||
#define GPIO_42688P_FSYNC /* PB8 */ (GPIO_OUTPUT|GPIO_PUSHPULL|GPIO_SPEED_2MHz|GPIO_OUTPUT_CLEAR|GPIO_PORTB|GPIO_PIN8)
|
#define GPIO_42688P_FSYNC /* PB8 */ (GPIO_OUTPUT|GPIO_PUSHPULL|GPIO_SPEED_2MHz|GPIO_OUTPUT_CLEAR|GPIO_PORTB|GPIO_PIN8)
|
||||||
|
|||||||
@@ -513,6 +513,19 @@ extern "C" int uavcannode_start(int argc, char *argv[])
|
|||||||
// Sarted byt the bootloader, we must pet it
|
// Sarted byt the bootloader, we must pet it
|
||||||
watchdog_pet();
|
watchdog_pet();
|
||||||
|
|
||||||
|
#if defined(GPIO_CAN_TERM)
|
||||||
|
int32_t can_term = 0;
|
||||||
|
param_get(param_find("CANNODE_TERM"), &can_term);
|
||||||
|
|
||||||
|
if (can_term != 0) {
|
||||||
|
px4_arch_gpiowrite(GPIO_CAN_TERM, true);
|
||||||
|
|
||||||
|
} else {
|
||||||
|
px4_arch_gpiowrite(GPIO_CAN_TERM, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
// CAN bitrate
|
// CAN bitrate
|
||||||
int32_t bitrate = 0;
|
int32_t bitrate = 0;
|
||||||
|
|
||||||
|
|||||||
@@ -50,3 +50,12 @@ PARAM_DEFINE_INT32(CANNODE_NODE_ID, 120);
|
|||||||
* @group UAVCAN
|
* @group UAVCAN
|
||||||
*/
|
*/
|
||||||
PARAM_DEFINE_INT32(CANNODE_BITRATE, 1000000);
|
PARAM_DEFINE_INT32(CANNODE_BITRATE, 1000000);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* CAN built-in bus termination
|
||||||
|
*
|
||||||
|
* @boolean
|
||||||
|
* @max 1
|
||||||
|
* @group UAVCAN
|
||||||
|
*/
|
||||||
|
PARAM_DEFINE_INT32(CANNODE_TERM, 0);
|
||||||
|
|||||||
Reference in New Issue
Block a user