-
Notifications
You must be signed in to change notification settings - Fork 18.1k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
5 changed files
with
529 additions
and
0 deletions.
There are no files selected for viewing
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
112 changes: 112 additions & 0 deletions
112
libraries/AP_HAL_ChibiOS/hwdef/SULILGH7-P1-P2/README.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,112 @@ | ||
# SULILGH7P1/P2 Flight Controller | ||
|
||
# This firmware is compatible with SULILGH7-P1 and SULILGH7-P2. | ||
|
||
This is the open-source hardware I have released, and you can find more details at the following link: https://oshwhub.com/shuyedeye/p1-flight-control. | ||
|
||
|
||
<img src="P1.jpg" alt="" width="400"> | ||
|
||
## Features: | ||
- Separate flight control core design. | ||
- MCU | ||
STM32H743IIK6 32-bit processor running at 480MHz | ||
2MB Flash | ||
1MB RAM | ||
- IO MCU | ||
STM32F103 | ||
- Sensors | ||
- IMU: | ||
P2:Internal Vibration Isolation for IMUs | ||
P2:IMU constant temperature heating(1 W heating power). | ||
With Triple Synced IMUs, BalancedGyro technology, low noise and more shock-resistant: | ||
IMU1-BMI088(With vibration isolation) | ||
IMU2-ICM42688-P(With vibration isolation) | ||
IMU3-ICM20689(No vibration isolation) | ||
- Baro: | ||
Two barometers:Baro1-BMP581 , Baro2-ICP20100 | ||
Magnetometer: Builtin IST8310 magnetometer | ||
|
||
|
||
## UART Mapping | ||
The UARTs are marked Rn and Tn in the above pinouts. The Rn pin is the receive pin for UARTn. The Tn pin is the transmit pin for UARTn. | ||
| Name | Function | MCU PINS | DMA | | ||
| :-----: | :------: | :------: | :------:| | ||
| SERIAL0 | OTG1 | USB | | ||
| SERIAL1 | Telem1 | USART2 |DMA Enabled | | ||
| SERIAL2 | Telem2 | USART3 |DMA Enabled | | ||
| SERIAL3 | GPS1 | USART1 |DMA Enabled | | ||
| SERIAL4 | GPS2 | UART4 |DMA Enabled | | ||
| SERIAL5 | RC | UART8 |DMA Enabled | | ||
| SERIAL7 |FMU DEBUG | UART7 |DMA Enabled | | ||
| SERIAL8 | OTG-SLCAN| USB | | ||
|
||
## RC Input | ||
The RCIN pin, which by default is mapped to a timer input, can be used for all ArduPilot supported receiver protocols, except CRSF/ELRS and SRXL2 which require a true UART connection. However, FPort, when connected in this manner, will only provide RC without telemetry. | ||
To allow CRSF and embedded telemetry available in Fport, CRSF, and SRXL2 receivers, a full UART, such as SERIAL5 (UART8) would need to be used for receiver connections. Below are setups using Serial5. | ||
|
||
* :ref:`SERIAL5_PROTOCOL<SERIAL5_PROTOCOL>` should be set to “23”. | ||
* FPort would require :ref:'SERIAL5_OPTIONS<SERIAL5_OPTIONS>' Set it to “15”。 | ||
* CRSF would require :ref:`SERIAL5_OPTIONS<SERIAL5_OPTIONS>` set to “0”. | ||
* SRXL2 would require :ref:'SERIAL5_OPTIONS<SERIAL5_OPTIONS>' set to “1”. And only connect the TX pin. | ||
|
||
* PPM/SBUS The remote control signal should be connected to the “RC IN” pin, at one side of the servo channels.This signal pin supports two types of remote control signal inputs, SBUS and PPM signals. | ||
|
||
Any UART can also be used for RC system connections in ArduPilot and is compatible with all protocols except PPM. See :ref:`Radio Control Systems <common-rc-systems>` for details. | ||
|
||
## PWM Output | ||
The SULILLGH7-P1/P2 flight controller supports up to 16 PWM outputs. | ||
First 8 outputs (labelled 1 to 8) are controlled by a dedicated STM32F103 IO controller. | ||
The remaining 8 outputs (labelled 9 to 16) are the "auxiliary" outputs. These are directly attached to the STM32H753 FMU controller. | ||
All 16 outputs support normal PWM output formats. All 16 outputs support DShot, except 15 and 16. | ||
|
||
The 8 IO PWM outputs are in 4 groups: | ||
- Outputs 1 and 2 in group1 | ||
- Outputs 3 and 4 in group2 | ||
- Outputs 5, 6, 7 and 8 in group3 | ||
|
||
The 8 FMU PWM outputs are in 4 groups: | ||
- Outputs 1, 2, 3 and 4 in group1 | ||
- Outputs 5 and 6 in group2 | ||
- Outputs 7 and 8 in group3 | ||
|
||
Channels within the same group need to use the same output rate. If any channel in a group uses DShot then all channels in the group need to use DShot. | ||
|
||
## GPIO | ||
All PWM outputs can be used as GPIOs (relays, camera, RPM etc). To use them you need to set the output’s SERVOx_FUNCTION to -1. The numbering of the GPIOs for PIN variables in ArduPilot is: | ||
|
||
<table> | ||
<tr> | ||
<th colspan="3">IO Pins</th> | ||
<th colspan="1"> </th> | ||
<th colspan="3">FMU Pins</th> | ||
</tr> | ||
<tr><td> Name </td><td> Value </td><td> Option </td><td> </td><td> Name </td><td> Value </td><td> Option </td></tr> | ||
<tr><td> M1 </td><td> 101 </td> <td> MainOut1 </td><td> </td><td> M9 </td><td> 50 </td><td> AuxOut1 </td></tr> | ||
<tr><td> M2 </td><td> 102 </td> <td> MainOut2 </td><td> </td><td> M10 </td><td> 51 </td><td> AuxOut2 </td></tr> | ||
<tr><td> M3 </td><td> 103 </td> <td> MainOut3 </td><td> </td><td> M11 </td><td> 52 </td><td> AuxOut3 </td></tr> | ||
<tr><td> M4 </td><td> 104 </td> <td> MainOut4 </td><td> </td><td> M12 </td><td> 53 </td><td> AuxOut4 </td></tr> | ||
<tr><td> M5 </td><td> 105 </td> <td> MainOut5 </td><td> </td><td> M13 </td><td> 54 </td><td> AuxOut5 </td></tr> | ||
<tr><td> M6 </td><td> 106 </td> <td> MainOut6 </td><td> </td><td> M14 </td><td> 55 </td><td> AuxOut6 </td></tr> | ||
<tr><td> M7 </td><td> 107 </td> <td> MainOut7 </td><td> </td><td> M15 </td><td> 56 </td><td> </td></tr> | ||
<tr><td> M8 </td><td> 108 </td> <td> MainOut8 </td><td> </td><td> M16 </td><td> 57 </td><td> </td></tr> | ||
</table> | ||
|
||
## Battery Monitoring | ||
Two DroneCAN power monitor interfaces have been configured | ||
These are set by default in the firmware and shouldn't need to be adjusted. | ||
|
||
## Compass | ||
The P1/P2 flight controllers have an integrated IST8310 high-precision magnetometer. | ||
|
||
## Analog inputs | ||
The P1/P2 flight controller has 2 analog inputs. | ||
- ADC Pin12 -> ADC 6.6V Sense | ||
- ADC Pin13 -> ADC 3.3V Sense | ||
- RSSI input pin = 103 | ||
|
||
## Loading Firmware | ||
|
||
The board comes pre-installed with an ArduPilot compatible bootloader, allowing the loading of xxxxxx.apj firmware files with any ArduPilot compatible ground station. | ||
|
||
Firmware for these boards can be found [here](https://firmware.ardupilot.org/) in sub-folders labeled “SULIGH7-P1-P2”. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
CAN_P1_DRIVER 1 | ||
CAN_P2_DRIVER 1 | ||
|
||
BATT_MONITOR 8 | ||
GPS1_TYPE 9 |
105 changes: 105 additions & 0 deletions
105
libraries/AP_HAL_ChibiOS/hwdef/SULILGH7-P1-P2/hwdef-bl.dat
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,105 @@ | ||
# hw definition file for processing by chibios_hwdef.py | ||
# for the SULILGH7_P1 hardware | ||
|
||
# MCU class and specific type | ||
MCU STM32H7xx STM32H743xx | ||
|
||
# crystal frequency | ||
OSCILLATOR_HZ 16000000 | ||
|
||
# board ID for firmware load | ||
APJ_BOARD_ID AP_HW_SULILGH7-P1-P2 | ||
|
||
# bootloader is installed at zero offset | ||
FLASH_RESERVE_START_KB 0 | ||
|
||
# the location where the bootloader will put the firmware | ||
FLASH_BOOTLOADER_LOAD_KB 128 | ||
|
||
# flash size | ||
FLASH_SIZE_KB 2048 | ||
|
||
MCU_CLOCKRATE_MHZ 480 | ||
|
||
# ChibiOS system timer | ||
STM32_ST_USE_TIMER 2 | ||
|
||
# order of UARTs (and USB) | ||
SERIAL_ORDER OTG1 UART7 USART2 USART3 | ||
|
||
# USB | ||
PA11 OTG_FS_DM OTG1 | ||
PA12 OTG_FS_DP OTG1 | ||
PA9 VBUS INPUT OPENDRAIN | ||
|
||
# pins for SWD debugging | ||
PA13 JTMS-SWDIO SWD | ||
PA14 JTCK-SWCLK SWD | ||
|
||
# CS pins | ||
PI9 ICM20689_CS CS | ||
PH5 BMP_581_CS CS | ||
PI4 BMI088_A_CS CS | ||
PI8 BMI088_G_CS CS | ||
PH15 ICM_42688_CS CS | ||
PG7 FRAM_CS CS | ||
PC2 EXT1_CS CS | ||
PC3 EXT2_CS CS | ||
|
||
# DEBUG | ||
PE8 UART7_TX UART7 | ||
PE7 UART7_RX UART7 | ||
|
||
# telem1 | ||
PD5 USART2_TX USART2 | ||
PA3 USART2_RX USART2 | ||
PD4 USART2_RTS USART2 | ||
PD3 USART2_CTS USART2 | ||
|
||
# telem2 | ||
PD8 USART3_TX USART3 | ||
PD9 USART3_RX USART3 | ||
PD12 USART3_RTS USART3 | ||
PD11 USART3_CTS USART3 | ||
|
||
# LEDs | ||
PE3 LED_RED OUTPUT OPENDRAIN HIGH # red | ||
PE4 LED_ACTIVITY OUTPUT OPENDRAIN HIGH # blue | ||
PE5 LED_BOOTLOADER OUTPUT OPENDRAIN HIGH # green | ||
|
||
define HAL_STORAGE_SIZE 16384 | ||
|
||
# enable DFU by default | ||
ENABLE_DFU_BOOT 1 | ||
|
||
# support flashing from SD card: | ||
# power enable pins | ||
PG3 VDD_3V3_SD_CARD_EN OUTPUT HIGH | ||
PG6 VDD_3V3_IMU_EN OUTPUT HIGH | ||
|
||
# FATFS support: | ||
define CH_CFG_USE_MEMCORE 1 | ||
define CH_CFG_USE_HEAP 1 | ||
define CH_CFG_USE_SEMAPHORES 0 | ||
define CH_CFG_USE_MUTEXES 1 | ||
define CH_CFG_USE_DYNAMIC 1 | ||
define CH_CFG_USE_WAITEXIT 1 | ||
define CH_CFG_USE_REGISTRY 1 | ||
|
||
# microSD support | ||
PD6 SDMMC2_CK SDMMC2 | ||
PD7 SDMMC2_CMD SDMMC2 | ||
PB14 SDMMC2_D0 SDMMC2 | ||
PB15 SDMMC2_D1 SDMMC2 | ||
PG11 SDMMC2_D2 SDMMC2 | ||
PB4 SDMMC2_D3 SDMMC2 | ||
define FATFS_HAL_DEVICE SDCD2 | ||
|
||
DMA_PRIORITY SDMMC* USART6* ADC* UART* USART* SPI* TIM* | ||
|
||
# enable FAT filesystem support (needs a microSD defined via SDMMC) | ||
define HAL_OS_FATFS_IO 1 | ||
|
||
define BOOTLOADER_DEBUG SD7 | ||
|
||
define AP_BOOTLOADER_FLASH_FROM_SD_ENABLED 1 |
Oops, something went wrong.