mirror of
https://github.com/ArduPilot/ardupilot
synced 2025-02-23 08:13:56 -04:00
AP_HAL_ChibiOS: allow H7 480Mhz clock speed to be configured in hwdef via MCU_CLOCKRATE_MHZ
This commit is contained in:
parent
fcb0538fef
commit
ceef68e07b
@ -11,6 +11,8 @@ APJ_BOARD_ID 1060
|
|||||||
# crystal frequency, setup to use external oscillator
|
# crystal frequency, setup to use external oscillator
|
||||||
OSCILLATOR_HZ 8000000
|
OSCILLATOR_HZ 8000000
|
||||||
|
|
||||||
|
MCU_CLOCKRATE_MHZ 480
|
||||||
|
|
||||||
env OPTIMIZE -O2
|
env OPTIMIZE -O2
|
||||||
|
|
||||||
STM32_ST_USE_TIMER 2
|
STM32_ST_USE_TIMER 2
|
||||||
|
@ -19,7 +19,7 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
// we want to cope with both revision XY chips and newer chips
|
// we want to cope with both revision XY chips and newer chips
|
||||||
#ifndef STM32H750xx
|
#if !defined(HAL_CUSTOM_MCU_CLOCKRATE) || HAL_CUSTOM_MCU_CLOCKRATE <= 400000000
|
||||||
#define STM32_ENFORCE_H7_REV_XY
|
#define STM32_ENFORCE_H7_REV_XY
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -161,9 +161,13 @@
|
|||||||
|
|
||||||
#elif (STM32_HSECLK == 8000000U) || (STM32_HSECLK == 16000000U)
|
#elif (STM32_HSECLK == 8000000U) || (STM32_HSECLK == 16000000U)
|
||||||
// common clock tree for multiples of 8MHz crystals
|
// common clock tree for multiples of 8MHz crystals
|
||||||
#ifdef STM32H750xx
|
#ifdef HAL_CUSTOM_MCU_CLOCKRATE
|
||||||
|
#if HAL_CUSTOM_MCU_CLOCKRATE == 480000000
|
||||||
#define STM32_PLL1_DIVN_VALUE 120
|
#define STM32_PLL1_DIVN_VALUE 120
|
||||||
#else
|
#else
|
||||||
|
#error "Unable to configure custom clockrate"
|
||||||
|
#endif
|
||||||
|
#else
|
||||||
#define STM32_PLL1_DIVN_VALUE 100
|
#define STM32_PLL1_DIVN_VALUE 100
|
||||||
#endif
|
#endif
|
||||||
#define STM32_PLL1_DIVP_VALUE 2
|
#define STM32_PLL1_DIVP_VALUE 2
|
||||||
@ -181,9 +185,13 @@
|
|||||||
#define STM32_PLL3_DIVR_VALUE 9
|
#define STM32_PLL3_DIVR_VALUE 9
|
||||||
|
|
||||||
#elif STM32_HSECLK == 24000000U
|
#elif STM32_HSECLK == 24000000U
|
||||||
#ifdef STM32H750xx
|
#ifdef HAL_CUSTOM_MCU_CLOCKRATE
|
||||||
|
#if HAL_CUSTOM_MCU_CLOCKRATE == 480000000
|
||||||
#define STM32_PLL1_DIVN_VALUE 120
|
#define STM32_PLL1_DIVN_VALUE 120
|
||||||
#else
|
#else
|
||||||
|
#error "Unable to configure custom clockrate"
|
||||||
|
#endif
|
||||||
|
#else
|
||||||
#define STM32_PLL1_DIVN_VALUE 100
|
#define STM32_PLL1_DIVN_VALUE 100
|
||||||
#endif
|
#endif
|
||||||
#define STM32_PLL1_DIVP_VALUE 2
|
#define STM32_PLL1_DIVP_VALUE 2
|
||||||
@ -201,6 +209,9 @@
|
|||||||
#define STM32_PLL3_DIVR_VALUE 9
|
#define STM32_PLL3_DIVR_VALUE 9
|
||||||
|
|
||||||
#elif STM32_HSECLK == 25000000U
|
#elif STM32_HSECLK == 25000000U
|
||||||
|
#ifdef HAL_CUSTOM_MCU_CLOCKRATE
|
||||||
|
#error "Unable to configure custom clockrate"
|
||||||
|
#endif
|
||||||
#define STM32_PLL1_DIVN_VALUE 64
|
#define STM32_PLL1_DIVN_VALUE 64
|
||||||
#define STM32_PLL1_DIVP_VALUE 2
|
#define STM32_PLL1_DIVP_VALUE 2
|
||||||
#define STM32_PLL1_DIVQ_VALUE 10
|
#define STM32_PLL1_DIVQ_VALUE 10
|
||||||
|
@ -61,7 +61,7 @@ mcu = {
|
|||||||
(0x38000000, 64, 1), # SRAM4.
|
(0x38000000, 64, 1), # SRAM4.
|
||||||
],
|
],
|
||||||
|
|
||||||
'EXPECTED_CLOCK' : 480000000,
|
'EXPECTED_CLOCK' : 400000000,
|
||||||
|
|
||||||
# this MCU has M7 instructions and hardware double precision
|
# this MCU has M7 instructions and hardware double precision
|
||||||
'CORTEX' : 'cortex-m7',
|
'CORTEX' : 'cortex-m7',
|
||||||
|
@ -1037,7 +1037,11 @@ def write_mcu_config(f):
|
|||||||
#endif
|
#endif
|
||||||
''')
|
''')
|
||||||
|
|
||||||
if get_mcu_config('EXPECTED_CLOCK', required=True):
|
if get_config('MCU_CLOCKRATE_MHZ', required=False):
|
||||||
|
clockrate = int(get_config('MCU_CLOCKRATE_MHZ'))
|
||||||
|
f.write('#define HAL_CUSTOM_MCU_CLOCKRATE %u\n' % (clockrate * 1000000))
|
||||||
|
f.write('#define HAL_EXPECTED_SYSCLOCK %u\n' % (clockrate * 1000000))
|
||||||
|
elif get_mcu_config('EXPECTED_CLOCK', required=True):
|
||||||
f.write('#define HAL_EXPECTED_SYSCLOCK %u\n' % get_mcu_config('EXPECTED_CLOCK'))
|
f.write('#define HAL_EXPECTED_SYSCLOCK %u\n' % get_mcu_config('EXPECTED_CLOCK'))
|
||||||
|
|
||||||
env_vars['CORTEX'] = cortex
|
env_vars['CORTEX'] = cortex
|
||||||
|
Loading…
Reference in New Issue
Block a user