mirror of
https://bitbucket.org/librepilot/librepilot.git
synced 2025-01-31 16:52:10 +01:00
Updates to USB configuration on the PipXtreme.
This commit is contained in:
parent
483a96c31d
commit
01f314724b
@ -153,9 +153,9 @@ extern uint32_t pios_com_telem_usb_id;
|
|||||||
extern uint32_t pios_com_usart1_id;
|
extern uint32_t pios_com_usart1_id;
|
||||||
extern uint32_t pios_com_usart2_id;
|
extern uint32_t pios_com_usart2_id;
|
||||||
extern uint32_t pios_com_usart3_id;
|
extern uint32_t pios_com_usart3_id;
|
||||||
#define PIOS_COM_TELEM_GCS (pios_com_usart3_id)
|
#define PIOS_COM_TELEM_SERIAL (pios_com_usart1_id)
|
||||||
#define PIOS_COM_TELEM_OUT (pios_com_usart2_id)
|
#define PIOS_COM_DEBUG (pios_com_usart2_id)
|
||||||
#define PIOS_COM_DEBUG (pios_com_usart1_id)
|
#define PIOS_COM_FLEXI (pios_com_usart3_id)
|
||||||
#define PIOS_COM_TELEM_USB (pios_com_telem_usb_id)
|
#define PIOS_COM_TELEM_USB (pios_com_telem_usb_id)
|
||||||
|
|
||||||
//------------------------
|
//------------------------
|
||||||
|
@ -196,6 +196,16 @@ SRC += $(PIOSSTM32F10X)/pios_wdg.c
|
|||||||
SRC += $(PIOSSTM32F10X)/pios_tim.c
|
SRC += $(PIOSSTM32F10X)/pios_tim.c
|
||||||
SRC += $(PIOSSTM32F10X)/pios_pwm.c
|
SRC += $(PIOSSTM32F10X)/pios_pwm.c
|
||||||
|
|
||||||
|
# PIOS USB related files (separated to make code maintenance more easy)
|
||||||
|
SRC += $(PIOSSTM32F10X)/pios_usb.c
|
||||||
|
SRC += $(PIOSSTM32F10X)/pios_usbhook.c
|
||||||
|
SRC += $(PIOSSTM32F10X)/pios_usb_hid.c
|
||||||
|
SRC += $(PIOSSTM32F10X)/pios_usb_cdc.c
|
||||||
|
SRC += $(PIOSSTM32F10X)/pios_usb_hid_istr.c
|
||||||
|
SRC += $(PIOSSTM32F10X)/pios_usb_hid_pwr.c
|
||||||
|
SRC += $(OPSYSTEM)/pios_usb_board_data.c
|
||||||
|
SRC += $(PIOSCOMMON)/pios_usb_desc_hid_cdc.c
|
||||||
|
SRC += $(PIOSCOMMON)/pios_usb_desc_hid_only.c
|
||||||
|
|
||||||
## PIOS Hardware (Common)
|
## PIOS Hardware (Common)
|
||||||
SRC += $(PIOSCOMMON)/pios_crc.c
|
SRC += $(PIOSCOMMON)/pios_crc.c
|
||||||
|
@ -59,6 +59,9 @@
|
|||||||
#define PIOS_INCLUDE_SPI
|
#define PIOS_INCLUDE_SPI
|
||||||
#define PIOS_INCLUDE_SYS
|
#define PIOS_INCLUDE_SYS
|
||||||
#define PIOS_INCLUDE_USART
|
#define PIOS_INCLUDE_USART
|
||||||
|
#define PIOS_INCLUDE_USB
|
||||||
|
#define PIOS_INCLUDE_USB_HID
|
||||||
|
//#define PIOS_INCLUDE_USB_CDC
|
||||||
#define PIOS_INCLUDE_COM
|
#define PIOS_INCLUDE_COM
|
||||||
#define PIOS_INCLUDE_SETTINGS
|
#define PIOS_INCLUDE_SETTINGS
|
||||||
#define PIOS_INCLUDE_FREERTOS
|
#define PIOS_INCLUDE_FREERTOS
|
||||||
|
@ -39,7 +39,7 @@
|
|||||||
|
|
||||||
#include "pios_usb_defs.h" /* USB_* macros */
|
#include "pios_usb_defs.h" /* USB_* macros */
|
||||||
|
|
||||||
#define PIOS_USB_BOARD_PRODUCT_ID USB_PRODUCT_ID_COPTERCONTROL
|
#define PIOS_USB_BOARD_PRODUCT_ID USB_PRODUCT_ID_PIPXTREME
|
||||||
#define PIOS_USB_BOARD_DEVICE_VER USB_OP_DEVICE_VER(USB_OP_BOARD_ID_COPTERCONTROL, USB_OP_BOARD_MODE_FW)
|
#define PIOS_USB_BOARD_DEVICE_VER USB_OP_DEVICE_VER(USB_OP_BOARD_ID_PIPXTREME, USB_OP_BOARD_MODE_FW)
|
||||||
|
|
||||||
#endif /* PIOS_USB_BOARD_DATA_H */
|
#endif /* PIOS_USB_BOARD_DATA_H */
|
||||||
|
@ -271,6 +271,14 @@ void PIOS_ADC_handler() {
|
|||||||
|
|
||||||
#endif /* PIOS_INCLUDE_ADC */
|
#endif /* PIOS_INCLUDE_ADC */
|
||||||
|
|
||||||
|
#if defined(PIOS_INCLUDE_COM)
|
||||||
|
|
||||||
|
#include "pios_com_priv.h"
|
||||||
|
|
||||||
|
#endif /* PIOS_INCLUDE_COM */
|
||||||
|
|
||||||
|
#if defined(PIOS_INCLUDE_USART)
|
||||||
|
|
||||||
#include "pios_usart_priv.h"
|
#include "pios_usart_priv.h"
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -384,7 +392,7 @@ static const struct pios_usart_cfg pios_usart_telem_flexi_cfg = {
|
|||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
#include "pios_com_priv.h"
|
#endif /* PIOS_INCLUDE_USART */
|
||||||
|
|
||||||
#define PIOS_COM_TELEM_RF_RX_BUF_LEN 192
|
#define PIOS_COM_TELEM_RF_RX_BUF_LEN 192
|
||||||
#define PIOS_COM_TELEM_RF_TX_BUF_LEN 192
|
#define PIOS_COM_TELEM_RF_TX_BUF_LEN 192
|
||||||
@ -598,10 +606,60 @@ const struct pios_ppm_cfg pios_ppm_cfg = {
|
|||||||
*/
|
*/
|
||||||
uint32_t pios_rcvr_group_map[MANUALCONTROLSETTINGS_CHANNELGROUPS_NONE];
|
uint32_t pios_rcvr_group_map[MANUALCONTROLSETTINGS_CHANNELGROUPS_NONE];
|
||||||
|
|
||||||
|
uint32_t pios_com_telem_usb_id;
|
||||||
uint32_t pios_com_usart1_id;
|
uint32_t pios_com_usart1_id;
|
||||||
uint32_t pios_com_usart2_id;
|
uint32_t pios_com_usart2_id;
|
||||||
uint32_t pios_com_usart3_id;
|
uint32_t pios_com_usart3_id;
|
||||||
|
|
||||||
|
#if defined(PIOS_INCLUDE_USB)
|
||||||
|
#include "pios_usb_priv.h"
|
||||||
|
|
||||||
|
static const struct pios_usb_cfg pios_usb_main_cfg = {
|
||||||
|
.irq = {
|
||||||
|
.init = {
|
||||||
|
.NVIC_IRQChannel = USB_LP_CAN1_RX0_IRQn,
|
||||||
|
.NVIC_IRQChannelPreemptionPriority = PIOS_IRQ_PRIO_LOW,
|
||||||
|
.NVIC_IRQChannelSubPriority = 0,
|
||||||
|
.NVIC_IRQChannelCmd = ENABLE,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
#include "pios_usb_board_data_priv.h"
|
||||||
|
#include "pios_usb_desc_hid_cdc_priv.h"
|
||||||
|
#include "pios_usb_desc_hid_only_priv.h"
|
||||||
|
|
||||||
|
#endif /* PIOS_INCLUDE_USB */
|
||||||
|
|
||||||
|
#if defined(PIOS_INCLUDE_COM_MSG)
|
||||||
|
|
||||||
|
#include <pios_com_msg_priv.h>
|
||||||
|
|
||||||
|
#endif /* PIOS_INCLUDE_COM_MSG */
|
||||||
|
|
||||||
|
#if defined(PIOS_INCLUDE_USB_HID)
|
||||||
|
#include <pios_usb_hid_priv.h>
|
||||||
|
|
||||||
|
const struct pios_usb_hid_cfg pios_usb_hid_cfg = {
|
||||||
|
.data_if = 0,
|
||||||
|
.data_rx_ep = 1,
|
||||||
|
.data_tx_ep = 1,
|
||||||
|
};
|
||||||
|
#endif /* PIOS_INCLUDE_USB_HID */
|
||||||
|
|
||||||
|
#if defined(PIOS_INCLUDE_USB_CDC)
|
||||||
|
#include <pios_usb_cdc_priv.h>
|
||||||
|
|
||||||
|
const struct pios_usb_cdc_cfg pios_usb_cdc_cfg = {
|
||||||
|
.ctrl_if = 1,
|
||||||
|
.ctrl_tx_ep = 2,
|
||||||
|
|
||||||
|
.data_if = 2,
|
||||||
|
.data_rx_ep = 3,
|
||||||
|
.data_tx_ep = 3,
|
||||||
|
};
|
||||||
|
#endif /* PIOS_INCLUDE_USB_CDC */
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* PIOS_Board_Init()
|
* PIOS_Board_Init()
|
||||||
* initializes all the core subsystems on this specific hardware
|
* initializes all the core subsystems on this specific hardware
|
||||||
@ -652,6 +710,90 @@ void PIOS_Board_Init(void) {
|
|||||||
PIOS_TIM_InitClock(&tim_3_cfg);
|
PIOS_TIM_InitClock(&tim_3_cfg);
|
||||||
PIOS_TIM_InitClock(&tim_4_cfg);
|
PIOS_TIM_InitClock(&tim_4_cfg);
|
||||||
|
|
||||||
|
#if defined(PIOS_INCLUDE_USB)
|
||||||
|
/* Initialize board specific USB data */
|
||||||
|
PIOS_USB_BOARD_DATA_Init();
|
||||||
|
|
||||||
|
#if defined(PIOS_INCLUDE_USB_CDC)
|
||||||
|
if (PIOS_USB_DESC_HID_CDC_Init()) {
|
||||||
|
PIOS_Assert(0);
|
||||||
|
}
|
||||||
|
#else
|
||||||
|
if (PIOS_USB_DESC_HID_ONLY_Init()) {
|
||||||
|
PIOS_Assert(0);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
uint32_t pios_usb_id;
|
||||||
|
PIOS_USB_Init(&pios_usb_id, &pios_usb_main_cfg);
|
||||||
|
|
||||||
|
#if defined(PIOS_INCLUDE_USB_CDC)
|
||||||
|
|
||||||
|
#if defined(PIOS_INCLUDE_COM)
|
||||||
|
{
|
||||||
|
uint32_t pios_usb_cdc_id;
|
||||||
|
if (PIOS_USB_CDC_Init(&pios_usb_cdc_id, &pios_usb_cdc_cfg, pios_usb_id)) {
|
||||||
|
PIOS_Assert(0);
|
||||||
|
}
|
||||||
|
uint8_t * rx_buffer = (uint8_t *) pvPortMalloc(PIOS_COM_TELEM_USB_RX_BUF_LEN);
|
||||||
|
uint8_t * tx_buffer = (uint8_t *) pvPortMalloc(PIOS_COM_TELEM_USB_TX_BUF_LEN);
|
||||||
|
PIOS_Assert(rx_buffer);
|
||||||
|
PIOS_Assert(tx_buffer);
|
||||||
|
if (PIOS_COM_Init(&pios_com_telem_usb_id, &pios_usb_cdc_com_driver, pios_usb_cdc_id,
|
||||||
|
rx_buffer, PIOS_COM_TELEM_USB_RX_BUF_LEN,
|
||||||
|
tx_buffer, PIOS_COM_TELEM_USB_TX_BUF_LEN)) {
|
||||||
|
PIOS_Assert(0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif /* PIOS_INCLUDE_COM */
|
||||||
|
|
||||||
|
#ifdef COMBRIDGE
|
||||||
|
#if defined(PIOS_INCLUDE_COM)
|
||||||
|
{
|
||||||
|
uint32_t pios_usb_cdc_id;
|
||||||
|
if (PIOS_USB_CDC_Init(&pios_usb_cdc_id, &pios_usb_cdc_cfg, pios_usb_id)) {
|
||||||
|
PIOS_Assert(0);
|
||||||
|
}
|
||||||
|
uint8_t * rx_buffer = (uint8_t *) pvPortMalloc(PIOS_COM_BRIDGE_RX_BUF_LEN);
|
||||||
|
uint8_t * tx_buffer = (uint8_t *) pvPortMalloc(PIOS_COM_BRIDGE_TX_BUF_LEN);
|
||||||
|
PIOS_Assert(rx_buffer);
|
||||||
|
PIOS_Assert(tx_buffer);
|
||||||
|
if (PIOS_COM_Init(&pios_com_vcp_id, &pios_usb_cdc_com_driver, pios_usb_cdc_id,
|
||||||
|
rx_buffer, PIOS_COM_BRIDGE_RX_BUF_LEN,
|
||||||
|
tx_buffer, PIOS_COM_BRIDGE_TX_BUF_LEN)) {
|
||||||
|
PIOS_Assert(0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif /* PIOS_INCLUDE_COM */
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* PIOS_INCLUDE_USB_CDC */
|
||||||
|
|
||||||
|
#if defined(PIOS_INCLUDE_USB_HID)
|
||||||
|
|
||||||
|
/* Configure the usb HID port */
|
||||||
|
#if defined(PIOS_INCLUDE_COM)
|
||||||
|
{
|
||||||
|
uint32_t pios_usb_hid_id;
|
||||||
|
if (PIOS_USB_HID_Init(&pios_usb_hid_id, &pios_usb_hid_cfg, pios_usb_id)) {
|
||||||
|
PIOS_Assert(0);
|
||||||
|
}
|
||||||
|
uint8_t * rx_buffer = (uint8_t *) pvPortMalloc(PIOS_COM_TELEM_USB_RX_BUF_LEN);
|
||||||
|
uint8_t * tx_buffer = (uint8_t *) pvPortMalloc(PIOS_COM_TELEM_USB_TX_BUF_LEN);
|
||||||
|
PIOS_Assert(rx_buffer);
|
||||||
|
PIOS_Assert(tx_buffer);
|
||||||
|
if (PIOS_COM_Init(&pios_com_telem_usb_id, &pios_usb_hid_com_driver, pios_usb_hid_id,
|
||||||
|
rx_buffer, PIOS_COM_TELEM_USB_RX_BUF_LEN,
|
||||||
|
tx_buffer, PIOS_COM_TELEM_USB_TX_BUF_LEN)) {
|
||||||
|
PIOS_Assert(0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif /* PIOS_INCLUDE_COM */
|
||||||
|
|
||||||
|
#endif /* PIOS_INCLUDE_USB_HID */
|
||||||
|
|
||||||
|
#endif /* PIOS_INCLUDE_USB */
|
||||||
|
|
||||||
#ifdef TRANSMITTER_BOX
|
#ifdef TRANSMITTER_BOX
|
||||||
/* Configure the rcvr port */
|
/* Configure the rcvr port */
|
||||||
{
|
{
|
||||||
@ -718,9 +860,9 @@ void PIOS_Board_Init(void) {
|
|||||||
PIOS_Assert(0);
|
PIOS_Assert(0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
PIOS_COM_SendString(PIOS_COM_TELEM_SERIAL, "Hello Telem\n\r");
|
||||||
PIOS_COM_SendString(PIOS_COM_DEBUG, "Hello Debug\n\r");
|
PIOS_COM_SendString(PIOS_COM_DEBUG, "Hello Debug\n\r");
|
||||||
PIOS_COM_SendString(PIOS_COM_TELEM_GCS, "Hello GCS\n\r");
|
PIOS_COM_SendString(PIOS_COM_FLEXI, "Hello Flexi\n\r");
|
||||||
PIOS_COM_SendString(PIOS_COM_TELEM_OUT, "Hello CC\n\r");
|
|
||||||
|
|
||||||
/* Remap AFIO pin */
|
/* Remap AFIO pin */
|
||||||
GPIO_PinRemapConfig( GPIO_Remap_SWJ_NoJTRST, ENABLE);
|
GPIO_PinRemapConfig( GPIO_Remap_SWJ_NoJTRST, ENABLE);
|
||||||
|
@ -32,22 +32,18 @@
|
|||||||
#include "pios_sys.h" /* PIOS_SYS_SerialNumberGet */
|
#include "pios_sys.h" /* PIOS_SYS_SerialNumberGet */
|
||||||
#include "pios_usbhook.h" /* PIOS_USBHOOK_* */
|
#include "pios_usbhook.h" /* PIOS_USBHOOK_* */
|
||||||
|
|
||||||
static const uint8_t usb_product_id[28] = {
|
static const uint8_t usb_product_id[20] = {
|
||||||
sizeof(usb_product_id),
|
sizeof(usb_product_id),
|
||||||
USB_DESC_TYPE_STRING,
|
USB_DESC_TYPE_STRING,
|
||||||
'C', 0,
|
'P', 0,
|
||||||
'o', 0,
|
'i', 0,
|
||||||
'p', 0,
|
'p', 0,
|
||||||
|
'X', 0,
|
||||||
't', 0,
|
't', 0,
|
||||||
|
'r', 0,
|
||||||
|
'e', 0,
|
||||||
|
'm', 0,
|
||||||
'e', 0,
|
'e', 0,
|
||||||
'r', 0,
|
|
||||||
'C', 0,
|
|
||||||
'o', 0,
|
|
||||||
'n', 0,
|
|
||||||
't', 0,
|
|
||||||
'r', 0,
|
|
||||||
'o', 0,
|
|
||||||
'l', 0,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
static uint8_t usb_serial_number[52] = {
|
static uint8_t usb_serial_number[52] = {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user