chore: use settings from radio JSON files instead of hal.h (#7411)
Co-authored-by: 3djc <3djc@gh.com>
This commit is contained in:
@@ -130,6 +130,8 @@ function(AddHWGenTarget input template output)
|
||||
COMMAND ${GEN_JSON} > ${output}
|
||||
DEPENDS ${INPUT_JSON} ${TEMPLATE} ${GEN_PY_DEPS} ${CMAKE_BINARY_DIR}/CMakeCache.txt
|
||||
)
|
||||
|
||||
add_custom_target(${template} DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/${output})
|
||||
endfunction()
|
||||
|
||||
macro(AddHeadersSources)
|
||||
|
||||
@@ -1226,32 +1226,39 @@ bool BoardJson::loadFile(Board::Type board, QString hwdefn, InputsTable * inputs
|
||||
if (obj.value("display").isObject()) {
|
||||
const QJsonObject &o = obj.value("display").toObject();
|
||||
|
||||
display.w = o.value("w").toInt();
|
||||
display.h = o.value("h").toInt();
|
||||
display.phys_w = o.value("phys_w").toInt();
|
||||
display.phys_h = o.value("phys_h").toInt();
|
||||
display.depth = o.value("depth").toInt();
|
||||
display.color = o.value("color").toInt();
|
||||
display.oled = o.value("oled").toInt();
|
||||
display.backlight_color = o.value("backlight_color").toInt();
|
||||
display.w = o.value("lcd_w").toInt();
|
||||
display.h = o.value("lcd_h").toInt();
|
||||
display.phys_w = o.value("lcd_phys_w").toInt();
|
||||
display.phys_h = o.value("lcd_phys_h").toInt();
|
||||
display.depth = o.value("lcd_depth").toInt();
|
||||
display.color = display.depth == 16 ? 1 : 0;
|
||||
display.oled = o.value("oled_screen").toBool();
|
||||
}
|
||||
|
||||
if (obj.value("custom_switches").isObject()) {
|
||||
const QJsonObject &o = obj.value("custom_switches").toObject();
|
||||
if (obj.value("backlight").isObject()) {
|
||||
const QJsonObject &o = obj.value("backlight").toObject();
|
||||
|
||||
cfs.rgb_led = o.value("rgb_led").toInt();
|
||||
cfs.groups = o.value("groups").toInt();
|
||||
display.backlight_color = o.value("has_backlight_color").toBool();
|
||||
}
|
||||
|
||||
if (obj.value("leds").isObject()) {
|
||||
const QJsonObject &o = obj.value("leds").toObject();
|
||||
|
||||
int cfs_led_strip_length = o.value("cfs_led_strip_length").toInt();
|
||||
int cfs_leds_per_switch = o.value("cfs_leds_per_switch").toInt();
|
||||
cfs.groups = cfs_leds_per_switch ? cfs_led_strip_length / (2 * cfs_leds_per_switch) : 0;
|
||||
cfs.rgb_led = cfs.groups > 0;
|
||||
hardware.has_bling_leds = o.value("bling_led_strip_length").toInt();
|
||||
}
|
||||
|
||||
if (obj.value("hardware").isObject()) {
|
||||
const QJsonObject &o = obj.value("hardware").toObject();
|
||||
|
||||
hardware.has_audio_mute = o.value("has_audio_mute").toInt();
|
||||
hardware.has_bling_leds = o.value("has_bling_leds").toInt();
|
||||
hardware.has_ext_module_support = o.value("has_ext_module_support").toInt();
|
||||
hardware.has_int_module_support = o.value("has_int_module_support").toInt();
|
||||
hardware.has_audio_mute = o.value("has_audio_mute").toBool();
|
||||
hardware.has_ext_module_support = o.value("has_ext_module_support").toBool();
|
||||
hardware.has_int_module_support = o.value("has_int_module_support").toBool();
|
||||
hardware.sport_max_baudrate = o.value("sport_max_baudrate").toInt();
|
||||
hardware.surface = o.value("surface").toInt();
|
||||
hardware.surface = o.value("surface").toBool();
|
||||
hardware.cpu = o.value("cpu").toString().toStdString();
|
||||
hardware.cpu_type = o.value("cpu_type").toString().toStdString();
|
||||
}
|
||||
|
||||
@@ -124,6 +124,29 @@ add_definitions(
|
||||
|
||||
set(HW_DESC_JSON ${FLAVOUR}.json)
|
||||
|
||||
# Generate files from radio JSON
|
||||
AddHWGenTarget(${HW_DESC_JSON} hal_settings hal_settings.h)
|
||||
|
||||
AddHWGenTarget(${HW_DESC_JSON} hal_keys hal_keys.inc)
|
||||
AddHWGenTarget(${HW_DESC_JSON} hal_adc_inputs hal_adc_inputs.inc)
|
||||
|
||||
AddHWGenTarget(${HW_DESC_JSON} yaml_inputs yaml_inputs.inc)
|
||||
|
||||
AddHWGenTarget(${HW_DESC_JSON} lua_inputs lua_inputs.inc)
|
||||
AddHWGenTarget(${HW_DESC_JSON} lua_mixsrc lua_mixsrc.inc)
|
||||
AddHWGenTarget(${HW_DESC_JSON} lua_keys lua_keys.inc)
|
||||
|
||||
AddHWGenTarget(${HW_DESC_JSON} stm32_keys stm32_keys.inc)
|
||||
AddHWGenTarget(${HW_DESC_JSON} stm32_switches stm32_switches.inc)
|
||||
AddHWGenTarget(${HW_DESC_JSON} stm32_adc_inputs stm32_adc_inputs.inc)
|
||||
AddHWGenTarget(${HW_DESC_JSON} stm32_pwm_inputs stm32_pwm_inputs.inc)
|
||||
|
||||
AddHWGenTarget(${HW_DESC_JSON} simu_keys simu_keys.inc)
|
||||
AddHWGenTarget(${HW_DESC_JSON} simu_switches simu_switches.inc)
|
||||
|
||||
add_dependencies(board hal_settings hal_keys hal_adc_inputs stm32_keys stm32_switches stm32_adc_inputs stm32_pwm_inputs yaml_inputs lua_inputs lua_mixsrc lua_keys)
|
||||
add_dependencies(board_bl hal_settings hal_keys stm32_keys)
|
||||
|
||||
include(hal/CMakeLists.txt)
|
||||
|
||||
add_subdirectory(bitmaps)
|
||||
|
||||
@@ -1,16 +1,6 @@
|
||||
|
||||
# Generate hardware struct defs
|
||||
AddHWGenTarget(${HW_DESC_JSON} stm32_keys stm32_keys.inc)
|
||||
AddHWGenTarget(${HW_DESC_JSON} stm32_switches stm32_switches.inc)
|
||||
AddHWGenTarget(${HW_DESC_JSON} stm32_adc_inputs stm32_adc_inputs.inc)
|
||||
AddHWGenTarget(${HW_DESC_JSON} stm32_pwm_inputs stm32_pwm_inputs.inc)
|
||||
AddHWGenTarget(${HW_DESC_JSON} hal_adc_inputs hal_adc_inputs.inc)
|
||||
|
||||
# Dependencies common to bootloader and firmware
|
||||
set(MINIMAL_BOARD_LIB_SRC
|
||||
${RADIO_SRC_DIR}/boards/hw_defs/${HW_DESC_JSON}
|
||||
${CMAKE_CURRENT_BINARY_DIR}/stm32_keys.inc
|
||||
|
||||
boards/generic_stm32/inputs.cpp
|
||||
boards/generic_stm32/i2c_bus.cpp
|
||||
boards/generic_stm32/bl_keys.cpp
|
||||
@@ -19,11 +9,6 @@ set(MINIMAL_BOARD_LIB_SRC
|
||||
|
||||
# Dependencies only used in firmware
|
||||
set(BOARD_LIB_SRC
|
||||
${CMAKE_CURRENT_BINARY_DIR}/stm32_switches.inc
|
||||
${CMAKE_CURRENT_BINARY_DIR}/stm32_adc_inputs.inc
|
||||
${CMAKE_CURRENT_BINARY_DIR}/stm32_pwm_inputs.inc
|
||||
${CMAKE_CURRENT_BINARY_DIR}/hal_adc_inputs.inc
|
||||
|
||||
boards/generic_stm32/module_ports.cpp
|
||||
boards/generic_stm32/trainer_ports.cpp
|
||||
boards/generic_stm32/sport_update.cpp
|
||||
@@ -38,6 +23,7 @@ set(BOARD_LIB_SRC
|
||||
)
|
||||
|
||||
add_library(minimal_board_lib OBJECT EXCLUDE_FROM_ALL ${MINIMAL_BOARD_LIB_SRC})
|
||||
add_dependencies(minimal_board_lib stm32_keys)
|
||||
|
||||
add_library(board_lib OBJECT EXCLUDE_FROM_ALL ${BOARD_LIB_SRC})
|
||||
add_dependencies(board_lib minimal_board_lib)
|
||||
|
||||
@@ -307,27 +307,52 @@
|
||||
}
|
||||
],
|
||||
"display": {
|
||||
"w": 128,
|
||||
"h": 64,
|
||||
"phys_w": 128,
|
||||
"phys_h": 64,
|
||||
"depth": 1,
|
||||
"color": 0,
|
||||
"oled": 0,
|
||||
"backlight_color": 0
|
||||
"lcd_w": 128,
|
||||
"lcd_h": 64,
|
||||
"lcd_phys_w": 128,
|
||||
"lcd_phys_h": 64,
|
||||
"lcd_depth": 1,
|
||||
"lcd_vertical_invert": true
|
||||
},
|
||||
"custom_switches": {
|
||||
"rgb_led": 0,
|
||||
"groups": 0
|
||||
"backlight": {
|
||||
"backlight_bdtr": "TIM_BDTR_MOE"
|
||||
},
|
||||
"leds": {
|
||||
"status_leds": true,
|
||||
"led_red_gpio": "GPIO_PIN(GPIOE, 13)",
|
||||
"led_green_gpio": "GPIO_PIN(GPIOA, 7)",
|
||||
"led_blue_gpio": "GPIO_PIN(GPIOE, 2)"
|
||||
},
|
||||
"hardware": {
|
||||
"has_audio_mute": 1,
|
||||
"has_bling_leds": 0,
|
||||
"has_ext_module_support": 1,
|
||||
"has_int_module_support": 1,
|
||||
"has_audio_mute": true,
|
||||
"has_ext_module_support": true,
|
||||
"has_int_module_support": true,
|
||||
"sport_max_baudrate": 400000,
|
||||
"surface": 0,
|
||||
"cpu": "STM32F407xG",
|
||||
"cpu_type": "STM32F4"
|
||||
},
|
||||
"timers": {
|
||||
"cpu_freq": 168000000,
|
||||
"peri1_frequency": 42000000,
|
||||
"peri2_frequency": 84000000,
|
||||
"timer_mult_apb1": 2,
|
||||
"timer_mult_apb2": 2,
|
||||
"ms_timer": "TIM14",
|
||||
"ms_timer_irqn": "TIM8_TRG_COM_TIM14_IRQn",
|
||||
"ms_timer_irqhandler": "TIM8_TRG_COM_TIM14_IRQHandler",
|
||||
"mixer_scheduler_timer": "TIM12",
|
||||
"mixer_scheduler_timer_freq": "(PERI1_FREQUENCY * TIMER_MULT_APB1)",
|
||||
"mixer_scheduler_timer_irqn": "TIM8_BRK_TIM12_IRQn",
|
||||
"mixer_scheduler_timer_irqhandler": "TIM8_BRK_TIM12_IRQHandler"
|
||||
},
|
||||
"haptic": {
|
||||
"haptic_pwm": true,
|
||||
"haptic_gpio": "GPIO_PIN(GPIOB, 3)",
|
||||
"haptic_gpio_af": "GPIO_AF1",
|
||||
"haptic_timer": "TIM2",
|
||||
"haptic_timer_freq": "(PERI1_FREQUENCY * TIMER_MULT_APB1)",
|
||||
"haptic_counter_register": "HAPTIC_TIMER->CCR2",
|
||||
"haptic_ccmr1": "TIM_CCMR1_OC2M_1 | TIM_CCMR1_OC2M_2",
|
||||
"haptic_ccer": "TIM_CCER_CC2E"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -376,27 +376,54 @@
|
||||
}
|
||||
],
|
||||
"display": {
|
||||
"w": 128,
|
||||
"h": 64,
|
||||
"phys_w": 128,
|
||||
"phys_h": 64,
|
||||
"depth": 1,
|
||||
"color": 0,
|
||||
"oled": 1,
|
||||
"backlight_color": 0
|
||||
"lcd_w": 128,
|
||||
"lcd_h": 64,
|
||||
"lcd_phys_w": 128,
|
||||
"lcd_phys_h": 64,
|
||||
"lcd_depth": 1,
|
||||
"oled_screen": true,
|
||||
"lcd_horizontal_invert": true,
|
||||
"lcd_vertical_invert": true
|
||||
},
|
||||
"custom_switches": {
|
||||
"rgb_led": 0,
|
||||
"groups": 3
|
||||
"backlight": {
|
||||
"backlight_bdtr": "TIM_BDTR_MOE"
|
||||
},
|
||||
"leds": {
|
||||
"status_leds": true,
|
||||
"led_red_gpio": "GPIO_PIN(GPIOC, 5)",
|
||||
"led_green_gpio": "GPIO_PIN(GPIOG, 1)",
|
||||
"led_blue_gpio": "GPIO_PIN(GPIOC, 4)"
|
||||
},
|
||||
"hardware": {
|
||||
"has_audio_mute": 1,
|
||||
"has_bling_leds": 0,
|
||||
"has_ext_module_support": 1,
|
||||
"has_int_module_support": 1,
|
||||
"has_audio_mute": true,
|
||||
"has_ext_module_support": true,
|
||||
"has_int_module_support": true,
|
||||
"sport_max_baudrate": 400000,
|
||||
"surface": 0,
|
||||
"cpu": "STM32F407xG",
|
||||
"cpu_type": "STM32F4"
|
||||
},
|
||||
"timers": {
|
||||
"cpu_freq": 168000000,
|
||||
"peri1_frequency": 42000000,
|
||||
"peri2_frequency": 84000000,
|
||||
"timer_mult_apb1": 2,
|
||||
"timer_mult_apb2": 2,
|
||||
"ms_timer": "TIM14",
|
||||
"ms_timer_irqn": "TIM8_TRG_COM_TIM14_IRQn",
|
||||
"ms_timer_irqhandler": "TIM8_TRG_COM_TIM14_IRQHandler",
|
||||
"mixer_scheduler_timer": "TIM12",
|
||||
"mixer_scheduler_timer_freq": "(PERI1_FREQUENCY * TIMER_MULT_APB1)",
|
||||
"mixer_scheduler_timer_irqn": "TIM8_BRK_TIM12_IRQn",
|
||||
"mixer_scheduler_timer_irqhandler": "TIM8_BRK_TIM12_IRQHandler"
|
||||
},
|
||||
"haptic": {
|
||||
"haptic_pwm": true,
|
||||
"haptic_gpio": "GPIO_PIN(GPIOB, 3)",
|
||||
"haptic_gpio_af": "GPIO_AF1",
|
||||
"haptic_timer": "TIM2",
|
||||
"haptic_timer_freq": "(PERI1_FREQUENCY * TIMER_MULT_APB1)",
|
||||
"haptic_counter_register": "HAPTIC_TIMER->CCR2",
|
||||
"haptic_ccmr1": "TIM_CCMR1_OC2M_1 | TIM_CCMR1_OC2M_2",
|
||||
"haptic_ccer": "TIM_CCER_CC2E"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -256,27 +256,49 @@
|
||||
}
|
||||
],
|
||||
"display": {
|
||||
"w": 128,
|
||||
"h": 64,
|
||||
"phys_w": 128,
|
||||
"phys_h": 64,
|
||||
"depth": 1,
|
||||
"color": 0,
|
||||
"oled": 0,
|
||||
"backlight_color": 0
|
||||
"lcd_w": 128,
|
||||
"lcd_h": 64,
|
||||
"lcd_phys_w": 128,
|
||||
"lcd_phys_h": 64,
|
||||
"lcd_depth": 1,
|
||||
"lcd_vertical_invert": true
|
||||
},
|
||||
"custom_switches": {
|
||||
"rgb_led": 0,
|
||||
"groups": 0
|
||||
"leds": {
|
||||
"status_leds": true,
|
||||
"led_red_gpio": "GPIO_PIN(GPIOC, 2)",
|
||||
"led_green_gpio": "GPIO_PIN(GPIOC, 0)",
|
||||
"led_blue_gpio": "GPIO_PIN(GPIOC, 1)"
|
||||
},
|
||||
"hardware": {
|
||||
"has_audio_mute": 1,
|
||||
"has_bling_leds": 0,
|
||||
"has_ext_module_support": 1,
|
||||
"has_int_module_support": 1,
|
||||
"has_audio_mute": true,
|
||||
"has_ext_module_support": true,
|
||||
"has_int_module_support": true,
|
||||
"sport_max_baudrate": 400000,
|
||||
"surface": 0,
|
||||
"cpu": "STM32F407xE",
|
||||
"cpu_type": "STM32F4"
|
||||
},
|
||||
"timers": {
|
||||
"cpu_freq": 168000000,
|
||||
"peri1_frequency": 42000000,
|
||||
"peri2_frequency": 84000000,
|
||||
"timer_mult_apb1": 2,
|
||||
"timer_mult_apb2": 2,
|
||||
"ms_timer": "TIM14",
|
||||
"ms_timer_irqn": "TIM8_TRG_COM_TIM14_IRQn",
|
||||
"ms_timer_irqhandler": "TIM8_TRG_COM_TIM14_IRQHandler",
|
||||
"mixer_scheduler_timer": "TIM12",
|
||||
"mixer_scheduler_timer_freq": "(PERI1_FREQUENCY * TIMER_MULT_APB1)",
|
||||
"mixer_scheduler_timer_irqn": "TIM8_BRK_TIM12_IRQn",
|
||||
"mixer_scheduler_timer_irqhandler": "TIM8_BRK_TIM12_IRQHandler"
|
||||
},
|
||||
"haptic": {
|
||||
"haptic_pwm": true,
|
||||
"haptic_gpio": "GPIO_PIN(GPIOB, 8)",
|
||||
"haptic_gpio_af": "GPIO_AF3",
|
||||
"haptic_timer": "TIM10",
|
||||
"haptic_timer_freq": "(PERI2_FREQUENCY * TIMER_MULT_APB2)",
|
||||
"haptic_counter_register": "HAPTIC_TIMER->CCR1",
|
||||
"haptic_ccmr1": "TIM_CCMR1_OC1M_1 | TIM_CCMR1_OC1M_2",
|
||||
"haptic_ccer": "TIM_CCER_CC1E"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -321,27 +321,49 @@
|
||||
}
|
||||
],
|
||||
"display": {
|
||||
"w": 320,
|
||||
"h": 480,
|
||||
"phys_w": 320,
|
||||
"phys_h": 480,
|
||||
"depth": 16,
|
||||
"color": 1,
|
||||
"oled": 0,
|
||||
"backlight_color": 0
|
||||
"lcd_w": 320,
|
||||
"lcd_h": 480,
|
||||
"lcd_phys_w": 320,
|
||||
"lcd_phys_h": 480,
|
||||
"lcd_depth": 16,
|
||||
"ltdc_irq_prio": 4,
|
||||
"dma_screen_irq_prio": 6
|
||||
},
|
||||
"custom_switches": {
|
||||
"rgb_led": 0,
|
||||
"groups": 0
|
||||
"backlight": {
|
||||
"backlight_gpio": "GPIO_PIN(GPIOA, 15)",
|
||||
"backlight_timer": "TIM2",
|
||||
"backlight_gpio_af": "GPIO_AF1",
|
||||
"backlight_timer_freq": "(PERI1_FREQUENCY * TIMER_MULT_APB1)"
|
||||
},
|
||||
"hardware": {
|
||||
"has_audio_mute": 1,
|
||||
"has_bling_leds": 0,
|
||||
"has_ext_module_support": 1,
|
||||
"has_int_module_support": 1,
|
||||
"has_audio_mute": true,
|
||||
"has_ext_module_support": true,
|
||||
"has_int_module_support": true,
|
||||
"sport_max_baudrate": 400000,
|
||||
"surface": 0,
|
||||
"cpu": "STM32F429xI",
|
||||
"cpu_type": "STM32F4"
|
||||
},
|
||||
"timers": {
|
||||
"cpu_freq": 168000000,
|
||||
"peri1_frequency": 42000000,
|
||||
"peri2_frequency": 84000000,
|
||||
"timer_mult_apb1": 2,
|
||||
"timer_mult_apb2": 2,
|
||||
"ms_timer": "TIM14",
|
||||
"ms_timer_irqn": "TIM8_TRG_COM_TIM14_IRQn",
|
||||
"ms_timer_irqhandler": "TIM8_TRG_COM_TIM14_IRQHandler",
|
||||
"mixer_scheduler_timer": "TIM12",
|
||||
"mixer_scheduler_timer_freq": "(PERI1_FREQUENCY * TIMER_MULT_APB1)",
|
||||
"mixer_scheduler_timer_irqn": "TIM8_BRK_TIM12_IRQn",
|
||||
"mixer_scheduler_timer_irqhandler": "TIM8_BRK_TIM12_IRQHandler"
|
||||
},
|
||||
"haptic": {
|
||||
"haptic_pwm": true,
|
||||
"haptic_gpio": "GPIO_PIN(GPIOA, 8)",
|
||||
"haptic_gpio_timer": "TIM1",
|
||||
"haptic_gpio_af": "GPIO_AF1",
|
||||
"haptic_timer_output_enable": "TIM_CCER_CC1E | TIM_CCER_CC1NE",
|
||||
"haptic_timer_mode": "TIM_CCMR1_OC1M_1 | TIM_CCMR1_OC1M_2 | TIM_CCMR1_OC1PE",
|
||||
"haptic_timer_compare_value": "HAPTIC_GPIO_TIMER->CCR1"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -415,27 +415,50 @@
|
||||
}
|
||||
],
|
||||
"display": {
|
||||
"w": 480,
|
||||
"h": 272,
|
||||
"phys_w": 480,
|
||||
"phys_h": 272,
|
||||
"depth": 16,
|
||||
"color": 1,
|
||||
"oled": 0,
|
||||
"backlight_color": 0
|
||||
"lcd_w": 480,
|
||||
"lcd_h": 272,
|
||||
"lcd_phys_w": 480,
|
||||
"lcd_phys_h": 272,
|
||||
"lcd_depth": 16,
|
||||
"lcd_vertical_invert": true,
|
||||
"ltdc_irq_prio": 4,
|
||||
"dma_screen_irq_prio": 6
|
||||
},
|
||||
"custom_switches": {
|
||||
"rgb_led": 0,
|
||||
"groups": 0
|
||||
"leds": {
|
||||
"status_leds": true,
|
||||
"led_red_gpio": "GPIO_PIN(GPIOE, 2)",
|
||||
"led_green_gpio": "GPIO_PIN(GPIOE, 4)",
|
||||
"led_blue_gpio": "GPIO_PIN(GPIOE, 5)"
|
||||
},
|
||||
"hardware": {
|
||||
"has_audio_mute": 1,
|
||||
"has_bling_leds": 0,
|
||||
"has_ext_module_support": 1,
|
||||
"has_int_module_support": 1,
|
||||
"has_audio_mute": true,
|
||||
"has_ext_module_support": true,
|
||||
"has_int_module_support": true,
|
||||
"sport_max_baudrate": 400000,
|
||||
"surface": 0,
|
||||
"cpu": "STM32F429xI",
|
||||
"cpu_type": "STM32F4"
|
||||
},
|
||||
"timers": {
|
||||
"cpu_freq": 168000000,
|
||||
"peri1_frequency": 42000000,
|
||||
"peri2_frequency": 84000000,
|
||||
"timer_mult_apb1": 2,
|
||||
"timer_mult_apb2": 2,
|
||||
"ms_timer": "TIM14",
|
||||
"ms_timer_irqn": "TIM8_TRG_COM_TIM14_IRQn",
|
||||
"ms_timer_irqhandler": "TIM8_TRG_COM_TIM14_IRQHandler",
|
||||
"mixer_scheduler_timer": "TIM13",
|
||||
"mixer_scheduler_timer_freq": "(PERI1_FREQUENCY * TIMER_MULT_APB1)",
|
||||
"mixer_scheduler_timer_irqn": "TIM8_UP_TIM13_IRQn",
|
||||
"mixer_scheduler_timer_irqhandler": "TIM8_UP_TIM13_IRQHandler"
|
||||
},
|
||||
"haptic": {
|
||||
"haptic_pwm": true,
|
||||
"haptic_gpio": "GPIO_PIN(GPIOE, 6)",
|
||||
"haptic_gpio_timer": "TIM9",
|
||||
"haptic_gpio_af": "GPIO_AF3",
|
||||
"haptic_timer_output_enable": "TIM_CCER_CC2E",
|
||||
"haptic_timer_mode": "TIM_CCMR1_OC2M_1 | TIM_CCMR1_OC2M_2",
|
||||
"haptic_timer_compare_value": "HAPTIC_GPIO_TIMER->CCR2"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -417,27 +417,70 @@
|
||||
}
|
||||
],
|
||||
"display": {
|
||||
"w": 128,
|
||||
"h": 64,
|
||||
"phys_w": 128,
|
||||
"phys_h": 64,
|
||||
"depth": 1,
|
||||
"color": 0,
|
||||
"oled": 1,
|
||||
"backlight_color": 0
|
||||
"lcd_w": 128,
|
||||
"lcd_h": 64,
|
||||
"lcd_phys_w": 128,
|
||||
"lcd_phys_h": 64,
|
||||
"lcd_depth": 1,
|
||||
"oled_screen": true,
|
||||
"lcd_horizontal_invert": true
|
||||
},
|
||||
"custom_switches": {
|
||||
"rgb_led": 1,
|
||||
"groups": 4
|
||||
"backlight": {
|
||||
"backlight_bdtr": "TIM_BDTR_MOE"
|
||||
},
|
||||
"leds": {
|
||||
"led_strip_length": 8,
|
||||
"bling_led_strip_start": 0,
|
||||
"bling_led_strip_length": 0,
|
||||
"cfs_led_strip_start": 0,
|
||||
"cfs_led_strip_length": 8,
|
||||
"cfs_leds_per_switch": 1,
|
||||
"led_strip_gpio": "GPIO_PIN(GPIOA, 8)",
|
||||
"led_strip_gpio_af": "LL_GPIO_AF_1",
|
||||
"led_strip_timer": "TIM1",
|
||||
"led_strip_timer_freq": "(PERI2_FREQUENCY * TIMER_MULT_APB2)",
|
||||
"led_strip_timer_channel": "LL_TIM_CHANNEL_CH1",
|
||||
"led_strip_timer_dma": "DMA2",
|
||||
"led_strip_timer_dma_channel": "LL_DMA_CHANNEL_6",
|
||||
"led_strip_timer_dma_stream": "LL_DMA_STREAM_5",
|
||||
"led_strip_timer_dma_irqn": "DMA2_Stream5_IRQn",
|
||||
"led_strip_timer_dma_irqhandler": "DMA2_Stream5_IRQHandler",
|
||||
"led_strip_refresh_period": 50,
|
||||
"status_leds": true,
|
||||
"led_red_gpio": "GPIO_PIN(GPIOE, 13)",
|
||||
"led_green_gpio": "GPIO_PIN(GPIOA, 7)",
|
||||
"led_blue_gpio": "GPIO_PIN(GPIOE, 2)"
|
||||
},
|
||||
"hardware": {
|
||||
"has_audio_mute": 1,
|
||||
"has_bling_leds": 0,
|
||||
"has_ext_module_support": 1,
|
||||
"has_int_module_support": 1,
|
||||
"has_audio_mute": true,
|
||||
"has_ext_module_support": true,
|
||||
"has_int_module_support": true,
|
||||
"sport_max_baudrate": 400000,
|
||||
"surface": 0,
|
||||
"cpu": "STM32F407xG",
|
||||
"cpu_type": "STM32F4"
|
||||
},
|
||||
"timers": {
|
||||
"cpu_freq": 168000000,
|
||||
"peri1_frequency": 42000000,
|
||||
"peri2_frequency": 84000000,
|
||||
"timer_mult_apb1": 2,
|
||||
"timer_mult_apb2": 2,
|
||||
"ms_timer": "TIM14",
|
||||
"ms_timer_irqn": "TIM8_TRG_COM_TIM14_IRQn",
|
||||
"ms_timer_irqhandler": "TIM8_TRG_COM_TIM14_IRQHandler",
|
||||
"mixer_scheduler_timer": "TIM12",
|
||||
"mixer_scheduler_timer_freq": "(PERI1_FREQUENCY * TIMER_MULT_APB1)",
|
||||
"mixer_scheduler_timer_irqn": "TIM8_BRK_TIM12_IRQn",
|
||||
"mixer_scheduler_timer_irqhandler": "TIM8_BRK_TIM12_IRQHandler"
|
||||
},
|
||||
"haptic": {
|
||||
"haptic_pwm": true,
|
||||
"haptic_gpio": "GPIO_PIN(GPIOB, 3)",
|
||||
"haptic_gpio_af": "GPIO_AF1",
|
||||
"haptic_timer": "TIM2",
|
||||
"haptic_timer_freq": "(PERI1_FREQUENCY * TIMER_MULT_APB1)",
|
||||
"haptic_counter_register": "HAPTIC_TIMER->CCR2",
|
||||
"haptic_ccmr1": "TIM_CCMR1_OC2M_1 | TIM_CCMR1_OC2M_2",
|
||||
"haptic_ccer": "TIM_CCER_CC2E"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -236,27 +236,51 @@
|
||||
}
|
||||
],
|
||||
"display": {
|
||||
"w": 128,
|
||||
"h": 64,
|
||||
"phys_w": 128,
|
||||
"phys_h": 64,
|
||||
"depth": 1,
|
||||
"color": 0,
|
||||
"oled": 1,
|
||||
"backlight_color": 0
|
||||
"lcd_w": 128,
|
||||
"lcd_h": 64,
|
||||
"lcd_phys_w": 128,
|
||||
"lcd_phys_h": 64,
|
||||
"lcd_depth": 1,
|
||||
"oled_screen": true,
|
||||
"lcd_horizontal_invert": true,
|
||||
"lcd_vertical_invert": true
|
||||
},
|
||||
"custom_switches": {
|
||||
"rgb_led": 0,
|
||||
"groups": 0
|
||||
"leds": {
|
||||
"status_leds": true,
|
||||
"led_red_gpio": "GPIO_PIN(GPIOC, 5)",
|
||||
"led_green_gpio": "GPIO_PIN(GPIOC, 4)",
|
||||
"led_blue_gpio": "GPIO_PIN(GPIOB, 1)"
|
||||
},
|
||||
"hardware": {
|
||||
"has_audio_mute": 1,
|
||||
"has_bling_leds": 0,
|
||||
"has_ext_module_support": 1,
|
||||
"has_int_module_support": 1,
|
||||
"has_audio_mute": true,
|
||||
"has_ext_module_support": true,
|
||||
"has_int_module_support": true,
|
||||
"sport_max_baudrate": 400000,
|
||||
"surface": 0,
|
||||
"cpu": "STM32F205xE",
|
||||
"cpu_type": "STM32F2"
|
||||
},
|
||||
"timers": {
|
||||
"cpu_freq": 120000000,
|
||||
"peri1_frequency": 30000000,
|
||||
"peri2_frequency": 60000000,
|
||||
"timer_mult_apb1": 2,
|
||||
"timer_mult_apb2": 2,
|
||||
"ms_timer": "TIM14",
|
||||
"ms_timer_irqn": "TIM8_TRG_COM_TIM14_IRQn",
|
||||
"ms_timer_irqhandler": "TIM8_TRG_COM_TIM14_IRQHandler",
|
||||
"mixer_scheduler_timer": "TIM12",
|
||||
"mixer_scheduler_timer_freq": "(PERI1_FREQUENCY * TIMER_MULT_APB1)",
|
||||
"mixer_scheduler_timer_irqn": "TIM8_BRK_TIM12_IRQn",
|
||||
"mixer_scheduler_timer_irqhandler": "TIM8_BRK_TIM12_IRQHandler"
|
||||
},
|
||||
"haptic": {
|
||||
"haptic_pwm": true,
|
||||
"haptic_gpio": "GPIO_PIN(GPIOB, 8)",
|
||||
"haptic_gpio_af": "GPIO_AF3",
|
||||
"haptic_timer": "TIM10",
|
||||
"haptic_timer_freq": "(PERI2_FREQUENCY * TIMER_MULT_APB2)",
|
||||
"haptic_counter_register": "HAPTIC_TIMER->CCR1",
|
||||
"haptic_ccmr1": "TIM_CCMR1_OC1M_1 | TIM_CCMR1_OC1M_2",
|
||||
"haptic_ccer": "TIM_CCER_CC1E"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -285,27 +285,67 @@
|
||||
}
|
||||
],
|
||||
"display": {
|
||||
"w": 128,
|
||||
"h": 64,
|
||||
"phys_w": 128,
|
||||
"phys_h": 64,
|
||||
"depth": 1,
|
||||
"color": 0,
|
||||
"oled": 0,
|
||||
"backlight_color": 0
|
||||
"lcd_w": 128,
|
||||
"lcd_h": 64,
|
||||
"lcd_phys_w": 128,
|
||||
"lcd_phys_h": 64,
|
||||
"lcd_depth": 1,
|
||||
"lcd_vertical_invert": true
|
||||
},
|
||||
"custom_switches": {
|
||||
"rgb_led": 0,
|
||||
"groups": 0
|
||||
"backlight": {
|
||||
"backlight_bdtr": "TIM_BDTR_MOE"
|
||||
},
|
||||
"leds": {
|
||||
"led_strip_length": 7,
|
||||
"bling_led_strip_start": 0,
|
||||
"bling_led_strip_length": 7,
|
||||
"led_strip_gpio": "GPIO_PIN(GPIOA, 8)",
|
||||
"led_strip_gpio_af": "LL_GPIO_AF_1",
|
||||
"led_strip_timer": "TIM1",
|
||||
"led_strip_timer_freq": "(PERI2_FREQUENCY * TIMER_MULT_APB2)",
|
||||
"led_strip_timer_channel": "LL_TIM_CHANNEL_CH1",
|
||||
"led_strip_timer_dma": "DMA2",
|
||||
"led_strip_timer_dma_channel": "LL_DMA_CHANNEL_6",
|
||||
"led_strip_timer_dma_stream": "LL_DMA_STREAM_5",
|
||||
"led_strip_timer_dma_irqn": "DMA2_Stream5_IRQn",
|
||||
"led_strip_timer_dma_irqhandler": "DMA2_Stream5_IRQHandler",
|
||||
"led_strip_refresh_period": 50,
|
||||
"status_leds": true,
|
||||
"led_red_gpio": "GPIO_PIN(GPIOE, 13)",
|
||||
"led_green_gpio": "GPIO_PIN(GPIOA, 7)",
|
||||
"led_blue_gpio": "GPIO_PIN(GPIOE, 2)"
|
||||
},
|
||||
"hardware": {
|
||||
"has_audio_mute": 1,
|
||||
"has_bling_leds": 7,
|
||||
"has_ext_module_support": 1,
|
||||
"has_int_module_support": 1,
|
||||
"has_audio_mute": true,
|
||||
"has_ext_module_support": true,
|
||||
"has_int_module_support": true,
|
||||
"sport_max_baudrate": 400000,
|
||||
"surface": 1,
|
||||
"surface": true,
|
||||
"cpu": "STM32F407xG",
|
||||
"cpu_type": "STM32F4"
|
||||
},
|
||||
"timers": {
|
||||
"cpu_freq": 168000000,
|
||||
"peri1_frequency": 42000000,
|
||||
"peri2_frequency": 84000000,
|
||||
"timer_mult_apb1": 2,
|
||||
"timer_mult_apb2": 2,
|
||||
"ms_timer": "TIM14",
|
||||
"ms_timer_irqn": "TIM8_TRG_COM_TIM14_IRQn",
|
||||
"ms_timer_irqhandler": "TIM8_TRG_COM_TIM14_IRQHandler",
|
||||
"mixer_scheduler_timer": "TIM12",
|
||||
"mixer_scheduler_timer_freq": "(PERI1_FREQUENCY * TIMER_MULT_APB1)",
|
||||
"mixer_scheduler_timer_irqn": "TIM8_BRK_TIM12_IRQn",
|
||||
"mixer_scheduler_timer_irqhandler": "TIM8_BRK_TIM12_IRQHandler"
|
||||
},
|
||||
"haptic": {
|
||||
"haptic_pwm": true,
|
||||
"haptic_gpio": "GPIO_PIN(GPIOB, 3)",
|
||||
"haptic_gpio_af": "GPIO_AF1",
|
||||
"haptic_timer": "TIM2",
|
||||
"haptic_timer_freq": "(PERI1_FREQUENCY * TIMER_MULT_APB1)",
|
||||
"haptic_counter_register": "HAPTIC_TIMER->CCR2",
|
||||
"haptic_ccmr1": "TIM_CCMR1_OC2M_1 | TIM_CCMR1_OC2M_2",
|
||||
"haptic_ccer": "TIM_CCER_CC2E"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -148,27 +148,86 @@
|
||||
}
|
||||
],
|
||||
"display": {
|
||||
"w": 320,
|
||||
"h": 480,
|
||||
"phys_w": 320,
|
||||
"phys_h": 480,
|
||||
"depth": 16,
|
||||
"color": 1,
|
||||
"oled": 0,
|
||||
"backlight_color": 0
|
||||
"lcd_w": 320,
|
||||
"lcd_h": 480,
|
||||
"lcd_phys_w": 320,
|
||||
"lcd_phys_h": 480,
|
||||
"lcd_depth": 16,
|
||||
"ltdc_irq_prio": 4,
|
||||
"dma_screen_irq_prio": 6
|
||||
},
|
||||
"custom_switches": {
|
||||
"rgb_led": 0,
|
||||
"groups": 0
|
||||
"backlight": {
|
||||
"backlight_gpio": "GPIO_PIN(GPIOA, 15)",
|
||||
"backlight_timer": "TIM2",
|
||||
"backlight_gpio_af": "GPIO_AF1",
|
||||
"backlight_timer_freq": "(PERI1_FREQUENCY * TIMER_MULT_APB1)"
|
||||
},
|
||||
"leds": {
|
||||
"led_strip_length": 4,
|
||||
"bling_led_strip_start": 0,
|
||||
"bling_led_strip_length": 4,
|
||||
"led_strip_gpio": "GPIO_PIN(GPIOH, 12)",
|
||||
"led_strip_gpio_af": "LL_GPIO_AF_2",
|
||||
"led_strip_timer": "TIM5",
|
||||
"led_strip_timer_freq": "(PERI1_FREQUENCY * TIMER_MULT_APB1)",
|
||||
"led_strip_timer_channel": "LL_TIM_CHANNEL_CH3",
|
||||
"led_strip_timer_dma": "DMA1",
|
||||
"led_strip_timer_dma_channel": "LL_DMA_CHANNEL_6",
|
||||
"led_strip_timer_dma_stream": "LL_DMA_STREAM_0",
|
||||
"led_strip_timer_dma_irqn": "DMA1_Stream0_IRQn",
|
||||
"led_strip_timer_dma_irqhandler": "DMA1_Stream0_IRQHandler",
|
||||
"led_strip_refresh_period": 50,
|
||||
"status_leds": true
|
||||
},
|
||||
"hardware": {
|
||||
"has_audio_mute": 1,
|
||||
"has_bling_leds": 4,
|
||||
"has_ext_module_support": 1,
|
||||
"has_int_module_support": 1,
|
||||
"has_audio_mute": true,
|
||||
"has_ext_module_support": true,
|
||||
"has_int_module_support": true,
|
||||
"sport_max_baudrate": 400000,
|
||||
"surface": 0,
|
||||
"cpu": "STM32F429xI",
|
||||
"cpu_type": "STM32F4"
|
||||
},
|
||||
"timers": {
|
||||
"cpu_freq": 168000000,
|
||||
"peri1_frequency": 42000000,
|
||||
"peri2_frequency": 84000000,
|
||||
"timer_mult_apb1": 2,
|
||||
"timer_mult_apb2": 2,
|
||||
"ms_timer": "TIM14",
|
||||
"ms_timer_irqn": "TIM8_TRG_COM_TIM14_IRQn",
|
||||
"ms_timer_irqhandler": "TIM8_TRG_COM_TIM14_IRQHandler",
|
||||
"mixer_scheduler_timer": "TIM12",
|
||||
"mixer_scheduler_timer_freq": "(PERI1_FREQUENCY * TIMER_MULT_APB1)",
|
||||
"mixer_scheduler_timer_irqn": "TIM8_BRK_TIM12_IRQn",
|
||||
"mixer_scheduler_timer_irqhandler": "TIM8_BRK_TIM12_IRQHandler"
|
||||
},
|
||||
"rotenc": {
|
||||
"rotary_encoder_gpio": "GPIOH",
|
||||
"rotary_encoder_gpio_pin_a": "LL_GPIO_PIN_11",
|
||||
"rotary_encoder_gpio_pin_b": "LL_GPIO_PIN_10",
|
||||
"rotary_encoder_position": "((ROTARY_ENCODER_GPIO->IDR >> 10) & 0x03)",
|
||||
"rotary_encoder_exti_line1": "LL_EXTI_LINE_11",
|
||||
"rotary_encoder_exti_line2": "LL_EXTI_LINE_10",
|
||||
"exti": [
|
||||
{
|
||||
"irq": "EXTI15_10_IRQ",
|
||||
"priority": 5
|
||||
}
|
||||
],
|
||||
"rotary_encoder_exti_port": "LL_SYSCFG_EXTI_PORTH",
|
||||
"rotary_encoder_exti_sys_line1": "LL_SYSCFG_EXTI_LINE11",
|
||||
"rotary_encoder_exti_sys_line2": "LL_SYSCFG_EXTI_LINE10",
|
||||
"rotary_encoder_timer": "TIM13",
|
||||
"rotary_encoder_timer_irqn": "TIM8_UP_TIM13_IRQn",
|
||||
"rotary_encoder_timer_irqhandler": "TIM8_UP_TIM13_IRQHandler"
|
||||
},
|
||||
"haptic": {
|
||||
"haptic_pwm": true,
|
||||
"haptic_gpio": "GPIO_PIN(GPIOB, 0)",
|
||||
"haptic_gpio_timer": "TIM1",
|
||||
"haptic_gpio_af": "GPIO_AF1",
|
||||
"haptic_timer_output_enable": "TIM_CCER_CC2NE",
|
||||
"haptic_timer_mode": "TIM_CCMR1_OC2M_1 | TIM_CCMR1_OC2M_2 | TIM_CCMR1_OC2PE",
|
||||
"haptic_timer_compare_value": "HAPTIC_GPIO_TIMER->CCR2"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -321,27 +321,49 @@
|
||||
}
|
||||
],
|
||||
"display": {
|
||||
"w": 320,
|
||||
"h": 480,
|
||||
"phys_w": 320,
|
||||
"phys_h": 480,
|
||||
"depth": 16,
|
||||
"color": 1,
|
||||
"oled": 0,
|
||||
"backlight_color": 0
|
||||
"lcd_w": 320,
|
||||
"lcd_h": 480,
|
||||
"lcd_phys_w": 320,
|
||||
"lcd_phys_h": 480,
|
||||
"lcd_depth": 16,
|
||||
"ltdc_irq_prio": 4,
|
||||
"dma_screen_irq_prio": 6
|
||||
},
|
||||
"custom_switches": {
|
||||
"rgb_led": 0,
|
||||
"groups": 0
|
||||
"backlight": {
|
||||
"backlight_gpio": "GPIO_PIN(GPIOA, 15)",
|
||||
"backlight_timer": "TIM2",
|
||||
"backlight_gpio_af": "GPIO_AF1",
|
||||
"backlight_timer_freq": "(PERI1_FREQUENCY * TIMER_MULT_APB1)"
|
||||
},
|
||||
"hardware": {
|
||||
"has_audio_mute": 1,
|
||||
"has_bling_leds": 0,
|
||||
"has_ext_module_support": 1,
|
||||
"has_int_module_support": 1,
|
||||
"has_audio_mute": true,
|
||||
"has_ext_module_support": true,
|
||||
"has_int_module_support": true,
|
||||
"sport_max_baudrate": 400000,
|
||||
"surface": 0,
|
||||
"cpu": "STM32F429xI",
|
||||
"cpu_type": "STM32F4"
|
||||
},
|
||||
"timers": {
|
||||
"cpu_freq": 168000000,
|
||||
"peri1_frequency": 42000000,
|
||||
"peri2_frequency": 84000000,
|
||||
"timer_mult_apb1": 2,
|
||||
"timer_mult_apb2": 2,
|
||||
"ms_timer": "TIM14",
|
||||
"ms_timer_irqn": "TIM8_TRG_COM_TIM14_IRQn",
|
||||
"ms_timer_irqhandler": "TIM8_TRG_COM_TIM14_IRQHandler",
|
||||
"mixer_scheduler_timer": "TIM12",
|
||||
"mixer_scheduler_timer_freq": "(PERI1_FREQUENCY * TIMER_MULT_APB1)",
|
||||
"mixer_scheduler_timer_irqn": "TIM8_BRK_TIM12_IRQn",
|
||||
"mixer_scheduler_timer_irqhandler": "TIM8_BRK_TIM12_IRQHandler"
|
||||
},
|
||||
"haptic": {
|
||||
"haptic_pwm": true,
|
||||
"haptic_gpio": "GPIO_PIN(GPIOA, 8)",
|
||||
"haptic_gpio_timer": "TIM1",
|
||||
"haptic_gpio_af": "GPIO_AF1",
|
||||
"haptic_timer_output_enable": "TIM_CCER_CC1E | TIM_CCER_CC1NE",
|
||||
"haptic_timer_mode": "TIM_CCMR1_OC1M_1 | TIM_CCMR1_OC1M_2 | TIM_CCMR1_OC1PE",
|
||||
"haptic_timer_compare_value": "HAPTIC_GPIO_TIMER->CCR1"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -284,27 +284,88 @@
|
||||
}
|
||||
],
|
||||
"display": {
|
||||
"w": 320,
|
||||
"h": 240,
|
||||
"phys_w": 320,
|
||||
"phys_h": 240,
|
||||
"depth": 16,
|
||||
"color": 1,
|
||||
"oled": 0,
|
||||
"backlight_color": 0
|
||||
"lcd_w": 320,
|
||||
"lcd_h": 240,
|
||||
"lcd_phys_w": 320,
|
||||
"lcd_phys_h": 240,
|
||||
"lcd_depth": 16
|
||||
},
|
||||
"custom_switches": {
|
||||
"rgb_led": 1,
|
||||
"groups": 2
|
||||
"backlight": {
|
||||
"backlight_gpio": "GPIO_PIN(GPIOB, 3)",
|
||||
"backlight_timer": "TIM2",
|
||||
"backlight_gpio_af": "GPIO_AF1",
|
||||
"backlight_timer_freq": "(PERI1_FREQUENCY * TIMER_MULT_APB1)"
|
||||
},
|
||||
"leds": {
|
||||
"led_strip_length": 14,
|
||||
"bling_led_strip_start": 10,
|
||||
"bling_led_strip_length": 4,
|
||||
"cfs_led_strip_start": 0,
|
||||
"cfs_led_strip_length": 8,
|
||||
"cfs_leds_per_switch": 2,
|
||||
"led_strip_gpio": "GPIO_PIN(GPIOF, 6)",
|
||||
"led_strip_gpio_af": "LL_GPIO_AF_1",
|
||||
"led_strip_timer": "TIM16",
|
||||
"led_strip_timer_freq": "(PERI1_FREQUENCY * TIMER_MULT_APB1)",
|
||||
"led_strip_timer_channel": "LL_TIM_CHANNEL_CH1",
|
||||
"led_strip_timer_dma": "DMA1",
|
||||
"led_strip_timer_dma_channel": "LL_DMAMUX1_REQ_TIM16_UP",
|
||||
"led_strip_timer_dma_stream": "LL_DMA_STREAM_0",
|
||||
"led_strip_timer_dma_irqn": "DMA1_Stream0_IRQn",
|
||||
"led_strip_timer_dma_irqhandler": "DMA1_Stream0_IRQHandler",
|
||||
"led_strip_refresh_period": 50,
|
||||
"status_leds": true
|
||||
},
|
||||
"hardware": {
|
||||
"has_audio_mute": 1,
|
||||
"has_bling_leds": 4,
|
||||
"has_ext_module_support": 1,
|
||||
"has_int_module_support": 1,
|
||||
"has_audio_mute": true,
|
||||
"has_ext_module_support": true,
|
||||
"has_int_module_support": true,
|
||||
"sport_max_baudrate": 400000,
|
||||
"surface": 0,
|
||||
"cpu": "STM32H750xB",
|
||||
"cpu_type": "STM32H7"
|
||||
},
|
||||
"timers": {
|
||||
"cpu_freq": 400000000,
|
||||
"peri1_frequency": 100000000,
|
||||
"peri2_frequency": 100000000,
|
||||
"timer_mult_apb1": 2,
|
||||
"timer_mult_apb2": 2,
|
||||
"ms_timer": "TIM14",
|
||||
"ms_timer_irqn": "TIM8_TRG_COM_TIM14_IRQn",
|
||||
"ms_timer_irqhandler": "TIM8_TRG_COM_TIM14_IRQHandler",
|
||||
"mixer_scheduler_timer": "TIM12",
|
||||
"mixer_scheduler_timer_freq": "(PERI1_FREQUENCY * TIMER_MULT_APB1)",
|
||||
"mixer_scheduler_timer_irqn": "TIM8_BRK_TIM12_IRQn",
|
||||
"mixer_scheduler_timer_irqhandler": "TIM8_BRK_TIM12_IRQHandler"
|
||||
},
|
||||
"imu": {
|
||||
"imu_i2c_bus": "I2C_Bus_2",
|
||||
"imu_i2c_address": "0x6A"
|
||||
},
|
||||
"rotenc": {
|
||||
"rotary_encoder_gpio": "GPIOA",
|
||||
"rotary_encoder_gpio_pin_a": "LL_GPIO_PIN_6",
|
||||
"rotary_encoder_gpio_pin_b": "LL_GPIO_PIN_7",
|
||||
"rotary_encoder_position": "((ROTARY_ENCODER_GPIO->IDR >> 6) & 0x03)",
|
||||
"rotary_encoder_exti_line1": "LL_EXTI_LINE_6",
|
||||
"rotary_encoder_exti_line2": "LL_EXTI_LINE_7",
|
||||
"exti": [
|
||||
{
|
||||
"irq": "EXTI9_5_IRQ",
|
||||
"priority": 5
|
||||
}
|
||||
],
|
||||
"rotary_encoder_exti_port": "LL_SYSCFG_EXTI_PORTA",
|
||||
"rotary_encoder_exti_sys_line1": "LL_SYSCFG_EXTI_LINE6",
|
||||
"rotary_encoder_exti_sys_line2": "LL_SYSCFG_EXTI_LINE7",
|
||||
"rotary_encoder_timer": "TIM17",
|
||||
"rotary_encoder_timer_irqn": "TIM17_IRQn",
|
||||
"rotary_encoder_timer_irqhandler": "TIM17_IRQHandler"
|
||||
},
|
||||
"haptic": {
|
||||
"haptic_pwm": true,
|
||||
"haptic_gpio": "GPIO_PIN(GPIOA, 15)",
|
||||
"haptic_gpio_timer": "TIM2",
|
||||
"haptic_gpio_af": "GPIO_AF1"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -292,27 +292,65 @@
|
||||
}
|
||||
],
|
||||
"display": {
|
||||
"w": 480,
|
||||
"h": 320,
|
||||
"phys_w": 320,
|
||||
"phys_h": 480,
|
||||
"depth": 16,
|
||||
"color": 1,
|
||||
"oled": 0,
|
||||
"backlight_color": 0
|
||||
"lcd_w": 480,
|
||||
"lcd_h": 320,
|
||||
"lcd_phys_w": 320,
|
||||
"lcd_phys_h": 480,
|
||||
"lcd_depth": 16,
|
||||
"ltdc_irq_prio": 4,
|
||||
"dma_screen_irq_prio": 6
|
||||
},
|
||||
"custom_switches": {
|
||||
"rgb_led": 0,
|
||||
"groups": 0
|
||||
"backlight": {
|
||||
"backlight_gpio": "GPIO_PIN(GPIOA, 15)",
|
||||
"backlight_timer": "TIM2",
|
||||
"backlight_gpio_af": "GPIO_AF1",
|
||||
"backlight_timer_freq": "(PERI1_FREQUENCY * TIMER_MULT_APB1)"
|
||||
},
|
||||
"leds": {
|
||||
"led_strip_length": 4,
|
||||
"bling_led_strip_start": 0,
|
||||
"bling_led_strip_length": 4,
|
||||
"led_strip_gpio": "GPIO_PIN(GPIOH, 12)",
|
||||
"led_strip_gpio_af": "LL_GPIO_AF_2",
|
||||
"led_strip_timer": "TIM5",
|
||||
"led_strip_timer_freq": "(PERI1_FREQUENCY * TIMER_MULT_APB1)",
|
||||
"led_strip_timer_channel": "LL_TIM_CHANNEL_CH3",
|
||||
"led_strip_timer_dma": "DMA1",
|
||||
"led_strip_timer_dma_channel": "LL_DMA_CHANNEL_6",
|
||||
"led_strip_timer_dma_stream": "LL_DMA_STREAM_0",
|
||||
"led_strip_timer_dma_irqn": "DMA1_Stream0_IRQn",
|
||||
"led_strip_timer_dma_irqhandler": "DMA1_Stream0_IRQHandler",
|
||||
"led_strip_refresh_period": 50,
|
||||
"status_leds": true
|
||||
},
|
||||
"hardware": {
|
||||
"has_audio_mute": 0,
|
||||
"has_bling_leds": 4,
|
||||
"has_ext_module_support": 1,
|
||||
"has_int_module_support": 1,
|
||||
"has_ext_module_support": true,
|
||||
"has_int_module_support": true,
|
||||
"sport_max_baudrate": 400000,
|
||||
"surface": 0,
|
||||
"cpu": "STM32F429xI",
|
||||
"cpu_type": "STM32F4"
|
||||
},
|
||||
"timers": {
|
||||
"cpu_freq": 168000000,
|
||||
"peri1_frequency": 42000000,
|
||||
"peri2_frequency": 84000000,
|
||||
"timer_mult_apb1": 2,
|
||||
"timer_mult_apb2": 2,
|
||||
"ms_timer": "TIM14",
|
||||
"ms_timer_irqn": "TIM8_TRG_COM_TIM14_IRQn",
|
||||
"ms_timer_irqhandler": "TIM8_TRG_COM_TIM14_IRQHandler",
|
||||
"mixer_scheduler_timer": "TIM12",
|
||||
"mixer_scheduler_timer_freq": "(PERI1_FREQUENCY * TIMER_MULT_APB1)",
|
||||
"mixer_scheduler_timer_irqn": "TIM8_BRK_TIM12_IRQn",
|
||||
"mixer_scheduler_timer_irqhandler": "TIM8_BRK_TIM12_IRQHandler"
|
||||
},
|
||||
"haptic": {
|
||||
"haptic_pwm": true,
|
||||
"haptic_gpio": "GPIO_PIN(GPIOA, 8)",
|
||||
"haptic_gpio_timer": "TIM1",
|
||||
"haptic_gpio_af": "GPIO_AF1",
|
||||
"haptic_timer_output_enable": "TIM_CCER_CC1E | TIM_CCER_CC1NE",
|
||||
"haptic_timer_mode": "TIM_CCMR1_OC1M_1 | TIM_CCMR1_OC1M_2 | TIM_CCMR1_OC1PE",
|
||||
"haptic_timer_compare_value": "HAPTIC_GPIO_TIMER->CCR1"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -336,27 +336,65 @@
|
||||
}
|
||||
],
|
||||
"display": {
|
||||
"w": 480,
|
||||
"h": 320,
|
||||
"phys_w": 320,
|
||||
"phys_h": 480,
|
||||
"depth": 16,
|
||||
"color": 1,
|
||||
"oled": 0,
|
||||
"backlight_color": 0
|
||||
"lcd_w": 480,
|
||||
"lcd_h": 320,
|
||||
"lcd_phys_w": 320,
|
||||
"lcd_phys_h": 480,
|
||||
"lcd_depth": 16,
|
||||
"ltdc_irq_prio": 4,
|
||||
"dma_screen_irq_prio": 6
|
||||
},
|
||||
"custom_switches": {
|
||||
"rgb_led": 0,
|
||||
"groups": 0
|
||||
"backlight": {
|
||||
"backlight_gpio": "GPIO_PIN(GPIOA, 15)",
|
||||
"backlight_timer": "TIM2",
|
||||
"backlight_gpio_af": "GPIO_AF1",
|
||||
"backlight_timer_freq": "(PERI1_FREQUENCY * TIMER_MULT_APB1)"
|
||||
},
|
||||
"leds": {
|
||||
"led_strip_length": 4,
|
||||
"bling_led_strip_start": 0,
|
||||
"bling_led_strip_length": 4,
|
||||
"led_strip_gpio": "GPIO_PIN(GPIOH, 12)",
|
||||
"led_strip_gpio_af": "LL_GPIO_AF_2",
|
||||
"led_strip_timer": "TIM5",
|
||||
"led_strip_timer_freq": "(PERI1_FREQUENCY * TIMER_MULT_APB1)",
|
||||
"led_strip_timer_channel": "LL_TIM_CHANNEL_CH3",
|
||||
"led_strip_timer_dma": "DMA1",
|
||||
"led_strip_timer_dma_channel": "LL_DMA_CHANNEL_6",
|
||||
"led_strip_timer_dma_stream": "LL_DMA_STREAM_0",
|
||||
"led_strip_timer_dma_irqn": "DMA1_Stream0_IRQn",
|
||||
"led_strip_timer_dma_irqhandler": "DMA1_Stream0_IRQHandler",
|
||||
"led_strip_refresh_period": 50,
|
||||
"status_leds": true
|
||||
},
|
||||
"hardware": {
|
||||
"has_audio_mute": 0,
|
||||
"has_bling_leds": 4,
|
||||
"has_ext_module_support": 1,
|
||||
"has_int_module_support": 1,
|
||||
"has_ext_module_support": true,
|
||||
"has_int_module_support": true,
|
||||
"sport_max_baudrate": 400000,
|
||||
"surface": 0,
|
||||
"cpu": "STM32F429xI",
|
||||
"cpu_type": "STM32F4"
|
||||
},
|
||||
"timers": {
|
||||
"cpu_freq": 168000000,
|
||||
"peri1_frequency": 42000000,
|
||||
"peri2_frequency": 84000000,
|
||||
"timer_mult_apb1": 2,
|
||||
"timer_mult_apb2": 2,
|
||||
"ms_timer": "TIM14",
|
||||
"ms_timer_irqn": "TIM8_TRG_COM_TIM14_IRQn",
|
||||
"ms_timer_irqhandler": "TIM8_TRG_COM_TIM14_IRQHandler",
|
||||
"mixer_scheduler_timer": "TIM12",
|
||||
"mixer_scheduler_timer_freq": "(PERI1_FREQUENCY * TIMER_MULT_APB1)",
|
||||
"mixer_scheduler_timer_irqn": "TIM8_BRK_TIM12_IRQn",
|
||||
"mixer_scheduler_timer_irqhandler": "TIM8_BRK_TIM12_IRQHandler"
|
||||
},
|
||||
"haptic": {
|
||||
"haptic_pwm": true,
|
||||
"haptic_gpio": "GPIO_PIN(GPIOA, 8)",
|
||||
"haptic_gpio_timer": "TIM1",
|
||||
"haptic_gpio_af": "GPIO_AF1",
|
||||
"haptic_timer_output_enable": "TIM_CCER_CC1E | TIM_CCER_CC1NE",
|
||||
"haptic_timer_mode": "TIM_CCMR1_OC1M_1 | TIM_CCMR1_OC1M_2 | TIM_CCMR1_OC1PE",
|
||||
"haptic_timer_compare_value": "HAPTIC_GPIO_TIMER->CCR1"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -307,27 +307,66 @@
|
||||
}
|
||||
],
|
||||
"display": {
|
||||
"w": 480,
|
||||
"h": 320,
|
||||
"phys_w": 320,
|
||||
"phys_h": 480,
|
||||
"depth": 16,
|
||||
"color": 1,
|
||||
"oled": 0,
|
||||
"backlight_color": 0
|
||||
"lcd_w": 480,
|
||||
"lcd_h": 320,
|
||||
"lcd_phys_w": 320,
|
||||
"lcd_phys_h": 480,
|
||||
"lcd_depth": 16,
|
||||
"ltdc_irq_prio": 4,
|
||||
"dma_screen_irq_prio": 6
|
||||
},
|
||||
"custom_switches": {
|
||||
"rgb_led": 0,
|
||||
"groups": 0
|
||||
"backlight": {
|
||||
"backlight_gpio": "GPIO_PIN(GPIOA, 15)",
|
||||
"backlight_timer": "TIM2",
|
||||
"backlight_gpio_af": "GPIO_AF1",
|
||||
"backlight_timer_freq": "(PERI1_FREQUENCY * TIMER_MULT_APB1)"
|
||||
},
|
||||
"leds": {
|
||||
"led_strip_length": 4,
|
||||
"bling_led_strip_start": 0,
|
||||
"bling_led_strip_length": 4,
|
||||
"led_strip_gpio": "GPIO_PIN(GPIOH, 12)",
|
||||
"led_strip_gpio_af": "LL_GPIO_AF_2",
|
||||
"led_strip_timer": "TIM5",
|
||||
"led_strip_timer_freq": "(PERI1_FREQUENCY * TIMER_MULT_APB1)",
|
||||
"led_strip_timer_channel": "LL_TIM_CHANNEL_CH3",
|
||||
"led_strip_timer_dma": "DMA1",
|
||||
"led_strip_timer_dma_channel": "LL_DMA_CHANNEL_6",
|
||||
"led_strip_timer_dma_stream": "LL_DMA_STREAM_0",
|
||||
"led_strip_timer_dma_irqn": "DMA1_Stream0_IRQn",
|
||||
"led_strip_timer_dma_irqhandler": "DMA1_Stream0_IRQHandler",
|
||||
"led_strip_refresh_period": 50,
|
||||
"status_leds": true
|
||||
},
|
||||
"hardware": {
|
||||
"has_audio_mute": 1,
|
||||
"has_bling_leds": 4,
|
||||
"has_ext_module_support": 1,
|
||||
"has_int_module_support": 1,
|
||||
"has_audio_mute": true,
|
||||
"has_ext_module_support": true,
|
||||
"has_int_module_support": true,
|
||||
"sport_max_baudrate": 400000,
|
||||
"surface": 0,
|
||||
"cpu": "STM32F429xI",
|
||||
"cpu_type": "STM32F4"
|
||||
},
|
||||
"timers": {
|
||||
"cpu_freq": 168000000,
|
||||
"peri1_frequency": 42000000,
|
||||
"peri2_frequency": 84000000,
|
||||
"timer_mult_apb1": 2,
|
||||
"timer_mult_apb2": 2,
|
||||
"ms_timer": "TIM14",
|
||||
"ms_timer_irqn": "TIM8_TRG_COM_TIM14_IRQn",
|
||||
"ms_timer_irqhandler": "TIM8_TRG_COM_TIM14_IRQHandler",
|
||||
"mixer_scheduler_timer": "TIM12",
|
||||
"mixer_scheduler_timer_freq": "(PERI1_FREQUENCY * TIMER_MULT_APB1)",
|
||||
"mixer_scheduler_timer_irqn": "TIM8_BRK_TIM12_IRQn",
|
||||
"mixer_scheduler_timer_irqhandler": "TIM8_BRK_TIM12_IRQHandler"
|
||||
},
|
||||
"haptic": {
|
||||
"haptic_pwm": true,
|
||||
"haptic_gpio": "GPIO_PIN(GPIOA, 8)",
|
||||
"haptic_gpio_timer": "TIM1",
|
||||
"haptic_gpio_af": "GPIO_AF1",
|
||||
"haptic_timer_output_enable": "TIM_CCER_CC1E | TIM_CCER_CC1NE",
|
||||
"haptic_timer_mode": "TIM_CCMR1_OC1M_1 | TIM_CCMR1_OC1M_2 | TIM_CCMR1_OC1PE",
|
||||
"haptic_timer_compare_value": "HAPTIC_GPIO_TIMER->CCR1"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -270,27 +270,52 @@
|
||||
}
|
||||
],
|
||||
"display": {
|
||||
"w": 128,
|
||||
"h": 64,
|
||||
"phys_w": 128,
|
||||
"phys_h": 64,
|
||||
"depth": 1,
|
||||
"color": 0,
|
||||
"oled": 0,
|
||||
"backlight_color": 0
|
||||
"lcd_w": 128,
|
||||
"lcd_h": 64,
|
||||
"lcd_phys_w": 128,
|
||||
"lcd_phys_h": 64,
|
||||
"lcd_depth": 1,
|
||||
"lcd_vertical_invert": true
|
||||
},
|
||||
"custom_switches": {
|
||||
"rgb_led": 0,
|
||||
"groups": 0
|
||||
"backlight": {
|
||||
"backlight_bdtr": "TIM_BDTR_MOE"
|
||||
},
|
||||
"leds": {
|
||||
"status_leds": true,
|
||||
"led_red_gpio": "GPIO_PIN(GPIOE, 13)",
|
||||
"led_green_gpio": "GPIO_PIN(GPIOE, 2)",
|
||||
"led_blue_gpio": "GPIO_PIN(GPIOA, 7)"
|
||||
},
|
||||
"hardware": {
|
||||
"has_audio_mute": 1,
|
||||
"has_bling_leds": 0,
|
||||
"has_ext_module_support": 1,
|
||||
"has_int_module_support": 1,
|
||||
"has_audio_mute": true,
|
||||
"has_ext_module_support": true,
|
||||
"has_int_module_support": true,
|
||||
"sport_max_baudrate": 400000,
|
||||
"surface": 0,
|
||||
"cpu": "STM32F407xE",
|
||||
"cpu_type": "STM32F4"
|
||||
},
|
||||
"timers": {
|
||||
"cpu_freq": 168000000,
|
||||
"peri1_frequency": 42000000,
|
||||
"peri2_frequency": 84000000,
|
||||
"timer_mult_apb1": 2,
|
||||
"timer_mult_apb2": 2,
|
||||
"ms_timer": "TIM14",
|
||||
"ms_timer_irqn": "TIM8_TRG_COM_TIM14_IRQn",
|
||||
"ms_timer_irqhandler": "TIM8_TRG_COM_TIM14_IRQHandler",
|
||||
"mixer_scheduler_timer": "TIM12",
|
||||
"mixer_scheduler_timer_freq": "(PERI1_FREQUENCY * TIMER_MULT_APB1)",
|
||||
"mixer_scheduler_timer_irqn": "TIM8_BRK_TIM12_IRQn",
|
||||
"mixer_scheduler_timer_irqhandler": "TIM8_BRK_TIM12_IRQHandler"
|
||||
},
|
||||
"haptic": {
|
||||
"haptic_pwm": true,
|
||||
"haptic_gpio": "GPIO_PIN(GPIOB, 3)",
|
||||
"haptic_gpio_af": "GPIO_AF1",
|
||||
"haptic_timer": "TIM2",
|
||||
"haptic_timer_freq": "(PERI1_FREQUENCY * TIMER_MULT_APB1)",
|
||||
"haptic_counter_register": "HAPTIC_TIMER->CCR2",
|
||||
"haptic_ccmr1": "TIM_CCMR1_OC2M_1 | TIM_CCMR1_OC2M_2",
|
||||
"haptic_ccer": "TIM_CCER_CC2E"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -384,27 +384,98 @@
|
||||
}
|
||||
],
|
||||
"display": {
|
||||
"w": 480,
|
||||
"h": 320,
|
||||
"phys_w": 320,
|
||||
"phys_h": 480,
|
||||
"depth": 16,
|
||||
"color": 1,
|
||||
"oled": 0,
|
||||
"backlight_color": 0
|
||||
"lcd_w": 480,
|
||||
"lcd_h": 320,
|
||||
"lcd_phys_w": 320,
|
||||
"lcd_phys_h": 480,
|
||||
"lcd_depth": 16,
|
||||
"ltdc_irq_prio": 4,
|
||||
"dma_screen_irq_prio": 6
|
||||
},
|
||||
"custom_switches": {
|
||||
"rgb_led": 1,
|
||||
"groups": 3
|
||||
"backlight": {
|
||||
"backlight_gpio": "GPIO_PIN(GPIOC, 6)",
|
||||
"backlight_timer": "TIM3",
|
||||
"backlight_gpio_af": "GPIO_AF2",
|
||||
"backlight_timer_freq": "(PERI1_FREQUENCY * TIMER_MULT_APB1)"
|
||||
},
|
||||
"leds": {
|
||||
"led_strip_length": 24,
|
||||
"bling_led_strip_start": 0,
|
||||
"bling_led_strip_length": 12,
|
||||
"cfs_led_strip_start": 12,
|
||||
"cfs_led_strip_length": 12,
|
||||
"cfs_leds_per_switch": 2,
|
||||
"led_strip_gpio": "GPIO_PIN(GPIOA, 15)",
|
||||
"led_strip_gpio_af": "LL_GPIO_AF_1",
|
||||
"led_strip_timer": "TIM2",
|
||||
"led_strip_timer_freq": "(PERI1_FREQUENCY * TIMER_MULT_APB1)",
|
||||
"led_strip_timer_channel": "LL_TIM_CHANNEL_CH1",
|
||||
"led_strip_timer_dma": "DMA1",
|
||||
"led_strip_timer_dma_channel": "LL_DMAMUX1_REQ_TIM2_UP",
|
||||
"led_strip_timer_dma_stream": "LL_DMA_STREAM_0",
|
||||
"led_strip_timer_dma_irqn": "DMA1_Stream0_IRQn",
|
||||
"led_strip_timer_dma_irqhandler": "DMA1_Stream0_IRQHandler",
|
||||
"led_strip_refresh_period": 50,
|
||||
"status_leds": true
|
||||
},
|
||||
"hardware": {
|
||||
"has_audio_mute": 1,
|
||||
"has_bling_leds": 12,
|
||||
"has_ext_module_support": 1,
|
||||
"has_int_module_support": 1,
|
||||
"has_audio_mute": true,
|
||||
"has_ext_module_support": true,
|
||||
"has_int_module_support": true,
|
||||
"sport_max_baudrate": 400000,
|
||||
"surface": 0,
|
||||
"cpu": "STM32H750xB",
|
||||
"cpu_type": "STM32H7"
|
||||
},
|
||||
"timers": {
|
||||
"cpu_freq": 400000000,
|
||||
"peri1_frequency": 100000000,
|
||||
"peri2_frequency": 100000000,
|
||||
"timer_mult_apb1": 2,
|
||||
"timer_mult_apb2": 2,
|
||||
"ms_timer": "TIM14",
|
||||
"ms_timer_irqn": "TIM8_TRG_COM_TIM14_IRQn",
|
||||
"ms_timer_irqhandler": "TIM8_TRG_COM_TIM14_IRQHandler",
|
||||
"mixer_scheduler_timer": "TIM12",
|
||||
"mixer_scheduler_timer_freq": "(PERI1_FREQUENCY * TIMER_MULT_APB1)",
|
||||
"mixer_scheduler_timer_irqn": "TIM8_BRK_TIM12_IRQn",
|
||||
"mixer_scheduler_timer_irqhandler": "TIM8_BRK_TIM12_IRQHandler"
|
||||
},
|
||||
"imu": {
|
||||
"imu_i2c_bus": "I2C_Bus_1",
|
||||
"imu_i2c_address": "0x6A"
|
||||
},
|
||||
"rotenc": {
|
||||
"rotary_encoder_inverted": true,
|
||||
"rotary_encoder_gpio": "GPIOG",
|
||||
"rotary_encoder_gpio_pin_a": "LL_GPIO_PIN_2",
|
||||
"rotary_encoder_gpio_pin_b": "LL_GPIO_PIN_3",
|
||||
"rotary_encoder_position": "((ROTARY_ENCODER_GPIO->IDR >> 2) & 0x03)",
|
||||
"rotary_encoder_exti_line1": "LL_EXTI_LINE_2",
|
||||
"rotary_encoder_exti_line2": "LL_EXTI_LINE_3",
|
||||
"exti": [
|
||||
{
|
||||
"irq": "EXTI2_IRQ",
|
||||
"priority": 5
|
||||
},
|
||||
{
|
||||
"irq": "EXTI3_IRQ",
|
||||
"priority": 5
|
||||
}
|
||||
],
|
||||
"rotary_encoder_exti_port": "LL_SYSCFG_EXTI_PORTG",
|
||||
"rotary_encoder_exti_sys_line1": "LL_SYSCFG_EXTI_LINE2",
|
||||
"rotary_encoder_exti_sys_line2": "LL_SYSCFG_EXTI_LINE3",
|
||||
"rotary_encoder_timer": "TIM17",
|
||||
"rotary_encoder_timer_irqn": "TIM17_IRQn",
|
||||
"rotary_encoder_timer_irqhandler": "TIM17_IRQHandler"
|
||||
},
|
||||
"haptic": {
|
||||
"haptic_pwm": true,
|
||||
"haptic_gpio": "GPIO_PIN(GPIOB, 5)",
|
||||
"haptic_gpio_timer": "TIM3",
|
||||
"haptic_gpio_af": "GPIO_AF2",
|
||||
"haptic_timer_output_enable": "TIM_CCER_CC2E | TIM_CCER_CC2NE",
|
||||
"haptic_timer_mode": "TIM_CCMR1_OC2M_1 | TIM_CCMR1_OC2M_2 | TIM_CCMR1_OC2PE",
|
||||
"haptic_timer_compare_value": "HAPTIC_GPIO_TIMER->CCR2"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -312,27 +312,49 @@
|
||||
}
|
||||
],
|
||||
"display": {
|
||||
"w": 128,
|
||||
"h": 64,
|
||||
"phys_w": 128,
|
||||
"phys_h": 64,
|
||||
"depth": 1,
|
||||
"color": 0,
|
||||
"oled": 0,
|
||||
"backlight_color": 0
|
||||
"lcd_w": 128,
|
||||
"lcd_h": 64,
|
||||
"lcd_phys_w": 128,
|
||||
"lcd_phys_h": 64,
|
||||
"lcd_depth": 1,
|
||||
"lcd_vertical_invert": true
|
||||
},
|
||||
"custom_switches": {
|
||||
"rgb_led": 0,
|
||||
"groups": 0
|
||||
"leds": {
|
||||
"status_leds": true,
|
||||
"led_red_gpio": "GPIO_PIN(GPIOC, 5)",
|
||||
"led_green_gpio": "GPIO_PIN(GPIOC, 4)",
|
||||
"led_blue_gpio": "GPIO_PIN(GPIOB, 1)"
|
||||
},
|
||||
"hardware": {
|
||||
"has_audio_mute": 1,
|
||||
"has_bling_leds": 0,
|
||||
"has_ext_module_support": 1,
|
||||
"has_int_module_support": 1,
|
||||
"has_audio_mute": true,
|
||||
"has_ext_module_support": true,
|
||||
"has_int_module_support": true,
|
||||
"sport_max_baudrate": 400000,
|
||||
"surface": 0,
|
||||
"cpu": "STM32F205xE",
|
||||
"cpu_type": "STM32F2"
|
||||
},
|
||||
"timers": {
|
||||
"cpu_freq": 120000000,
|
||||
"peri1_frequency": 30000000,
|
||||
"peri2_frequency": 60000000,
|
||||
"timer_mult_apb1": 2,
|
||||
"timer_mult_apb2": 2,
|
||||
"ms_timer": "TIM14",
|
||||
"ms_timer_irqn": "TIM8_TRG_COM_TIM14_IRQn",
|
||||
"ms_timer_irqhandler": "TIM8_TRG_COM_TIM14_IRQHandler",
|
||||
"mixer_scheduler_timer": "TIM12",
|
||||
"mixer_scheduler_timer_freq": "(PERI1_FREQUENCY * TIMER_MULT_APB1)",
|
||||
"mixer_scheduler_timer_irqn": "TIM8_BRK_TIM12_IRQn",
|
||||
"mixer_scheduler_timer_irqhandler": "TIM8_BRK_TIM12_IRQHandler"
|
||||
},
|
||||
"haptic": {
|
||||
"haptic_pwm": true,
|
||||
"haptic_gpio": "GPIO_PIN(GPIOB, 8)",
|
||||
"haptic_gpio_af": "GPIO_AF3",
|
||||
"haptic_timer": "TIM10",
|
||||
"haptic_timer_freq": "(PERI2_FREQUENCY * TIMER_MULT_APB2)",
|
||||
"haptic_counter_register": "HAPTIC_TIMER->CCR1",
|
||||
"haptic_ccmr1": "TIM_CCMR1_OC1M_1 | TIM_CCMR1_OC1M_2",
|
||||
"haptic_ccer": "TIM_CCER_CC1E"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -270,27 +270,52 @@
|
||||
}
|
||||
],
|
||||
"display": {
|
||||
"w": 128,
|
||||
"h": 64,
|
||||
"phys_w": 128,
|
||||
"phys_h": 64,
|
||||
"depth": 1,
|
||||
"color": 0,
|
||||
"oled": 0,
|
||||
"backlight_color": 0
|
||||
"lcd_w": 128,
|
||||
"lcd_h": 64,
|
||||
"lcd_phys_w": 128,
|
||||
"lcd_phys_h": 64,
|
||||
"lcd_depth": 1,
|
||||
"lcd_vertical_invert": true
|
||||
},
|
||||
"custom_switches": {
|
||||
"rgb_led": 0,
|
||||
"groups": 0
|
||||
"backlight": {
|
||||
"backlight_bdtr": "TIM_BDTR_MOE"
|
||||
},
|
||||
"leds": {
|
||||
"status_leds": true,
|
||||
"led_red_gpio": "GPIO_PIN(GPIOE, 2)",
|
||||
"led_green_gpio": "GPIO_PIN(GPIOA, 7)",
|
||||
"led_blue_gpio": "GPIO_PIN(GPIOE, 13)"
|
||||
},
|
||||
"hardware": {
|
||||
"has_audio_mute": 1,
|
||||
"has_bling_leds": 0,
|
||||
"has_ext_module_support": 1,
|
||||
"has_int_module_support": 1,
|
||||
"has_audio_mute": true,
|
||||
"has_ext_module_support": true,
|
||||
"has_int_module_support": true,
|
||||
"sport_max_baudrate": 400000,
|
||||
"surface": 0,
|
||||
"cpu": "STM32F407xG",
|
||||
"cpu_type": "STM32F4"
|
||||
},
|
||||
"timers": {
|
||||
"cpu_freq": 168000000,
|
||||
"peri1_frequency": 42000000,
|
||||
"peri2_frequency": 84000000,
|
||||
"timer_mult_apb1": 2,
|
||||
"timer_mult_apb2": 2,
|
||||
"ms_timer": "TIM14",
|
||||
"ms_timer_irqn": "TIM8_TRG_COM_TIM14_IRQn",
|
||||
"ms_timer_irqhandler": "TIM8_TRG_COM_TIM14_IRQHandler",
|
||||
"mixer_scheduler_timer": "TIM12",
|
||||
"mixer_scheduler_timer_freq": "(PERI1_FREQUENCY * TIMER_MULT_APB1)",
|
||||
"mixer_scheduler_timer_irqn": "TIM8_BRK_TIM12_IRQn",
|
||||
"mixer_scheduler_timer_irqhandler": "TIM8_BRK_TIM12_IRQHandler"
|
||||
},
|
||||
"haptic": {
|
||||
"haptic_pwm": true,
|
||||
"haptic_gpio": "GPIO_PIN(GPIOB, 3)",
|
||||
"haptic_gpio_af": "GPIO_AF1",
|
||||
"haptic_timer": "TIM2",
|
||||
"haptic_timer_freq": "(PERI1_FREQUENCY * TIMER_MULT_APB1)",
|
||||
"haptic_counter_register": "HAPTIC_TIMER->CCR2",
|
||||
"haptic_ccmr1": "TIM_CCMR1_OC2M_1 | TIM_CCMR1_OC2M_2",
|
||||
"haptic_ccer": "TIM_CCER_CC2E"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -270,27 +270,67 @@
|
||||
}
|
||||
],
|
||||
"display": {
|
||||
"w": 128,
|
||||
"h": 64,
|
||||
"phys_w": 128,
|
||||
"phys_h": 64,
|
||||
"depth": 1,
|
||||
"color": 0,
|
||||
"oled": 1,
|
||||
"backlight_color": 0
|
||||
"lcd_w": 128,
|
||||
"lcd_h": 64,
|
||||
"lcd_phys_w": 128,
|
||||
"lcd_phys_h": 64,
|
||||
"lcd_depth": 1,
|
||||
"oled_screen": true,
|
||||
"lcd_horizontal_invert": true
|
||||
},
|
||||
"custom_switches": {
|
||||
"rgb_led": 0,
|
||||
"groups": 0
|
||||
"backlight": {
|
||||
"backlight_bdtr": "TIM_BDTR_MOE"
|
||||
},
|
||||
"leds": {
|
||||
"led_strip_length": 1,
|
||||
"bling_led_strip_start": 0,
|
||||
"bling_led_strip_length": 1,
|
||||
"led_strip_gpio": "GPIO_PIN(GPIOA, 10)",
|
||||
"led_strip_gpio_af": "LL_GPIO_AF_1",
|
||||
"led_strip_timer": "TIM1",
|
||||
"led_strip_timer_freq": "(PERI2_FREQUENCY * TIMER_MULT_APB2)",
|
||||
"led_strip_timer_channel": "LL_TIM_CHANNEL_CH3",
|
||||
"led_strip_timer_dma": "DMA2",
|
||||
"led_strip_timer_dma_channel": "LL_DMA_CHANNEL_6",
|
||||
"led_strip_timer_dma_stream": "LL_DMA_STREAM_5",
|
||||
"led_strip_timer_dma_irqn": "DMA2_Stream5_IRQn",
|
||||
"led_strip_timer_dma_irqhandler": "DMA2_Stream5_IRQHandler",
|
||||
"led_strip_refresh_period": 50,
|
||||
"status_leds": true,
|
||||
"led_red_gpio": "GPIO_PIN(GPIOE, 2)",
|
||||
"led_green_gpio": "GPIO_PIN(GPIOA, 7)",
|
||||
"led_blue_gpio": "GPIO_PIN(GPIOE, 13)"
|
||||
},
|
||||
"hardware": {
|
||||
"has_audio_mute": 1,
|
||||
"has_bling_leds": 1,
|
||||
"has_ext_module_support": 1,
|
||||
"has_int_module_support": 1,
|
||||
"has_audio_mute": true,
|
||||
"has_ext_module_support": true,
|
||||
"has_int_module_support": true,
|
||||
"sport_max_baudrate": 400000,
|
||||
"surface": 0,
|
||||
"cpu": "STM32F407xG",
|
||||
"cpu_type": "STM32F4"
|
||||
},
|
||||
"timers": {
|
||||
"cpu_freq": 168000000,
|
||||
"peri1_frequency": 42000000,
|
||||
"peri2_frequency": 84000000,
|
||||
"timer_mult_apb1": 2,
|
||||
"timer_mult_apb2": 2,
|
||||
"ms_timer": "TIM14",
|
||||
"ms_timer_irqn": "TIM8_TRG_COM_TIM14_IRQn",
|
||||
"ms_timer_irqhandler": "TIM8_TRG_COM_TIM14_IRQHandler",
|
||||
"mixer_scheduler_timer": "TIM12",
|
||||
"mixer_scheduler_timer_freq": "(PERI1_FREQUENCY * TIMER_MULT_APB1)",
|
||||
"mixer_scheduler_timer_irqn": "TIM8_BRK_TIM12_IRQn",
|
||||
"mixer_scheduler_timer_irqhandler": "TIM8_BRK_TIM12_IRQHandler"
|
||||
},
|
||||
"haptic": {
|
||||
"haptic_pwm": true,
|
||||
"haptic_gpio": "GPIO_PIN(GPIOB, 3)",
|
||||
"haptic_gpio_af": "GPIO_AF1",
|
||||
"haptic_timer": "TIM2",
|
||||
"haptic_timer_freq": "(PERI1_FREQUENCY * TIMER_MULT_APB1)",
|
||||
"haptic_counter_register": "HAPTIC_TIMER->CCR2",
|
||||
"haptic_ccmr1": "TIM_CCMR1_OC2M_1 | TIM_CCMR1_OC2M_2",
|
||||
"haptic_ccer": "TIM_CCER_CC2E"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -350,27 +350,49 @@
|
||||
}
|
||||
],
|
||||
"display": {
|
||||
"w": 480,
|
||||
"h": 320,
|
||||
"phys_w": 480,
|
||||
"phys_h": 320,
|
||||
"depth": 16,
|
||||
"color": 1,
|
||||
"oled": 0,
|
||||
"backlight_color": 0
|
||||
"lcd_w": 480,
|
||||
"lcd_h": 320,
|
||||
"lcd_phys_w": 480,
|
||||
"lcd_phys_h": 320,
|
||||
"lcd_depth": 16,
|
||||
"ltdc_irq_prio": 4,
|
||||
"dma_screen_irq_prio": 6
|
||||
},
|
||||
"custom_switches": {
|
||||
"rgb_led": 0,
|
||||
"groups": 3
|
||||
"leds": {
|
||||
"status_leds": true,
|
||||
"led_red_gpio": "GPIO_PIN(GPIOI, 14)",
|
||||
"led_green_gpio": "GPIO_PIN(GPIOC, 13)",
|
||||
"led_blue_gpio": "GPIO_PIN(GPIOE, 3)"
|
||||
},
|
||||
"hardware": {
|
||||
"has_audio_mute": 1,
|
||||
"has_bling_leds": 0,
|
||||
"has_ext_module_support": 1,
|
||||
"has_int_module_support": 1,
|
||||
"has_audio_mute": true,
|
||||
"has_ext_module_support": true,
|
||||
"has_int_module_support": true,
|
||||
"sport_max_baudrate": 400000,
|
||||
"surface": 0,
|
||||
"cpu": "STM32F429xI",
|
||||
"cpu_type": "STM32F4"
|
||||
},
|
||||
"timers": {
|
||||
"cpu_freq": 168000000,
|
||||
"peri1_frequency": 42000000,
|
||||
"peri2_frequency": 84000000,
|
||||
"timer_mult_apb1": 2,
|
||||
"timer_mult_apb2": 2,
|
||||
"ms_timer": "TIM14",
|
||||
"ms_timer_irqn": "TIM8_TRG_COM_TIM14_IRQn",
|
||||
"ms_timer_irqhandler": "TIM8_TRG_COM_TIM14_IRQHandler",
|
||||
"mixer_scheduler_timer": "TIM13",
|
||||
"mixer_scheduler_timer_freq": "(PERI1_FREQUENCY * TIMER_MULT_APB1)",
|
||||
"mixer_scheduler_timer_irqn": "TIM8_UP_TIM13_IRQn",
|
||||
"mixer_scheduler_timer_irqhandler": "TIM8_UP_TIM13_IRQHandler"
|
||||
},
|
||||
"haptic": {
|
||||
"haptic_pwm": true,
|
||||
"haptic_gpio": "GPIO_PIN(GPIOA, 5)",
|
||||
"haptic_gpio_timer": "TIM2",
|
||||
"haptic_gpio_af": "GPIO_AF1",
|
||||
"haptic_timer_output_enable": "TIM_CCER_CC1E | TIM_CCER_CC1NE",
|
||||
"haptic_timer_mode": "TIM_CCMR1_OC1M_1 | TIM_CCMR1_OC1M_2 | TIM_CCMR1_OC1PE",
|
||||
"haptic_timer_compare_value": "HAPTIC_GPIO_TIMER->CCR1"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -354,27 +354,95 @@
|
||||
}
|
||||
],
|
||||
"display": {
|
||||
"w": 480,
|
||||
"h": 320,
|
||||
"phys_w": 480,
|
||||
"phys_h": 320,
|
||||
"depth": 16,
|
||||
"color": 1,
|
||||
"oled": 0,
|
||||
"backlight_color": 0
|
||||
"lcd_w": 480,
|
||||
"lcd_h": 320,
|
||||
"lcd_phys_w": 480,
|
||||
"lcd_phys_h": 320,
|
||||
"lcd_depth": 16,
|
||||
"ltdc_irq_prio": 4,
|
||||
"dma_screen_irq_prio": 6
|
||||
},
|
||||
"custom_switches": {
|
||||
"rgb_led": 1,
|
||||
"groups": 3
|
||||
"backlight": {
|
||||
"backlight_gpio": "GPIO_PIN(GPIOA, 5)",
|
||||
"backlight_timer": "TIM2",
|
||||
"backlight_timer_channel": "LL_TIM_CHANNEL_CH1",
|
||||
"backlight_gpio_af": "GPIO_AF1",
|
||||
"backlight_timer_freq": "(PERI1_FREQUENCY * TIMER_MULT_APB1)"
|
||||
},
|
||||
"leds": {
|
||||
"led_strip_length": 7,
|
||||
"bling_led_strip_start": 6,
|
||||
"bling_led_strip_length": 1,
|
||||
"cfs_led_strip_start": 0,
|
||||
"cfs_led_strip_length": 6,
|
||||
"cfs_leds_per_switch": 1,
|
||||
"led_strip_gpio": "GPIO_PIN(GPIOA, 10)",
|
||||
"led_strip_gpio_af": "LL_GPIO_AF_1",
|
||||
"led_strip_timer": "TIM1",
|
||||
"led_strip_timer_freq": "(PERI1_FREQUENCY * TIMER_MULT_APB1)",
|
||||
"led_strip_timer_channel": "LL_TIM_CHANNEL_CH3",
|
||||
"led_strip_timer_dma": "DMA1",
|
||||
"led_strip_timer_dma_channel": "LL_DMAMUX1_REQ_TIM1_UP",
|
||||
"led_strip_timer_dma_stream": "LL_DMA_STREAM_0",
|
||||
"led_strip_timer_dma_irqn": "DMA1_Stream0_IRQn",
|
||||
"led_strip_timer_dma_irqhandler": "DMA1_Stream0_IRQHandler",
|
||||
"led_strip_refresh_period": 50,
|
||||
"status_leds": true,
|
||||
"led_red_gpio": "GPIO_PIN(GPIOA, 8)",
|
||||
"led_green_gpio": "GPIO_PIN(GPIOJ, 13)",
|
||||
"led_blue_gpio": "GPIO_PIN(GPIOG, 7)"
|
||||
},
|
||||
"hardware": {
|
||||
"has_audio_mute": 1,
|
||||
"has_bling_leds": 1,
|
||||
"has_ext_module_support": 1,
|
||||
"has_int_module_support": 1,
|
||||
"has_audio_mute": true,
|
||||
"has_ext_module_support": true,
|
||||
"has_int_module_support": true,
|
||||
"sport_max_baudrate": 400000,
|
||||
"surface": 0,
|
||||
"cpu": "STM32H750xB",
|
||||
"cpu_type": "STM32H7"
|
||||
},
|
||||
"timers": {
|
||||
"cpu_freq": 480000000,
|
||||
"peri1_frequency": 120000000,
|
||||
"peri2_frequency": 120000000,
|
||||
"timer_mult_apb1": 2,
|
||||
"timer_mult_apb2": 2,
|
||||
"ms_timer": "TIM14",
|
||||
"ms_timer_irqn": "TIM8_TRG_COM_TIM14_IRQn",
|
||||
"ms_timer_irqhandler": "TIM8_TRG_COM_TIM14_IRQHandler",
|
||||
"mixer_scheduler_timer": "TIM12",
|
||||
"mixer_scheduler_timer_freq": "(PERI1_FREQUENCY * TIMER_MULT_APB1)",
|
||||
"mixer_scheduler_timer_irqn": "TIM8_BRK_TIM12_IRQn",
|
||||
"mixer_scheduler_timer_irqhandler": "TIM8_BRK_TIM12_IRQHandler"
|
||||
},
|
||||
"rotenc": {
|
||||
"rotary_encoder_gpio_a": "GPIOA",
|
||||
"rotary_encoder_gpio_pin_a": "LL_GPIO_PIN_6",
|
||||
"rotary_encoder_gpio_b": "GPIOA",
|
||||
"rotary_encoder_gpio_pin_b": "LL_GPIO_PIN_7",
|
||||
"rotary_encoder_position": "(((ROTARY_ENCODER_GPIO_A->IDR >> 6) & 0x01)|((ROTARY_ENCODER_GPIO_B->IDR >> 6) & 0x02))",
|
||||
"rotary_encoder_exti_line1": "LL_EXTI_LINE_6",
|
||||
"rotary_encoder_exti_line2": "LL_EXTI_LINE_7",
|
||||
"exti": [
|
||||
{
|
||||
"irq": "EXTI9_5_IRQ",
|
||||
"priority": 9
|
||||
}
|
||||
],
|
||||
"rotary_encoder_exti_port_a": "LL_SYSCFG_EXTI_PORTA",
|
||||
"rotary_encoder_exti_port_b": "LL_SYSCFG_EXTI_PORTA",
|
||||
"rotary_encoder_exti_sys_line1": "LL_SYSCFG_EXTI_LINE6",
|
||||
"rotary_encoder_exti_sys_line2": "LL_SYSCFG_EXTI_LINE7",
|
||||
"rotary_encoder_timer": "TIM17",
|
||||
"rotary_encoder_timer_irqn": "TIM17_IRQn",
|
||||
"rotary_encoder_timer_irqhandler": "TIM17_IRQHandler"
|
||||
},
|
||||
"haptic": {
|
||||
"haptic_pwm": true,
|
||||
"haptic_gpio": "GPIO_PIN(GPIOE, 6)",
|
||||
"haptic_gpio_timer": "TIM15",
|
||||
"haptic_gpio_af": "GPIO_AF4",
|
||||
"haptic_timer_output_enable": "TIM_CCER_CC2E | TIM_CCER_CC2NE",
|
||||
"haptic_timer_mode": "TIM_CCMR1_OC2M_1 | TIM_CCMR1_OC2M_2 | TIM_CCMR1_OC2PE",
|
||||
"haptic_timer_compare_value": "HAPTIC_GPIO_TIMER->CCR2"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -429,27 +429,50 @@
|
||||
}
|
||||
],
|
||||
"display": {
|
||||
"w": 480,
|
||||
"h": 272,
|
||||
"phys_w": 480,
|
||||
"phys_h": 272,
|
||||
"depth": 16,
|
||||
"color": 1,
|
||||
"oled": 0,
|
||||
"backlight_color": 0
|
||||
"lcd_w": 480,
|
||||
"lcd_h": 272,
|
||||
"lcd_phys_w": 480,
|
||||
"lcd_phys_h": 272,
|
||||
"lcd_depth": 16,
|
||||
"lcd_vertical_invert": true,
|
||||
"ltdc_irq_prio": 4,
|
||||
"dma_screen_irq_prio": 6
|
||||
},
|
||||
"custom_switches": {
|
||||
"rgb_led": 0,
|
||||
"groups": 0
|
||||
"leds": {
|
||||
"status_leds": true,
|
||||
"led_red_gpio": "GPIO_PIN(GPIOE, 2)",
|
||||
"led_green_gpio": "GPIO_PIN(GPIOE, 4)",
|
||||
"led_blue_gpio": "GPIO_PIN(GPIOE, 5)"
|
||||
},
|
||||
"hardware": {
|
||||
"has_audio_mute": 1,
|
||||
"has_bling_leds": 0,
|
||||
"has_ext_module_support": 1,
|
||||
"has_int_module_support": 1,
|
||||
"has_audio_mute": true,
|
||||
"has_ext_module_support": true,
|
||||
"has_int_module_support": true,
|
||||
"sport_max_baudrate": 400000,
|
||||
"surface": 0,
|
||||
"cpu": "STM32F429xI",
|
||||
"cpu_type": "STM32F4"
|
||||
},
|
||||
"timers": {
|
||||
"cpu_freq": 168000000,
|
||||
"peri1_frequency": 42000000,
|
||||
"peri2_frequency": 84000000,
|
||||
"timer_mult_apb1": 2,
|
||||
"timer_mult_apb2": 2,
|
||||
"ms_timer": "TIM14",
|
||||
"ms_timer_irqn": "TIM8_TRG_COM_TIM14_IRQn",
|
||||
"ms_timer_irqhandler": "TIM8_TRG_COM_TIM14_IRQHandler",
|
||||
"mixer_scheduler_timer": "TIM13",
|
||||
"mixer_scheduler_timer_freq": "(PERI1_FREQUENCY * TIMER_MULT_APB1)",
|
||||
"mixer_scheduler_timer_irqn": "TIM8_UP_TIM13_IRQn",
|
||||
"mixer_scheduler_timer_irqhandler": "TIM8_UP_TIM13_IRQHandler"
|
||||
},
|
||||
"haptic": {
|
||||
"haptic_pwm": true,
|
||||
"haptic_gpio": "GPIO_PIN(GPIOE, 6)",
|
||||
"haptic_gpio_timer": "TIM9",
|
||||
"haptic_gpio_af": "GPIO_AF3",
|
||||
"haptic_timer_output_enable": "TIM_CCER_CC2E",
|
||||
"haptic_timer_mode": "TIM_CCMR1_OC2M_1 | TIM_CCMR1_OC2M_2",
|
||||
"haptic_timer_compare_value": "HAPTIC_GPIO_TIMER->CCR2"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -431,27 +431,49 @@
|
||||
}
|
||||
],
|
||||
"display": {
|
||||
"w": 480,
|
||||
"h": 272,
|
||||
"phys_w": 480,
|
||||
"phys_h": 272,
|
||||
"depth": 16,
|
||||
"color": 1,
|
||||
"oled": 0,
|
||||
"backlight_color": 0
|
||||
"lcd_w": 480,
|
||||
"lcd_h": 272,
|
||||
"lcd_phys_w": 480,
|
||||
"lcd_phys_h": 272,
|
||||
"lcd_depth": 16,
|
||||
"ltdc_irq_prio": 4,
|
||||
"dma_screen_irq_prio": 6
|
||||
},
|
||||
"custom_switches": {
|
||||
"rgb_led": 0,
|
||||
"groups": 0
|
||||
"leds": {
|
||||
"status_leds": true,
|
||||
"led_red_gpio": "GPIO_PIN(GPIOE, 2)",
|
||||
"led_green_gpio": "GPIO_PIN(GPIOE, 4)",
|
||||
"led_blue_gpio": "GPIO_PIN(GPIOE, 5)"
|
||||
},
|
||||
"hardware": {
|
||||
"has_audio_mute": 1,
|
||||
"has_bling_leds": 0,
|
||||
"has_ext_module_support": 1,
|
||||
"has_int_module_support": 1,
|
||||
"has_audio_mute": true,
|
||||
"has_ext_module_support": true,
|
||||
"has_int_module_support": true,
|
||||
"sport_max_baudrate": 400000,
|
||||
"surface": 0,
|
||||
"cpu": "STM32F429xI",
|
||||
"cpu_type": "STM32F4"
|
||||
},
|
||||
"timers": {
|
||||
"cpu_freq": 168000000,
|
||||
"peri1_frequency": 42000000,
|
||||
"peri2_frequency": 84000000,
|
||||
"timer_mult_apb1": 2,
|
||||
"timer_mult_apb2": 2,
|
||||
"ms_timer": "TIM14",
|
||||
"ms_timer_irqn": "TIM8_TRG_COM_TIM14_IRQn",
|
||||
"ms_timer_irqhandler": "TIM8_TRG_COM_TIM14_IRQHandler",
|
||||
"mixer_scheduler_timer": "TIM13",
|
||||
"mixer_scheduler_timer_freq": "(PERI1_FREQUENCY * TIMER_MULT_APB1)",
|
||||
"mixer_scheduler_timer_irqn": "TIM8_UP_TIM13_IRQn",
|
||||
"mixer_scheduler_timer_irqhandler": "TIM8_UP_TIM13_IRQHandler"
|
||||
},
|
||||
"haptic": {
|
||||
"haptic_pwm": true,
|
||||
"haptic_gpio": "GPIO_PIN(GPIOE, 6)",
|
||||
"haptic_gpio_timer": "TIM9",
|
||||
"haptic_gpio_af": "GPIO_AF3",
|
||||
"haptic_timer_output_enable": "TIM_CCER_CC2E",
|
||||
"haptic_timer_mode": "TIM_CCMR1_OC2M_1 | TIM_CCMR1_OC2M_2",
|
||||
"haptic_timer_compare_value": "HAPTIC_GPIO_TIMER->CCR2"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -509,27 +509,51 @@
|
||||
}
|
||||
],
|
||||
"display": {
|
||||
"w": 128,
|
||||
"h": 64,
|
||||
"phys_w": 128,
|
||||
"phys_h": 64,
|
||||
"depth": 1,
|
||||
"color": 0,
|
||||
"oled": 1,
|
||||
"backlight_color": 0
|
||||
"lcd_w": 128,
|
||||
"lcd_h": 64,
|
||||
"lcd_phys_w": 128,
|
||||
"lcd_phys_h": 64,
|
||||
"lcd_depth": 1,
|
||||
"oled_screen": true,
|
||||
"lcd_horizontal_invert": true,
|
||||
"lcd_vertical_invert": true
|
||||
},
|
||||
"custom_switches": {
|
||||
"rgb_led": 0,
|
||||
"groups": 3
|
||||
"leds": {
|
||||
"status_leds": true,
|
||||
"led_red_gpio": "GPIO_PIN(GPIOC, 5)",
|
||||
"led_green_gpio": "GPIO_PIN(GPIOG, 1)",
|
||||
"led_blue_gpio": "GPIO_PIN(GPIOC, 4)"
|
||||
},
|
||||
"hardware": {
|
||||
"has_audio_mute": 1,
|
||||
"has_bling_leds": 0,
|
||||
"has_ext_module_support": 1,
|
||||
"has_int_module_support": 1,
|
||||
"has_audio_mute": true,
|
||||
"has_ext_module_support": true,
|
||||
"has_int_module_support": true,
|
||||
"sport_max_baudrate": 400000,
|
||||
"surface": 0,
|
||||
"cpu": "STM32F407xE",
|
||||
"cpu_type": "STM32F4"
|
||||
},
|
||||
"timers": {
|
||||
"cpu_freq": 168000000,
|
||||
"peri1_frequency": 42000000,
|
||||
"peri2_frequency": 84000000,
|
||||
"timer_mult_apb1": 2,
|
||||
"timer_mult_apb2": 2,
|
||||
"ms_timer": "TIM14",
|
||||
"ms_timer_irqn": "TIM8_TRG_COM_TIM14_IRQn",
|
||||
"ms_timer_irqhandler": "TIM8_TRG_COM_TIM14_IRQHandler",
|
||||
"mixer_scheduler_timer": "TIM12",
|
||||
"mixer_scheduler_timer_freq": "(PERI1_FREQUENCY * TIMER_MULT_APB1)",
|
||||
"mixer_scheduler_timer_irqn": "TIM8_BRK_TIM12_IRQn",
|
||||
"mixer_scheduler_timer_irqhandler": "TIM8_BRK_TIM12_IRQHandler"
|
||||
},
|
||||
"haptic": {
|
||||
"haptic_pwm": true,
|
||||
"haptic_gpio": "GPIO_PIN(GPIOB, 8)",
|
||||
"haptic_gpio_af": "GPIO_AF3",
|
||||
"haptic_timer": "TIM10",
|
||||
"haptic_timer_freq": "(PERI2_FREQUENCY * TIMER_MULT_APB2)",
|
||||
"haptic_counter_register": "HAPTIC_TIMER->CCR1",
|
||||
"haptic_ccmr1": "TIM_CCMR1_OC1M_1 | TIM_CCMR1_OC1M_2",
|
||||
"haptic_ccer": "TIM_CCER_CC1E"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -509,27 +509,54 @@
|
||||
}
|
||||
],
|
||||
"display": {
|
||||
"w": 128,
|
||||
"h": 64,
|
||||
"phys_w": 128,
|
||||
"phys_h": 64,
|
||||
"depth": 1,
|
||||
"color": 0,
|
||||
"oled": 1,
|
||||
"backlight_color": 0
|
||||
"lcd_w": 128,
|
||||
"lcd_h": 64,
|
||||
"lcd_phys_w": 128,
|
||||
"lcd_phys_h": 64,
|
||||
"lcd_depth": 1,
|
||||
"oled_screen": true,
|
||||
"lcd_horizontal_invert": true,
|
||||
"lcd_vertical_invert": true
|
||||
},
|
||||
"custom_switches": {
|
||||
"rgb_led": 0,
|
||||
"groups": 3
|
||||
"backlight": {
|
||||
"backlight_bdtr": "TIM_BDTR_MOE"
|
||||
},
|
||||
"leds": {
|
||||
"status_leds": true,
|
||||
"led_red_gpio": "GPIO_PIN(GPIOC, 5)",
|
||||
"led_green_gpio": "GPIO_PIN(GPIOG, 1)",
|
||||
"led_blue_gpio": "GPIO_PIN(GPIOC, 4)"
|
||||
},
|
||||
"hardware": {
|
||||
"has_audio_mute": 1,
|
||||
"has_bling_leds": 0,
|
||||
"has_ext_module_support": 1,
|
||||
"has_int_module_support": 1,
|
||||
"has_audio_mute": true,
|
||||
"has_ext_module_support": true,
|
||||
"has_int_module_support": true,
|
||||
"sport_max_baudrate": 400000,
|
||||
"surface": 0,
|
||||
"cpu": "STM32F407xG",
|
||||
"cpu_type": "STM32F4"
|
||||
},
|
||||
"timers": {
|
||||
"cpu_freq": 168000000,
|
||||
"peri1_frequency": 42000000,
|
||||
"peri2_frequency": 84000000,
|
||||
"timer_mult_apb1": 2,
|
||||
"timer_mult_apb2": 2,
|
||||
"ms_timer": "TIM14",
|
||||
"ms_timer_irqn": "TIM8_TRG_COM_TIM14_IRQn",
|
||||
"ms_timer_irqhandler": "TIM8_TRG_COM_TIM14_IRQHandler",
|
||||
"mixer_scheduler_timer": "TIM12",
|
||||
"mixer_scheduler_timer_freq": "(PERI1_FREQUENCY * TIMER_MULT_APB1)",
|
||||
"mixer_scheduler_timer_irqn": "TIM8_BRK_TIM12_IRQn",
|
||||
"mixer_scheduler_timer_irqhandler": "TIM8_BRK_TIM12_IRQHandler"
|
||||
},
|
||||
"haptic": {
|
||||
"haptic_pwm": true,
|
||||
"haptic_gpio": "GPIO_PIN(GPIOB, 3)",
|
||||
"haptic_gpio_af": "GPIO_AF1",
|
||||
"haptic_timer": "TIM2",
|
||||
"haptic_timer_freq": "(PERI1_FREQUENCY * TIMER_MULT_APB1)",
|
||||
"haptic_counter_register": "HAPTIC_TIMER->CCR2",
|
||||
"haptic_ccmr1": "TIM_CCMR1_OC2M_1 | TIM_CCMR1_OC2M_2",
|
||||
"haptic_ccer": "TIM_CCER_CC2E"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -463,27 +463,87 @@
|
||||
}
|
||||
],
|
||||
"display": {
|
||||
"w": 480,
|
||||
"h": 320,
|
||||
"phys_w": 320,
|
||||
"phys_h": 480,
|
||||
"depth": 16,
|
||||
"color": 1,
|
||||
"oled": 0,
|
||||
"backlight_color": 0
|
||||
"lcd_w": 480,
|
||||
"lcd_h": 320,
|
||||
"lcd_phys_w": 320,
|
||||
"lcd_phys_h": 480,
|
||||
"lcd_depth": 16
|
||||
},
|
||||
"custom_switches": {
|
||||
"rgb_led": 1,
|
||||
"groups": 3
|
||||
"leds": {
|
||||
"led_strip_length": 7,
|
||||
"bling_led_strip_start": 6,
|
||||
"bling_led_strip_length": 1,
|
||||
"cfs_led_strip_start": 0,
|
||||
"cfs_led_strip_length": 6,
|
||||
"cfs_leds_per_switch": 1,
|
||||
"led_strip_gpio": "GPIO_PIN(GPIOA, 10)",
|
||||
"led_strip_gpio_af": "LL_GPIO_AF_1",
|
||||
"led_strip_timer": "TIM1",
|
||||
"led_strip_timer_freq": "(PERI1_FREQUENCY * TIMER_MULT_APB1)",
|
||||
"led_strip_timer_channel": "LL_TIM_CHANNEL_CH3",
|
||||
"led_strip_timer_dma": "DMA1",
|
||||
"led_strip_timer_dma_channel": "LL_DMAMUX1_REQ_TIM1_UP",
|
||||
"led_strip_timer_dma_stream": "LL_DMA_STREAM_0",
|
||||
"led_strip_timer_dma_irqn": "DMA1_Stream0_IRQn",
|
||||
"led_strip_timer_dma_irqhandler": "DMA1_Stream0_IRQHandler",
|
||||
"led_strip_refresh_period": 50,
|
||||
"status_leds": true,
|
||||
"led_red_gpio": "GPIO_PIN(GPIOB, 15)",
|
||||
"led_red2_gpio": "GPIO_PIN(GPIOJ, 12)",
|
||||
"led_green_gpio": "GPIO_PIN(GPIOB, 13)",
|
||||
"led_blue_gpio": "GPIO_PIN(GPIOB, 12)"
|
||||
},
|
||||
"hardware": {
|
||||
"has_audio_mute": 1,
|
||||
"has_bling_leds": 1,
|
||||
"has_ext_module_support": 1,
|
||||
"has_int_module_support": 1,
|
||||
"has_audio_mute": true,
|
||||
"has_ext_module_support": true,
|
||||
"has_int_module_support": true,
|
||||
"sport_max_baudrate": 400000,
|
||||
"surface": 0,
|
||||
"cpu": "STM32H750xB",
|
||||
"cpu_type": "STM32H7"
|
||||
},
|
||||
"timers": {
|
||||
"cpu_freq": 480000000,
|
||||
"peri1_frequency": 120000000,
|
||||
"peri2_frequency": 120000000,
|
||||
"timer_mult_apb1": 2,
|
||||
"timer_mult_apb2": 2,
|
||||
"ms_timer": "TIM14",
|
||||
"ms_timer_irqn": "TIM8_TRG_COM_TIM14_IRQn",
|
||||
"ms_timer_irqhandler": "TIM8_TRG_COM_TIM14_IRQHandler",
|
||||
"mixer_scheduler_timer": "TIM12",
|
||||
"mixer_scheduler_timer_freq": "(PERI1_FREQUENCY * TIMER_MULT_APB1)",
|
||||
"mixer_scheduler_timer_irqn": "TIM8_BRK_TIM12_IRQn",
|
||||
"mixer_scheduler_timer_irqhandler": "TIM8_BRK_TIM12_IRQHandler"
|
||||
},
|
||||
"rotenc": {
|
||||
"rotary_encoder_gpio_a": "GPIOA",
|
||||
"rotary_encoder_gpio_pin_a": "LL_GPIO_PIN_6",
|
||||
"rotary_encoder_gpio_b": "GPIOA",
|
||||
"rotary_encoder_gpio_pin_b": "LL_GPIO_PIN_7",
|
||||
"rotary_encoder_position": "(((ROTARY_ENCODER_GPIO_A->IDR >> 6) & 0x01)|((ROTARY_ENCODER_GPIO_B->IDR >> 6) & 0x02))",
|
||||
"rotary_encoder_exti_line1": "LL_EXTI_LINE_6",
|
||||
"rotary_encoder_exti_line2": "LL_EXTI_LINE_7",
|
||||
"exti": [
|
||||
{
|
||||
"irq": "EXTI9_5_IRQ",
|
||||
"priority": 9
|
||||
}
|
||||
],
|
||||
"rotary_encoder_exti_port_a": "LL_SYSCFG_EXTI_PORTA",
|
||||
"rotary_encoder_exti_port_b": "LL_SYSCFG_EXTI_PORTA",
|
||||
"rotary_encoder_exti_sys_line1": "LL_SYSCFG_EXTI_LINE6",
|
||||
"rotary_encoder_exti_sys_line2": "LL_SYSCFG_EXTI_LINE7",
|
||||
"rotary_encoder_timer": "TIM17",
|
||||
"rotary_encoder_timer_irqn": "TIM17_IRQn",
|
||||
"rotary_encoder_timer_irqhandler": "TIM17_IRQHandler"
|
||||
},
|
||||
"haptic": {
|
||||
"haptic_pwm": true,
|
||||
"haptic_gpio": "GPIO_PIN(GPIOE, 6)",
|
||||
"haptic_gpio_timer": "TIM15",
|
||||
"haptic_gpio_af": "GPIO_AF4",
|
||||
"haptic_timer_output_enable": "TIM_CCER_CC2E | TIM_CCER_CC2NE",
|
||||
"haptic_timer_mode": "TIM_CCMR1_OC2M_1 | TIM_CCMR1_OC2M_2 | TIM_CCMR1_OC2PE",
|
||||
"haptic_timer_compare_value": "HAPTIC_GPIO_TIMER->CCR2"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -252,27 +252,48 @@
|
||||
}
|
||||
],
|
||||
"display": {
|
||||
"w": 128,
|
||||
"h": 64,
|
||||
"phys_w": 128,
|
||||
"phys_h": 64,
|
||||
"depth": 1,
|
||||
"color": 0,
|
||||
"oled": 0,
|
||||
"backlight_color": 0
|
||||
"lcd_w": 128,
|
||||
"lcd_h": 64,
|
||||
"lcd_phys_w": 128,
|
||||
"lcd_phys_h": 64,
|
||||
"lcd_depth": 1,
|
||||
"lcd_vertical_invert": true
|
||||
},
|
||||
"custom_switches": {
|
||||
"rgb_led": 0,
|
||||
"groups": 0
|
||||
"leds": {
|
||||
"status_leds": true,
|
||||
"led_red_gpio": "GPIO_PIN(GPIOC, 4)",
|
||||
"led_green_gpio": "GPIO_PIN(GPIOB, 1)",
|
||||
"led_blue_gpio": "GPIO_PIN(GPIOC, 5)"
|
||||
},
|
||||
"hardware": {
|
||||
"has_audio_mute": 1,
|
||||
"has_bling_leds": 0,
|
||||
"has_ext_module_support": 0,
|
||||
"has_int_module_support": 1,
|
||||
"has_audio_mute": true,
|
||||
"has_int_module_support": true,
|
||||
"sport_max_baudrate": 400000,
|
||||
"surface": 0,
|
||||
"cpu": "STM32F205xE",
|
||||
"cpu_type": "STM32F2"
|
||||
},
|
||||
"timers": {
|
||||
"cpu_freq": 120000000,
|
||||
"peri1_frequency": 30000000,
|
||||
"peri2_frequency": 60000000,
|
||||
"timer_mult_apb1": 2,
|
||||
"timer_mult_apb2": 2,
|
||||
"ms_timer": "TIM14",
|
||||
"ms_timer_irqn": "TIM8_TRG_COM_TIM14_IRQn",
|
||||
"ms_timer_irqhandler": "TIM8_TRG_COM_TIM14_IRQHandler",
|
||||
"mixer_scheduler_timer": "TIM12",
|
||||
"mixer_scheduler_timer_freq": "(PERI1_FREQUENCY * TIMER_MULT_APB1)",
|
||||
"mixer_scheduler_timer_irqn": "TIM8_BRK_TIM12_IRQn",
|
||||
"mixer_scheduler_timer_irqhandler": "TIM8_BRK_TIM12_IRQHandler"
|
||||
},
|
||||
"haptic": {
|
||||
"haptic_pwm": true,
|
||||
"haptic_gpio": "GPIO_PIN(GPIOB, 8)",
|
||||
"haptic_gpio_af": "GPIO_AF3",
|
||||
"haptic_timer": "TIM10",
|
||||
"haptic_timer_freq": "(PERI2_FREQUENCY * TIMER_MULT_APB2)",
|
||||
"haptic_counter_register": "HAPTIC_TIMER->CCR1",
|
||||
"haptic_ccmr1": "TIM_CCMR1_OC1M_1 | TIM_CCMR1_OC1M_2",
|
||||
"haptic_ccer": "TIM_CCER_CC1E"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -236,27 +236,49 @@
|
||||
}
|
||||
],
|
||||
"display": {
|
||||
"w": 128,
|
||||
"h": 64,
|
||||
"phys_w": 128,
|
||||
"phys_h": 64,
|
||||
"depth": 1,
|
||||
"color": 0,
|
||||
"oled": 0,
|
||||
"backlight_color": 0
|
||||
"lcd_w": 128,
|
||||
"lcd_h": 64,
|
||||
"lcd_phys_w": 128,
|
||||
"lcd_phys_h": 64,
|
||||
"lcd_depth": 1,
|
||||
"lcd_vertical_invert": true
|
||||
},
|
||||
"custom_switches": {
|
||||
"rgb_led": 0,
|
||||
"groups": 0
|
||||
"leds": {
|
||||
"status_leds": true,
|
||||
"led_red_gpio": "GPIO_PIN(GPIOC, 5)",
|
||||
"led_green_gpio": "GPIO_PIN(GPIOB, 1)",
|
||||
"led_blue_gpio": "GPIO_PIN(GPIOC, 4)"
|
||||
},
|
||||
"hardware": {
|
||||
"has_audio_mute": 1,
|
||||
"has_bling_leds": 0,
|
||||
"has_ext_module_support": 1,
|
||||
"has_int_module_support": 1,
|
||||
"has_audio_mute": true,
|
||||
"has_ext_module_support": true,
|
||||
"has_int_module_support": true,
|
||||
"sport_max_baudrate": 400000,
|
||||
"surface": 0,
|
||||
"cpu": "STM32F205xE",
|
||||
"cpu_type": "STM32F2"
|
||||
},
|
||||
"timers": {
|
||||
"cpu_freq": 120000000,
|
||||
"peri1_frequency": 30000000,
|
||||
"peri2_frequency": 60000000,
|
||||
"timer_mult_apb1": 2,
|
||||
"timer_mult_apb2": 2,
|
||||
"ms_timer": "TIM14",
|
||||
"ms_timer_irqn": "TIM8_TRG_COM_TIM14_IRQn",
|
||||
"ms_timer_irqhandler": "TIM8_TRG_COM_TIM14_IRQHandler",
|
||||
"mixer_scheduler_timer": "TIM12",
|
||||
"mixer_scheduler_timer_freq": "(PERI1_FREQUENCY * TIMER_MULT_APB1)",
|
||||
"mixer_scheduler_timer_irqn": "TIM8_BRK_TIM12_IRQn",
|
||||
"mixer_scheduler_timer_irqhandler": "TIM8_BRK_TIM12_IRQHandler"
|
||||
},
|
||||
"haptic": {
|
||||
"haptic_pwm": true,
|
||||
"haptic_gpio": "GPIO_PIN(GPIOB, 8)",
|
||||
"haptic_gpio_af": "GPIO_AF3",
|
||||
"haptic_timer": "TIM10",
|
||||
"haptic_timer_freq": "(PERI2_FREQUENCY * TIMER_MULT_APB2)",
|
||||
"haptic_counter_register": "HAPTIC_TIMER->CCR1",
|
||||
"haptic_ccmr1": "TIM_CCMR1_OC1M_1 | TIM_CCMR1_OC1M_2",
|
||||
"haptic_ccer": "TIM_CCER_CC1E"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -342,27 +342,49 @@
|
||||
}
|
||||
],
|
||||
"display": {
|
||||
"w": 128,
|
||||
"h": 64,
|
||||
"phys_w": 128,
|
||||
"phys_h": 64,
|
||||
"depth": 1,
|
||||
"color": 0,
|
||||
"oled": 0,
|
||||
"backlight_color": 0
|
||||
"lcd_w": 128,
|
||||
"lcd_h": 64,
|
||||
"lcd_phys_w": 128,
|
||||
"lcd_phys_h": 64,
|
||||
"lcd_depth": 1,
|
||||
"lcd_vertical_invert": true
|
||||
},
|
||||
"custom_switches": {
|
||||
"rgb_led": 0,
|
||||
"groups": 3
|
||||
"leds": {
|
||||
"status_leds": true,
|
||||
"led_red_gpio": "GPIO_PIN(GPIOC, 5)",
|
||||
"led_green_gpio": "GPIO_PIN(GPIOB, 1)",
|
||||
"led_blue_gpio": "GPIO_PIN(GPIOC, 4)"
|
||||
},
|
||||
"hardware": {
|
||||
"has_audio_mute": 1,
|
||||
"has_bling_leds": 0,
|
||||
"has_ext_module_support": 1,
|
||||
"has_int_module_support": 1,
|
||||
"has_audio_mute": true,
|
||||
"has_ext_module_support": true,
|
||||
"has_int_module_support": true,
|
||||
"sport_max_baudrate": 400000,
|
||||
"surface": 0,
|
||||
"cpu": "STM32F205xE",
|
||||
"cpu_type": "STM32F2"
|
||||
},
|
||||
"timers": {
|
||||
"cpu_freq": 120000000,
|
||||
"peri1_frequency": 30000000,
|
||||
"peri2_frequency": 60000000,
|
||||
"timer_mult_apb1": 2,
|
||||
"timer_mult_apb2": 2,
|
||||
"ms_timer": "TIM14",
|
||||
"ms_timer_irqn": "TIM8_TRG_COM_TIM14_IRQn",
|
||||
"ms_timer_irqhandler": "TIM8_TRG_COM_TIM14_IRQHandler",
|
||||
"mixer_scheduler_timer": "TIM12",
|
||||
"mixer_scheduler_timer_freq": "(PERI1_FREQUENCY * TIMER_MULT_APB1)",
|
||||
"mixer_scheduler_timer_irqn": "TIM8_BRK_TIM12_IRQn",
|
||||
"mixer_scheduler_timer_irqhandler": "TIM8_BRK_TIM12_IRQHandler"
|
||||
},
|
||||
"haptic": {
|
||||
"haptic_pwm": true,
|
||||
"haptic_gpio": "GPIO_PIN(GPIOB, 8)",
|
||||
"haptic_gpio_af": "GPIO_AF3",
|
||||
"haptic_timer": "TIM10",
|
||||
"haptic_timer_freq": "(PERI2_FREQUENCY * TIMER_MULT_APB2)",
|
||||
"haptic_counter_register": "HAPTIC_TIMER->CCR1",
|
||||
"haptic_ccmr1": "TIM_CCMR1_OC1M_1 | TIM_CCMR1_OC1M_2",
|
||||
"haptic_ccer": "TIM_CCER_CC1E"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -270,27 +270,54 @@
|
||||
}
|
||||
],
|
||||
"display": {
|
||||
"w": 128,
|
||||
"h": 64,
|
||||
"phys_w": 128,
|
||||
"phys_h": 64,
|
||||
"depth": 1,
|
||||
"color": 0,
|
||||
"oled": 1,
|
||||
"backlight_color": 0
|
||||
"lcd_w": 128,
|
||||
"lcd_h": 64,
|
||||
"lcd_phys_w": 128,
|
||||
"lcd_phys_h": 64,
|
||||
"lcd_depth": 1,
|
||||
"oled_screen": true,
|
||||
"lcd_horizontal_invert": true,
|
||||
"lcd_vertical_invert": true
|
||||
},
|
||||
"custom_switches": {
|
||||
"rgb_led": 0,
|
||||
"groups": 0
|
||||
"backlight": {
|
||||
"backlight_bdtr": "TIM_BDTR_MOE"
|
||||
},
|
||||
"leds": {
|
||||
"status_leds": true,
|
||||
"led_red_gpio": "GPIO_PIN(GPIOE, 2)",
|
||||
"led_green_gpio": "GPIO_PIN(GPIOA, 7)",
|
||||
"led_blue_gpio": "GPIO_PIN(GPIOE, 13)"
|
||||
},
|
||||
"hardware": {
|
||||
"has_audio_mute": 1,
|
||||
"has_bling_leds": 0,
|
||||
"has_ext_module_support": 1,
|
||||
"has_int_module_support": 1,
|
||||
"has_audio_mute": true,
|
||||
"has_ext_module_support": true,
|
||||
"has_int_module_support": true,
|
||||
"sport_max_baudrate": 400000,
|
||||
"surface": 0,
|
||||
"cpu": "STM32F407xG",
|
||||
"cpu_type": "STM32F4"
|
||||
},
|
||||
"timers": {
|
||||
"cpu_freq": 168000000,
|
||||
"peri1_frequency": 42000000,
|
||||
"peri2_frequency": 84000000,
|
||||
"timer_mult_apb1": 2,
|
||||
"timer_mult_apb2": 2,
|
||||
"ms_timer": "TIM14",
|
||||
"ms_timer_irqn": "TIM8_TRG_COM_TIM14_IRQn",
|
||||
"ms_timer_irqhandler": "TIM8_TRG_COM_TIM14_IRQHandler",
|
||||
"mixer_scheduler_timer": "TIM12",
|
||||
"mixer_scheduler_timer_freq": "(PERI1_FREQUENCY * TIMER_MULT_APB1)",
|
||||
"mixer_scheduler_timer_irqn": "TIM8_BRK_TIM12_IRQn",
|
||||
"mixer_scheduler_timer_irqhandler": "TIM8_BRK_TIM12_IRQHandler"
|
||||
},
|
||||
"haptic": {
|
||||
"haptic_pwm": true,
|
||||
"haptic_gpio": "GPIO_PIN(GPIOB, 3)",
|
||||
"haptic_gpio_af": "GPIO_AF1",
|
||||
"haptic_timer": "TIM2",
|
||||
"haptic_timer_freq": "(PERI1_FREQUENCY * TIMER_MULT_APB1)",
|
||||
"haptic_counter_register": "HAPTIC_TIMER->CCR2",
|
||||
"haptic_ccmr1": "TIM_CCMR1_OC2M_1 | TIM_CCMR1_OC2M_2",
|
||||
"haptic_ccer": "TIM_CCER_CC2E"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -370,27 +370,51 @@
|
||||
}
|
||||
],
|
||||
"display": {
|
||||
"w": 128,
|
||||
"h": 64,
|
||||
"phys_w": 128,
|
||||
"phys_h": 64,
|
||||
"depth": 1,
|
||||
"color": 0,
|
||||
"oled": 1,
|
||||
"backlight_color": 0
|
||||
"lcd_w": 128,
|
||||
"lcd_h": 64,
|
||||
"lcd_phys_w": 128,
|
||||
"lcd_phys_h": 64,
|
||||
"lcd_depth": 1,
|
||||
"oled_screen": true,
|
||||
"lcd_horizontal_invert": true,
|
||||
"lcd_vertical_invert": true
|
||||
},
|
||||
"custom_switches": {
|
||||
"rgb_led": 0,
|
||||
"groups": 3
|
||||
"leds": {
|
||||
"status_leds": true,
|
||||
"led_red_gpio": "GPIO_PIN(GPIOC, 5)",
|
||||
"led_green_gpio": "GPIO_PIN(GPIOB, 1)",
|
||||
"led_blue_gpio": "GPIO_PIN(GPIOC, 4)"
|
||||
},
|
||||
"hardware": {
|
||||
"has_audio_mute": 1,
|
||||
"has_bling_leds": 0,
|
||||
"has_ext_module_support": 1,
|
||||
"has_int_module_support": 1,
|
||||
"has_audio_mute": true,
|
||||
"has_ext_module_support": true,
|
||||
"has_int_module_support": true,
|
||||
"sport_max_baudrate": 400000,
|
||||
"surface": 0,
|
||||
"cpu": "STM32F407xE",
|
||||
"cpu_type": "STM32F4"
|
||||
},
|
||||
"timers": {
|
||||
"cpu_freq": 168000000,
|
||||
"peri1_frequency": 42000000,
|
||||
"peri2_frequency": 84000000,
|
||||
"timer_mult_apb1": 2,
|
||||
"timer_mult_apb2": 2,
|
||||
"ms_timer": "TIM14",
|
||||
"ms_timer_irqn": "TIM8_TRG_COM_TIM14_IRQn",
|
||||
"ms_timer_irqhandler": "TIM8_TRG_COM_TIM14_IRQHandler",
|
||||
"mixer_scheduler_timer": "TIM12",
|
||||
"mixer_scheduler_timer_freq": "(PERI1_FREQUENCY * TIMER_MULT_APB1)",
|
||||
"mixer_scheduler_timer_irqn": "TIM8_BRK_TIM12_IRQn",
|
||||
"mixer_scheduler_timer_irqhandler": "TIM8_BRK_TIM12_IRQHandler"
|
||||
},
|
||||
"haptic": {
|
||||
"haptic_pwm": true,
|
||||
"haptic_gpio": "GPIO_PIN(GPIOB, 8)",
|
||||
"haptic_gpio_af": "GPIO_AF3",
|
||||
"haptic_timer": "TIM10",
|
||||
"haptic_timer_freq": "(PERI2_FREQUENCY * TIMER_MULT_APB2)",
|
||||
"haptic_counter_register": "HAPTIC_TIMER->CCR1",
|
||||
"haptic_ccmr1": "TIM_CCMR1_OC1M_1 | TIM_CCMR1_OC1M_2",
|
||||
"haptic_ccer": "TIM_CCER_CC1E"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -322,27 +322,49 @@
|
||||
}
|
||||
],
|
||||
"display": {
|
||||
"w": 128,
|
||||
"h": 64,
|
||||
"phys_w": 128,
|
||||
"phys_h": 64,
|
||||
"depth": 1,
|
||||
"color": 0,
|
||||
"oled": 0,
|
||||
"backlight_color": 0
|
||||
"lcd_w": 128,
|
||||
"lcd_h": 64,
|
||||
"lcd_phys_w": 128,
|
||||
"lcd_phys_h": 64,
|
||||
"lcd_depth": 1,
|
||||
"lcd_vertical_invert": true
|
||||
},
|
||||
"custom_switches": {
|
||||
"rgb_led": 0,
|
||||
"groups": 0
|
||||
"leds": {
|
||||
"status_leds": true,
|
||||
"led_red_gpio": "GPIO_PIN(GPIOC, 5)",
|
||||
"led_green_gpio": "GPIO_PIN(GPIOB, 1)",
|
||||
"led_blue_gpio": "GPIO_PIN(GPIOC, 4)"
|
||||
},
|
||||
"hardware": {
|
||||
"has_audio_mute": 1,
|
||||
"has_bling_leds": 0,
|
||||
"has_ext_module_support": 1,
|
||||
"has_int_module_support": 1,
|
||||
"has_audio_mute": true,
|
||||
"has_ext_module_support": true,
|
||||
"has_int_module_support": true,
|
||||
"sport_max_baudrate": 400000,
|
||||
"surface": 0,
|
||||
"cpu": "STM32F205xE",
|
||||
"cpu_type": "STM32F2"
|
||||
},
|
||||
"timers": {
|
||||
"cpu_freq": 120000000,
|
||||
"peri1_frequency": 30000000,
|
||||
"peri2_frequency": 60000000,
|
||||
"timer_mult_apb1": 2,
|
||||
"timer_mult_apb2": 2,
|
||||
"ms_timer": "TIM14",
|
||||
"ms_timer_irqn": "TIM8_TRG_COM_TIM14_IRQn",
|
||||
"ms_timer_irqhandler": "TIM8_TRG_COM_TIM14_IRQHandler",
|
||||
"mixer_scheduler_timer": "TIM12",
|
||||
"mixer_scheduler_timer_freq": "(PERI1_FREQUENCY * TIMER_MULT_APB1)",
|
||||
"mixer_scheduler_timer_irqn": "TIM8_BRK_TIM12_IRQn",
|
||||
"mixer_scheduler_timer_irqhandler": "TIM8_BRK_TIM12_IRQHandler"
|
||||
},
|
||||
"haptic": {
|
||||
"haptic_pwm": true,
|
||||
"haptic_gpio": "GPIO_PIN(GPIOB, 8)",
|
||||
"haptic_gpio_af": "GPIO_AF3",
|
||||
"haptic_timer": "TIM10",
|
||||
"haptic_timer_freq": "(PERI2_FREQUENCY * TIMER_MULT_APB2)",
|
||||
"haptic_counter_register": "HAPTIC_TIMER->CCR1",
|
||||
"haptic_ccmr1": "TIM_CCMR1_OC1M_1 | TIM_CCMR1_OC1M_2",
|
||||
"haptic_ccer": "TIM_CCER_CC1E"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -299,27 +299,52 @@
|
||||
}
|
||||
],
|
||||
"display": {
|
||||
"w": 128,
|
||||
"h": 64,
|
||||
"phys_w": 128,
|
||||
"phys_h": 64,
|
||||
"depth": 1,
|
||||
"color": 0,
|
||||
"oled": 0,
|
||||
"backlight_color": 0
|
||||
"lcd_w": 128,
|
||||
"lcd_h": 64,
|
||||
"lcd_phys_w": 128,
|
||||
"lcd_phys_h": 64,
|
||||
"lcd_depth": 1,
|
||||
"lcd_vertical_invert": true
|
||||
},
|
||||
"custom_switches": {
|
||||
"rgb_led": 0,
|
||||
"groups": 0
|
||||
"backlight": {
|
||||
"backlight_bdtr": "TIM_BDTR_MOE"
|
||||
},
|
||||
"leds": {
|
||||
"status_leds": true,
|
||||
"led_red_gpio": "GPIO_PIN(GPIOE, 13)",
|
||||
"led_green_gpio": "GPIO_PIN(GPIOA, 7)",
|
||||
"led_blue_gpio": "GPIO_PIN(GPIOE, 2)"
|
||||
},
|
||||
"hardware": {
|
||||
"has_audio_mute": 1,
|
||||
"has_bling_leds": 0,
|
||||
"has_ext_module_support": 1,
|
||||
"has_int_module_support": 1,
|
||||
"has_audio_mute": true,
|
||||
"has_ext_module_support": true,
|
||||
"has_int_module_support": true,
|
||||
"sport_max_baudrate": 400000,
|
||||
"surface": 0,
|
||||
"cpu": "STM32F407xE",
|
||||
"cpu_type": "STM32F4"
|
||||
},
|
||||
"timers": {
|
||||
"cpu_freq": 168000000,
|
||||
"peri1_frequency": 42000000,
|
||||
"peri2_frequency": 84000000,
|
||||
"timer_mult_apb1": 2,
|
||||
"timer_mult_apb2": 2,
|
||||
"ms_timer": "TIM14",
|
||||
"ms_timer_irqn": "TIM8_TRG_COM_TIM14_IRQn",
|
||||
"ms_timer_irqhandler": "TIM8_TRG_COM_TIM14_IRQHandler",
|
||||
"mixer_scheduler_timer": "TIM12",
|
||||
"mixer_scheduler_timer_freq": "(PERI1_FREQUENCY * TIMER_MULT_APB1)",
|
||||
"mixer_scheduler_timer_irqn": "TIM8_BRK_TIM12_IRQn",
|
||||
"mixer_scheduler_timer_irqhandler": "TIM8_BRK_TIM12_IRQHandler"
|
||||
},
|
||||
"haptic": {
|
||||
"haptic_pwm": true,
|
||||
"haptic_gpio": "GPIO_PIN(GPIOB, 3)",
|
||||
"haptic_gpio_af": "GPIO_AF1",
|
||||
"haptic_timer": "TIM2",
|
||||
"haptic_timer_freq": "(PERI1_FREQUENCY * TIMER_MULT_APB1)",
|
||||
"haptic_counter_register": "HAPTIC_TIMER->CCR2",
|
||||
"haptic_ccmr1": "TIM_CCMR1_OC2M_1 | TIM_CCMR1_OC2M_2",
|
||||
"haptic_ccer": "TIM_CCER_CC2E"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -324,27 +324,111 @@
|
||||
}
|
||||
],
|
||||
"display": {
|
||||
"w": 480,
|
||||
"h": 320,
|
||||
"phys_w": 320,
|
||||
"phys_h": 480,
|
||||
"depth": 16,
|
||||
"color": 1,
|
||||
"oled": 0,
|
||||
"backlight_color": 0
|
||||
"lcd_w": 480,
|
||||
"lcd_h": 320,
|
||||
"lcd_phys_w": 320,
|
||||
"lcd_phys_h": 480,
|
||||
"lcd_depth": 16,
|
||||
"ltdc_irq_prio": 4,
|
||||
"dma_screen_irq_prio": 6
|
||||
},
|
||||
"custom_switches": {
|
||||
"rgb_led": 1,
|
||||
"groups": 3
|
||||
"backlight": {
|
||||
"backlight_gpio": "GPIO_PIN(GPIOA, 10)",
|
||||
"backlight_timer": "TIM1",
|
||||
"backlight_timer_channel": "LL_TIM_CHANNEL_CH3",
|
||||
"backlight_gpio_af": "GPIO_AF1",
|
||||
"backlight_timer_freq": "(PERI2_FREQUENCY * TIMER_MULT_APB2)"
|
||||
},
|
||||
"leds": {
|
||||
"led_strip_length": 26,
|
||||
"bling_led_strip_start": 6,
|
||||
"bling_led_strip_length": 20,
|
||||
"cfs_led_strip_start": 0,
|
||||
"cfs_led_strip_length": 6,
|
||||
"cfs_leds_per_switch": 1,
|
||||
"led_strip_gpio": "GPIO_PIN(GPIOA, 0)",
|
||||
"led_strip_gpio_af": "LL_GPIO_AF_1",
|
||||
"led_strip_timer": "TIM2",
|
||||
"led_strip_timer_freq": "(PERI1_FREQUENCY * TIMER_MULT_APB1)",
|
||||
"led_strip_timer_channel": "LL_TIM_CHANNEL_CH1",
|
||||
"led_strip_timer_dma": "DMA1",
|
||||
"led_strip_timer_dma_channel": "LL_DMAMUX1_REQ_TIM2_UP",
|
||||
"led_strip_timer_dma_stream": "LL_DMA_STREAM_0",
|
||||
"led_strip_timer_dma_irqn": "DMA1_Stream0_IRQn",
|
||||
"led_strip_timer_dma_irqhandler": "DMA1_Stream0_IRQHandler",
|
||||
"led_strip_refresh_period": 50,
|
||||
"status_leds": true,
|
||||
"led_red_gpio": "GPIO_PIN(GPIOI, 8)",
|
||||
"led_green_gpio": "GPIO_PIN(GPIOI, 11)",
|
||||
"led_blue_gpio": "GPIO_PIN(GPIOI, 10)"
|
||||
},
|
||||
"hardware": {
|
||||
"has_audio_mute": 0,
|
||||
"has_bling_leds": 20,
|
||||
"has_ext_module_support": 1,
|
||||
"has_int_module_support": 1,
|
||||
"has_ext_module_support": true,
|
||||
"has_int_module_support": true,
|
||||
"sport_max_baudrate": 400000,
|
||||
"surface": 0,
|
||||
"cpu": "STM32H750xB",
|
||||
"cpu_type": "STM32H7"
|
||||
},
|
||||
"timers": {
|
||||
"cpu_freq": 480000000,
|
||||
"peri1_frequency": 120000000,
|
||||
"peri2_frequency": 120000000,
|
||||
"timer_mult_apb1": 2,
|
||||
"timer_mult_apb2": 2,
|
||||
"ms_timer": "TIM14",
|
||||
"ms_timer_irqn": "TIM8_TRG_COM_TIM14_IRQn",
|
||||
"ms_timer_irqhandler": "TIM8_TRG_COM_TIM14_IRQHandler",
|
||||
"mixer_scheduler_timer": "TIM12",
|
||||
"mixer_scheduler_timer_freq": "(PERI1_FREQUENCY * TIMER_MULT_APB1)",
|
||||
"mixer_scheduler_timer_irqn": "TIM8_BRK_TIM12_IRQn",
|
||||
"mixer_scheduler_timer_irqhandler": "TIM8_BRK_TIM12_IRQHandler"
|
||||
},
|
||||
"imu": {
|
||||
"imu_i2c_bus": "I2C_Bus_1",
|
||||
"imu_int_gpio": "GPIO_PIN(GPIOG, 13)",
|
||||
"imu_invert_x": true,
|
||||
"imu_invert_y": true,
|
||||
"exti": [
|
||||
{
|
||||
"irq": "EXTI15_10_IRQ",
|
||||
"priority": 6
|
||||
}
|
||||
]
|
||||
},
|
||||
"rotenc": {
|
||||
"rotary_encoder_inverted": true,
|
||||
"rotary_encoder_gpio_a": "GPIOI",
|
||||
"rotary_encoder_gpio_pin_a": "LL_GPIO_PIN_7",
|
||||
"rotary_encoder_gpio_b": "GPIOJ",
|
||||
"rotary_encoder_gpio_pin_b": "LL_GPIO_PIN_8",
|
||||
"rotary_encoder_position": "(((ROTARY_ENCODER_GPIO_A->IDR >> 7) & 0x01)|((ROTARY_ENCODER_GPIO_B->IDR >> 7) & 0x02))",
|
||||
"rotary_encoder_exti_line1": "LL_EXTI_LINE_7",
|
||||
"rotary_encoder_exti_line2": "LL_EXTI_LINE_8",
|
||||
"exti": [
|
||||
{
|
||||
"irq": "EXTI7_IRQ",
|
||||
"priority": 5
|
||||
},
|
||||
{
|
||||
"irq": "EXTI8_IRQ",
|
||||
"priority": 5
|
||||
}
|
||||
],
|
||||
"rotary_encoder_exti_port_a": "LL_SYSCFG_EXTI_PORTI",
|
||||
"rotary_encoder_exti_port_b": "LL_SYSCFG_EXTI_PORTJ",
|
||||
"rotary_encoder_exti_sys_line1": "LL_SYSCFG_EXTI_LINE7",
|
||||
"rotary_encoder_exti_sys_line2": "LL_SYSCFG_EXTI_LINE8",
|
||||
"rotary_encoder_timer": "TIM17",
|
||||
"rotary_encoder_timer_irqn": "TIM17_IRQn",
|
||||
"rotary_encoder_timer_irqhandler": "TIM17_IRQHandler"
|
||||
},
|
||||
"haptic": {
|
||||
"haptic_pwm": true,
|
||||
"haptic_gpio": "GPIO_PIN(GPIOC, 7)",
|
||||
"haptic_gpio_timer": "TIM3",
|
||||
"haptic_gpio_af": "GPIO_AF2",
|
||||
"haptic_timer_output_enable": "TIM_CCER_CC2E | TIM_CCER_CC2NE",
|
||||
"haptic_timer_mode": "TIM_CCMR1_OC2M_1 | TIM_CCMR1_OC2M_2 | TIM_CCMR1_OC2PE",
|
||||
"haptic_timer_compare_value": "HAPTIC_GPIO_TIMER->CCR2"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -437,27 +437,50 @@
|
||||
}
|
||||
],
|
||||
"display": {
|
||||
"w": 480,
|
||||
"h": 272,
|
||||
"phys_w": 480,
|
||||
"phys_h": 272,
|
||||
"depth": 16,
|
||||
"color": 1,
|
||||
"oled": 0,
|
||||
"backlight_color": 0
|
||||
"lcd_w": 480,
|
||||
"lcd_h": 272,
|
||||
"lcd_phys_w": 480,
|
||||
"lcd_phys_h": 272,
|
||||
"lcd_depth": 16,
|
||||
"lcd_vertical_invert": true,
|
||||
"ltdc_irq_prio": 4,
|
||||
"dma_screen_irq_prio": 6
|
||||
},
|
||||
"custom_switches": {
|
||||
"rgb_led": 0,
|
||||
"groups": 0
|
||||
"leds": {
|
||||
"status_leds": true,
|
||||
"led_red_gpio": "GPIO_PIN(GPIOE, 2)",
|
||||
"led_green_gpio": "GPIO_PIN(GPIOE, 4)",
|
||||
"led_blue_gpio": "GPIO_PIN(GPIOE, 5)"
|
||||
},
|
||||
"hardware": {
|
||||
"has_audio_mute": 1,
|
||||
"has_bling_leds": 0,
|
||||
"has_ext_module_support": 1,
|
||||
"has_int_module_support": 1,
|
||||
"has_audio_mute": true,
|
||||
"has_ext_module_support": true,
|
||||
"has_int_module_support": true,
|
||||
"sport_max_baudrate": 400000,
|
||||
"surface": 0,
|
||||
"cpu": "STM32F429xI",
|
||||
"cpu_type": "STM32F4"
|
||||
},
|
||||
"timers": {
|
||||
"cpu_freq": 168000000,
|
||||
"peri1_frequency": 42000000,
|
||||
"peri2_frequency": 84000000,
|
||||
"timer_mult_apb1": 2,
|
||||
"timer_mult_apb2": 2,
|
||||
"ms_timer": "TIM14",
|
||||
"ms_timer_irqn": "TIM8_TRG_COM_TIM14_IRQn",
|
||||
"ms_timer_irqhandler": "TIM8_TRG_COM_TIM14_IRQHandler",
|
||||
"mixer_scheduler_timer": "TIM13",
|
||||
"mixer_scheduler_timer_freq": "(PERI1_FREQUENCY * TIMER_MULT_APB1)",
|
||||
"mixer_scheduler_timer_irqn": "TIM8_UP_TIM13_IRQn",
|
||||
"mixer_scheduler_timer_irqhandler": "TIM8_UP_TIM13_IRQHandler"
|
||||
},
|
||||
"haptic": {
|
||||
"haptic_pwm": true,
|
||||
"haptic_gpio": "GPIO_PIN(GPIOE, 6)",
|
||||
"haptic_gpio_timer": "TIM9",
|
||||
"haptic_gpio_af": "GPIO_AF3",
|
||||
"haptic_timer_output_enable": "TIM_CCER_CC2E",
|
||||
"haptic_timer_mode": "TIM_CCMR1_OC2M_1 | TIM_CCMR1_OC2M_2",
|
||||
"haptic_timer_compare_value": "HAPTIC_GPIO_TIMER->CCR2"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -438,27 +438,111 @@
|
||||
}
|
||||
],
|
||||
"display": {
|
||||
"w": 800,
|
||||
"h": 480,
|
||||
"phys_w": 800,
|
||||
"phys_h": 480,
|
||||
"depth": 16,
|
||||
"color": 1,
|
||||
"oled": 0,
|
||||
"backlight_color": 0
|
||||
"lcd_w": 800,
|
||||
"lcd_h": 480,
|
||||
"lcd_phys_w": 800,
|
||||
"lcd_phys_h": 480,
|
||||
"lcd_depth": 16,
|
||||
"ltdc_irq_prio": 4,
|
||||
"dma_screen_irq_prio": 6
|
||||
},
|
||||
"custom_switches": {
|
||||
"rgb_led": 1,
|
||||
"groups": 3
|
||||
"backlight": {
|
||||
"backlight_gpio": "GPIO_PIN(GPIOA, 10)",
|
||||
"backlight_timer": "TIM1",
|
||||
"backlight_timer_channel": "LL_TIM_CHANNEL_CH3",
|
||||
"backlight_gpio_af": "GPIO_AF1",
|
||||
"backlight_timer_freq": "(PERI2_FREQUENCY * TIMER_MULT_APB2)"
|
||||
},
|
||||
"leds": {
|
||||
"led_strip_length": 26,
|
||||
"bling_led_strip_start": 6,
|
||||
"bling_led_strip_length": 20,
|
||||
"cfs_led_strip_start": 0,
|
||||
"cfs_led_strip_length": 6,
|
||||
"cfs_leds_per_switch": 1,
|
||||
"led_strip_gpio": "GPIO_PIN(GPIOA, 0)",
|
||||
"led_strip_gpio_af": "LL_GPIO_AF_1",
|
||||
"led_strip_timer": "TIM2",
|
||||
"led_strip_timer_freq": "(PERI1_FREQUENCY * TIMER_MULT_APB1)",
|
||||
"led_strip_timer_channel": "LL_TIM_CHANNEL_CH1",
|
||||
"led_strip_timer_dma": "DMA1",
|
||||
"led_strip_timer_dma_channel": "LL_DMAMUX1_REQ_TIM2_UP",
|
||||
"led_strip_timer_dma_stream": "LL_DMA_STREAM_0",
|
||||
"led_strip_timer_dma_irqn": "DMA1_Stream0_IRQn",
|
||||
"led_strip_timer_dma_irqhandler": "DMA1_Stream0_IRQHandler",
|
||||
"led_strip_refresh_period": 50,
|
||||
"status_leds": true,
|
||||
"led_red_gpio": "GPIO_PIN(GPIOI, 8)",
|
||||
"led_green_gpio": "GPIO_PIN(GPIOI, 11)",
|
||||
"led_blue_gpio": "GPIO_PIN(GPIOI, 10)"
|
||||
},
|
||||
"hardware": {
|
||||
"has_audio_mute": 0,
|
||||
"has_bling_leds": 20,
|
||||
"has_ext_module_support": 1,
|
||||
"has_int_module_support": 1,
|
||||
"has_ext_module_support": true,
|
||||
"has_int_module_support": true,
|
||||
"sport_max_baudrate": 400000,
|
||||
"surface": 0,
|
||||
"cpu": "STM32H750xB",
|
||||
"cpu_type": "STM32H7"
|
||||
},
|
||||
"timers": {
|
||||
"cpu_freq": 480000000,
|
||||
"peri1_frequency": 120000000,
|
||||
"peri2_frequency": 120000000,
|
||||
"timer_mult_apb1": 2,
|
||||
"timer_mult_apb2": 2,
|
||||
"ms_timer": "TIM14",
|
||||
"ms_timer_irqn": "TIM8_TRG_COM_TIM14_IRQn",
|
||||
"ms_timer_irqhandler": "TIM8_TRG_COM_TIM14_IRQHandler",
|
||||
"mixer_scheduler_timer": "TIM12",
|
||||
"mixer_scheduler_timer_freq": "(PERI1_FREQUENCY * TIMER_MULT_APB1)",
|
||||
"mixer_scheduler_timer_irqn": "TIM8_BRK_TIM12_IRQn",
|
||||
"mixer_scheduler_timer_irqhandler": "TIM8_BRK_TIM12_IRQHandler"
|
||||
},
|
||||
"imu": {
|
||||
"imu_i2c_bus": "I2C_Bus_2",
|
||||
"imu_int_gpio": "GPIO_PIN(GPIOG, 13)",
|
||||
"imu_invert_x": true,
|
||||
"imu_invert_y": true,
|
||||
"exti": [
|
||||
{
|
||||
"irq": "EXTI15_10_IRQ",
|
||||
"priority": 6
|
||||
}
|
||||
]
|
||||
},
|
||||
"rotenc": {
|
||||
"rotary_encoder_inverted": true,
|
||||
"rotary_encoder_gpio_a": "GPIOI",
|
||||
"rotary_encoder_gpio_pin_a": "LL_GPIO_PIN_7",
|
||||
"rotary_encoder_gpio_b": "GPIOJ",
|
||||
"rotary_encoder_gpio_pin_b": "LL_GPIO_PIN_8",
|
||||
"rotary_encoder_position": "(((ROTARY_ENCODER_GPIO_A->IDR >> 7) & 0x01)|((ROTARY_ENCODER_GPIO_B->IDR >> 7) & 0x02))",
|
||||
"rotary_encoder_exti_line1": "LL_EXTI_LINE_7",
|
||||
"rotary_encoder_exti_line2": "LL_EXTI_LINE_8",
|
||||
"exti": [
|
||||
{
|
||||
"irq": "EXTI7_IRQ",
|
||||
"priority": 5
|
||||
},
|
||||
{
|
||||
"irq": "EXTI8_IRQ",
|
||||
"priority": 5
|
||||
}
|
||||
],
|
||||
"rotary_encoder_exti_port_a": "LL_SYSCFG_EXTI_PORTI",
|
||||
"rotary_encoder_exti_port_b": "LL_SYSCFG_EXTI_PORTJ",
|
||||
"rotary_encoder_exti_sys_line1": "LL_SYSCFG_EXTI_LINE7",
|
||||
"rotary_encoder_exti_sys_line2": "LL_SYSCFG_EXTI_LINE8",
|
||||
"rotary_encoder_timer": "TIM17",
|
||||
"rotary_encoder_timer_irqn": "TIM17_IRQn",
|
||||
"rotary_encoder_timer_irqhandler": "TIM17_IRQHandler"
|
||||
},
|
||||
"haptic": {
|
||||
"haptic_pwm": true,
|
||||
"haptic_gpio": "GPIO_PIN(GPIOC, 7)",
|
||||
"haptic_gpio_timer": "TIM3",
|
||||
"haptic_gpio_af": "GPIO_AF2",
|
||||
"haptic_timer_output_enable": "TIM_CCER_CC2E | TIM_CCER_CC2NE",
|
||||
"haptic_timer_mode": "TIM_CCMR1_OC2M_1 | TIM_CCMR1_OC2M_2 | TIM_CCMR1_OC2PE",
|
||||
"haptic_timer_compare_value": "HAPTIC_GPIO_TIMER->CCR2"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -333,27 +333,63 @@
|
||||
}
|
||||
],
|
||||
"display": {
|
||||
"w": 128,
|
||||
"h": 64,
|
||||
"phys_w": 128,
|
||||
"phys_h": 64,
|
||||
"depth": 1,
|
||||
"color": 0,
|
||||
"oled": 0,
|
||||
"backlight_color": 0
|
||||
"lcd_w": 128,
|
||||
"lcd_h": 64,
|
||||
"lcd_phys_w": 128,
|
||||
"lcd_phys_h": 64,
|
||||
"lcd_depth": 1,
|
||||
"lcd_vertical_invert": true
|
||||
},
|
||||
"custom_switches": {
|
||||
"rgb_led": 0,
|
||||
"groups": 0
|
||||
"backlight": {
|
||||
"backlight_bdtr": "TIM_BDTR_MOE"
|
||||
},
|
||||
"leds": {
|
||||
"led_strip_length": 6,
|
||||
"led_strip_gpio": "GPIO_PIN(GPIOA, 10)",
|
||||
"led_strip_gpio_af": "LL_GPIO_AF_1",
|
||||
"led_strip_timer": "TIM1",
|
||||
"led_strip_timer_freq": "(PERI2_FREQUENCY * TIMER_MULT_APB2)",
|
||||
"led_strip_timer_channel": "LL_TIM_CHANNEL_CH3",
|
||||
"led_strip_timer_dma": "DMA2",
|
||||
"led_strip_timer_dma_channel": "LL_DMA_CHANNEL_6",
|
||||
"led_strip_timer_dma_stream": "LL_DMA_STREAM_5",
|
||||
"led_strip_timer_dma_irqn": "DMA2_Stream5_IRQn",
|
||||
"led_strip_timer_dma_irqhandler": "DMA2_Stream5_IRQHandler",
|
||||
"led_strip_refresh_period": 50,
|
||||
"status_leds": true,
|
||||
"led_red_gpio": "GPIO_PIN(GPIOE, 13)",
|
||||
"led_green_gpio": "GPIO_PIN(GPIOE, 14)",
|
||||
"led_blue_gpio": "GPIO_PIN(GPIOE, 2)"
|
||||
},
|
||||
"hardware": {
|
||||
"has_audio_mute": 0,
|
||||
"has_bling_leds": 0,
|
||||
"has_ext_module_support": 1,
|
||||
"has_int_module_support": 1,
|
||||
"has_ext_module_support": true,
|
||||
"has_int_module_support": true,
|
||||
"sport_max_baudrate": 400000,
|
||||
"surface": 0,
|
||||
"cpu": "STM32F407xG",
|
||||
"cpu_type": "STM32F4"
|
||||
},
|
||||
"timers": {
|
||||
"cpu_freq": 168000000,
|
||||
"peri1_frequency": 42000000,
|
||||
"peri2_frequency": 84000000,
|
||||
"timer_mult_apb1": 2,
|
||||
"timer_mult_apb2": 2,
|
||||
"ms_timer": "TIM14",
|
||||
"ms_timer_irqn": "TIM8_TRG_COM_TIM14_IRQn",
|
||||
"ms_timer_irqhandler": "TIM8_TRG_COM_TIM14_IRQHandler",
|
||||
"mixer_scheduler_timer": "TIM12",
|
||||
"mixer_scheduler_timer_freq": "(PERI1_FREQUENCY * TIMER_MULT_APB1)",
|
||||
"mixer_scheduler_timer_irqn": "TIM8_BRK_TIM12_IRQn",
|
||||
"mixer_scheduler_timer_irqhandler": "TIM8_BRK_TIM12_IRQHandler"
|
||||
},
|
||||
"haptic": {
|
||||
"haptic_pwm": true,
|
||||
"haptic_gpio": "GPIO_PIN(GPIOB, 3)",
|
||||
"haptic_gpio_af": "GPIO_AF1",
|
||||
"haptic_timer": "TIM2",
|
||||
"haptic_timer_freq": "(PERI1_FREQUENCY * TIMER_MULT_APB1)",
|
||||
"haptic_counter_register": "HAPTIC_TIMER->CCR2",
|
||||
"haptic_ccmr1": "TIM_CCMR1_OC2M_1 | TIM_CCMR1_OC2M_2",
|
||||
"haptic_ccer": "TIM_CCER_CC2E"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -333,27 +333,66 @@
|
||||
}
|
||||
],
|
||||
"display": {
|
||||
"w": 128,
|
||||
"h": 64,
|
||||
"phys_w": 128,
|
||||
"phys_h": 64,
|
||||
"depth": 1,
|
||||
"color": 0,
|
||||
"oled": 1,
|
||||
"backlight_color": 0
|
||||
"lcd_w": 128,
|
||||
"lcd_h": 64,
|
||||
"lcd_phys_w": 128,
|
||||
"lcd_phys_h": 64,
|
||||
"lcd_depth": 1,
|
||||
"oled_screen": true,
|
||||
"lcd_horizontal_invert": true
|
||||
},
|
||||
"custom_switches": {
|
||||
"rgb_led": 0,
|
||||
"groups": 0
|
||||
"backlight": {
|
||||
"backlight_bdtr": "TIM_BDTR_MOE"
|
||||
},
|
||||
"leds": {
|
||||
"led_strip_length": 38,
|
||||
"bling_led_strip_start": 6,
|
||||
"bling_led_strip_length": 32,
|
||||
"led_strip_gpio": "GPIO_PIN(GPIOA, 10)",
|
||||
"led_strip_gpio_af": "LL_GPIO_AF_1",
|
||||
"led_strip_timer": "TIM1",
|
||||
"led_strip_timer_freq": "(PERI2_FREQUENCY * TIMER_MULT_APB2)",
|
||||
"led_strip_timer_channel": "LL_TIM_CHANNEL_CH3",
|
||||
"led_strip_timer_dma": "DMA2",
|
||||
"led_strip_timer_dma_channel": "LL_DMA_CHANNEL_6",
|
||||
"led_strip_timer_dma_stream": "LL_DMA_STREAM_5",
|
||||
"led_strip_timer_dma_irqn": "DMA2_Stream5_IRQn",
|
||||
"led_strip_timer_dma_irqhandler": "DMA2_Stream5_IRQHandler",
|
||||
"led_strip_refresh_period": 50,
|
||||
"status_leds": true,
|
||||
"led_red_gpio": "GPIO_PIN(GPIOE, 13)",
|
||||
"led_green_gpio": "GPIO_PIN(GPIOE, 14)",
|
||||
"led_blue_gpio": "GPIO_PIN(GPIOE, 2)"
|
||||
},
|
||||
"hardware": {
|
||||
"has_audio_mute": 0,
|
||||
"has_bling_leds": 32,
|
||||
"has_ext_module_support": 1,
|
||||
"has_int_module_support": 1,
|
||||
"has_ext_module_support": true,
|
||||
"has_int_module_support": true,
|
||||
"sport_max_baudrate": 400000,
|
||||
"surface": 0,
|
||||
"cpu": "STM32F407xG",
|
||||
"cpu_type": "STM32F4"
|
||||
},
|
||||
"timers": {
|
||||
"cpu_freq": 168000000,
|
||||
"peri1_frequency": 42000000,
|
||||
"peri2_frequency": 84000000,
|
||||
"timer_mult_apb1": 2,
|
||||
"timer_mult_apb2": 2,
|
||||
"ms_timer": "TIM14",
|
||||
"ms_timer_irqn": "TIM8_TRG_COM_TIM14_IRQn",
|
||||
"ms_timer_irqhandler": "TIM8_TRG_COM_TIM14_IRQHandler",
|
||||
"mixer_scheduler_timer": "TIM12",
|
||||
"mixer_scheduler_timer_freq": "(PERI1_FREQUENCY * TIMER_MULT_APB1)",
|
||||
"mixer_scheduler_timer_irqn": "TIM8_BRK_TIM12_IRQn",
|
||||
"mixer_scheduler_timer_irqhandler": "TIM8_BRK_TIM12_IRQHandler"
|
||||
},
|
||||
"haptic": {
|
||||
"haptic_pwm": true,
|
||||
"haptic_gpio": "GPIO_PIN(GPIOB, 3)",
|
||||
"haptic_gpio_af": "GPIO_AF1",
|
||||
"haptic_timer": "TIM2",
|
||||
"haptic_timer_freq": "(PERI1_FREQUENCY * TIMER_MULT_APB1)",
|
||||
"haptic_counter_register": "HAPTIC_TIMER->CCR2",
|
||||
"haptic_ccmr1": "TIM_CCMR1_OC2M_1 | TIM_CCMR1_OC2M_2",
|
||||
"haptic_ccer": "TIM_CCER_CC2E"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -435,27 +435,63 @@
|
||||
}
|
||||
],
|
||||
"display": {
|
||||
"w": 480,
|
||||
"h": 272,
|
||||
"phys_w": 480,
|
||||
"phys_h": 272,
|
||||
"depth": 16,
|
||||
"color": 1,
|
||||
"oled": 0,
|
||||
"backlight_color": 0
|
||||
"lcd_w": 480,
|
||||
"lcd_h": 272,
|
||||
"lcd_phys_w": 480,
|
||||
"lcd_phys_h": 272,
|
||||
"lcd_depth": 16,
|
||||
"ltdc_irq_prio": 4,
|
||||
"dma_screen_irq_prio": 6
|
||||
},
|
||||
"custom_switches": {
|
||||
"rgb_led": 0,
|
||||
"groups": 0
|
||||
"leds": {
|
||||
"led_strip_length": 40,
|
||||
"bling_led_strip_start": 6,
|
||||
"bling_led_strip_length": 34,
|
||||
"led_strip_gpio": "GPIO_PIN(GPIOA, 10)",
|
||||
"led_strip_gpio_af": "LL_GPIO_AF_1",
|
||||
"led_strip_timer": "TIM1",
|
||||
"led_strip_timer_freq": "(PERI2_FREQUENCY * TIMER_MULT_APB2)",
|
||||
"led_strip_timer_channel": "LL_TIM_CHANNEL_CH3",
|
||||
"led_strip_timer_dma": "DMA2",
|
||||
"led_strip_timer_dma_channel": "LL_DMA_CHANNEL_6",
|
||||
"led_strip_timer_dma_stream": "LL_DMA_STREAM_5",
|
||||
"led_strip_timer_dma_irqn": "DMA2_Stream5_IRQn",
|
||||
"led_strip_timer_dma_irqhandler": "DMA2_Stream5_IRQHandler",
|
||||
"led_strip_refresh_period": 50,
|
||||
"status_leds": true,
|
||||
"led_red_gpio": "GPIO_PIN(GPIOE, 2)",
|
||||
"led_green_gpio": "GPIO_PIN(GPIOE, 4)",
|
||||
"led_blue_gpio": "GPIO_PIN(GPIOE, 5)"
|
||||
},
|
||||
"hardware": {
|
||||
"has_audio_mute": 1,
|
||||
"has_bling_leds": 34,
|
||||
"has_ext_module_support": 1,
|
||||
"has_int_module_support": 1,
|
||||
"has_audio_mute": true,
|
||||
"has_ext_module_support": true,
|
||||
"has_int_module_support": true,
|
||||
"sport_max_baudrate": 400000,
|
||||
"surface": 0,
|
||||
"cpu": "STM32F429xI",
|
||||
"cpu_type": "STM32F4"
|
||||
},
|
||||
"timers": {
|
||||
"cpu_freq": 168000000,
|
||||
"peri1_frequency": 42000000,
|
||||
"peri2_frequency": 84000000,
|
||||
"timer_mult_apb1": 2,
|
||||
"timer_mult_apb2": 2,
|
||||
"ms_timer": "TIM14",
|
||||
"ms_timer_irqn": "TIM8_TRG_COM_TIM14_IRQn",
|
||||
"ms_timer_irqhandler": "TIM8_TRG_COM_TIM14_IRQHandler",
|
||||
"mixer_scheduler_timer": "TIM13",
|
||||
"mixer_scheduler_timer_freq": "(PERI1_FREQUENCY * TIMER_MULT_APB1)",
|
||||
"mixer_scheduler_timer_irqn": "TIM8_UP_TIM13_IRQn",
|
||||
"mixer_scheduler_timer_irqhandler": "TIM8_UP_TIM13_IRQHandler"
|
||||
},
|
||||
"haptic": {
|
||||
"haptic_pwm": true,
|
||||
"haptic_gpio": "GPIO_PIN(GPIOE, 6)",
|
||||
"haptic_gpio_timer": "TIM9",
|
||||
"haptic_gpio_af": "GPIO_AF3",
|
||||
"haptic_timer_output_enable": "TIM_CCER_CC2E",
|
||||
"haptic_timer_mode": "TIM_CCMR1_OC2M_1 | TIM_CCMR1_OC2M_2",
|
||||
"haptic_timer_compare_value": "HAPTIC_GPIO_TIMER->CCR2"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -435,27 +435,49 @@
|
||||
}
|
||||
],
|
||||
"display": {
|
||||
"w": 480,
|
||||
"h": 272,
|
||||
"phys_w": 480,
|
||||
"phys_h": 272,
|
||||
"depth": 16,
|
||||
"color": 1,
|
||||
"oled": 0,
|
||||
"backlight_color": 0
|
||||
"lcd_w": 480,
|
||||
"lcd_h": 272,
|
||||
"lcd_phys_w": 480,
|
||||
"lcd_phys_h": 272,
|
||||
"lcd_depth": 16,
|
||||
"lcd_vertical_invert": true,
|
||||
"ltdc_irq_prio": 4,
|
||||
"dma_screen_irq_prio": 6
|
||||
},
|
||||
"custom_switches": {
|
||||
"rgb_led": 0,
|
||||
"groups": 0
|
||||
"leds": {
|
||||
"status_leds": true,
|
||||
"led_red_gpio": "GPIO_PIN(GPIOE, 2)",
|
||||
"led_blue_gpio": "GPIO_PIN(GPIOE, 5)"
|
||||
},
|
||||
"hardware": {
|
||||
"has_audio_mute": 1,
|
||||
"has_bling_leds": 0,
|
||||
"has_ext_module_support": 1,
|
||||
"has_int_module_support": 1,
|
||||
"has_audio_mute": true,
|
||||
"has_ext_module_support": true,
|
||||
"has_int_module_support": true,
|
||||
"sport_max_baudrate": 250000,
|
||||
"surface": 0,
|
||||
"cpu": "STM32F429xI",
|
||||
"cpu_type": "STM32F4"
|
||||
},
|
||||
"timers": {
|
||||
"cpu_freq": 168000000,
|
||||
"peri1_frequency": 42000000,
|
||||
"peri2_frequency": 84000000,
|
||||
"timer_mult_apb1": 2,
|
||||
"timer_mult_apb2": 2,
|
||||
"ms_timer": "TIM14",
|
||||
"ms_timer_irqn": "TIM8_TRG_COM_TIM14_IRQn",
|
||||
"ms_timer_irqhandler": "TIM8_TRG_COM_TIM14_IRQHandler",
|
||||
"mixer_scheduler_timer": "TIM13",
|
||||
"mixer_scheduler_timer_freq": "(PERI1_FREQUENCY * TIMER_MULT_APB1)",
|
||||
"mixer_scheduler_timer_irqn": "TIM8_UP_TIM13_IRQn",
|
||||
"mixer_scheduler_timer_irqhandler": "TIM8_UP_TIM13_IRQHandler"
|
||||
},
|
||||
"haptic": {
|
||||
"haptic_pwm": true,
|
||||
"haptic_gpio": "GPIO_PIN(GPIOE, 6)",
|
||||
"haptic_gpio_timer": "TIM9",
|
||||
"haptic_gpio_af": "GPIO_AF3",
|
||||
"haptic_timer_output_enable": "TIM_CCER_CC2E",
|
||||
"haptic_timer_mode": "TIM_CCMR1_OC2M_1 | TIM_CCMR1_OC2M_2",
|
||||
"haptic_timer_compare_value": "HAPTIC_GPIO_TIMER->CCR2"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -435,27 +435,49 @@
|
||||
}
|
||||
],
|
||||
"display": {
|
||||
"w": 480,
|
||||
"h": 272,
|
||||
"phys_w": 480,
|
||||
"phys_h": 272,
|
||||
"depth": 16,
|
||||
"color": 1,
|
||||
"oled": 0,
|
||||
"backlight_color": 0
|
||||
"lcd_w": 480,
|
||||
"lcd_h": 272,
|
||||
"lcd_phys_w": 480,
|
||||
"lcd_phys_h": 272,
|
||||
"lcd_depth": 16,
|
||||
"lcd_vertical_invert": true,
|
||||
"ltdc_irq_prio": 4,
|
||||
"dma_screen_irq_prio": 6
|
||||
},
|
||||
"custom_switches": {
|
||||
"rgb_led": 0,
|
||||
"groups": 0
|
||||
"leds": {
|
||||
"status_leds": true,
|
||||
"led_red_gpio": "GPIO_PIN(GPIOE, 2)",
|
||||
"led_blue_gpio": "GPIO_PIN(GPIOE, 5)"
|
||||
},
|
||||
"hardware": {
|
||||
"has_audio_mute": 1,
|
||||
"has_bling_leds": 0,
|
||||
"has_ext_module_support": 1,
|
||||
"has_int_module_support": 1,
|
||||
"has_audio_mute": true,
|
||||
"has_ext_module_support": true,
|
||||
"has_int_module_support": true,
|
||||
"sport_max_baudrate": 250000,
|
||||
"surface": 0,
|
||||
"cpu": "STM32F429xI",
|
||||
"cpu_type": "STM32F4"
|
||||
},
|
||||
"timers": {
|
||||
"cpu_freq": 168000000,
|
||||
"peri1_frequency": 42000000,
|
||||
"peri2_frequency": 84000000,
|
||||
"timer_mult_apb1": 2,
|
||||
"timer_mult_apb2": 2,
|
||||
"ms_timer": "TIM14",
|
||||
"ms_timer_irqn": "TIM8_TRG_COM_TIM14_IRQn",
|
||||
"ms_timer_irqhandler": "TIM8_TRG_COM_TIM14_IRQHandler",
|
||||
"mixer_scheduler_timer": "TIM13",
|
||||
"mixer_scheduler_timer_freq": "(PERI1_FREQUENCY * TIMER_MULT_APB1)",
|
||||
"mixer_scheduler_timer_irqn": "TIM8_UP_TIM13_IRQn",
|
||||
"mixer_scheduler_timer_irqhandler": "TIM8_UP_TIM13_IRQHandler"
|
||||
},
|
||||
"haptic": {
|
||||
"haptic_pwm": true,
|
||||
"haptic_gpio": "GPIO_PIN(GPIOE, 6)",
|
||||
"haptic_gpio_timer": "TIM9",
|
||||
"haptic_gpio_af": "GPIO_AF3",
|
||||
"haptic_timer_output_enable": "TIM_CCER_CC2E",
|
||||
"haptic_timer_mode": "TIM_CCMR1_OC2M_1 | TIM_CCMR1_OC2M_2",
|
||||
"haptic_timer_compare_value": "HAPTIC_GPIO_TIMER->CCR2"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -428,27 +428,45 @@
|
||||
}
|
||||
],
|
||||
"display": {
|
||||
"w": 480,
|
||||
"h": 272,
|
||||
"phys_w": 480,
|
||||
"phys_h": 272,
|
||||
"depth": 16,
|
||||
"color": 1,
|
||||
"oled": 0,
|
||||
"backlight_color": 0
|
||||
"lcd_w": 480,
|
||||
"lcd_h": 272,
|
||||
"lcd_phys_w": 480,
|
||||
"lcd_phys_h": 272,
|
||||
"lcd_depth": 16,
|
||||
"ltdc_irq_prio": 4,
|
||||
"dma_screen_irq_prio": 6
|
||||
},
|
||||
"custom_switches": {
|
||||
"rgb_led": 0,
|
||||
"groups": 0
|
||||
"leds": {
|
||||
"status_leds": true
|
||||
},
|
||||
"hardware": {
|
||||
"has_audio_mute": 0,
|
||||
"has_bling_leds": 0,
|
||||
"has_ext_module_support": 1,
|
||||
"has_int_module_support": 1,
|
||||
"has_ext_module_support": true,
|
||||
"has_int_module_support": true,
|
||||
"sport_max_baudrate": 250000,
|
||||
"surface": 0,
|
||||
"cpu": "STM32F429xI",
|
||||
"cpu_type": "STM32F4"
|
||||
},
|
||||
"timers": {
|
||||
"cpu_freq": 168000000,
|
||||
"peri1_frequency": 42000000,
|
||||
"peri2_frequency": 84000000,
|
||||
"timer_mult_apb1": 2,
|
||||
"timer_mult_apb2": 2,
|
||||
"ms_timer": "TIM14",
|
||||
"ms_timer_irqn": "TIM8_TRG_COM_TIM14_IRQn",
|
||||
"ms_timer_irqhandler": "TIM8_TRG_COM_TIM14_IRQHandler",
|
||||
"mixer_scheduler_timer": "TIM13",
|
||||
"mixer_scheduler_timer_freq": "(PERI1_FREQUENCY * TIMER_MULT_APB1)",
|
||||
"mixer_scheduler_timer_irqn": "TIM8_UP_TIM13_IRQn",
|
||||
"mixer_scheduler_timer_irqhandler": "TIM8_UP_TIM13_IRQHandler"
|
||||
},
|
||||
"haptic": {
|
||||
"haptic_pwm": true,
|
||||
"haptic_gpio": "GPIO_PIN(GPIOA, 2)",
|
||||
"haptic_gpio_timer": "TIM9",
|
||||
"haptic_gpio_af": "GPIO_AF3",
|
||||
"haptic_timer_output_enable": "TIM_CCER_CC1E",
|
||||
"haptic_timer_mode": "TIM_CCMR1_OC1M_1 | TIM_CCMR1_OC1M_2",
|
||||
"haptic_timer_compare_value": "HAPTIC_GPIO_TIMER->CCR1"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -302,27 +302,47 @@
|
||||
}
|
||||
],
|
||||
"display": {
|
||||
"w": 128,
|
||||
"h": 64,
|
||||
"phys_w": 128,
|
||||
"phys_h": 64,
|
||||
"depth": 1,
|
||||
"color": 0,
|
||||
"oled": 0,
|
||||
"backlight_color": 0
|
||||
"lcd_w": 128,
|
||||
"lcd_h": 64,
|
||||
"lcd_phys_w": 128,
|
||||
"lcd_phys_h": 64,
|
||||
"lcd_depth": 1
|
||||
},
|
||||
"custom_switches": {
|
||||
"rgb_led": 0,
|
||||
"groups": 0
|
||||
"leds": {
|
||||
"status_leds": true,
|
||||
"led_red_gpio": "GPIO_PIN(GPIOC, 5)",
|
||||
"led_green_gpio": "GPIO_PIN(GPIOC, 4)",
|
||||
"led_blue_gpio": "GPIO_PIN(GPIOB, 1)"
|
||||
},
|
||||
"hardware": {
|
||||
"has_audio_mute": 0,
|
||||
"has_bling_leds": 0,
|
||||
"has_ext_module_support": 1,
|
||||
"has_int_module_support": 1,
|
||||
"has_ext_module_support": true,
|
||||
"has_int_module_support": true,
|
||||
"sport_max_baudrate": 250000,
|
||||
"surface": 0,
|
||||
"cpu": "STM32F205xE",
|
||||
"cpu_type": "STM32F2"
|
||||
},
|
||||
"timers": {
|
||||
"cpu_freq": 120000000,
|
||||
"peri1_frequency": 30000000,
|
||||
"peri2_frequency": 60000000,
|
||||
"timer_mult_apb1": 2,
|
||||
"timer_mult_apb2": 2,
|
||||
"ms_timer": "TIM14",
|
||||
"ms_timer_irqn": "TIM8_TRG_COM_TIM14_IRQn",
|
||||
"ms_timer_irqhandler": "TIM8_TRG_COM_TIM14_IRQHandler",
|
||||
"mixer_scheduler_timer": "TIM12",
|
||||
"mixer_scheduler_timer_freq": "(PERI1_FREQUENCY * TIMER_MULT_APB1)",
|
||||
"mixer_scheduler_timer_irqn": "TIM8_BRK_TIM12_IRQn",
|
||||
"mixer_scheduler_timer_irqhandler": "TIM8_BRK_TIM12_IRQHandler"
|
||||
},
|
||||
"haptic": {
|
||||
"haptic_pwm": true,
|
||||
"haptic_gpio": "GPIO_PIN(GPIOB, 8)",
|
||||
"haptic_gpio_af": "GPIO_AF3",
|
||||
"haptic_timer": "TIM10",
|
||||
"haptic_timer_freq": "(PERI2_FREQUENCY * TIMER_MULT_APB2)",
|
||||
"haptic_counter_register": "HAPTIC_TIMER->CCR1",
|
||||
"haptic_ccmr1": "TIM_CCMR1_OC1M_1 | TIM_CCMR1_OC1M_2",
|
||||
"haptic_ccer": "TIM_CCER_CC1E"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -288,27 +288,46 @@
|
||||
}
|
||||
],
|
||||
"display": {
|
||||
"w": 128,
|
||||
"h": 64,
|
||||
"phys_w": 128,
|
||||
"phys_h": 64,
|
||||
"depth": 1,
|
||||
"color": 0,
|
||||
"oled": 0,
|
||||
"backlight_color": 0
|
||||
"lcd_w": 128,
|
||||
"lcd_h": 64,
|
||||
"lcd_phys_w": 128,
|
||||
"lcd_phys_h": 64,
|
||||
"lcd_depth": 1
|
||||
},
|
||||
"custom_switches": {
|
||||
"rgb_led": 0,
|
||||
"groups": 0
|
||||
"leds": {
|
||||
"status_leds": true,
|
||||
"led_red_gpio": "GPIO_PIN(GPIOC, 4)",
|
||||
"led_blue_gpio": "GPIO_PIN(GPIOB, 1)"
|
||||
},
|
||||
"hardware": {
|
||||
"has_audio_mute": 0,
|
||||
"has_bling_leds": 0,
|
||||
"has_ext_module_support": 1,
|
||||
"has_int_module_support": 1,
|
||||
"has_ext_module_support": true,
|
||||
"has_int_module_support": true,
|
||||
"sport_max_baudrate": 400000,
|
||||
"surface": 0,
|
||||
"cpu": "STM32F407xE",
|
||||
"cpu_type": "STM32F4"
|
||||
},
|
||||
"timers": {
|
||||
"cpu_freq": 168000000,
|
||||
"peri1_frequency": 42000000,
|
||||
"peri2_frequency": 84000000,
|
||||
"timer_mult_apb1": 2,
|
||||
"timer_mult_apb2": 2,
|
||||
"ms_timer": "TIM14",
|
||||
"ms_timer_irqn": "TIM8_TRG_COM_TIM14_IRQn",
|
||||
"ms_timer_irqhandler": "TIM8_TRG_COM_TIM14_IRQHandler",
|
||||
"mixer_scheduler_timer": "TIM12",
|
||||
"mixer_scheduler_timer_freq": "(PERI1_FREQUENCY * TIMER_MULT_APB1)",
|
||||
"mixer_scheduler_timer_irqn": "TIM8_BRK_TIM12_IRQn",
|
||||
"mixer_scheduler_timer_irqhandler": "TIM8_BRK_TIM12_IRQHandler"
|
||||
},
|
||||
"haptic": {
|
||||
"haptic_pwm": true,
|
||||
"haptic_gpio": "GPIO_PIN(GPIOA, 10)",
|
||||
"haptic_gpio_af": "GPIO_AF1",
|
||||
"haptic_timer": "TIM1",
|
||||
"haptic_timer_freq": "(PERI2_FREQUENCY * TIMER_MULT_APB2)",
|
||||
"haptic_counter_register": "HAPTIC_TIMER->CCR3",
|
||||
"haptic_ccmr2": "TIM_CCMR2_OC3M_1 | TIM_CCMR2_OC3M_2",
|
||||
"haptic_ccer": "TIM_CCER_CC3E"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -355,27 +355,43 @@
|
||||
}
|
||||
],
|
||||
"display": {
|
||||
"w": 212,
|
||||
"h": 64,
|
||||
"phys_w": 212,
|
||||
"phys_h": 64,
|
||||
"depth": 4,
|
||||
"color": 0,
|
||||
"oled": 0,
|
||||
"backlight_color": 1
|
||||
"lcd_w": 212,
|
||||
"lcd_h": 64,
|
||||
"lcd_phys_w": 212,
|
||||
"lcd_phys_h": 64,
|
||||
"lcd_depth": 4
|
||||
},
|
||||
"custom_switches": {
|
||||
"rgb_led": 0,
|
||||
"groups": 0
|
||||
"backlight": {
|
||||
"has_backlight_color": true
|
||||
},
|
||||
"hardware": {
|
||||
"has_audio_mute": 0,
|
||||
"has_bling_leds": 0,
|
||||
"has_ext_module_support": 1,
|
||||
"has_int_module_support": 0,
|
||||
"has_ext_module_support": true,
|
||||
"sport_max_baudrate": 400000,
|
||||
"surface": 0,
|
||||
"cpu": "STM32F205xE",
|
||||
"cpu_type": "STM32F2"
|
||||
},
|
||||
"timers": {
|
||||
"cpu_freq": 120000000,
|
||||
"peri1_frequency": 30000000,
|
||||
"peri2_frequency": 60000000,
|
||||
"timer_mult_apb1": 2,
|
||||
"timer_mult_apb2": 2,
|
||||
"ms_timer": "TIM14",
|
||||
"ms_timer_irqn": "TIM8_TRG_COM_TIM14_IRQn",
|
||||
"ms_timer_irqhandler": "TIM8_TRG_COM_TIM14_IRQHandler",
|
||||
"mixer_scheduler_timer": "TIM12",
|
||||
"mixer_scheduler_timer_freq": "(PERI1_FREQUENCY * TIMER_MULT_APB1)",
|
||||
"mixer_scheduler_timer_irqn": "TIM8_BRK_TIM12_IRQn",
|
||||
"mixer_scheduler_timer_irqhandler": "TIM8_BRK_TIM12_IRQHandler"
|
||||
},
|
||||
"haptic": {
|
||||
"haptic_pwm": true,
|
||||
"haptic_gpio": "GPIO_PIN(GPIOB, 8)",
|
||||
"haptic_gpio_af": "GPIO_AF3",
|
||||
"haptic_timer": "TIM10",
|
||||
"haptic_timer_freq": "(PERI2_FREQUENCY * TIMER_MULT_APB2)",
|
||||
"haptic_counter_register": "HAPTIC_TIMER->CCR1",
|
||||
"haptic_ccmr1": "TIM_CCMR1_OC1M_1 | TIM_CCMR1_OC1M_2",
|
||||
"haptic_ccer": "TIM_CCER_CC1E"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -343,27 +343,49 @@
|
||||
}
|
||||
],
|
||||
"display": {
|
||||
"w": 212,
|
||||
"h": 64,
|
||||
"phys_w": 212,
|
||||
"phys_h": 64,
|
||||
"depth": 4,
|
||||
"color": 0,
|
||||
"oled": 0,
|
||||
"backlight_color": 1
|
||||
"lcd_w": 212,
|
||||
"lcd_h": 64,
|
||||
"lcd_phys_w": 212,
|
||||
"lcd_phys_h": 64,
|
||||
"lcd_depth": 4
|
||||
},
|
||||
"custom_switches": {
|
||||
"rgb_led": 0,
|
||||
"groups": 0
|
||||
"backlight": {
|
||||
"has_backlight_color": true
|
||||
},
|
||||
"leds": {
|
||||
"status_leds": true,
|
||||
"gpio_led_gpio_on": "gpio_clear",
|
||||
"gpio_led_gpio_off": "gpio_set",
|
||||
"led_red_gpio": "GPIO_PIN(GPIOA, 13)"
|
||||
},
|
||||
"hardware": {
|
||||
"has_audio_mute": 0,
|
||||
"has_bling_leds": 0,
|
||||
"has_ext_module_support": 1,
|
||||
"has_int_module_support": 0,
|
||||
"has_ext_module_support": true,
|
||||
"sport_max_baudrate": 400000,
|
||||
"surface": 0,
|
||||
"cpu": "STM32F407xE",
|
||||
"cpu_type": "STM32F4"
|
||||
},
|
||||
"timers": {
|
||||
"cpu_freq": 168000000,
|
||||
"peri1_frequency": 42000000,
|
||||
"peri2_frequency": 84000000,
|
||||
"timer_mult_apb1": 2,
|
||||
"timer_mult_apb2": 2,
|
||||
"ms_timer": "TIM14",
|
||||
"ms_timer_irqn": "TIM8_TRG_COM_TIM14_IRQn",
|
||||
"ms_timer_irqhandler": "TIM8_TRG_COM_TIM14_IRQHandler",
|
||||
"mixer_scheduler_timer": "TIM12",
|
||||
"mixer_scheduler_timer_freq": "(PERI1_FREQUENCY * TIMER_MULT_APB1)",
|
||||
"mixer_scheduler_timer_irqn": "TIM8_BRK_TIM12_IRQn",
|
||||
"mixer_scheduler_timer_irqhandler": "TIM8_BRK_TIM12_IRQHandler"
|
||||
},
|
||||
"haptic": {
|
||||
"haptic_pwm": true,
|
||||
"haptic_gpio": "GPIO_PIN(GPIOA, 10)",
|
||||
"haptic_gpio_af": "GPIO_AF1",
|
||||
"haptic_timer": "TIM1",
|
||||
"haptic_timer_freq": "(PERI2_FREQUENCY * TIMER_MULT_APB2)",
|
||||
"haptic_counter_register": "HAPTIC_TIMER->CCR3",
|
||||
"haptic_ccmr2": "TIM_CCMR2_OC3M_1 | TIM_CCMR2_OC3M_2",
|
||||
"haptic_ccer": "TIM_CCER_CC3E"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -344,27 +344,33 @@
|
||||
}
|
||||
],
|
||||
"display": {
|
||||
"w": 212,
|
||||
"h": 64,
|
||||
"phys_w": 212,
|
||||
"phys_h": 64,
|
||||
"depth": 4,
|
||||
"color": 0,
|
||||
"oled": 0,
|
||||
"backlight_color": 0
|
||||
},
|
||||
"custom_switches": {
|
||||
"rgb_led": 0,
|
||||
"groups": 0
|
||||
"lcd_w": 212,
|
||||
"lcd_h": 64,
|
||||
"lcd_phys_w": 212,
|
||||
"lcd_phys_h": 64,
|
||||
"lcd_depth": 4
|
||||
},
|
||||
"hardware": {
|
||||
"has_audio_mute": 0,
|
||||
"has_bling_leds": 0,
|
||||
"has_ext_module_support": 1,
|
||||
"has_int_module_support": 0,
|
||||
"has_ext_module_support": true,
|
||||
"sport_max_baudrate": 400000,
|
||||
"surface": 0,
|
||||
"cpu": "STM32F205xE",
|
||||
"cpu_type": "STM32F2"
|
||||
},
|
||||
"timers": {
|
||||
"cpu_freq": 120000000,
|
||||
"peri1_frequency": 30000000,
|
||||
"peri2_frequency": 60000000,
|
||||
"timer_mult_apb1": 2,
|
||||
"timer_mult_apb2": 2,
|
||||
"ms_timer": "TIM14",
|
||||
"ms_timer_irqn": "TIM8_TRG_COM_TIM14_IRQn",
|
||||
"ms_timer_irqhandler": "TIM8_TRG_COM_TIM14_IRQHandler",
|
||||
"mixer_scheduler_timer": "TIM12",
|
||||
"mixer_scheduler_timer_freq": "(PERI1_FREQUENCY * TIMER_MULT_APB1)",
|
||||
"mixer_scheduler_timer_irqn": "TIM8_BRK_TIM12_IRQn",
|
||||
"mixer_scheduler_timer_irqhandler": "TIM8_BRK_TIM12_IRQHandler"
|
||||
},
|
||||
"haptic": {
|
||||
"haptic_gpio": "GPIO_PIN(GPIOC, 14)"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -547,27 +547,43 @@
|
||||
}
|
||||
],
|
||||
"display": {
|
||||
"w": 212,
|
||||
"h": 64,
|
||||
"phys_w": 212,
|
||||
"phys_h": 64,
|
||||
"depth": 4,
|
||||
"color": 0,
|
||||
"oled": 0,
|
||||
"backlight_color": 1
|
||||
"lcd_w": 212,
|
||||
"lcd_h": 64,
|
||||
"lcd_phys_w": 212,
|
||||
"lcd_phys_h": 64,
|
||||
"lcd_depth": 4
|
||||
},
|
||||
"custom_switches": {
|
||||
"rgb_led": 0,
|
||||
"groups": 0
|
||||
"backlight": {
|
||||
"has_backlight_color": true
|
||||
},
|
||||
"hardware": {
|
||||
"has_audio_mute": 0,
|
||||
"has_bling_leds": 0,
|
||||
"has_ext_module_support": 1,
|
||||
"has_int_module_support": 0,
|
||||
"has_ext_module_support": true,
|
||||
"sport_max_baudrate": 400000,
|
||||
"surface": 0,
|
||||
"cpu": "STM32F407xE",
|
||||
"cpu_type": "STM32F4"
|
||||
},
|
||||
"timers": {
|
||||
"cpu_freq": 168000000,
|
||||
"peri1_frequency": 42000000,
|
||||
"peri2_frequency": 84000000,
|
||||
"timer_mult_apb1": 2,
|
||||
"timer_mult_apb2": 2,
|
||||
"ms_timer": "TIM14",
|
||||
"ms_timer_irqn": "TIM8_TRG_COM_TIM14_IRQn",
|
||||
"ms_timer_irqhandler": "TIM8_TRG_COM_TIM14_IRQHandler",
|
||||
"mixer_scheduler_timer": "TIM12",
|
||||
"mixer_scheduler_timer_freq": "(PERI1_FREQUENCY * TIMER_MULT_APB1)",
|
||||
"mixer_scheduler_timer_irqn": "TIM8_BRK_TIM12_IRQn",
|
||||
"mixer_scheduler_timer_irqhandler": "TIM8_BRK_TIM12_IRQHandler"
|
||||
},
|
||||
"haptic": {
|
||||
"haptic_pwm": true,
|
||||
"haptic_gpio": "GPIO_PIN(GPIOB, 8)",
|
||||
"haptic_gpio_af": "GPIO_AF3",
|
||||
"haptic_timer": "TIM10",
|
||||
"haptic_timer_freq": "(PERI2_FREQUENCY * TIMER_MULT_APB2)",
|
||||
"haptic_counter_register": "HAPTIC_TIMER->CCR1",
|
||||
"haptic_ccmr1": "TIM_CCMR1_OC1M_1 | TIM_CCMR1_OC1M_2",
|
||||
"haptic_ccer": "TIM_CCER_CC1E"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -247,27 +247,50 @@
|
||||
}
|
||||
],
|
||||
"display": {
|
||||
"w": 128,
|
||||
"h": 64,
|
||||
"phys_w": 128,
|
||||
"phys_h": 64,
|
||||
"depth": 1,
|
||||
"color": 0,
|
||||
"oled": 0,
|
||||
"backlight_color": 0
|
||||
"lcd_w": 128,
|
||||
"lcd_h": 64,
|
||||
"lcd_phys_w": 128,
|
||||
"lcd_phys_h": 64,
|
||||
"lcd_depth": 1
|
||||
},
|
||||
"custom_switches": {
|
||||
"rgb_led": 0,
|
||||
"groups": 0
|
||||
"backlight": {
|
||||
"backlight_bdtr": "TIM_BDTR_MOE"
|
||||
},
|
||||
"leds": {
|
||||
"status_leds": true,
|
||||
"led_red_gpio": "GPIO_PIN(GPIOE, 5)",
|
||||
"led_green_gpio": "GPIO_PIN(GPIOE, 4)",
|
||||
"led_blue_gpio": "GPIO_PIN(GPIOE, 6)"
|
||||
},
|
||||
"hardware": {
|
||||
"has_audio_mute": 0,
|
||||
"has_bling_leds": 0,
|
||||
"has_ext_module_support": 1,
|
||||
"has_int_module_support": 1,
|
||||
"has_ext_module_support": true,
|
||||
"has_int_module_support": true,
|
||||
"sport_max_baudrate": 250000,
|
||||
"surface": 0,
|
||||
"cpu": "STM32F205xE",
|
||||
"cpu_type": "STM32F2"
|
||||
},
|
||||
"timers": {
|
||||
"cpu_freq": 120000000,
|
||||
"peri1_frequency": 30000000,
|
||||
"peri2_frequency": 60000000,
|
||||
"timer_mult_apb1": 2,
|
||||
"timer_mult_apb2": 2,
|
||||
"ms_timer": "TIM14",
|
||||
"ms_timer_irqn": "TIM8_TRG_COM_TIM14_IRQn",
|
||||
"ms_timer_irqhandler": "TIM8_TRG_COM_TIM14_IRQHandler",
|
||||
"mixer_scheduler_timer": "TIM12",
|
||||
"mixer_scheduler_timer_freq": "(PERI1_FREQUENCY * TIMER_MULT_APB1)",
|
||||
"mixer_scheduler_timer_irqn": "TIM8_BRK_TIM12_IRQn",
|
||||
"mixer_scheduler_timer_irqhandler": "TIM8_BRK_TIM12_IRQHandler"
|
||||
},
|
||||
"haptic": {
|
||||
"haptic_pwm": true,
|
||||
"haptic_gpio": "GPIO_PIN(GPIOB, 3)",
|
||||
"haptic_gpio_af": "GPIO_AF1",
|
||||
"haptic_timer": "TIM2",
|
||||
"haptic_timer_freq": "(PERI1_FREQUENCY * TIMER_MULT_APB1)",
|
||||
"haptic_counter_register": "HAPTIC_TIMER->CCR2",
|
||||
"haptic_ccmr1": "TIM_CCMR1_OC2M_1 | TIM_CCMR1_OC2M_2",
|
||||
"haptic_ccer": "TIM_CCER_CC2E"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -275,27 +275,49 @@
|
||||
}
|
||||
],
|
||||
"display": {
|
||||
"w": 128,
|
||||
"h": 64,
|
||||
"phys_w": 128,
|
||||
"phys_h": 64,
|
||||
"depth": 1,
|
||||
"color": 0,
|
||||
"oled": 0,
|
||||
"backlight_color": 0
|
||||
"lcd_w": 128,
|
||||
"lcd_h": 64,
|
||||
"lcd_phys_w": 128,
|
||||
"lcd_phys_h": 64,
|
||||
"lcd_depth": 1
|
||||
},
|
||||
"custom_switches": {
|
||||
"rgb_led": 0,
|
||||
"groups": 0
|
||||
"backlight": {
|
||||
"backlight_bdtr": "TIM_BDTR_MOE"
|
||||
},
|
||||
"leds": {
|
||||
"status_leds": true,
|
||||
"led_red_gpio": "GPIO_PIN(GPIOE, 5)",
|
||||
"led_blue_gpio": "GPIO_PIN(GPIOE, 6)"
|
||||
},
|
||||
"hardware": {
|
||||
"has_audio_mute": 0,
|
||||
"has_bling_leds": 0,
|
||||
"has_ext_module_support": 1,
|
||||
"has_int_module_support": 1,
|
||||
"has_ext_module_support": true,
|
||||
"has_int_module_support": true,
|
||||
"sport_max_baudrate": 250000,
|
||||
"surface": 0,
|
||||
"cpu": "STM32F205xE",
|
||||
"cpu_type": "STM32F2"
|
||||
},
|
||||
"timers": {
|
||||
"cpu_freq": 120000000,
|
||||
"peri1_frequency": 30000000,
|
||||
"peri2_frequency": 60000000,
|
||||
"timer_mult_apb1": 2,
|
||||
"timer_mult_apb2": 2,
|
||||
"ms_timer": "TIM14",
|
||||
"ms_timer_irqn": "TIM8_TRG_COM_TIM14_IRQn",
|
||||
"ms_timer_irqhandler": "TIM8_TRG_COM_TIM14_IRQHandler",
|
||||
"mixer_scheduler_timer": "TIM12",
|
||||
"mixer_scheduler_timer_freq": "(PERI1_FREQUENCY * TIMER_MULT_APB1)",
|
||||
"mixer_scheduler_timer_irqn": "TIM8_BRK_TIM12_IRQn",
|
||||
"mixer_scheduler_timer_irqhandler": "TIM8_BRK_TIM12_IRQHandler"
|
||||
},
|
||||
"haptic": {
|
||||
"haptic_pwm": true,
|
||||
"haptic_gpio": "GPIO_PIN(GPIOB, 3)",
|
||||
"haptic_gpio_af": "GPIO_AF1",
|
||||
"haptic_timer": "TIM2",
|
||||
"haptic_timer_freq": "(PERI1_FREQUENCY * TIMER_MULT_APB1)",
|
||||
"haptic_counter_register": "HAPTIC_TIMER->CCR2",
|
||||
"haptic_ccmr1": "TIM_CCMR1_OC2M_1 | TIM_CCMR1_OC2M_2",
|
||||
"haptic_ccer": "TIM_CCER_CC2E"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -253,27 +253,52 @@
|
||||
}
|
||||
],
|
||||
"display": {
|
||||
"w": 128,
|
||||
"h": 64,
|
||||
"phys_w": 128,
|
||||
"phys_h": 64,
|
||||
"depth": 1,
|
||||
"color": 0,
|
||||
"oled": 0,
|
||||
"backlight_color": 0
|
||||
"lcd_w": 128,
|
||||
"lcd_h": 64,
|
||||
"lcd_phys_w": 128,
|
||||
"lcd_phys_h": 64,
|
||||
"lcd_depth": 1
|
||||
},
|
||||
"custom_switches": {
|
||||
"rgb_led": 0,
|
||||
"groups": 0
|
||||
"backlight": {
|
||||
"backlight_bdtr": "TIM_BDTR_MOE"
|
||||
},
|
||||
"leds": {
|
||||
"status_leds": true,
|
||||
"gpio_led_gpio_on": "gpio_clear",
|
||||
"gpio_led_gpio_off": "gpio_set",
|
||||
"led_red_gpio": "GPIO_PIN(GPIOE, 4)",
|
||||
"led_green_gpio": "GPIO_PIN(GPIOE, 5)",
|
||||
"led_blue_gpio": "GPIO_PIN(GPIOE, 6)"
|
||||
},
|
||||
"hardware": {
|
||||
"has_audio_mute": 0,
|
||||
"has_bling_leds": 0,
|
||||
"has_ext_module_support": 1,
|
||||
"has_int_module_support": 1,
|
||||
"has_ext_module_support": true,
|
||||
"has_int_module_support": true,
|
||||
"sport_max_baudrate": 250000,
|
||||
"surface": 0,
|
||||
"cpu": "STM32F205xE",
|
||||
"cpu_type": "STM32F2"
|
||||
},
|
||||
"timers": {
|
||||
"cpu_freq": 120000000,
|
||||
"peri1_frequency": 30000000,
|
||||
"peri2_frequency": 60000000,
|
||||
"timer_mult_apb1": 2,
|
||||
"timer_mult_apb2": 2,
|
||||
"ms_timer": "TIM14",
|
||||
"ms_timer_irqn": "TIM8_TRG_COM_TIM14_IRQn",
|
||||
"ms_timer_irqhandler": "TIM8_TRG_COM_TIM14_IRQHandler",
|
||||
"mixer_scheduler_timer": "TIM12",
|
||||
"mixer_scheduler_timer_freq": "(PERI1_FREQUENCY * TIMER_MULT_APB1)",
|
||||
"mixer_scheduler_timer_irqn": "TIM8_BRK_TIM12_IRQn",
|
||||
"mixer_scheduler_timer_irqhandler": "TIM8_BRK_TIM12_IRQHandler"
|
||||
},
|
||||
"haptic": {
|
||||
"haptic_pwm": true,
|
||||
"haptic_gpio": "GPIO_PIN(GPIOB, 3)",
|
||||
"haptic_gpio_af": "GPIO_AF1",
|
||||
"haptic_timer": "TIM2",
|
||||
"haptic_timer_freq": "(PERI1_FREQUENCY * TIMER_MULT_APB1)",
|
||||
"haptic_counter_register": "HAPTIC_TIMER->CCR2",
|
||||
"haptic_ccmr1": "TIM_CCMR1_OC2M_1 | TIM_CCMR1_OC2M_2",
|
||||
"haptic_ccer": "TIM_CCER_CC2E"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -281,27 +281,51 @@
|
||||
}
|
||||
],
|
||||
"display": {
|
||||
"w": 128,
|
||||
"h": 64,
|
||||
"phys_w": 128,
|
||||
"phys_h": 64,
|
||||
"depth": 1,
|
||||
"color": 0,
|
||||
"oled": 0,
|
||||
"backlight_color": 0
|
||||
"lcd_w": 128,
|
||||
"lcd_h": 64,
|
||||
"lcd_phys_w": 128,
|
||||
"lcd_phys_h": 64,
|
||||
"lcd_depth": 1
|
||||
},
|
||||
"custom_switches": {
|
||||
"rgb_led": 0,
|
||||
"groups": 0
|
||||
"backlight": {
|
||||
"backlight_bdtr": "TIM_BDTR_MOE"
|
||||
},
|
||||
"leds": {
|
||||
"status_leds": true,
|
||||
"gpio_led_gpio_on": "gpio_clear",
|
||||
"gpio_led_gpio_off": "gpio_set",
|
||||
"led_red_gpio": "GPIO_PIN(GPIOE, 4)",
|
||||
"led_blue_gpio": "GPIO_PIN(GPIOE, 6)"
|
||||
},
|
||||
"hardware": {
|
||||
"has_audio_mute": 0,
|
||||
"has_bling_leds": 0,
|
||||
"has_ext_module_support": 1,
|
||||
"has_int_module_support": 1,
|
||||
"has_ext_module_support": true,
|
||||
"has_int_module_support": true,
|
||||
"sport_max_baudrate": 250000,
|
||||
"surface": 0,
|
||||
"cpu": "STM32F205xE",
|
||||
"cpu_type": "STM32F2"
|
||||
},
|
||||
"timers": {
|
||||
"cpu_freq": 120000000,
|
||||
"peri1_frequency": 30000000,
|
||||
"peri2_frequency": 60000000,
|
||||
"timer_mult_apb1": 2,
|
||||
"timer_mult_apb2": 2,
|
||||
"ms_timer": "TIM14",
|
||||
"ms_timer_irqn": "TIM8_TRG_COM_TIM14_IRQn",
|
||||
"ms_timer_irqhandler": "TIM8_TRG_COM_TIM14_IRQHandler",
|
||||
"mixer_scheduler_timer": "TIM12",
|
||||
"mixer_scheduler_timer_freq": "(PERI1_FREQUENCY * TIMER_MULT_APB1)",
|
||||
"mixer_scheduler_timer_irqn": "TIM8_BRK_TIM12_IRQn",
|
||||
"mixer_scheduler_timer_irqhandler": "TIM8_BRK_TIM12_IRQHandler"
|
||||
},
|
||||
"haptic": {
|
||||
"haptic_pwm": true,
|
||||
"haptic_gpio": "GPIO_PIN(GPIOB, 3)",
|
||||
"haptic_gpio_af": "GPIO_AF1",
|
||||
"haptic_timer": "TIM2",
|
||||
"haptic_timer_freq": "(PERI1_FREQUENCY * TIMER_MULT_APB1)",
|
||||
"haptic_counter_register": "HAPTIC_TIMER->CCR2",
|
||||
"haptic_ccmr1": "TIM_CCMR1_OC2M_1 | TIM_CCMR1_OC2M_2",
|
||||
"haptic_ccer": "TIM_CCER_CC2E"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -323,27 +323,52 @@
|
||||
}
|
||||
],
|
||||
"display": {
|
||||
"w": 128,
|
||||
"h": 64,
|
||||
"phys_w": 128,
|
||||
"phys_h": 64,
|
||||
"depth": 1,
|
||||
"color": 0,
|
||||
"oled": 0,
|
||||
"backlight_color": 0
|
||||
"lcd_w": 128,
|
||||
"lcd_h": 64,
|
||||
"lcd_phys_w": 128,
|
||||
"lcd_phys_h": 64,
|
||||
"lcd_depth": 1,
|
||||
"lcd_vertical_invert": true
|
||||
},
|
||||
"custom_switches": {
|
||||
"rgb_led": 0,
|
||||
"groups": 0
|
||||
"backlight": {
|
||||
"backlight_bdtr": "TIM_BDTR_MOE"
|
||||
},
|
||||
"leds": {
|
||||
"status_leds": true,
|
||||
"led_red_gpio": "GPIO_PIN(GPIOE, 13)",
|
||||
"led_green_gpio": "GPIO_PIN(GPIOE, 2)",
|
||||
"led_blue_gpio": "GPIO_PIN(GPIOA, 7)"
|
||||
},
|
||||
"hardware": {
|
||||
"has_audio_mute": 1,
|
||||
"has_bling_leds": 0,
|
||||
"has_ext_module_support": 1,
|
||||
"has_int_module_support": 1,
|
||||
"has_audio_mute": true,
|
||||
"has_ext_module_support": true,
|
||||
"has_int_module_support": true,
|
||||
"sport_max_baudrate": 400000,
|
||||
"surface": 0,
|
||||
"cpu": "STM32F407xE",
|
||||
"cpu_type": "STM32F4"
|
||||
},
|
||||
"timers": {
|
||||
"cpu_freq": 168000000,
|
||||
"peri1_frequency": 42000000,
|
||||
"peri2_frequency": 84000000,
|
||||
"timer_mult_apb1": 2,
|
||||
"timer_mult_apb2": 2,
|
||||
"ms_timer": "TIM14",
|
||||
"ms_timer_irqn": "TIM8_TRG_COM_TIM14_IRQn",
|
||||
"ms_timer_irqhandler": "TIM8_TRG_COM_TIM14_IRQHandler",
|
||||
"mixer_scheduler_timer": "TIM12",
|
||||
"mixer_scheduler_timer_freq": "(PERI1_FREQUENCY * TIMER_MULT_APB1)",
|
||||
"mixer_scheduler_timer_irqn": "TIM8_BRK_TIM12_IRQn",
|
||||
"mixer_scheduler_timer_irqhandler": "TIM8_BRK_TIM12_IRQHandler"
|
||||
},
|
||||
"haptic": {
|
||||
"haptic_pwm": true,
|
||||
"haptic_gpio": "GPIO_PIN(GPIOB, 3)",
|
||||
"haptic_gpio_af": "GPIO_AF1",
|
||||
"haptic_timer": "TIM2",
|
||||
"haptic_timer_freq": "(PERI1_FREQUENCY * TIMER_MULT_APB1)",
|
||||
"haptic_counter_register": "HAPTIC_TIMER->CCR2",
|
||||
"haptic_ccmr1": "TIM_CCMR1_OC2M_1 | TIM_CCMR1_OC2M_2",
|
||||
"haptic_ccer": "TIM_CCER_CC2E"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,11 +1,7 @@
|
||||
|
||||
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
|
||||
|
||||
# AddHardwareDefTarget(${HW_DESC_JSON})
|
||||
AddHWGenTarget(${HW_DESC_JSON} hal_keys hal_keys.inc)
|
||||
|
||||
set(BOOTLOADER_SRC ${BOOTLOADER_SRC}
|
||||
${CMAKE_CURRENT_BINARY_DIR}/hal_keys.inc
|
||||
${RADIO_SRC_DIR}/os/time_nortos.cpp
|
||||
${RADIO_SRC_DIR}/os/sleep_nortos.cpp
|
||||
${RADIO_SRC_DIR}/keys.cpp
|
||||
|
||||
+38
-38
@@ -25,7 +25,7 @@
|
||||
|
||||
Functions cfn_sorted[] = {
|
||||
#if defined(TRANSLATIONS_CN)
|
||||
#if !defined(OLED_SCREEN)
|
||||
#if !OLED_SCREEN
|
||||
/* 背光 */ FUNC_BACKLIGHT,
|
||||
#endif
|
||||
/* 播放背景音乐 */ FUNC_BACKGND_MUSIC,
|
||||
@@ -45,7 +45,7 @@ Functions cfn_sorted[] = {
|
||||
/* 禁用触摸 */ FUNC_DISABLE_TOUCH,
|
||||
#endif
|
||||
/* 竞速模式 */ FUNC_RACING_MODE,
|
||||
#if defined(OLED_SCREEN)
|
||||
#if OLED_SCREEN
|
||||
/* 亮度 */ FUNC_BACKLIGHT,
|
||||
#endif
|
||||
/* 模块对频 */ FUNC_BIND,
|
||||
@@ -77,7 +77,7 @@ Functions cfn_sorted[] = {
|
||||
/* Hudba */ FUNC_BACKGND_MUSIC,
|
||||
/* Hudba pauza */ FUNC_BACKGND_MUSIC_PAUSE,
|
||||
/* Insta-Trim */ FUNC_INSTANT_TRIM,
|
||||
#if defined(OLED_SCREEN)
|
||||
#if OLED_SCREEN
|
||||
/* Jas */ FUNC_BACKLIGHT,
|
||||
#endif
|
||||
/* Kontrola dosahu */ FUNC_RANGECHECK,
|
||||
@@ -89,7 +89,7 @@ Functions cfn_sorted[] = {
|
||||
/* ModuleBind */ FUNC_BIND,
|
||||
/* Nastav */ FUNC_ADJUST_GVAR,
|
||||
/* Nastavit Failsafe */ FUNC_SET_FAILSAFE,
|
||||
#if !defined(OLED_SCREEN)
|
||||
#if !OLED_SCREEN
|
||||
/* Podsvětlení */ FUNC_BACKLIGHT,
|
||||
#endif
|
||||
/* Přehrát wav */ FUNC_PLAY_TRACK,
|
||||
@@ -112,7 +112,7 @@ Functions cfn_sorted[] = {
|
||||
/* Změna */ FUNC_SET_TIMER,
|
||||
#elif defined(TRANSLATIONS_DA)
|
||||
/* Afstand kontrol */ FUNC_RANGECHECK,
|
||||
#if !defined(OLED_SCREEN)
|
||||
#if !OLED_SCREEN
|
||||
/* Baggrund lys */ FUNC_BACKLIGHT,
|
||||
#endif
|
||||
/* Baggrund musik */ FUNC_BACKGND_MUSIC,
|
||||
@@ -134,7 +134,7 @@ Functions cfn_sorted[] = {
|
||||
/* RGB lys */ FUNC_RGB_LED,
|
||||
/* Ræs tilstand */ FUNC_RACING_MODE,
|
||||
/* SD Log */ FUNC_LOGS,
|
||||
#if defined(OLED_SCREEN)
|
||||
#if OLED_SCREEN
|
||||
/* Skarphed */ FUNC_BACKLIGHT,
|
||||
#endif
|
||||
/* Skærm klip */ FUNC_SCREENSHOT,
|
||||
@@ -159,7 +159,7 @@ Functions cfn_sorted[] = {
|
||||
/* Datei abspielen */ FUNC_PLAY_TRACK,
|
||||
/* Haptik */ FUNC_HAPTIC,
|
||||
/* Hauptseite anzeigen */ FUNC_SET_SCREEN,
|
||||
#if defined(OLED_SCREEN)
|
||||
#if OLED_SCREEN
|
||||
/* Helligkeit */ FUNC_BACKLIGHT,
|
||||
#endif
|
||||
/* Inst. Trim */ FUNC_INSTANT_TRIM,
|
||||
@@ -167,7 +167,7 @@ Functions cfn_sorted[] = {
|
||||
/* Kein Touch */ FUNC_DISABLE_TOUCH,
|
||||
#endif
|
||||
/* Lautstr. */ FUNC_VOLUME,
|
||||
#if !defined(OLED_SCREEN)
|
||||
#if !OLED_SCREEN
|
||||
/* LCD Licht */ FUNC_BACKLIGHT,
|
||||
#endif
|
||||
#if defined(VIDEO_SWITCH)
|
||||
@@ -202,7 +202,7 @@ Functions cfn_sorted[] = {
|
||||
/* Audio Amp Off */ FUNC_DISABLE_AUDIO_AMP,
|
||||
/* BgMúsica */ FUNC_BACKGND_MUSIC,
|
||||
/* BgMúsica|| */ FUNC_BACKGND_MUSIC_PAUSE,
|
||||
#if defined(OLED_SCREEN)
|
||||
#if OLED_SCREEN
|
||||
/* Brillo */ FUNC_BACKLIGHT,
|
||||
#endif
|
||||
/* Captura */ FUNC_SCREENSHOT,
|
||||
@@ -216,7 +216,7 @@ Functions cfn_sorted[] = {
|
||||
/* LCD to Video */ FUNC_LCD_TO_VIDEO,
|
||||
#endif
|
||||
/* Lua Script */ FUNC_PLAY_SCRIPT,
|
||||
#if !defined(OLED_SCREEN)
|
||||
#if !OLED_SCREEN
|
||||
/* Luz Fondo */ FUNC_BACKLIGHT,
|
||||
#endif
|
||||
#if defined(COLORLCD)
|
||||
@@ -242,14 +242,14 @@ Functions cfn_sorted[] = {
|
||||
#elif defined(TRANSLATIONS_FI)
|
||||
/* Adjust */ FUNC_ADJUST_GVAR,
|
||||
/* Audio Amp Off */ FUNC_DISABLE_AUDIO_AMP,
|
||||
#if !defined(OLED_SCREEN)
|
||||
#if !OLED_SCREEN
|
||||
/* Backlight */ FUNC_BACKLIGHT,
|
||||
#endif
|
||||
/* BgMusic */ FUNC_BACKGND_MUSIC,
|
||||
/* BgMusic || */ FUNC_BACKGND_MUSIC_PAUSE,
|
||||
/* Haptic */ FUNC_HAPTIC,
|
||||
/* Inst. Trim */ FUNC_INSTANT_TRIM,
|
||||
#if defined(OLED_SCREEN)
|
||||
#if OLED_SCREEN
|
||||
/* Kirkkaus */ FUNC_BACKLIGHT,
|
||||
#endif
|
||||
#if defined(VIDEO_SWITCH)
|
||||
@@ -297,7 +297,7 @@ Functions cfn_sorted[] = {
|
||||
#endif
|
||||
/* Lire valeur */ FUNC_PLAY_VALUE,
|
||||
/* Logs SD */ FUNC_LOGS,
|
||||
#if defined(OLED_SCREEN)
|
||||
#if OLED_SCREEN
|
||||
/* Luminosité */ FUNC_BACKLIGHT,
|
||||
#endif
|
||||
/* Musique */ FUNC_BACKGND_MUSIC,
|
||||
@@ -313,7 +313,7 @@ Functions cfn_sorted[] = {
|
||||
/* Règle Failsafe */ FUNC_SET_FAILSAFE,
|
||||
/* Remise à 0 */ FUNC_RESET,
|
||||
/* Remplace */ FUNC_OVERRIDE_CHANNEL,
|
||||
#if !defined(OLED_SCREEN)
|
||||
#if !OLED_SCREEN
|
||||
/* Rétroécl. */ FUNC_BACKLIGHT,
|
||||
#endif
|
||||
/* RGB leds */ FUNC_RGB_LED,
|
||||
@@ -348,14 +348,14 @@ Functions cfn_sorted[] = {
|
||||
/* Set */ FUNC_SET_TIMER,
|
||||
/* SetFailsafe */ FUNC_SET_FAILSAFE,
|
||||
/* Vario */ FUNC_VARIO,
|
||||
#if !defined(OLED_SCREEN)
|
||||
#if !OLED_SCREEN
|
||||
/* אור אחורי */ FUNC_BACKLIGHT,
|
||||
#endif
|
||||
/* איפוס */ FUNC_RESET,
|
||||
#if defined(DEBUG)
|
||||
/* בדיקה */ FUNC_TEST,
|
||||
#endif
|
||||
#if defined(OLED_SCREEN)
|
||||
#if OLED_SCREEN
|
||||
/* בהירות */ FUNC_BACKLIGHT,
|
||||
#endif
|
||||
/* הגדרת מסך ראשי */ FUNC_SET_SCREEN,
|
||||
@@ -383,7 +383,7 @@ Functions cfn_sorted[] = {
|
||||
/* Leds RGB */ FUNC_RGB_LED,
|
||||
/* Leggi Valore */ FUNC_PLAY_VALUE,
|
||||
/* Log scheda SD */ FUNC_LOGS,
|
||||
#if defined(OLED_SCREEN)
|
||||
#if OLED_SCREEN
|
||||
/* Luminosità */ FUNC_BACKLIGHT,
|
||||
#endif
|
||||
/* Maestro */ FUNC_TRAINER,
|
||||
@@ -395,7 +395,7 @@ Functions cfn_sorted[] = {
|
||||
#endif
|
||||
/* RangeCheck */ FUNC_RANGECHECK,
|
||||
/* Regola */ FUNC_ADJUST_GVAR,
|
||||
#if !defined(OLED_SCREEN)
|
||||
#if !OLED_SCREEN
|
||||
/* Retroillum. */ FUNC_BACKLIGHT,
|
||||
#endif
|
||||
/* Screenshot */ FUNC_SCREENSHOT,
|
||||
@@ -434,7 +434,7 @@ Functions cfn_sorted[] = {
|
||||
#endif
|
||||
/* トレーナー */ FUNC_TRAINER,
|
||||
/* バイブレート */ FUNC_HAPTIC,
|
||||
#if !defined(OLED_SCREEN)
|
||||
#if !OLED_SCREEN
|
||||
/* バックライト */ FUNC_BACKLIGHT,
|
||||
#endif
|
||||
/* バリオ */ FUNC_VARIO,
|
||||
@@ -445,7 +445,7 @@ Functions cfn_sorted[] = {
|
||||
/* レンジチェック */ FUNC_RANGECHECK,
|
||||
/* 音源再生 */ FUNC_PLAY_TRACK,
|
||||
/* 画面キャプチャ */ FUNC_SCREENSHOT,
|
||||
#if defined(OLED_SCREEN)
|
||||
#if OLED_SCREEN
|
||||
/* 輝度 */ FUNC_BACKLIGHT,
|
||||
#endif
|
||||
/* 再生値 */ FUNC_PLAY_VALUE,
|
||||
@@ -467,12 +467,12 @@ Functions cfn_sorted[] = {
|
||||
/* 메인 화면 설정 */ FUNC_SET_SCREEN,
|
||||
/* 모듈 바인딩 */ FUNC_BIND,
|
||||
/* 바리오 */ FUNC_VARIO,
|
||||
#if defined(OLED_SCREEN)
|
||||
#if OLED_SCREEN
|
||||
/* 밝기 */ FUNC_BACKLIGHT,
|
||||
#endif
|
||||
/* 배경 음악 */ FUNC_BACKGND_MUSIC,
|
||||
/* 배경 음악 일시정지 */ FUNC_BACKGND_MUSIC_PAUSE,
|
||||
#if !defined(OLED_SCREEN)
|
||||
#if !OLED_SCREEN
|
||||
/* 백라이트 */ FUNC_BACKLIGHT,
|
||||
#endif
|
||||
/* 볼륨 */ FUNC_VOLUME,
|
||||
@@ -499,14 +499,14 @@ Functions cfn_sorted[] = {
|
||||
/* 페일세이프 설정 */ FUNC_SET_FAILSAFE,
|
||||
#elif defined(TRANSLATIONS_NL)
|
||||
/* Audio Amp Off */ FUNC_DISABLE_AUDIO_AMP,
|
||||
#if !defined(OLED_SCREEN)
|
||||
#if !OLED_SCREEN
|
||||
/* Backlight */ FUNC_BACKLIGHT,
|
||||
#endif
|
||||
/* BgMusic */ FUNC_BACKGND_MUSIC,
|
||||
/* BgMusic || */ FUNC_BACKGND_MUSIC_PAUSE,
|
||||
/* Geluid */ FUNC_PLAY_SOUND,
|
||||
/* Haptic */ FUNC_HAPTIC,
|
||||
#if defined(OLED_SCREEN)
|
||||
#if OLED_SCREEN
|
||||
/* Helderheid */ FUNC_BACKLIGHT,
|
||||
#endif
|
||||
/* Inst. Trim */ FUNC_INSTANT_TRIM,
|
||||
@@ -547,7 +547,7 @@ Functions cfn_sorted[] = {
|
||||
/* GrajŚcieżk */ FUNC_PLAY_TRACK,
|
||||
/* GrajWartoś */ FUNC_PLAY_VALUE,
|
||||
/* Inst-Trim */ FUNC_INSTANT_TRIM,
|
||||
#if defined(OLED_SCREEN)
|
||||
#if OLED_SCREEN
|
||||
/* Jasność */ FUNC_BACKLIGHT,
|
||||
#endif
|
||||
#if defined(VIDEO_SWITCH)
|
||||
@@ -560,7 +560,7 @@ Functions cfn_sorted[] = {
|
||||
#if defined(COLORLCD)
|
||||
/* No Touch */ FUNC_DISABLE_TOUCH,
|
||||
#endif
|
||||
#if !defined(OLED_SCREEN)
|
||||
#if !OLED_SCREEN
|
||||
/* Podświetl */ FUNC_BACKLIGHT,
|
||||
#endif
|
||||
#if defined(FUNCTION_SWITCHES)
|
||||
@@ -589,7 +589,7 @@ Functions cfn_sorted[] = {
|
||||
/* BgMusica */ FUNC_BACKGND_MUSIC,
|
||||
/* BgMusica || */ FUNC_BACKGND_MUSIC_PAUSE,
|
||||
/* BindMódulo */ FUNC_BIND,
|
||||
#if defined(OLED_SCREEN)
|
||||
#if OLED_SCREEN
|
||||
/* Brilho */ FUNC_BACKLIGHT,
|
||||
#endif
|
||||
/* Capt. Tela */ FUNC_SCREENSHOT,
|
||||
@@ -601,7 +601,7 @@ Functions cfn_sorted[] = {
|
||||
#endif
|
||||
/* Leds RGB */ FUNC_RGB_LED,
|
||||
/* Logs SD */ FUNC_LOGS,
|
||||
#if !defined(OLED_SCREEN)
|
||||
#if !OLED_SCREEN
|
||||
/* LuzFundo */ FUNC_BACKLIGHT,
|
||||
#endif
|
||||
/* ModCorrida */ FUNC_RACING_MODE,
|
||||
@@ -651,10 +651,10 @@ Functions cfn_sorted[] = {
|
||||
#endif
|
||||
/* Настройка */ FUNC_ADJUST_GVAR,
|
||||
/* Оменить */ FUNC_OVERRIDE_CHANNEL,
|
||||
#if defined(OLED_SCREEN)
|
||||
#if OLED_SCREEN
|
||||
/* Подсветка */ FUNC_BACKLIGHT,
|
||||
#endif
|
||||
#if !defined(OLED_SCREEN)
|
||||
#if !OLED_SCREEN
|
||||
/* Подсветка */ FUNC_BACKLIGHT,
|
||||
#endif
|
||||
/* Пров диапаз */ FUNC_RANGECHECK,
|
||||
@@ -671,7 +671,7 @@ Functions cfn_sorted[] = {
|
||||
/* Установ */ FUNC_SET_TIMER,
|
||||
#elif defined(TRANSLATIONS_SE)
|
||||
/* Audioförstärkare av */ FUNC_DISABLE_AUDIO_AMP,
|
||||
#if !defined(OLED_SCREEN)
|
||||
#if !OLED_SCREEN
|
||||
/* Belysning */ FUNC_BACKLIGHT,
|
||||
#endif
|
||||
#if defined(COLORLCD)
|
||||
@@ -682,7 +682,7 @@ Functions cfn_sorted[] = {
|
||||
#if defined(VIDEO_SWITCH)
|
||||
/* LCD till Video */ FUNC_LCD_TO_VIDEO,
|
||||
#endif
|
||||
#if defined(OLED_SCREEN)
|
||||
#if OLED_SCREEN
|
||||
/* Ljusstyrka */ FUNC_BACKLIGHT,
|
||||
#endif
|
||||
/* Logga data */ FUNC_LOGS,
|
||||
@@ -719,7 +719,7 @@ Functions cfn_sorted[] = {
|
||||
#endif
|
||||
/* RGB LED 燈 */ FUNC_RGB_LED,
|
||||
/* Vario傳感器 */ FUNC_VARIO,
|
||||
#if defined(OLED_SCREEN)
|
||||
#if OLED_SCREEN
|
||||
/* 亮度 */ FUNC_BACKLIGHT,
|
||||
#endif
|
||||
/* 修改全局變量GV值 */ FUNC_ADJUST_GVAR,
|
||||
@@ -744,7 +744,7 @@ Functions cfn_sorted[] = {
|
||||
/* 禁用觸摸 */ FUNC_DISABLE_TOUCH,
|
||||
#endif
|
||||
/* 競速模式 */ FUNC_RACING_MODE,
|
||||
#if !defined(OLED_SCREEN)
|
||||
#if !OLED_SCREEN
|
||||
/* 背光 */ FUNC_BACKLIGHT,
|
||||
#endif
|
||||
/* 記錄日誌LOG */ FUNC_LOGS,
|
||||
@@ -770,7 +770,7 @@ Functions cfn_sorted[] = {
|
||||
/* Налашт. */ FUNC_ADJUST_GVAR,
|
||||
/* Перевизнач. */ FUNC_OVERRIDE_CHANNEL,
|
||||
/* ПеревірДіап. */ FUNC_RANGECHECK,
|
||||
#if !defined(OLED_SCREEN)
|
||||
#if !OLED_SCREEN
|
||||
/* Підсвіт. */ FUNC_BACKLIGHT,
|
||||
#endif
|
||||
/* Підсил. вимк. */ FUNC_DISABLE_AUDIO_AMP,
|
||||
@@ -786,7 +786,7 @@ Functions cfn_sorted[] = {
|
||||
/* Тренер */ FUNC_TRAINER,
|
||||
/* Фон.Муз. */ FUNC_BACKGND_MUSIC,
|
||||
/* Фон.Муз. || */ FUNC_BACKGND_MUSIC_PAUSE,
|
||||
#if defined(OLED_SCREEN)
|
||||
#if OLED_SCREEN
|
||||
/* Яскравість */ FUNC_BACKLIGHT,
|
||||
#endif
|
||||
#if defined(VIDEO_SWITCH)
|
||||
@@ -801,12 +801,12 @@ Functions cfn_sorted[] = {
|
||||
#else
|
||||
/* Adjust */ FUNC_ADJUST_GVAR,
|
||||
/* Audio Amp Off */ FUNC_DISABLE_AUDIO_AMP,
|
||||
#if !defined(OLED_SCREEN)
|
||||
#if !OLED_SCREEN
|
||||
/* Backlight */ FUNC_BACKLIGHT,
|
||||
#endif
|
||||
/* BgMusic */ FUNC_BACKGND_MUSIC,
|
||||
/* BgMusic || */ FUNC_BACKGND_MUSIC_PAUSE,
|
||||
#if defined(OLED_SCREEN)
|
||||
#if OLED_SCREEN
|
||||
/* Brightness */ FUNC_BACKLIGHT,
|
||||
#endif
|
||||
/* Haptic */ FUNC_HAPTIC,
|
||||
|
||||
@@ -1181,7 +1181,7 @@ PACK(struct RadioData {
|
||||
|
||||
NOBACKUP(uint8_t getBrightness() const
|
||||
{
|
||||
#if defined(OLED_SCREEN)
|
||||
#if OLED_SCREEN
|
||||
return contrast;
|
||||
#else
|
||||
return backlightBright;
|
||||
|
||||
@@ -607,7 +607,7 @@ void calcBacklightValue(int16_t source)
|
||||
#if defined(COLORLCD)
|
||||
requiredBacklightBright = BACKLIGHT_LEVEL_MAX - (g_eeGeneral.blOffBright +
|
||||
((1024 + raw) * ((BACKLIGHT_LEVEL_MAX - g_eeGeneral.backlightBright) - g_eeGeneral.blOffBright) / 2048));
|
||||
#elif defined(OLED_SCREEN)
|
||||
#elif OLED_SCREEN
|
||||
requiredBacklightBright = (raw + 1024) * 254 / 2048;
|
||||
#else
|
||||
requiredBacklightBright = (1024 - raw) * 100 / 2048;
|
||||
|
||||
+1
-1
@@ -568,7 +568,7 @@ constexpr uint8_t OPENTX_START_NO_SPLASH = 0x01;
|
||||
constexpr uint8_t OPENTX_START_NO_CALIBRATION = 0x02;
|
||||
constexpr uint8_t OPENTX_START_NO_CHECKS = 0x04;
|
||||
|
||||
#if defined(STATUS_LEDS)
|
||||
#if STATUS_LEDS
|
||||
#define LED_ERROR_BEGIN() ledRed()
|
||||
// Green "ready to use" if available, unless overridden by user or mfg preference
|
||||
#if !defined(POWER_LED_BLUE) && (defined(LED_GREEN_GPIO) || defined(LED_STRIP_GPIO))
|
||||
|
||||
@@ -546,7 +546,7 @@ const char* funcGetLabel(uint8_t func)
|
||||
case FUNC_LOGS:
|
||||
return STR_SF_LOGS;
|
||||
case FUNC_BACKLIGHT:
|
||||
#if defined(OLED_SCREEN)
|
||||
#if OLED_SCREEN
|
||||
return STR_BRIGHTNESS;
|
||||
#else
|
||||
return STR_SF_BACKLIGHT;
|
||||
|
||||
@@ -319,7 +319,7 @@ void lcdSetContrast(bool useDefault)
|
||||
{
|
||||
#if defined(BOOT)
|
||||
lcdSetRefVolt(LCD_CONTRAST_DEFAULT);
|
||||
#elif defined(OLED_SCREEN)
|
||||
#elif OLED_SCREEN
|
||||
// Handled by brightness feature
|
||||
if (useDefault)
|
||||
lcdSetRefVolt(LCD_CONTRAST_DEFAULT);
|
||||
|
||||
@@ -555,9 +555,9 @@ void menuRadioSetup(event_t event)
|
||||
if(attr) g_eeGeneral.inactivityTimer = checkIncDec(event, g_eeGeneral.inactivityTimer, 0, 250, EE_GENERAL); //0..250minutes
|
||||
break;
|
||||
|
||||
#if defined(BACKLIGHT_GPIO) || defined(OLED_SCREEN)
|
||||
#if defined(BACKLIGHT_GPIO) || OLED_SCREEN
|
||||
case ITEM_RADIO_SETUP_BACKLIGHT_LABEL:
|
||||
#if defined(OLED_SCREEN)
|
||||
#if OLED_SCREEN
|
||||
lcdDrawTextAlignedLeft(y, STR_BRIGHTNESS);
|
||||
#else
|
||||
lcdDrawTextAlignedLeft(y, STR_BACKLIGHT_LABEL);
|
||||
@@ -581,7 +581,7 @@ void menuRadioSetup(event_t event)
|
||||
|
||||
case ITEM_RADIO_SETUP_BRIGHTNESS:
|
||||
lcdDrawTextIndented(y, STR_BRIGHTNESS);
|
||||
#if defined(OLED_SCREEN)
|
||||
#if OLED_SCREEN
|
||||
lcdDrawNumber(LCD_W-2, y, g_eeGeneral.contrast, attr|RIGHT);
|
||||
if (attr) {
|
||||
CHECK_INCDEC_GENVAR(event, g_eeGeneral.contrast, LCD_CONTRAST_MIN, LCD_CONTRAST_MAX);
|
||||
@@ -610,7 +610,7 @@ void menuRadioSetup(event_t event)
|
||||
break;
|
||||
#endif
|
||||
|
||||
#if !defined(OLED_SCREEN)
|
||||
#if !OLED_SCREEN
|
||||
case ITEM_RADIO_SETUP_CONTRAST:
|
||||
lcdDrawTextIndented(y, STR_CONTRAST);
|
||||
lcdDrawNumber(LCD_W-2, y, g_eeGeneral.contrast, attr|RIGHT);
|
||||
|
||||
@@ -43,6 +43,12 @@ int8_t slider_5pos(coord_t y, int8_t value, event_t event, uint8_t attr, const c
|
||||
return editChoice(RADIO_SETUP_2ND_COLUMN, y, title, nullptr, value, -2, +2, attr, event, INDENT_WIDTH);
|
||||
}
|
||||
|
||||
#if HAS_BACKLIGHT_COLOR
|
||||
#define CASE_HAS_BACKLIGHT_COLOR(x) x,
|
||||
#else
|
||||
#define CASE_HAS_BACKLIGHT_COLOR(x)
|
||||
#endif
|
||||
|
||||
enum MenuRadioSetupItems {
|
||||
CASE_RTCLOCK(ITEM_RADIO_SETUP_DATE)
|
||||
CASE_RTCLOCK(ITEM_RADIO_SETUP_TIME)
|
||||
@@ -80,7 +86,7 @@ enum MenuRadioSetupItems {
|
||||
ITEM_RADIO_SETUP_BACKLIGHT_DELAY,
|
||||
ITEM_RADIO_SETUP_BRIGHTNESS,
|
||||
ITEM_RADIO_SETUP_CONTRAST,
|
||||
CASE_PCBX9E_PCBX9DP(ITEM_RADIO_SETUP_BACKLIGHT_COLOR)
|
||||
CASE_HAS_BACKLIGHT_COLOR(ITEM_RADIO_SETUP_BACKLIGHT_COLOR)
|
||||
ITEM_RADIO_SETUP_BACKLIGHT_SOURCE,
|
||||
ITEM_RADIO_SETUP_BACKLIGHT_SOURCE_OVERRIDE,
|
||||
ITEM_RADIO_SETUP_FLASH_BEEP,
|
||||
@@ -224,7 +230,7 @@ void menuRadioSetup(event_t event)
|
||||
0, // backlight delay
|
||||
0, // brightness
|
||||
0, // contrast
|
||||
CASE_PCBX9E_PCBX9DP(0) // backlight color
|
||||
CASE_HAS_BACKLIGHT_COLOR(0) // backlight color
|
||||
0, // backlight control
|
||||
BACKLIGHT_WARNING_ROW(LABEL(0)), // backlight control override warning
|
||||
0, // flash beep
|
||||
@@ -585,7 +591,7 @@ void menuRadioSetup(event_t event)
|
||||
}
|
||||
break;
|
||||
|
||||
#if defined(PCBX9DP) || defined(PCBX9E)
|
||||
#if HAS_BACKLIGHT_COLOR
|
||||
case ITEM_RADIO_SETUP_BACKLIGHT_COLOR:
|
||||
lcdDrawTextIndented(y, STR_BLCOLOR);
|
||||
drawSlider(RADIO_SETUP_2ND_COLUMN, y, g_eeGeneral.backlightColor, 20, attr);
|
||||
|
||||
@@ -94,7 +94,7 @@ static void init_lvgl_disp_drv()
|
||||
disp_drv.ver_res = LCD_H; /*Set the vertical resolution in pixels*/
|
||||
disp_drv.full_refresh = 0;
|
||||
|
||||
#if !defined(LCD_VERTICAL_INVERT)
|
||||
#if !LCD_VERTICAL_INVERT
|
||||
disp_drv.direct_mode = 1;
|
||||
#elif defined(RADIO_F16)
|
||||
disp_drv.direct_mode = (hardwareOptions.pcbrev > 0) ? 1 : 0;
|
||||
|
||||
@@ -71,7 +71,7 @@ static lv_disp_drv_t* refr_disp = nullptr;
|
||||
static void flushLcd(lv_disp_drv_t* disp_drv, const lv_area_t* area,
|
||||
lv_color_t* color_p)
|
||||
{
|
||||
#if !defined(LCD_VERTICAL_INVERT) || defined(RADIO_F16)
|
||||
#if !LCD_VERTICAL_INVERT || defined(RADIO_F16)
|
||||
#if defined(RADIO_F16)
|
||||
if (hardwareOptions.pcbrev > 0)
|
||||
#endif
|
||||
@@ -126,7 +126,7 @@ static void init_lvgl_disp_drv()
|
||||
disp_drv.ver_res = LCD_H; /*Set the vertical resolution in pixels*/
|
||||
disp_drv.full_refresh = 0;
|
||||
|
||||
#if !defined(LCD_VERTICAL_INVERT)
|
||||
#if !LCD_VERTICAL_INVERT
|
||||
disp_drv.direct_mode = 1;
|
||||
#elif defined(RADIO_F16)
|
||||
disp_drv.direct_mode = (hardwareOptions.pcbrev > 0) ? 1 : 0;
|
||||
|
||||
@@ -35,13 +35,13 @@
|
||||
#define CASE_IMU(x)
|
||||
#endif
|
||||
|
||||
#if defined(OLED_SCREEN)
|
||||
#if OLED_SCREEN
|
||||
#define CASE_CONTRAST(x)
|
||||
#else
|
||||
#define CASE_CONTRAST(x) x,
|
||||
#endif
|
||||
|
||||
#if defined(BACKLIGHT_GPIO) || defined(OLED_SCREEN)
|
||||
#if defined(BACKLIGHT_GPIO) || OLED_SCREEN
|
||||
#define CASE_BACKLIGHT(x) x,
|
||||
#else
|
||||
#define CASE_BACKLIGHT(x)
|
||||
@@ -119,10 +119,4 @@
|
||||
#define CASE_LUA_MODEL_SCRIPTS(x)
|
||||
#endif
|
||||
|
||||
#if defined(PCBX9DP) || defined(PCBX9E)
|
||||
#define CASE_PCBX9E_PCBX9DP(x) x,
|
||||
#else
|
||||
#define CASE_PCBX9E_PCBX9DP(x)
|
||||
#endif
|
||||
|
||||
#define CASE_SPLASH_PARAM(x) x,
|
||||
|
||||
@@ -95,7 +95,7 @@ enum {
|
||||
ITEM_RADIO_HARDWARE_JITTER_FILTER,
|
||||
ITEM_RADIO_HARDWARE_RAS,
|
||||
ITEM_RADIO_HARDWARE_SPORT_UPDATE_POWER,
|
||||
#if (defined(BACKLIGHT_GPIO) || defined(OLED_SCREEN)) && (LCD_W == 128)
|
||||
#if (defined(BACKLIGHT_GPIO) || OLED_SCREEN) && (LCD_W == 128)
|
||||
ITEM_RADIO_HARDWARE_SCREEN_LABEL,
|
||||
ITEM_RADIO_HARDWARE_SCREEN_INVERT,
|
||||
#endif
|
||||
@@ -367,7 +367,7 @@ static void _init_menu_tab_array(uint8_t* tab, size_t len)
|
||||
tab[ITEM_RADIO_HARDWARE_SPORT_UPDATE_POWER] = HIDDEN_ROW;
|
||||
}
|
||||
|
||||
#if (defined(BACKLIGHT_GPIO) || defined(OLED_SCREEN)) && (LCD_W == 128)
|
||||
#if (defined(BACKLIGHT_GPIO) || OLED_SCREEN) && (LCD_W == 128)
|
||||
tab[ITEM_RADIO_HARDWARE_SCREEN_LABEL] = READONLY_ROW;
|
||||
tab[ITEM_RADIO_HARDWARE_SCREEN_INVERT] = 0;
|
||||
#endif
|
||||
@@ -612,7 +612,7 @@ void menuRadioHardware(event_t event)
|
||||
}
|
||||
break;
|
||||
|
||||
#if (defined(BACKLIGHT_GPIO) || defined(OLED_SCREEN)) && (LCD_W == 128)
|
||||
#if (defined(BACKLIGHT_GPIO) || OLED_SCREEN) && (LCD_W == 128)
|
||||
case ITEM_RADIO_HARDWARE_SCREEN_LABEL:
|
||||
lcdDrawTextAlignedLeft(y, STR_SCREEN);
|
||||
break;
|
||||
|
||||
@@ -167,7 +167,7 @@ const uint8_t BMP_HEADER[] = {
|
||||
/* important colors */ 0x00, 0x00, 0x00, 0x00,
|
||||
#if !defined(COLORLCD)
|
||||
/* grayscale palette */
|
||||
#if defined(OLED_SCREEN)
|
||||
#if OLED_SCREEN
|
||||
0x00, 0x00, 0x00, 0x00, 0x11, 0x11, 0x11, 0x00, 0x22, 0x22, 0x22, 0x00, 0x33, 0x33, 0x33, 0x00,
|
||||
0x44, 0x44, 0x44, 0x00, 0x55, 0x55, 0x55, 0x00, 0x66, 0x66, 0x66, 0x00, 0x77, 0x77, 0x77, 0x00,
|
||||
0x88, 0x88, 0x88, 0x00, 0x99, 0x99, 0x99, 0x00, 0xaa, 0xaa, 0xaa, 0x00, 0xbb, 0xbb, 0xbb, 0x00,
|
||||
|
||||
@@ -1,12 +1,5 @@
|
||||
|
||||
AddHWGenTarget(${HW_DESC_JSON} hal_keys hal_keys.inc)
|
||||
# add_library(hal_keys OBJECT EXCLUDE_FROM_ALL
|
||||
# ${CMAKE_CURRENT_BINARY_DIR}/hal_keys.inc
|
||||
# hal/key_driver.cpp
|
||||
# )
|
||||
|
||||
set(SRC ${SRC}
|
||||
${CMAKE_CURRENT_BINARY_DIR}/hal_keys.inc
|
||||
hal/key_driver.cpp
|
||||
hal/module_port.cpp
|
||||
hal/adc_driver.cpp
|
||||
|
||||
@@ -27,21 +27,6 @@ set(SRC ${SRC}
|
||||
lua/lua_event.cpp
|
||||
)
|
||||
|
||||
AddHWGenTarget(${HW_DESC_JSON} lua_inputs lua_inputs.inc)
|
||||
AddHWGenTarget(${HW_DESC_JSON} lua_mixsrc lua_mixsrc.inc)
|
||||
AddHWGenTarget(${HW_DESC_JSON} lua_keys lua_keys.inc)
|
||||
|
||||
set(SRC ${SRC}
|
||||
${CMAKE_CURRENT_BINARY_DIR}/lua_inputs.inc
|
||||
${CMAKE_CURRENT_BINARY_DIR}/lua_mixsrc.inc
|
||||
${CMAKE_CURRENT_BINARY_DIR}/lua_keys.inc
|
||||
)
|
||||
|
||||
# helper target for testing purposes
|
||||
add_custom_target(lua_inputs DEPENDS ${HW_DESC_JSON} lua_inputs.inc)
|
||||
add_custom_target(lua_mixsrc DEPENDS ${HW_DESC_JSON} lua_mixsrc.inc)
|
||||
add_custom_target(lua_keys DEPENDS ${HW_DESC_JSON} lua_keys.inc)
|
||||
|
||||
if(GUI_DIR STREQUAL colorlcd)
|
||||
set(SRC ${SRC} lua/api_colorlcd.cpp lua/api_colorlcd_lvgl.cpp lua/widgets.cpp)
|
||||
else()
|
||||
|
||||
@@ -2897,6 +2897,7 @@ static int luaGetTrainerStatus(lua_State * L)
|
||||
|
||||
// To simplify code below
|
||||
#if !defined(BLING_LED_STRIP_LENGTH)
|
||||
#define BLING_LED_STRIP_START 0
|
||||
#define BLING_LED_STRIP_LENGTH 0
|
||||
#endif
|
||||
#if !defined(CFS_LED_STRIP_LENGTH)
|
||||
|
||||
@@ -101,10 +101,3 @@ add_custom_target(yaml_data
|
||||
${RADIO_DIRECTORY}/src/myeeprom.h
|
||||
${RADIO_DIRECTORY}/util/generate_yaml.py
|
||||
)
|
||||
|
||||
AddHWGenTarget(${HW_DESC_JSON} yaml_inputs yaml_inputs.inc)
|
||||
set(SRC ${SRC} ${CMAKE_CURRENT_BINARY_DIR}/yaml_inputs.inc)
|
||||
|
||||
# helper target for testing purposes
|
||||
add_custom_target(yaml_inputs DEPENDS ${HW_DESC_JSON} yaml_inputs.inc)
|
||||
|
||||
|
||||
@@ -128,6 +128,8 @@ if(NOT NATIVE_BUILD)
|
||||
${STM32_DRIVER_DIR}/stm32_i2c_driver.cpp
|
||||
)
|
||||
|
||||
add_dependencies(stm32_drivers hal_settings)
|
||||
|
||||
set(FIRMWARE_SRC ${FIRMWARE_SRC} $<TARGET_OBJECTS:stm32_drivers>)
|
||||
set(FIRMWARE_SRC ${FIRMWARE_SRC} $<TARGET_OBJECTS:stm32_drivers_w_dbg_fw>)
|
||||
|
||||
|
||||
@@ -85,7 +85,7 @@ void rotaryEncoderCheck()
|
||||
};
|
||||
#endif
|
||||
|
||||
uint8_t pins = ROTARY_ENCODER_POSITION();
|
||||
uint8_t pins = ROTARY_ENCODER_POSITION;
|
||||
|
||||
// No change - do nothing
|
||||
if (pins == lastPins) {
|
||||
@@ -230,7 +230,7 @@ void rotaryEncoderInit()
|
||||
NVIC_SetPriority(ROTARY_ENCODER_TIMER_IRQn, 7);
|
||||
|
||||
// Get initial position
|
||||
lastPins = ROTARY_ENCODER_POSITION();
|
||||
lastPins = ROTARY_ENCODER_POSITION;
|
||||
skipUntilDetent = !ON_DETENT(lastPins);
|
||||
}
|
||||
|
||||
|
||||
@@ -266,7 +266,7 @@ void boardOff()
|
||||
rgbLedClearAll();
|
||||
#endif
|
||||
|
||||
#if defined(STATUS_LEDS) && !defined(BOOT)
|
||||
#if STATUS_LEDS && !defined(BOOT)
|
||||
ledOff();
|
||||
#endif
|
||||
backlightEnable(0);
|
||||
|
||||
@@ -21,11 +21,7 @@
|
||||
|
||||
#pragma once
|
||||
|
||||
#define CPU_FREQ 168000000
|
||||
#define PERI1_FREQUENCY 42000000
|
||||
#define PERI2_FREQUENCY 84000000
|
||||
#define TIMER_MULT_APB1 2
|
||||
#define TIMER_MULT_APB2 2
|
||||
#include "hal_settings.h"
|
||||
|
||||
#define TELEMETRY_EXTI_PRIO 0 // required for soft serial
|
||||
|
||||
@@ -33,7 +29,7 @@
|
||||
#define ROTARY_ENCODER_GPIO GPIOH
|
||||
#define ROTARY_ENCODER_GPIO_PIN_A LL_GPIO_PIN_11 // PH.11
|
||||
#define ROTARY_ENCODER_GPIO_PIN_B LL_GPIO_PIN_10 // PH.10
|
||||
#define ROTARY_ENCODER_POSITION() ((ROTARY_ENCODER_GPIO->IDR >> 10) & 0x03)
|
||||
#define ROTARY_ENCODER_POSITION ((ROTARY_ENCODER_GPIO->IDR >> 10) & 0x03)
|
||||
#define ROTARY_ENCODER_EXTI_LINE1 LL_EXTI_LINE_11
|
||||
#define ROTARY_ENCODER_EXTI_LINE2 LL_EXTI_LINE_10
|
||||
#if !defined(USE_EXTI15_10_IRQ)
|
||||
@@ -143,22 +139,6 @@
|
||||
#pragma message "PCBREV_TOUCH_PULL_TYPE not defined, defaulting to GPIO_IN_PD"
|
||||
#endif
|
||||
|
||||
// Led
|
||||
#define STATUS_LEDS
|
||||
#if defined(PCBX12S)
|
||||
#define LED_GPIO GPIO_PIN(GPIOI, 5) // PI.05
|
||||
#elif defined(RADIO_T15)
|
||||
#define LED_RED_GPIO GPIO_PIN(GPIOI, 14) //PI.14
|
||||
#define LED_GREEN_GPIO GPIO_PIN(GPIOC, 13) //PC.13
|
||||
#define LED_BLUE_GPIO GPIO_PIN(GPIOE, 3) //PE.03
|
||||
#elif defined(PCBX10)
|
||||
#define LED_RED_GPIO GPIO_PIN(GPIOE, 2) // PE.02
|
||||
#if !defined(MANUFACTURER_FRSKY) // no green on X10/X10 Express
|
||||
#define LED_GREEN_GPIO GPIO_PIN(GPIOE, 4) // PE.04
|
||||
#endif
|
||||
#define LED_BLUE_GPIO GPIO_PIN(GPIOE, 5) // PE.05
|
||||
#endif
|
||||
|
||||
// Customisable switches leds
|
||||
#if defined(RADIO_T15)
|
||||
#define FSLED_GPIO_PIN_1 GPIO_PIN(GPIOA, 15) //PA.15
|
||||
@@ -300,19 +280,12 @@
|
||||
#define LCD_SPI_SCK_GPIO_PIN LL_GPIO_PIN_2 // PE.02
|
||||
#define LCD_SPI_MISO_GPIO_PIN LL_GPIO_PIN_5 // PE.05
|
||||
#define LCD_SPI_MOSI_GPIO_PIN LL_GPIO_PIN_6 // PE.06
|
||||
#define LTDC_IRQ_PRIO 4
|
||||
#define DMA_SCREEN_IRQ_PRIO 6
|
||||
#else
|
||||
#if defined(PCBX12S)
|
||||
#define LCD_GPIO_NRST GPIO_PIN(GPIOF, 10) // PF.10
|
||||
#elif defined(PCBX10)
|
||||
#define LCD_GPIO_NRST GPIO_PIN(GPIOI, 10) // PI.10
|
||||
#endif
|
||||
#if defined(PCBX10) && !defined(RADIO_T18) && !defined(RADIO_V16)
|
||||
#define LCD_VERTICAL_INVERT
|
||||
#endif
|
||||
#define LTDC_IRQ_PRIO 4
|
||||
#define DMA_SCREEN_IRQ_PRIO 6
|
||||
#endif
|
||||
|
||||
// Backlight
|
||||
@@ -501,28 +474,7 @@
|
||||
#endif
|
||||
|
||||
// Haptic
|
||||
#define HAPTIC_PWM
|
||||
#if defined(PCBX12S)
|
||||
#define HAPTIC_GPIO GPIO_PIN(GPIOA, 2) // PA.02
|
||||
#define HAPTIC_GPIO_TIMER TIM9
|
||||
#define HAPTIC_GPIO_AF GPIO_AF3
|
||||
#define HAPTIC_TIMER_OUTPUT_ENABLE TIM_CCER_CC1E
|
||||
#define HAPTIC_TIMER_MODE TIM_CCMR1_OC1M_1 | TIM_CCMR1_OC1M_2
|
||||
#define HAPTIC_TIMER_COMPARE_VALUE HAPTIC_GPIO_TIMER->CCR1
|
||||
#elif defined(RADIO_T15) // TIM2_CH1
|
||||
#define HAPTIC_GPIO GPIO_PIN(GPIOA, 5) // PA.05
|
||||
#define HAPTIC_GPIO_TIMER TIM2
|
||||
#define HAPTIC_GPIO_AF GPIO_AF1
|
||||
#define HAPTIC_TIMER_OUTPUT_ENABLE TIM_CCER_CC1E | TIM_CCER_CC1NE;
|
||||
#define HAPTIC_TIMER_MODE TIM_CCMR1_OC1M_1 | TIM_CCMR1_OC1M_2 | TIM_CCMR1_OC1PE
|
||||
#define HAPTIC_TIMER_COMPARE_VALUE HAPTIC_GPIO_TIMER->CCR1
|
||||
#elif defined(PCBX10)
|
||||
#define HAPTIC_GPIO GPIO_PIN(GPIOE, 6) // PE.06
|
||||
#define HAPTIC_GPIO_TIMER TIM9
|
||||
#define HAPTIC_GPIO_AF GPIO_AF3
|
||||
#define HAPTIC_TIMER_OUTPUT_ENABLE TIM_CCER_CC2E
|
||||
#define HAPTIC_TIMER_MODE TIM_CCMR1_OC2M_1 | TIM_CCMR1_OC2M_2
|
||||
#define HAPTIC_TIMER_COMPARE_VALUE HAPTIC_GPIO_TIMER->CCR2
|
||||
#if !defined(PCBX12S) && !defined(RADIO_T15) && defined(PCBX10)
|
||||
// FlySky Hall Sticks
|
||||
#define FLYSKY_HALL_SERIAL_USART UART4
|
||||
#define FLYSKY_HALL_DMA_Channel LL_DMA_CHANNEL_4
|
||||
@@ -534,24 +486,6 @@
|
||||
#define FLYSKY_HALL_DMA_Stream_TX LL_DMA_STREAM_4
|
||||
#endif
|
||||
|
||||
#if defined(RADIO_V16)
|
||||
// LED Strip
|
||||
#define LED_STRIP_LENGTH 40
|
||||
#define BLING_LED_STRIP_START 6
|
||||
#define BLING_LED_STRIP_LENGTH 34
|
||||
#define LED_STRIP_GPIO GPIO_PIN(GPIOA, 10) // PA.10 / TIM1_CH3
|
||||
#define LED_STRIP_GPIO_AF LL_GPIO_AF_1 // TIM1/2
|
||||
#define LED_STRIP_TIMER TIM1
|
||||
#define LED_STRIP_TIMER_FREQ (PERI2_FREQUENCY * TIMER_MULT_APB2)
|
||||
#define LED_STRIP_TIMER_CHANNEL LL_TIM_CHANNEL_CH3
|
||||
#define LED_STRIP_TIMER_DMA DMA2
|
||||
#define LED_STRIP_TIMER_DMA_CHANNEL LL_DMA_CHANNEL_6
|
||||
#define LED_STRIP_TIMER_DMA_STREAM LL_DMA_STREAM_5
|
||||
#define LED_STRIP_TIMER_DMA_IRQn DMA2_Stream5_IRQn
|
||||
#define LED_STRIP_TIMER_DMA_IRQHandler DMA2_Stream5_IRQHandler
|
||||
#define LED_STRIP_REFRESH_PERIOD 50 //ms
|
||||
#endif
|
||||
|
||||
// Internal PXX1 Module:
|
||||
// -> let's assume all internal XJT modules used are either X10 or X12S type
|
||||
#define EXTERNAL_ANTENNA
|
||||
@@ -691,17 +625,6 @@
|
||||
#define TRAINER_MODULE_CPPM_GPIO_AF LL_GPIO_AF_2
|
||||
#endif
|
||||
|
||||
// Millisecond timer
|
||||
#define MS_TIMER TIM14
|
||||
#define MS_TIMER_IRQn TIM8_TRG_COM_TIM14_IRQn
|
||||
#define MS_TIMER_IRQHandler TIM8_TRG_COM_TIM14_IRQHandler
|
||||
|
||||
// Mixer scheduler timer
|
||||
#define MIXER_SCHEDULER_TIMER TIM13
|
||||
#define MIXER_SCHEDULER_TIMER_FREQ (PERI1_FREQUENCY * TIMER_MULT_APB1)
|
||||
#define MIXER_SCHEDULER_TIMER_IRQn TIM8_UP_TIM13_IRQn
|
||||
#define MIXER_SCHEDULER_TIMER_IRQHandler TIM8_UP_TIM13_IRQHandler
|
||||
|
||||
// Bluetooth
|
||||
#define STORAGE_BLUETOOTH
|
||||
#if defined(BLUETOOTH)
|
||||
@@ -744,15 +667,3 @@
|
||||
|
||||
// SDRAM
|
||||
#define SDRAM_BANK2
|
||||
|
||||
#if defined(RADIO_T15)
|
||||
#define LCD_W 480
|
||||
#define LCD_H 320
|
||||
#else
|
||||
#define LCD_W 480
|
||||
#define LCD_H 272
|
||||
#endif
|
||||
|
||||
#define LCD_PHYS_H LCD_H
|
||||
#define LCD_PHYS_W LCD_W
|
||||
#define LCD_DEPTH 16
|
||||
|
||||
@@ -58,7 +58,7 @@
|
||||
static LTDC_HandleTypeDef hltdc;
|
||||
static void* initialFrameBuffer = nullptr;
|
||||
|
||||
#if defined(LCD_VERTICAL_INVERT)
|
||||
#if LCD_VERTICAL_INVERT
|
||||
typedef uint16_t pixel_t;
|
||||
static pixel_t _LCD_BUF_1[DISPLAY_BUFFER_SIZE] __SDRAM;
|
||||
static pixel_t _LCD_BUF_2[DISPLAY_BUFFER_SIZE] __SDRAM;
|
||||
@@ -137,7 +137,7 @@ static void _update_frame_buffer_addr(uint16_t* addr)
|
||||
static void startLcdRefresh(lv_disp_drv_t *disp_drv, uint16_t *buffer,
|
||||
const rect_t ©_area)
|
||||
{
|
||||
#if defined(LCD_VERTICAL_INVERT)
|
||||
#if LCD_VERTICAL_INVERT
|
||||
#if defined(RADIO_F16)
|
||||
if(hardwareOptions.pcbrev > 0) {
|
||||
// Direct mode
|
||||
@@ -382,7 +382,7 @@ void LCD_LayerInit()
|
||||
layer.ImageHeight = LCD_PHYS_H;
|
||||
|
||||
/* Start Address configuration : the LCD Frame buffer is defined on SDRAM w/ Offset */
|
||||
#if defined(LCD_VERTICAL_INVERT)
|
||||
#if LCD_VERTICAL_INVERT
|
||||
intptr_t layer_address;
|
||||
#if defined(RADIO_F16)
|
||||
if (hardwareOptions.pcbrev > 0)
|
||||
@@ -423,7 +423,7 @@ void LCD_Init(void)
|
||||
extern "C"
|
||||
void lcdInit()
|
||||
{
|
||||
#if defined(LCD_VERTICAL_INVERT)
|
||||
#if LCD_VERTICAL_INVERT
|
||||
// Clear buffer first
|
||||
memset(_LCD_BUF_1, 0, sizeof(_LCD_BUF_1));
|
||||
memset(_LCD_BUF_2, 0, sizeof(_LCD_BUF_2));
|
||||
|
||||
@@ -22,12 +22,7 @@
|
||||
#ifndef _HAL_H_
|
||||
#define _HAL_H_
|
||||
|
||||
#define CPU_FREQ 400000000
|
||||
|
||||
#define PERI1_FREQUENCY 100000000
|
||||
#define PERI2_FREQUENCY 100000000
|
||||
#define TIMER_MULT_APB1 2
|
||||
#define TIMER_MULT_APB2 2
|
||||
#include "hal_settings.h"
|
||||
|
||||
/* Timers Allocation:
|
||||
* TIM3 = Haptic / Backlight
|
||||
@@ -107,12 +102,6 @@
|
||||
#define LCD_SPI_MISO GPIO_PIN(GPIOG, 9)
|
||||
#define LCD_SPI_BAUD 50000000
|
||||
|
||||
// Backlight
|
||||
#define BACKLIGHT_GPIO GPIO_PIN(GPIOB, 03) // TIM2_CH2
|
||||
#define BACKLIGHT_TIMER TIM2
|
||||
#define BACKLIGHT_GPIO_AF GPIO_AF1
|
||||
#define BACKLIGHT_TIMER_FREQ (PERI1_FREQUENCY * TIMER_MULT_APB1)
|
||||
|
||||
// QSPI Flash
|
||||
#define QSPI_MAX_FREQ 80000000U // 80 MHz
|
||||
#define QSPI_CLK_GPIO GPIO_PIN(GPIOB, 2)
|
||||
@@ -172,13 +161,6 @@
|
||||
#define I2C_B2_GPIO_AF LL_GPIO_AF_4
|
||||
#define I2C_B2_CLK_RATE 400000
|
||||
|
||||
|
||||
// Haptic: TIM3_CH2
|
||||
#define HAPTIC_PWM
|
||||
#define HAPTIC_GPIO GPIO_PIN(GPIOA, 15) // PA.15
|
||||
#define HAPTIC_GPIO_TIMER TIM2
|
||||
#define HAPTIC_GPIO_AF GPIO_AF1
|
||||
|
||||
// Flysky Hall Stick
|
||||
#define FLYSKY_HALL_SERIAL_USART USART2
|
||||
|
||||
@@ -191,30 +173,6 @@
|
||||
#define FLYSKY_HALL_DMA_Stream_TX LL_DMA_STREAM_4
|
||||
#define FLYSKY_HALL_DMA_Channel LL_DMAMUX1_REQ_USART2_RX
|
||||
|
||||
// TODO LED Strip PF.06
|
||||
|
||||
// LED Strip
|
||||
#define LED_STRIP_LENGTH 14
|
||||
#define BLING_LED_STRIP_START 10
|
||||
#define BLING_LED_STRIP_LENGTH 4
|
||||
#define CFS_LED_STRIP_START 0
|
||||
#define CFS_LED_STRIP_LENGTH 8
|
||||
#define CFS_LEDS_PER_SWITCH 2
|
||||
#define LED_STRIP_GPIO GPIO_PIN(GPIOF, 06) // PF.06 / TIM16_CH1
|
||||
#define LED_STRIP_GPIO_AF LL_GPIO_AF_1 // TIM1/2/16/17
|
||||
#define LED_STRIP_TIMER TIM16
|
||||
#define LED_STRIP_TIMER_FREQ (PERI1_FREQUENCY * TIMER_MULT_APB1)
|
||||
#define LED_STRIP_TIMER_CHANNEL LL_TIM_CHANNEL_CH1
|
||||
#define LED_STRIP_TIMER_DMA DMA1
|
||||
#define LED_STRIP_TIMER_DMA_CHANNEL LL_DMAMUX1_REQ_TIM16_UP
|
||||
#define LED_STRIP_TIMER_DMA_STREAM LL_DMA_STREAM_0
|
||||
#define LED_STRIP_TIMER_DMA_IRQn DMA1_Stream0_IRQn
|
||||
#define LED_STRIP_TIMER_DMA_IRQHandler DMA1_Stream0_IRQHandler
|
||||
#define LED_STRIP_REFRESH_PERIOD 50 //ms
|
||||
#define RGB_LED_OFFSET 10
|
||||
|
||||
#define STATUS_LEDS
|
||||
|
||||
#define LED_CHARGING_START 0
|
||||
#define LED_CHARGING_END 13
|
||||
|
||||
@@ -286,48 +244,4 @@
|
||||
#define TOUCH_I2C_BUS I2C_Bus_1
|
||||
#define TOUCH_I2C_CLK_RATE 100000
|
||||
|
||||
|
||||
// Rotary Encoder
|
||||
#define ROTARY_ENCODER_NAVIGATION
|
||||
#define ROTARY_ENCODER_GPIO GPIOA
|
||||
#define ROTARY_ENCODER_GPIO_PIN_A LL_GPIO_PIN_6 // PA.06
|
||||
#define ROTARY_ENCODER_GPIO_PIN_B LL_GPIO_PIN_7 // PA.07
|
||||
#define ROTARY_ENCODER_POSITION() ((ROTARY_ENCODER_GPIO->IDR >> 6) & 0x03)
|
||||
#define ROTARY_ENCODER_EXTI_LINE1 LL_EXTI_LINE_6
|
||||
#define ROTARY_ENCODER_EXTI_LINE2 LL_EXTI_LINE_7
|
||||
// port extender interrupt
|
||||
#if !defined(USE_EXTI9_5_IRQ)
|
||||
#define USE_EXTI9_5_IRQ
|
||||
#define EXTI9_5_IRQ_Priority 5
|
||||
#endif
|
||||
#define ROTARY_ENCODER_EXTI_PORT LL_SYSCFG_EXTI_PORTA
|
||||
#define ROTARY_ENCODER_EXTI_SYS_LINE1 LL_SYSCFG_EXTI_LINE6
|
||||
#define ROTARY_ENCODER_EXTI_SYS_LINE2 LL_SYSCFG_EXTI_LINE7
|
||||
#define ROTARY_ENCODER_TIMER TIM17
|
||||
#define ROTARY_ENCODER_TIMER_IRQn TIM17_IRQn
|
||||
#define ROTARY_ENCODER_TIMER_IRQHandler TIM17_IRQHandler
|
||||
|
||||
// Millisecond timer
|
||||
#define MS_TIMER TIM14
|
||||
#define MS_TIMER_IRQn TIM8_TRG_COM_TIM14_IRQn
|
||||
#define MS_TIMER_IRQHandler TIM8_TRG_COM_TIM14_IRQHandler
|
||||
|
||||
// Mixer scheduler timer
|
||||
#define MIXER_SCHEDULER_TIMER TIM12
|
||||
#define MIXER_SCHEDULER_TIMER_FREQ (PERI1_FREQUENCY * TIMER_MULT_APB1)
|
||||
#define MIXER_SCHEDULER_TIMER_IRQn TIM8_BRK_TIM12_IRQn
|
||||
#define MIXER_SCHEDULER_TIMER_IRQHandler TIM8_BRK_TIM12_IRQHandler
|
||||
|
||||
// IMU / Gyro
|
||||
#define IMU_I2C_BUS I2C_Bus_2
|
||||
#define IMU_I2C_ADDRESS 0x6A
|
||||
|
||||
#define LCD_W 320
|
||||
#define LCD_H 240
|
||||
|
||||
#define LCD_PHYS_W LCD_W
|
||||
#define LCD_PHYS_H LCD_H
|
||||
|
||||
#define LCD_DEPTH 16
|
||||
|
||||
#endif // _HAL_H_
|
||||
|
||||
@@ -203,7 +203,6 @@ add_dependencies(board_bl ${BITMAPS_TARGET})
|
||||
|
||||
if(PCBREV STREQUAL NB4P)
|
||||
target_sources(board_bl PUBLIC
|
||||
${CMAKE_CURRENT_BINARY_DIR}/stm32_adc_inputs.inc
|
||||
boards/generic_stm32/analog_inputs.cpp
|
||||
)
|
||||
endif()
|
||||
|
||||
@@ -21,13 +21,7 @@
|
||||
|
||||
#pragma once
|
||||
|
||||
#define CPU_FREQ 168000000
|
||||
|
||||
// HSI is at 168Mhz (over-drive is not enabled!)
|
||||
#define PERI1_FREQUENCY 42000000
|
||||
#define PERI2_FREQUENCY 84000000
|
||||
#define TIMER_MULT_APB1 2
|
||||
#define TIMER_MULT_APB2 2
|
||||
#include "hal_settings.h"
|
||||
|
||||
/* Timers Allocation:
|
||||
* TIM1 = Haptic
|
||||
@@ -252,41 +246,11 @@
|
||||
#define LCD_SPI_SCK_GPIO GPIO_PIN(GPIOE, 2) // PE.02
|
||||
#define LCD_SPI_MISO_GPIO GPIO_PIN(GPIOE, 5) // PE.05
|
||||
#define LCD_SPI_MOSI_GPIO GPIO_PIN(GPIOE, 6) // PE.06
|
||||
#define LTDC_IRQ_PRIO 4
|
||||
#define DMA_SCREEN_IRQ_PRIO 6
|
||||
|
||||
// Backlight
|
||||
// TODO TIM3, TIM8, TIM14, review the channel in backlight_driver.cpp according to the chosen timer
|
||||
#define BACKLIGHT_RCC_APB2Periph 0
|
||||
#define BACKLIGHT_GPIO GPIO_PIN(GPIOA, 15) // PA.15
|
||||
#define BACKLIGHT_TIMER TIM2
|
||||
#define BACKLIGHT_GPIO_AF GPIO_AF1
|
||||
#define BACKLIGHT_TIMER_FREQ (PERI1_FREQUENCY * TIMER_MULT_APB1)
|
||||
|
||||
//used in BOOTLOADER
|
||||
#define SERIAL_RCC_AHB1Periph 0
|
||||
#define SERIAL_RCC_APB1Periph 0
|
||||
|
||||
#if defined(RADIO_NB4P)
|
||||
// Rotary Encoder
|
||||
#define ROTARY_ENCODER_GPIO GPIOH
|
||||
#define ROTARY_ENCODER_GPIO_PIN_A LL_GPIO_PIN_11 // PH.11
|
||||
#define ROTARY_ENCODER_GPIO_PIN_B LL_GPIO_PIN_10 // PH.10
|
||||
#define ROTARY_ENCODER_POSITION() ((ROTARY_ENCODER_GPIO->IDR >> 10) & 0x03)
|
||||
#define ROTARY_ENCODER_EXTI_LINE1 LL_EXTI_LINE_11
|
||||
#define ROTARY_ENCODER_EXTI_LINE2 LL_EXTI_LINE_10
|
||||
#if !defined(USE_EXTI15_10_IRQ)
|
||||
#define USE_EXTI15_10_IRQ
|
||||
#define EXTI15_10_IRQ_Priority 5
|
||||
#endif
|
||||
#define ROTARY_ENCODER_EXTI_PORT LL_SYSCFG_EXTI_PORTH
|
||||
#define ROTARY_ENCODER_EXTI_SYS_LINE1 LL_SYSCFG_EXTI_LINE11
|
||||
#define ROTARY_ENCODER_EXTI_SYS_LINE2 LL_SYSCFG_EXTI_LINE10
|
||||
#define ROTARY_ENCODER_TIMER TIM13
|
||||
#define ROTARY_ENCODER_TIMER_IRQn TIM8_UP_TIM13_IRQn
|
||||
#define ROTARY_ENCODER_TIMER_IRQHandler TIM8_UP_TIM13_IRQHandler
|
||||
#endif
|
||||
|
||||
#if defined(RADIO_NV14_FAMILY) || defined(RADIO_PL18U)
|
||||
// SD card
|
||||
#if defined(RADIO_PL18U)
|
||||
@@ -389,25 +353,6 @@
|
||||
#define EXTI9_5_IRQ_Priority 9
|
||||
#endif
|
||||
|
||||
// Haptic: TIM1_CH1
|
||||
#if defined(RADIO_NB4P)
|
||||
#define HAPTIC_PWM
|
||||
#define HAPTIC_GPIO GPIO_PIN(GPIOB, 0) // PB.00
|
||||
#define HAPTIC_GPIO_TIMER TIM1
|
||||
#define HAPTIC_GPIO_AF GPIO_AF1
|
||||
#define HAPTIC_TIMER_OUTPUT_ENABLE TIM_CCER_CC2NE
|
||||
#define HAPTIC_TIMER_MODE TIM_CCMR1_OC2M_1 | TIM_CCMR1_OC2M_2 | TIM_CCMR1_OC2PE
|
||||
#define HAPTIC_TIMER_COMPARE_VALUE HAPTIC_GPIO_TIMER->CCR2
|
||||
#else
|
||||
#define HAPTIC_PWM
|
||||
#define HAPTIC_GPIO GPIO_PIN(GPIOA, 8) // PA.08
|
||||
#define HAPTIC_GPIO_TIMER TIM1
|
||||
#define HAPTIC_GPIO_AF GPIO_AF1
|
||||
#define HAPTIC_TIMER_OUTPUT_ENABLE TIM_CCER_CC1E | TIM_CCER_CC1NE
|
||||
#define HAPTIC_TIMER_MODE TIM_CCMR1_OC1M_1 | TIM_CCMR1_OC1M_2 | TIM_CCMR1_OC1PE
|
||||
#define HAPTIC_TIMER_COMPARE_VALUE HAPTIC_GPIO_TIMER->CCR1
|
||||
#endif
|
||||
|
||||
// Flysky Hall Stick
|
||||
#define FLYSKY_HALL_SERIAL_USART UART4
|
||||
#define FLYSKY_HALL_DMA_Channel LL_DMA_CHANNEL_4
|
||||
@@ -424,26 +369,6 @@
|
||||
#define FLYSKY_HALL_DMA_Stream_RX LL_DMA_STREAM_2
|
||||
#define FLYSKY_HALL_DMA_Stream_TX LL_DMA_STREAM_4
|
||||
|
||||
// LED Strip
|
||||
#if !defined(RADIO_NV14_FAMILY)
|
||||
#define LED_STRIP_LENGTH 4
|
||||
#define BLING_LED_STRIP_START 0
|
||||
#define BLING_LED_STRIP_LENGTH 4
|
||||
#define LED_STRIP_GPIO GPIO_PIN(GPIOH, 12) // PH.12 / TIM5_CH3
|
||||
#define LED_STRIP_GPIO_AF LL_GPIO_AF_2 // TIM3/4/5
|
||||
#define LED_STRIP_TIMER TIM5
|
||||
#define LED_STRIP_TIMER_FREQ (PERI1_FREQUENCY * TIMER_MULT_APB1)
|
||||
#define LED_STRIP_TIMER_CHANNEL LL_TIM_CHANNEL_CH3
|
||||
#define LED_STRIP_TIMER_DMA DMA1
|
||||
#define LED_STRIP_TIMER_DMA_CHANNEL LL_DMA_CHANNEL_6
|
||||
#define LED_STRIP_TIMER_DMA_STREAM LL_DMA_STREAM_0
|
||||
#define LED_STRIP_TIMER_DMA_IRQn DMA1_Stream0_IRQn
|
||||
#define LED_STRIP_TIMER_DMA_IRQHandler DMA1_Stream0_IRQHandler
|
||||
#define LED_STRIP_REFRESH_PERIOD 50 //ms
|
||||
|
||||
#define STATUS_LEDS
|
||||
#endif
|
||||
|
||||
// Internal Module
|
||||
#if defined(RADIO_PL18) || defined(RADIO_PL18U)
|
||||
#if defined(RADIO_PL18U)
|
||||
@@ -603,34 +528,8 @@
|
||||
#define BT_CMD_MODE_GPIO GPIO_PIN(GPIOH, 6) // PH.06
|
||||
#endif
|
||||
|
||||
// Millisecond timer
|
||||
#define MS_TIMER TIM14
|
||||
#define MS_TIMER_IRQn TIM8_TRG_COM_TIM14_IRQn
|
||||
#define MS_TIMER_IRQHandler TIM8_TRG_COM_TIM14_IRQHandler
|
||||
|
||||
// Mixer scheduler timer
|
||||
#define MIXER_SCHEDULER_TIMER TIM12
|
||||
#define MIXER_SCHEDULER_TIMER_FREQ (PERI1_FREQUENCY * TIMER_MULT_APB1)
|
||||
#define MIXER_SCHEDULER_TIMER_IRQn TIM8_BRK_TIM12_IRQn
|
||||
#define MIXER_SCHEDULER_TIMER_IRQHandler TIM8_BRK_TIM12_IRQHandler
|
||||
|
||||
// SDRAM
|
||||
#define SDRAM_BANK1
|
||||
#if defined(RADIO_PL18U)
|
||||
#define SDRAM_32MB
|
||||
#endif
|
||||
|
||||
// LCD Settings
|
||||
#if defined(RADIO_NB4P) || defined(RADIO_NV14_FAMILY)
|
||||
#define LCD_W 320
|
||||
#define LCD_H 480
|
||||
#else
|
||||
#define LCD_W 480
|
||||
#define LCD_H 320
|
||||
#endif
|
||||
|
||||
#define LCD_PHYS_W 320
|
||||
#define LCD_PHYS_H 480
|
||||
|
||||
#define LCD_DEPTH 16
|
||||
#define LCD_CONTRAST_DEFAULT 20
|
||||
|
||||
@@ -40,17 +40,6 @@ set(SIMU_DRIVERS
|
||||
abnormal_reboot.cpp
|
||||
)
|
||||
|
||||
set(HW_DESC_JSON ${FLAVOUR}.json)
|
||||
AddHWGenTarget(${HW_DESC_JSON} simu_keys simu_keys.inc)
|
||||
AddHWGenTarget(${HW_DESC_JSON} simu_switches simu_switches.inc)
|
||||
AddHWGenTarget(${HW_DESC_JSON} hal_adc_inputs hal_adc_inputs.inc)
|
||||
|
||||
set(SIMU_DRIVERS ${SIMU_DRIVERS}
|
||||
${CMAKE_CURRENT_BINARY_DIR}/simu_keys.inc
|
||||
${CMAKE_CURRENT_BINARY_DIR}/simu_switches.inc
|
||||
${CMAKE_CURRENT_BINARY_DIR}/hal_adc_inputs.inc
|
||||
)
|
||||
|
||||
include_directories(${CMAKE_CURRENT_BINARY_DIR})
|
||||
|
||||
# Pack all simu driver sources into an object lib
|
||||
@@ -58,6 +47,8 @@ add_library(simu_drivers OBJECT EXCLUDE_FROM_ALL
|
||||
${SIMU_DRIVERS}
|
||||
)
|
||||
|
||||
add_dependencies(simu_drivers simu_keys simu_switches hal_settings hal_keys hal_adc_inputs lua_inputs lua_mixsrc lua_keys yaml_inputs)
|
||||
|
||||
get_property(SIMU_SRC_OPTIONS
|
||||
TARGET radiolib_native
|
||||
PROPERTY INTERFACE_COMPILE_OPTIONS
|
||||
|
||||
@@ -53,7 +53,7 @@ void lcdRefresh()
|
||||
|
||||
#include <lvgl/lvgl.h>
|
||||
|
||||
#if defined(LCD_VERTICAL_INVERT)
|
||||
#if LCD_VERTICAL_INVERT
|
||||
static pixel_t _LCD_BUF1[DISPLAY_BUFFER_SIZE] __SDRAM;
|
||||
static pixel_t _LCD_BUF2[DISPLAY_BUFFER_SIZE] __SDRAM;
|
||||
|
||||
@@ -98,7 +98,7 @@ pixel_t* simuLcdBuf = nullptr;
|
||||
|
||||
static void simuRefreshLcd(lv_disp_drv_t * disp_drv, uint16_t *buffer, const rect_t& copy_area)
|
||||
{
|
||||
#if !defined(LCD_VERTICAL_INVERT) // rename into "Use direct mode" ???
|
||||
#if !LCD_VERTICAL_INVERT // rename into "Use direct mode" ???
|
||||
// Direct mode: driver flush is called on final LVGL flush
|
||||
|
||||
// simply set LVGL's buffer as our current frame buffer
|
||||
@@ -162,7 +162,7 @@ void lcdSetInitalFrameBuffer(void*) {}
|
||||
|
||||
void lcdInit()
|
||||
{
|
||||
#if defined(LCD_VERTICAL_INVERT)
|
||||
#if LCD_VERTICAL_INVERT
|
||||
memset(_LCD_BUF1, 0, sizeof(_LCD_BUF1));
|
||||
memset(_LCD_BUF2, 0, sizeof(_LCD_BUF2));
|
||||
#endif
|
||||
|
||||
@@ -36,13 +36,7 @@
|
||||
// - Ext. Mod. TIM4_UP: DMA2 stream 6
|
||||
//
|
||||
|
||||
|
||||
#define CPU_FREQ 400000000
|
||||
|
||||
#define PERI1_FREQUENCY 100000000
|
||||
#define PERI2_FREQUENCY 100000000
|
||||
#define TIMER_MULT_APB1 2
|
||||
#define TIMER_MULT_APB2 2
|
||||
#include "hal_settings.h"
|
||||
|
||||
#define ADC_VREF_PREC2 329
|
||||
|
||||
@@ -126,14 +120,6 @@
|
||||
#define LCD_SPI_GPIO GPIOE
|
||||
#define LCD_SPI_SCK_GPIO_PIN LL_GPIO_PIN_4 // PE.04
|
||||
#define LCD_SPI_MOSI_GPIO_PIN LL_GPIO_PIN_3 // PE.03
|
||||
#define LTDC_IRQ_PRIO 4
|
||||
#define DMA_SCREEN_IRQ_PRIO 6
|
||||
|
||||
// Backlight
|
||||
#define BACKLIGHT_GPIO GPIO_PIN(GPIOC, 06) // TIM3_CH1
|
||||
#define BACKLIGHT_TIMER TIM3
|
||||
#define BACKLIGHT_GPIO_AF GPIO_AF2
|
||||
#define BACKLIGHT_TIMER_FREQ (PERI1_FREQUENCY * TIMER_MULT_APB1)
|
||||
|
||||
// QSPI Flash
|
||||
#define QSPI_MAX_FREQ 80000000U // 80 MHz
|
||||
@@ -206,15 +192,6 @@
|
||||
#define I2C_B2_GPIO_AF LL_GPIO_AF_4
|
||||
#define I2C_B2_CLK_RATE 400000
|
||||
|
||||
// Haptic: TIM3_CH2
|
||||
#define HAPTIC_PWM
|
||||
#define HAPTIC_GPIO GPIO_PIN(GPIOB, 5) // PB.05
|
||||
#define HAPTIC_GPIO_TIMER TIM3
|
||||
#define HAPTIC_GPIO_AF GPIO_AF2
|
||||
#define HAPTIC_TIMER_OUTPUT_ENABLE TIM_CCER_CC2E | TIM_CCER_CC2NE;
|
||||
#define HAPTIC_TIMER_MODE TIM_CCMR1_OC2M_1 | TIM_CCMR1_OC2M_2 | TIM_CCMR1_OC2PE
|
||||
#define HAPTIC_TIMER_COMPARE_VALUE HAPTIC_GPIO_TIMER->CCR2
|
||||
|
||||
// Flysky Hall Stick
|
||||
#define FLYSKY_HALL_SERIAL_USART USART2
|
||||
|
||||
@@ -227,25 +204,6 @@
|
||||
#define FLYSKY_HALL_DMA_Stream_TX LL_DMA_STREAM_4
|
||||
#define FLYSKY_HALL_DMA_Channel LL_DMAMUX1_REQ_USART2_RX
|
||||
|
||||
// LED Strip
|
||||
#define LED_STRIP_LENGTH 24
|
||||
#define BLING_LED_STRIP_START 0
|
||||
#define BLING_LED_STRIP_LENGTH 12
|
||||
#define CFS_LED_STRIP_START 12
|
||||
#define CFS_LED_STRIP_LENGTH 12
|
||||
#define CFS_LEDS_PER_SWITCH 2
|
||||
#define LED_STRIP_GPIO GPIO_PIN(GPIOA, 15) // PA.15 / TIM2_CH1
|
||||
#define LED_STRIP_GPIO_AF LL_GPIO_AF_1 // TIM1/2/16/17
|
||||
#define LED_STRIP_TIMER TIM2
|
||||
#define LED_STRIP_TIMER_FREQ (PERI1_FREQUENCY * TIMER_MULT_APB1)
|
||||
#define LED_STRIP_TIMER_CHANNEL LL_TIM_CHANNEL_CH1
|
||||
#define LED_STRIP_TIMER_DMA DMA1
|
||||
#define LED_STRIP_TIMER_DMA_CHANNEL LL_DMAMUX1_REQ_TIM2_UP
|
||||
#define LED_STRIP_TIMER_DMA_STREAM LL_DMA_STREAM_0
|
||||
#define LED_STRIP_TIMER_DMA_IRQn DMA1_Stream0_IRQn
|
||||
#define LED_STRIP_TIMER_DMA_IRQHandler DMA1_Stream0_IRQHandler
|
||||
#define LED_STRIP_REFRESH_PERIOD 50 //ms
|
||||
#define STATUS_LEDS
|
||||
#define LED_CHARGING_START 12
|
||||
#define LED_CHARGING_END 23
|
||||
|
||||
@@ -332,50 +290,3 @@
|
||||
#define USE_EXTI15_10_IRQ
|
||||
#define EXTI15_10_IRQ_Priority 5
|
||||
#endif
|
||||
|
||||
#define IMU_I2C_BUS I2C_Bus_1
|
||||
#define IMU_I2C_ADDRESS 0x6A
|
||||
|
||||
//ROTARY emulation for trims as buttons
|
||||
#define ROTARY_ENCODER_NAVIGATION
|
||||
// Rotary Encoder
|
||||
#define ROTARY_ENCODER_INVERTED
|
||||
#define ROTARY_ENCODER_GPIO GPIOG
|
||||
#define ROTARY_ENCODER_GPIO_PIN_A LL_GPIO_PIN_2 // PG.02
|
||||
#define ROTARY_ENCODER_GPIO_PIN_B LL_GPIO_PIN_3 // PG.03
|
||||
#define ROTARY_ENCODER_POSITION() ((ROTARY_ENCODER_GPIO->IDR >> 2) & 0x03)
|
||||
#define ROTARY_ENCODER_EXTI_LINE1 LL_EXTI_LINE_2
|
||||
#define ROTARY_ENCODER_EXTI_LINE2 LL_EXTI_LINE_3
|
||||
#if !defined(USE_EXTI2_IRQ)
|
||||
#define USE_EXTI2_IRQ
|
||||
#define EXTI2_IRQ_Priority 5
|
||||
#endif
|
||||
#if !defined(USE_EXTI3_IRQ)
|
||||
#define USE_EXTI3_IRQ
|
||||
#define EXTI3_IRQ_Priority 5
|
||||
#endif
|
||||
#define ROTARY_ENCODER_EXTI_PORT LL_SYSCFG_EXTI_PORTG
|
||||
#define ROTARY_ENCODER_EXTI_SYS_LINE1 LL_SYSCFG_EXTI_LINE2
|
||||
#define ROTARY_ENCODER_EXTI_SYS_LINE2 LL_SYSCFG_EXTI_LINE3
|
||||
#define ROTARY_ENCODER_TIMER TIM17
|
||||
#define ROTARY_ENCODER_TIMER_IRQn TIM17_IRQn
|
||||
#define ROTARY_ENCODER_TIMER_IRQHandler TIM17_IRQHandler
|
||||
|
||||
// Millisecond timer
|
||||
#define MS_TIMER TIM14
|
||||
#define MS_TIMER_IRQn TIM8_TRG_COM_TIM14_IRQn
|
||||
#define MS_TIMER_IRQHandler TIM8_TRG_COM_TIM14_IRQHandler
|
||||
|
||||
// Mixer scheduler timer
|
||||
#define MIXER_SCHEDULER_TIMER TIM12
|
||||
#define MIXER_SCHEDULER_TIMER_FREQ (PERI1_FREQUENCY * TIMER_MULT_APB1)
|
||||
#define MIXER_SCHEDULER_TIMER_IRQn TIM8_BRK_TIM12_IRQn
|
||||
#define MIXER_SCHEDULER_TIMER_IRQHandler TIM8_BRK_TIM12_IRQHandler
|
||||
|
||||
#define LCD_W 480
|
||||
#define LCD_H 320
|
||||
|
||||
#define LCD_PHYS_W LCD_H
|
||||
#define LCD_PHYS_H LCD_W
|
||||
|
||||
#define LCD_DEPTH 16
|
||||
|
||||
@@ -66,12 +66,7 @@ USART6: EXTMODULE_USART
|
||||
#ifndef _HAL_H_
|
||||
#define _HAL_H_
|
||||
|
||||
#define CPU_FREQ 480000000
|
||||
|
||||
#define PERI1_FREQUENCY 120000000
|
||||
#define PERI2_FREQUENCY 120000000
|
||||
#define TIMER_MULT_APB1 2
|
||||
#define TIMER_MULT_APB2 2
|
||||
#include "hal_settings.h"
|
||||
|
||||
// Keys
|
||||
#define KEYS_GPIO_REG_PAGEDN GPIOI
|
||||
@@ -112,69 +107,6 @@ USART6: EXTMODULE_USART
|
||||
#define TRIMS_GPIO_REG_RVU GPIOB
|
||||
#define TRIMS_GPIO_PIN_RVU LL_GPIO_PIN_15
|
||||
|
||||
// Switches
|
||||
#define SWITCHES_GPIO_REG_A_H GPIOB
|
||||
#define SWITCHES_GPIO_PIN_A_H LL_GPIO_PIN_0 // PB.00
|
||||
#define SWITCHES_GPIO_REG_A_L GPIOC
|
||||
#define SWITCHES_GPIO_PIN_A_L LL_GPIO_PIN_4 // PC.04
|
||||
#define SWITCHES_A_INVERTED
|
||||
|
||||
#define SWITCHES_GPIO_REG_B_H GPIOD
|
||||
#define SWITCHES_GPIO_PIN_B_H LL_GPIO_PIN_4 // PD.04
|
||||
#define SWITCHES_GPIO_REG_B_L GPIOJ
|
||||
#define SWITCHES_GPIO_PIN_B_L LL_GPIO_PIN_7 // PJ.07
|
||||
#define SWITCHES_B_INVERTED
|
||||
|
||||
#define SWITCHES_GPIO_REG_C_H GPIOH
|
||||
#define SWITCHES_GPIO_PIN_C_H LL_GPIO_PIN_3 // PH.03
|
||||
#define SWITCHES_GPIO_REG_C_L GPIOJ
|
||||
#define SWITCHES_GPIO_PIN_C_L LL_GPIO_PIN_0 // PJ.00
|
||||
#define SWITCHES_C_INVERTED
|
||||
|
||||
#define SWITCHES_GPIO_REG_D_H GPIOJ
|
||||
#define SWITCHES_GPIO_PIN_D_H LL_GPIO_PIN_14 // PJ.14
|
||||
#define SWITCHES_GPIO_REG_D_L GPIOH
|
||||
#define SWITCHES_GPIO_PIN_D_L LL_GPIO_PIN_15 // PH.15
|
||||
#define SWITCHES_D_INVERTED
|
||||
|
||||
#define SWITCHES_GPIO_REG_E GPIOE
|
||||
#define SWITCHES_GPIO_PIN_E LL_GPIO_PIN_5 // PE.05
|
||||
|
||||
#define SWITCHES_GPIO_REG_F GPIOA
|
||||
#define SWITCHES_GPIO_PIN_F LL_GPIO_PIN_15 // PA.15
|
||||
|
||||
// function switches
|
||||
//SW1
|
||||
#define FUNCTION_SWITCH_1 SG
|
||||
#define SWITCHES_GPIO_REG_G GPIOH
|
||||
#define SWITCHES_GPIO_PIN_G LL_GPIO_PIN_11 // PH.11
|
||||
#define SWITCHES_G_CFS_IDX 0
|
||||
//SW2
|
||||
#define FUNCTION_SWITCH_2 SH
|
||||
#define SWITCHES_GPIO_REG_H GPIOH
|
||||
#define SWITCHES_GPIO_PIN_H LL_GPIO_PIN_9 // PH.09
|
||||
#define SWITCHES_H_CFS_IDX 1
|
||||
//SW3
|
||||
#define FUNCTION_SWITCH_3 SI
|
||||
#define SWITCHES_GPIO_REG_I GPIOH
|
||||
#define SWITCHES_GPIO_PIN_I LL_GPIO_PIN_10 // PH.10
|
||||
#define SWITCHES_I_CFS_IDX 2
|
||||
//SW4
|
||||
#define FUNCTION_SWITCH_4 SJ
|
||||
#define SWITCHES_GPIO_REG_J GPIOH
|
||||
#define SWITCHES_GPIO_PIN_J LL_GPIO_PIN_13 // PH.123
|
||||
#define SWITCHES_J_CFS_IDX 3
|
||||
//SW5
|
||||
#define FUNCTION_SWITCH_5 SK
|
||||
#define SWITCHES_GPIO_REG_K GPIOH
|
||||
#define SWITCHES_GPIO_PIN_K LL_GPIO_PIN_14 // PH.14
|
||||
#define SWITCHES_K_CFS_IDX 4
|
||||
//SW6
|
||||
#define FUNCTION_SWITCH_6 SL
|
||||
#define SWITCHES_GPIO_REG_L GPIOH
|
||||
#define SWITCHES_GPIO_PIN_L LL_GPIO_PIN_12 // PH.12
|
||||
#define SWITCHES_L_CFS_IDX 5
|
||||
|
||||
// ADC
|
||||
#define ADC_GPIO_PIN_STICK_LH LL_GPIO_PIN_0 // PA.00 ADC1_INP16
|
||||
#define ADC_GPIO_PIN_STICK_LV LL_GPIO_PIN_3 // PA.03 ADC12_INP15
|
||||
@@ -270,19 +202,10 @@ USART6: EXTMODULE_USART
|
||||
#define LCD_SPI_SCK_GPIO_PIN LL_GPIO_PIN_3
|
||||
#define LCD_SPI_MISO_GPIO_PIN LL_GPIO_PIN_4
|
||||
#define LCD_SPI_MOSI_GPIO_PIN LL_GPIO_PIN_5
|
||||
#define LTDC_IRQ_PRIO 4
|
||||
#define DMA_SCREEN_IRQ_PRIO 6
|
||||
|
||||
#define LCD_NRST_GPIO GPIOI
|
||||
#define LCD_NRST_GPIO_PIN LL_GPIO_PIN_15
|
||||
|
||||
// Backlight
|
||||
#define BACKLIGHT_GPIO GPIO_PIN(GPIOA, 5) // TIM2_CH1
|
||||
#define BACKLIGHT_TIMER TIM2
|
||||
#define BACKLIGHT_TIMER_CHANNEL LL_TIM_CHANNEL_CH1
|
||||
#define BACKLIGHT_GPIO_AF GPIO_AF1
|
||||
#define BACKLIGHT_TIMER_FREQ (PERI1_FREQUENCY * TIMER_MULT_APB1)
|
||||
|
||||
// QSPI Flash
|
||||
#define QSPI_CLK_GPIO GPIO_PIN(GPIOF, 10)
|
||||
#define QSPI_CLK_GPIO_AF GPIO_AF9
|
||||
@@ -334,41 +257,6 @@ USART6: EXTMODULE_USART
|
||||
#define I2C_B2_GPIO_AF LL_GPIO_AF_4
|
||||
#define I2C_B2_CLK_RATE 400000
|
||||
|
||||
// Haptic
|
||||
#define HAPTIC_PWM
|
||||
#define HAPTIC_GPIO GPIO_PIN(GPIOE, 6) // TIM15_CH2
|
||||
#define HAPTIC_GPIO_TIMER TIM15
|
||||
#define HAPTIC_GPIO_AF GPIO_AF4
|
||||
#define HAPTIC_TIMER_OUTPUT_ENABLE TIM_CCER_CC2E | TIM_CCER_CC2NE;
|
||||
#define HAPTIC_TIMER_MODE TIM_CCMR1_OC2M_1 | TIM_CCMR1_OC2M_2 | TIM_CCMR1_OC2PE
|
||||
#define HAPTIC_TIMER_COMPARE_VALUE HAPTIC_GPIO_TIMER->CCR2
|
||||
|
||||
// LED Strip
|
||||
#define LED_STRIP_LENGTH 7 // 6POS + 1 common (many leds in //)
|
||||
#define BLING_LED_STRIP_START 6
|
||||
#define BLING_LED_STRIP_LENGTH 1
|
||||
#define CFS_LED_STRIP_START 0
|
||||
#define CFS_LED_STRIP_LENGTH 6
|
||||
#define CFS_LEDS_PER_SWITCH 1
|
||||
#define LED_STRIP_GPIO GPIO_PIN(GPIOA, 10) // PA.00 / TIM1_CH3
|
||||
#define LED_STRIP_GPIO_AF LL_GPIO_AF_1 // TIM1_CH3
|
||||
#define LED_STRIP_TIMER TIM1
|
||||
#define LED_STRIP_TIMER_FREQ (PERI1_FREQUENCY * TIMER_MULT_APB1)
|
||||
#define LED_STRIP_TIMER_CHANNEL LL_TIM_CHANNEL_CH3
|
||||
#define LED_STRIP_TIMER_DMA DMA1
|
||||
#define LED_STRIP_TIMER_DMA_CHANNEL LL_DMAMUX1_REQ_TIM1_UP
|
||||
#define LED_STRIP_TIMER_DMA_STREAM LL_DMA_STREAM_0
|
||||
#define LED_STRIP_TIMER_DMA_IRQn DMA1_Stream0_IRQn
|
||||
#define LED_STRIP_TIMER_DMA_IRQHandler DMA1_Stream0_IRQHandler
|
||||
#define LED_STRIP_REFRESH_PERIOD 50 //ms
|
||||
|
||||
#define STATUS_LEDS
|
||||
#define GPIO_LED_GPIO_ON gpio_set
|
||||
#define GPIO_LED_GPIO_OFF gpio_clear
|
||||
#define LED_RED_GPIO GPIO_PIN(GPIOA, 8)
|
||||
#define LED_GREEN_GPIO GPIO_PIN(GPIOJ, 13)
|
||||
#define LED_BLUE_GPIO GPIO_PIN(GPIOG, 7)
|
||||
|
||||
// Internal Module
|
||||
#define INTMODULE_PWR_GPIO GPIO_PIN(GPIOI, 1)
|
||||
#define INTMODULE_BOOTCMD_GPIO GPIO_PIN(GPIOD, 7)
|
||||
@@ -449,53 +337,6 @@ USART6: EXTMODULE_USART
|
||||
#define EXTI15_10_IRQ_Priority 9
|
||||
#endif
|
||||
|
||||
//ROTARY emulation for trims as buttons
|
||||
#define ROTARY_ENCODER_NAVIGATION
|
||||
// Rotary Encoder
|
||||
#define ROTARY_ENCODER_GPIO_A GPIOA
|
||||
#define ROTARY_ENCODER_GPIO_PIN_A LL_GPIO_PIN_6
|
||||
#define ROTARY_ENCODER_GPIO_B GPIOA
|
||||
#define ROTARY_ENCODER_GPIO_PIN_B LL_GPIO_PIN_7
|
||||
#define ROTARY_ENCODER_POSITION() (((ROTARY_ENCODER_GPIO_A->IDR >> 6) & 0x01)|((ROTARY_ENCODER_GPIO_B->IDR >> 6) & 0x02))
|
||||
#define ROTARY_ENCODER_EXTI_LINE1 LL_EXTI_LINE_6
|
||||
#define ROTARY_ENCODER_EXTI_LINE2 LL_EXTI_LINE_7
|
||||
#if !defined(USE_EXTI9_5_IRQ)
|
||||
#define USE_EXTI9_5_IRQ
|
||||
#define EXTI9_5_IRQ_Priority 9
|
||||
#endif
|
||||
#define ROTARY_ENCODER_EXTI_PORT_A LL_SYSCFG_EXTI_PORTA
|
||||
#define ROTARY_ENCODER_EXTI_PORT_B LL_SYSCFG_EXTI_PORTA
|
||||
#define ROTARY_ENCODER_EXTI_SYS_LINE1 LL_SYSCFG_EXTI_LINE6
|
||||
#define ROTARY_ENCODER_EXTI_SYS_LINE2 LL_SYSCFG_EXTI_LINE7
|
||||
#define ROTARY_ENCODER_TIMER TIM17
|
||||
#define ROTARY_ENCODER_TIMER_IRQn TIM17_IRQn
|
||||
#define ROTARY_ENCODER_TIMER_IRQHandler TIM17_IRQHandler
|
||||
|
||||
// Millisecond timer
|
||||
#define MS_TIMER TIM14
|
||||
#define MS_TIMER_IRQn TIM8_TRG_COM_TIM14_IRQn
|
||||
#define MS_TIMER_IRQHandler TIM8_TRG_COM_TIM14_IRQHandler
|
||||
|
||||
// Mixer scheduler timer
|
||||
#define MIXER_SCHEDULER_TIMER TIM12
|
||||
#define MIXER_SCHEDULER_TIMER_FREQ (PERI1_FREQUENCY * TIMER_MULT_APB1)
|
||||
#define MIXER_SCHEDULER_TIMER_IRQn TIM8_BRK_TIM12_IRQn
|
||||
#define MIXER_SCHEDULER_TIMER_IRQHandler TIM8_BRK_TIM12_IRQHandler
|
||||
|
||||
#define LANDSCAPE_LCD true
|
||||
#define PORTRAIT_LCD false
|
||||
#define LANDSCAPE_LCD_SML false
|
||||
#define LANDSCAPE_LCD_STD true
|
||||
#define LANDSCAPE_LCD_LRG false
|
||||
|
||||
#define LCD_W 480
|
||||
#define LCD_H 320
|
||||
|
||||
#define LCD_PHYS_W LCD_W
|
||||
#define LCD_PHYS_H LCD_H
|
||||
|
||||
#define LCD_DEPTH 16
|
||||
|
||||
#define LSE_DRIVE_STRENGTH RCC_LSEDRIVE_HIGH
|
||||
|
||||
#endif // _HAL_H_
|
||||
|
||||
@@ -59,12 +59,7 @@ TIM17: ROTARY_ENCODER_TIMER
|
||||
#ifndef _HAL_H_
|
||||
#define _HAL_H_
|
||||
|
||||
#define CPU_FREQ 480000000
|
||||
|
||||
#define PERI1_FREQUENCY 120000000
|
||||
#define PERI2_FREQUENCY 120000000
|
||||
#define TIMER_MULT_APB1 2
|
||||
#define TIMER_MULT_APB2 2
|
||||
#include "hal_settings.h"
|
||||
|
||||
#define ADC_VREF_PREC2 330
|
||||
|
||||
@@ -179,15 +174,6 @@ TIM17: ROTARY_ENCODER_TIMER
|
||||
#define I2C_B2_GPIO_AF LL_GPIO_AF_4
|
||||
#define I2C_B2_CLK_RATE 400000
|
||||
|
||||
// Haptic
|
||||
#define HAPTIC_PWM
|
||||
#define HAPTIC_GPIO GPIO_PIN(GPIOE, 6) // TIM15_CH2
|
||||
#define HAPTIC_GPIO_TIMER TIM15
|
||||
#define HAPTIC_GPIO_AF GPIO_AF4
|
||||
#define HAPTIC_TIMER_OUTPUT_ENABLE TIM_CCER_CC2E | TIM_CCER_CC2NE;
|
||||
#define HAPTIC_TIMER_MODE TIM_CCMR1_OC2M_1 | TIM_CCMR1_OC2M_2 | TIM_CCMR1_OC2PE
|
||||
#define HAPTIC_TIMER_COMPARE_VALUE HAPTIC_GPIO_TIMER->CCR2
|
||||
|
||||
// Flysky Hall Stick
|
||||
#define FLYSKY_HALL_SERIAL_USART USART3
|
||||
#define FLYSKY_HALL_SERIAL_TX_GPIO GPIO_PIN(GPIOB, 10)
|
||||
@@ -197,33 +183,6 @@ TIM17: ROTARY_ENCODER_TIMER
|
||||
#define FLYSKY_HALL_DMA_Stream_RX LL_DMA_STREAM_2
|
||||
#define FLYSKY_HALL_DMA_Channel LL_DMAMUX1_REQ_USART3_RX
|
||||
|
||||
// LED Strip
|
||||
#define LED_STRIP_LENGTH 7 // 6POS + 1 common (many leds in //)
|
||||
#define BLING_LED_STRIP_START 6
|
||||
#define BLING_LED_STRIP_LENGTH 1
|
||||
#define CFS_LED_STRIP_START 0
|
||||
#define CFS_LED_STRIP_LENGTH 6
|
||||
#define CFS_LEDS_PER_SWITCH 1
|
||||
#define LED_STRIP_GPIO GPIO_PIN(GPIOA, 10) // PA.00 / TIM1_CH3
|
||||
#define LED_STRIP_GPIO_AF LL_GPIO_AF_1 // TIM1_CH3
|
||||
#define LED_STRIP_TIMER TIM1
|
||||
#define LED_STRIP_TIMER_FREQ (PERI1_FREQUENCY * TIMER_MULT_APB1)
|
||||
#define LED_STRIP_TIMER_CHANNEL LL_TIM_CHANNEL_CH3
|
||||
#define LED_STRIP_TIMER_DMA DMA1
|
||||
#define LED_STRIP_TIMER_DMA_CHANNEL LL_DMAMUX1_REQ_TIM1_UP
|
||||
#define LED_STRIP_TIMER_DMA_STREAM LL_DMA_STREAM_0
|
||||
#define LED_STRIP_TIMER_DMA_IRQn DMA1_Stream0_IRQn
|
||||
#define LED_STRIP_TIMER_DMA_IRQHandler DMA1_Stream0_IRQHandler
|
||||
#define LED_STRIP_REFRESH_PERIOD 50 //ms
|
||||
|
||||
#define STATUS_LEDS
|
||||
#define GPIO_LED_GPIO_ON gpio_set
|
||||
#define GPIO_LED_GPIO_OFF gpio_clear
|
||||
#define LED_RED_GPIO GPIO_PIN(GPIOB, 15)
|
||||
#define LED_RED2_GPIO GPIO_PIN(GPIOJ, 12)
|
||||
#define LED_GREEN_GPIO GPIO_PIN(GPIOB, 13)
|
||||
#define LED_BLUE_GPIO GPIO_PIN(GPIOB, 12)
|
||||
|
||||
// Internal Module
|
||||
#define INTMODULE_PWR_GPIO GPIO_PIN(GPIOI, 1)
|
||||
#define INTMODULE_BOOTCMD_GPIO GPIO_PIN(GPIOD, 7)
|
||||
@@ -304,53 +263,6 @@ TIM17: ROTARY_ENCODER_TIMER
|
||||
#define EXTI15_10_IRQ_Priority 9
|
||||
#endif
|
||||
|
||||
//ROTARY emulation for trims as buttons
|
||||
#define ROTARY_ENCODER_NAVIGATION
|
||||
// Rotary Encoder
|
||||
#define ROTARY_ENCODER_GPIO_A GPIOA
|
||||
#define ROTARY_ENCODER_GPIO_PIN_A LL_GPIO_PIN_6
|
||||
#define ROTARY_ENCODER_GPIO_B GPIOA
|
||||
#define ROTARY_ENCODER_GPIO_PIN_B LL_GPIO_PIN_7
|
||||
#define ROTARY_ENCODER_POSITION() (((ROTARY_ENCODER_GPIO_A->IDR >> 6) & 0x01)|((ROTARY_ENCODER_GPIO_B->IDR >> 6) & 0x02))
|
||||
#define ROTARY_ENCODER_EXTI_LINE1 LL_EXTI_LINE_6
|
||||
#define ROTARY_ENCODER_EXTI_LINE2 LL_EXTI_LINE_7
|
||||
#if !defined(USE_EXTI9_5_IRQ)
|
||||
#define USE_EXTI9_5_IRQ
|
||||
#define EXTI9_5_IRQ_Priority 9
|
||||
#endif
|
||||
#define ROTARY_ENCODER_EXTI_PORT_A LL_SYSCFG_EXTI_PORTA
|
||||
#define ROTARY_ENCODER_EXTI_PORT_B LL_SYSCFG_EXTI_PORTA
|
||||
#define ROTARY_ENCODER_EXTI_SYS_LINE1 LL_SYSCFG_EXTI_LINE6
|
||||
#define ROTARY_ENCODER_EXTI_SYS_LINE2 LL_SYSCFG_EXTI_LINE7
|
||||
#define ROTARY_ENCODER_TIMER TIM17
|
||||
#define ROTARY_ENCODER_TIMER_IRQn TIM17_IRQn
|
||||
#define ROTARY_ENCODER_TIMER_IRQHandler TIM17_IRQHandler
|
||||
|
||||
// Millisecond timer
|
||||
#define MS_TIMER TIM14
|
||||
#define MS_TIMER_IRQn TIM8_TRG_COM_TIM14_IRQn
|
||||
#define MS_TIMER_IRQHandler TIM8_TRG_COM_TIM14_IRQHandler
|
||||
|
||||
// Mixer scheduler timer
|
||||
#define MIXER_SCHEDULER_TIMER TIM12
|
||||
#define MIXER_SCHEDULER_TIMER_FREQ (PERI1_FREQUENCY * TIMER_MULT_APB1)
|
||||
#define MIXER_SCHEDULER_TIMER_IRQn TIM8_BRK_TIM12_IRQn
|
||||
#define MIXER_SCHEDULER_TIMER_IRQHandler TIM8_BRK_TIM12_IRQHandler
|
||||
|
||||
#define LANDSCAPE_LCD true
|
||||
#define PORTRAIT_LCD false
|
||||
#define LANDSCAPE_LCD_SML false
|
||||
#define LANDSCAPE_LCD_STD true
|
||||
#define LANDSCAPE_LCD_LRG false
|
||||
|
||||
#define LCD_W 480
|
||||
#define LCD_H 320
|
||||
|
||||
#define LCD_PHYS_W LCD_W
|
||||
#define LCD_PHYS_H LCD_H
|
||||
|
||||
#define LCD_DEPTH 16
|
||||
|
||||
#define LSE_DRIVE_STRENGTH RCC_LSEDRIVE_HIGH
|
||||
|
||||
#endif // _HAL_H_
|
||||
@@ -41,7 +41,6 @@ if(PCB STREQUAL X9E)
|
||||
set(BITMAPS_TARGET taranis_bitmaps)
|
||||
set(FONTS_TARGET taranis_fonts)
|
||||
set(LCD_DRIVER lcd_driver_spi.cpp)
|
||||
set(STATUS_LEDS NO)
|
||||
set(BLUETOOTH YES)
|
||||
set(ROTARY_ENCODER YES)
|
||||
set(MODULE_SIZE_STD YES)
|
||||
@@ -64,7 +63,6 @@ elseif(PCB STREQUAL X9D+)
|
||||
set(CPU_TYPE_FULL STM32F407xE)
|
||||
set(PWR_BUTTON "PRESS" CACHE STRING "Pwr button type (PRESS/SWITCH)")
|
||||
add_definitions(-DSOFTWARE_VOLUME -DPWR_BUTTON_${PWR_BUTTON} -DHARDWARE_POWER_MANAGEMENT_UNIT)
|
||||
set(STATUS_LEDS YES)
|
||||
set(PXX2 ON)
|
||||
set(PXX_FREQUENCY "HIGH")
|
||||
set(BLUETOOTH YES)
|
||||
@@ -77,7 +75,6 @@ elseif(PCB STREQUAL X9D+)
|
||||
set(FLAVOUR x9d+)
|
||||
set(CPU_TYPE_FULL STM32F205xE)
|
||||
set(AUX_SERIAL ON)
|
||||
set(STATUS_LEDS NO)
|
||||
set(MODULE_SIZE_STD YES)
|
||||
endif()
|
||||
elseif(PCB STREQUAL X9D)
|
||||
@@ -92,7 +89,6 @@ elseif(PCB STREQUAL X9D)
|
||||
set(FONTS_TARGET taranis_fonts)
|
||||
set(LCD_DRIVER lcd_driver_aspi.cpp)
|
||||
set(AUX_SERIAL ON)
|
||||
set(STATUS_LEDS NO)
|
||||
add_definitions(-DMANUFACTURER_FRSKY)
|
||||
set(MODULE_SIZE_STD YES)
|
||||
elseif(PCB STREQUAL X7)
|
||||
@@ -103,7 +99,6 @@ elseif(PCB STREQUAL X7)
|
||||
set(BITMAPS_TARGET 9x_bitmaps)
|
||||
set(FONTS_TARGET 9x_fonts_1bit)
|
||||
set(LCD_DRIVER lcd_driver_spi.cpp)
|
||||
set(STATUS_LEDS YES)
|
||||
add_definitions(-DPCBX7 -DSOFTWARE_VOLUME)
|
||||
add_definitions(-DPWR_BUTTON_${PWR_BUTTON})
|
||||
if(PCBREV STREQUAL T12)
|
||||
@@ -429,7 +424,6 @@ elseif(PCB STREQUAL X9LITE)
|
||||
set(BITMAPS_TARGET 9x_bitmaps)
|
||||
set(FONTS_TARGET 9x_fonts_1bit)
|
||||
set(LCD_DRIVER lcd_driver_spi.cpp)
|
||||
set(STATUS_LEDS YES)
|
||||
set(ROTARY_ENCODER YES)
|
||||
add_definitions(-DMANUFACTURER_FRSKY)
|
||||
elseif(PCB STREQUAL X9LITES)
|
||||
@@ -449,7 +443,6 @@ elseif(PCB STREQUAL X9LITES)
|
||||
set(BITMAPS_TARGET 9x_bitmaps)
|
||||
set(FONTS_TARGET 9x_fonts_1bit)
|
||||
set(LCD_DRIVER lcd_driver_spi.cpp)
|
||||
set(STATUS_LEDS YES)
|
||||
set(BLUETOOTH YES)
|
||||
set(ROTARY_ENCODER YES)
|
||||
add_definitions(-DMANUFACTURER_FRSKY)
|
||||
@@ -470,7 +463,6 @@ elseif(PCB STREQUAL XLITE)
|
||||
set(BITMAPS_TARGET 9x_bitmaps)
|
||||
set(FONTS_TARGET 9x_fonts_1bit)
|
||||
set(LCD_DRIVER lcd_driver_spi.cpp)
|
||||
set(STATUS_LEDS YES)
|
||||
set(BLUETOOTH YES)
|
||||
add_definitions(-DMANUFACTURER_FRSKY)
|
||||
elseif(PCB STREQUAL XLITES)
|
||||
@@ -489,7 +481,6 @@ elseif(PCB STREQUAL XLITES)
|
||||
set(BITMAPS_TARGET 9x_bitmaps)
|
||||
set(FONTS_TARGET 9x_fonts_1bit)
|
||||
set(LCD_DRIVER lcd_driver_spi.cpp)
|
||||
set(STATUS_LEDS YES)
|
||||
set(PXX2 ON)
|
||||
set(BLUETOOTH YES)
|
||||
set(IMU YES)
|
||||
|
||||
@@ -163,7 +163,7 @@ void boardInit()
|
||||
pwrInit();
|
||||
boardInitModulePorts();
|
||||
|
||||
#if defined(STATUS_LEDS)
|
||||
#if STATUS_LEDS
|
||||
ledInit();
|
||||
#if !defined(POWER_LED_BLUE)
|
||||
ledBlue();
|
||||
@@ -201,7 +201,7 @@ void boardInit()
|
||||
if (getBatteryVoltage() >= 780) setFSLedON(3);
|
||||
if (getBatteryVoltage() >= 820) setFSLedON(4);
|
||||
if (getBatteryVoltage() >= 842) setFSLedON(5);
|
||||
#elif defined(STATUS_LEDS)
|
||||
#elif STATUS_LEDS
|
||||
// Use Status LED to indicate battery charge level instead
|
||||
if (getBatteryVoltage() <= 660) ledRed(); // low discharge
|
||||
else if (getBatteryVoltage() <= 842) ledBlue(); // charging
|
||||
@@ -290,7 +290,7 @@ void boardOff()
|
||||
rgbLedClearAll();
|
||||
#endif
|
||||
|
||||
#if defined(STATUS_LEDS) && !defined(BOOT)
|
||||
#if STATUS_LEDS && !defined(BOOT)
|
||||
ledOff();
|
||||
#endif
|
||||
|
||||
|
||||
@@ -181,7 +181,7 @@ void pwrResetHandler();
|
||||
#define pwrForcePressed() false
|
||||
|
||||
// Backlight driver
|
||||
#if defined(OLED_SCREEN)
|
||||
#if OLED_SCREEN
|
||||
#define BACKLIGHT_DISABLE() lcdSetRefVolt(0)
|
||||
#define BACKLIGHT_FORCED_ON 255
|
||||
#else
|
||||
@@ -199,7 +199,7 @@ bool isBacklightEnabled();
|
||||
void backlightEnable(uint8_t level, uint8_t color);
|
||||
#define BACKLIGHT_ENABLE() \
|
||||
backlightEnable(currentBacklightBright, g_eeGeneral.backlightColor)
|
||||
#elif defined(OLED_SCREEN)
|
||||
#elif OLED_SCREEN
|
||||
#define BACKLIGHT_ENABLE() lcdSetRefVolt(currentBacklightBright)
|
||||
#else
|
||||
void backlightEnable(uint8_t level);
|
||||
@@ -255,7 +255,7 @@ void ledBlue();
|
||||
#define LCD_CONTRAST_DEFAULT 25
|
||||
#else
|
||||
#define IS_LCD_RESET_NEEDED() true
|
||||
#if defined(OLED_SCREEN)
|
||||
#if OLED_SCREEN
|
||||
#define LCD_CONTRAST_MIN 2
|
||||
#define LCD_CONTRAST_MAX 254
|
||||
#else
|
||||
@@ -269,7 +269,7 @@ void ledBlue();
|
||||
#define LCD_BRIGHTNESS_DEFAULT 30
|
||||
#endif
|
||||
|
||||
#if defined(OLED_SCREEN)
|
||||
#if OLED_SCREEN
|
||||
#define LCD_CONTRAST_DEFAULT 254 // full brightness
|
||||
#elif defined(RADIO_TX12) || defined(RADIO_TX12MK2) || defined(RADIO_BOXER) || defined(RADIO_MT12)
|
||||
#define LCD_CONTRAST_DEFAULT 20
|
||||
@@ -278,7 +278,7 @@ void ledBlue();
|
||||
#else
|
||||
#define LCD_CONTRAST_DEFAULT 15
|
||||
#endif
|
||||
#if defined(OLED_SCREEN)
|
||||
#if OLED_SCREEN
|
||||
// add offset 2px because driver (SH1106) of the 1.3 OLED is for a 132 display
|
||||
#define LCD_W_OFFSET 0x02
|
||||
#endif
|
||||
|
||||
@@ -21,25 +21,7 @@
|
||||
|
||||
#pragma once
|
||||
|
||||
#if defined(STM32F413xx)
|
||||
#define CPU_FREQ 100000000
|
||||
#define PERI1_FREQUENCY 50000000
|
||||
#define PERI2_FREQUENCY 100000000
|
||||
#define TIMER_MULT_APB1 1
|
||||
#define TIMER_MULT_APB2 1
|
||||
#elif defined(STM32F4)
|
||||
#define CPU_FREQ 168000000
|
||||
#define PERI1_FREQUENCY 42000000
|
||||
#define PERI2_FREQUENCY 84000000
|
||||
#define TIMER_MULT_APB1 2
|
||||
#define TIMER_MULT_APB2 2
|
||||
#else
|
||||
#define CPU_FREQ 120000000
|
||||
#define PERI1_FREQUENCY 30000000
|
||||
#define PERI2_FREQUENCY 60000000
|
||||
#define TIMER_MULT_APB1 2
|
||||
#define TIMER_MULT_APB2 2
|
||||
#endif
|
||||
#include "hal_settings.h"
|
||||
|
||||
#define TELEMETRY_EXTI_PRIO 0 // required for soft serial
|
||||
|
||||
@@ -58,7 +40,7 @@
|
||||
#define ROTARY_ENCODER_GPIO GPIOD
|
||||
#define ROTARY_ENCODER_GPIO_PIN_A LL_GPIO_PIN_12 // PD.12
|
||||
#define ROTARY_ENCODER_GPIO_PIN_B LL_GPIO_PIN_13 // PD.13
|
||||
#define ROTARY_ENCODER_POSITION() (ROTARY_ENCODER_GPIO->IDR >> 12) & 0x03
|
||||
#define ROTARY_ENCODER_POSITION (ROTARY_ENCODER_GPIO->IDR >> 12) & 0x03
|
||||
#define ROTARY_ENCODER_EXTI_LINE1 LL_EXTI_LINE_12
|
||||
#define ROTARY_ENCODER_EXTI_LINE2 LL_EXTI_LINE_13
|
||||
#define ROTARY_ENCODER_EXTI_PORT LL_SYSCFG_EXTI_PORTD
|
||||
@@ -74,7 +56,7 @@
|
||||
#define ROTARY_ENCODER_GPIO GPIOE
|
||||
#define ROTARY_ENCODER_GPIO_PIN_A LL_GPIO_PIN_10 // PE.10
|
||||
#define ROTARY_ENCODER_GPIO_PIN_B LL_GPIO_PIN_11 // PE.11
|
||||
#define ROTARY_ENCODER_POSITION() (((ROTARY_ENCODER_GPIO->IDR >> 9) & 0x02) + ((ROTARY_ENCODER_GPIO->IDR >> 11) & 0x01))
|
||||
#define ROTARY_ENCODER_POSITION (((ROTARY_ENCODER_GPIO->IDR >> 9) & 0x02) + ((ROTARY_ENCODER_GPIO->IDR >> 11) & 0x01))
|
||||
#define ROTARY_ENCODER_EXTI_LINE1 LL_EXTI_LINE_10
|
||||
#define ROTARY_ENCODER_EXTI_LINE2 LL_EXTI_LINE_11
|
||||
#define ROTARY_ENCODER_EXTI_PORT LL_SYSCFG_EXTI_PORTE
|
||||
@@ -90,7 +72,7 @@
|
||||
#define ROTARY_ENCODER_GPIO GPIOE
|
||||
#define ROTARY_ENCODER_GPIO_PIN_A LL_GPIO_PIN_9 // PE.09
|
||||
#define ROTARY_ENCODER_GPIO_PIN_B LL_GPIO_PIN_11 // PE.11
|
||||
#define ROTARY_ENCODER_POSITION() (((ROTARY_ENCODER_GPIO->IDR >> 10) & 0x02) + ((ROTARY_ENCODER_GPIO->IDR >> 9) & 0x01))
|
||||
#define ROTARY_ENCODER_POSITION (((ROTARY_ENCODER_GPIO->IDR >> 10) & 0x02) + ((ROTARY_ENCODER_GPIO->IDR >> 9) & 0x01))
|
||||
#define ROTARY_ENCODER_EXTI_LINE1 LL_EXTI_LINE_9
|
||||
#define ROTARY_ENCODER_EXTI_LINE2 LL_EXTI_LINE_11
|
||||
// ROTARY_ENCODER_EXTI_LINE1 IRQ
|
||||
@@ -111,7 +93,7 @@
|
||||
#define ROTARY_ENCODER_GPIO GPIOE
|
||||
#define ROTARY_ENCODER_GPIO_PIN_A LL_GPIO_PIN_10 // PE.10
|
||||
#define ROTARY_ENCODER_GPIO_PIN_B LL_GPIO_PIN_12 // PE.12
|
||||
#define ROTARY_ENCODER_POSITION() (((ROTARY_ENCODER_GPIO->IDR >> 12) & 0x01) + ((ROTARY_ENCODER_GPIO->IDR >> 9) & 0x02))
|
||||
#define ROTARY_ENCODER_POSITION (((ROTARY_ENCODER_GPIO->IDR >> 12) & 0x01) + ((ROTARY_ENCODER_GPIO->IDR >> 9) & 0x02))
|
||||
#define ROTARY_ENCODER_EXTI_LINE1 LL_EXTI_LINE_10
|
||||
#define ROTARY_ENCODER_EXTI_LINE2 LL_EXTI_LINE_12
|
||||
#define ROTARY_ENCODER_EXTI_PORT LL_SYSCFG_EXTI_PORTE
|
||||
@@ -127,7 +109,7 @@
|
||||
#define ROTARY_ENCODER_GPIO GPIOE
|
||||
#define ROTARY_ENCODER_GPIO_PIN_A LL_GPIO_PIN_9 // PE.9
|
||||
#define ROTARY_ENCODER_GPIO_PIN_B LL_GPIO_PIN_10 // PE.10
|
||||
#define ROTARY_ENCODER_POSITION() ((ROTARY_ENCODER_GPIO->IDR >> 9) & 0x03)
|
||||
#define ROTARY_ENCODER_POSITION ((ROTARY_ENCODER_GPIO->IDR >> 9) & 0x03)
|
||||
#define ROTARY_ENCODER_EXTI_LINE1 LL_EXTI_LINE_9
|
||||
#define ROTARY_ENCODER_EXTI_LINE2 LL_EXTI_LINE_10
|
||||
#define ROTARY_ENCODER_EXTI_PORT LL_SYSCFG_EXTI_PORTE
|
||||
@@ -246,158 +228,6 @@
|
||||
#define PWR_ON_GPIO GPIO_PIN(GPIOD, 0) // PD.00
|
||||
#endif
|
||||
|
||||
#if defined(RADIO_X9DP2019)
|
||||
#define STATUS_LEDS
|
||||
#define GPIO_LED_GPIO_ON gpio_clear
|
||||
#define GPIO_LED_GPIO_OFF gpio_set
|
||||
#define LED_RED_GPIO GPIO_PIN(GPIOA, 13)
|
||||
#elif defined(PCBXLITES)
|
||||
#define STATUS_LEDS
|
||||
#define GPIO_LED_GPIO_ON gpio_clear
|
||||
#define GPIO_LED_GPIO_OFF gpio_set
|
||||
#define LED_RED_GPIO GPIO_PIN(GPIOE, 4) // PE.04
|
||||
#define LED_BLUE_GPIO GPIO_PIN(GPIOE, 6) // PE.06
|
||||
#elif defined(PCBXLITE)
|
||||
#define STATUS_LEDS
|
||||
#define GPIO_LED_GPIO_ON gpio_clear
|
||||
#define GPIO_LED_GPIO_OFF gpio_set
|
||||
#define LED_GREEN_GPIO GPIO_PIN(GPIOE, 5) // PE.05
|
||||
#define LED_RED_GPIO GPIO_PIN(GPIOE, 4) // PE.04
|
||||
#define LED_BLUE_GPIO GPIO_PIN(GPIOE, 6) // PE.06
|
||||
#elif defined(PCBX7ACCESS)
|
||||
#define STATUS_LEDS
|
||||
#define GPIO_LED_GPIO_ON gpio_set
|
||||
#define GPIO_LED_GPIO_OFF gpio_clear
|
||||
#define LED_BLUE_GPIO GPIO_PIN(GPIOB, 1) // PB.01
|
||||
#define LED_RED_GPIO GPIO_PIN(GPIOC, 4) // PC.04
|
||||
#elif defined(RADIO_T8)
|
||||
#define STATUS_LEDS
|
||||
#define GPIO_LED_GPIO_ON gpio_set
|
||||
#define GPIO_LED_GPIO_OFF gpio_clear
|
||||
#define LED_GREEN_GPIO GPIO_PIN(GPIOB, 1) // PB.01
|
||||
#define LED_RED_GPIO GPIO_PIN(GPIOC, 4) // PC.04
|
||||
#define LED_BLUE_GPIO GPIO_PIN(GPIOC, 5) // PC.05
|
||||
#elif defined(RADIO_COMMANDO8)
|
||||
#define STATUS_LEDS
|
||||
#define GPIO_LED_GPIO_ON gpio_set
|
||||
#define GPIO_LED_GPIO_OFF gpio_clear
|
||||
#define LED_GREEN_GPIO GPIO_PIN(GPIOC, 0) // PC.00
|
||||
#define LED_RED_GPIO GPIO_PIN(GPIOC, 2) // PC.02
|
||||
#define LED_BLUE_GPIO GPIO_PIN(GPIOC, 1) // PC.01
|
||||
#elif defined(RADIO_ZORRO) || defined(RADIO_POCKET)
|
||||
#define STATUS_LEDS
|
||||
#define GPIO_LED_GPIO_ON gpio_set
|
||||
#define GPIO_LED_GPIO_OFF gpio_clear
|
||||
#define LED_GREEN_GPIO GPIO_PIN(GPIOE, 2) // PE.02
|
||||
#define LED_RED_GPIO GPIO_PIN(GPIOE, 13) // PE.13
|
||||
#define LED_BLUE_GPIO GPIO_PIN(GPIOA, 7) // PA.07
|
||||
#elif defined(RADIO_T14) || defined(RADIO_T12MAX) || defined(RADIO_TPROS)
|
||||
#define STATUS_LEDS
|
||||
#define GPIO_LED_GPIO_ON gpio_set
|
||||
#define GPIO_LED_GPIO_OFF gpio_clear
|
||||
#define LED_RED_GPIO GPIO_PIN(GPIOE, 2) // PE.02
|
||||
#define LED_BLUE_GPIO GPIO_PIN(GPIOE, 13) // PE.13
|
||||
#define LED_GREEN_GPIO GPIO_PIN(GPIOA, 7) // PA.07
|
||||
#elif defined(RADIO_TLITE) || defined(RADIO_TPRO) || defined(RADIO_TPROV2) || defined(RADIO_TX12)
|
||||
#define STATUS_LEDS
|
||||
#define GPIO_LED_GPIO_ON gpio_set
|
||||
#define GPIO_LED_GPIO_OFF gpio_clear
|
||||
#define LED_GREEN_GPIO GPIO_PIN(GPIOB, 1) // PB.01
|
||||
#define LED_RED_GPIO GPIO_PIN(GPIOC, 5) // PC.05
|
||||
#define LED_BLUE_GPIO GPIO_PIN(GPIOC, 4) // PC.04
|
||||
#elif defined(RADIO_FAMILY_T20) || defined(RADIO_BUMBLEBEE)
|
||||
#define STATUS_LEDS
|
||||
#define GPIO_LED_GPIO_ON gpio_set
|
||||
#define GPIO_LED_GPIO_OFF gpio_clear
|
||||
#define LED_GREEN_GPIO GPIO_PIN(GPIOG, 1) // PG.01
|
||||
#define LED_RED_GPIO GPIO_PIN(GPIOC, 5) // PC.05
|
||||
#define LED_BLUE_GPIO GPIO_PIN(GPIOC, 4) // PC.04
|
||||
#elif defined(RADIO_TX12MK2) || defined(RADIO_BOXER) || defined(RADIO_MT12) || defined(RADIO_GX12)
|
||||
#define STATUS_LEDS
|
||||
#define GPIO_LED_GPIO_ON gpio_set
|
||||
#define GPIO_LED_GPIO_OFF gpio_clear
|
||||
#define LED_GREEN_GPIO GPIO_PIN(GPIOA, 7) // PA.07
|
||||
#define LED_RED_GPIO GPIO_PIN(GPIOE, 13) // PE.13
|
||||
#define LED_BLUE_GPIO GPIO_PIN(GPIOE, 2) // PE.02
|
||||
#elif defined(RADIO_V14) || defined(RADIO_V12)
|
||||
#define STATUS_LEDS
|
||||
#define GPIO_LED_GPIO_ON gpio_set
|
||||
#define GPIO_LED_GPIO_OFF gpio_clear
|
||||
#define LED_GREEN_GPIO GPIO_PIN(GPIOE, 14) // PE.14
|
||||
#define LED_RED_GPIO GPIO_PIN(GPIOE, 13) // PE.13
|
||||
#define LED_BLUE_GPIO GPIO_PIN(GPIOE, 2) // PE.02
|
||||
#elif defined(PCBX7)
|
||||
#define STATUS_LEDS
|
||||
#define GPIO_LED_GPIO_ON gpio_set
|
||||
#define GPIO_LED_GPIO_OFF gpio_clear
|
||||
#define LED_GREEN_GPIO GPIO_PIN(GPIOC, 4) // PC.04
|
||||
#define LED_RED_GPIO GPIO_PIN(GPIOC, 5) // PC.05
|
||||
#define LED_BLUE_GPIO GPIO_PIN(GPIOB, 1) // PB.01
|
||||
#elif defined(PCBX9LITES)
|
||||
#define STATUS_LEDS
|
||||
#define GPIO_LED_GPIO_ON gpio_set
|
||||
#define GPIO_LED_GPIO_OFF gpio_clear
|
||||
#define LED_RED_GPIO GPIO_PIN(GPIOE, 5) // PE.05
|
||||
#define LED_BLUE_GPIO GPIO_PIN(GPIOE, 6) // PE.06
|
||||
#elif defined(PCBX9LITE)
|
||||
#define STATUS_LEDS
|
||||
#define GPIO_LED_GPIO_ON gpio_set
|
||||
#define GPIO_LED_GPIO_OFF gpio_clear
|
||||
#define LED_GREEN_GPIO GPIO_PIN(GPIOE, 4) // PE.04
|
||||
#define LED_RED_GPIO GPIO_PIN(GPIOE, 5) // PE.05
|
||||
#define LED_BLUE_GPIO GPIO_PIN(GPIOE, 6) // PE.06
|
||||
#endif
|
||||
|
||||
// LED Strip
|
||||
#if defined(RGBLEDS)
|
||||
#if defined(RADIO_GX12)
|
||||
#define LED_STRIP_LENGTH 8
|
||||
#define BLING_LED_STRIP_START 0
|
||||
#define BLING_LED_STRIP_LENGTH 0
|
||||
#define CFS_LED_STRIP_START 0
|
||||
#define CFS_LED_STRIP_LENGTH 8
|
||||
#define CFS_LEDS_PER_SWITCH 1
|
||||
#else
|
||||
#define LED_STRIP_LENGTH 7
|
||||
#define BLING_LED_STRIP_START 0
|
||||
#define BLING_LED_STRIP_LENGTH 7
|
||||
#endif
|
||||
#define LED_STRIP_GPIO GPIO_PIN(GPIOA, 8) // PA.08 / TIM1_CH1
|
||||
#define LED_STRIP_GPIO_AF LL_GPIO_AF_1 // TIM1 / TIM2
|
||||
#define LED_STRIP_TIMER TIM1
|
||||
#define LED_STRIP_TIMER_FREQ (PERI2_FREQUENCY * TIMER_MULT_APB2)
|
||||
#define LED_STRIP_TIMER_CHANNEL LL_TIM_CHANNEL_CH1
|
||||
#define LED_STRIP_TIMER_DMA DMA2
|
||||
#define LED_STRIP_TIMER_DMA_CHANNEL LL_DMA_CHANNEL_6
|
||||
#define LED_STRIP_TIMER_DMA_STREAM LL_DMA_STREAM_5
|
||||
#define LED_STRIP_TIMER_DMA_IRQn DMA2_Stream5_IRQn
|
||||
#define LED_STRIP_TIMER_DMA_IRQHandler DMA2_Stream5_IRQHandler
|
||||
#define LED_STRIP_REFRESH_PERIOD 50 //ms
|
||||
#elif defined(RADIO_T14) || defined(RADIO_V14) || defined(RADIO_V12)
|
||||
#if defined(RADIO_V14)
|
||||
#define LED_STRIP_LENGTH 38
|
||||
#define BLING_LED_STRIP_START 6
|
||||
#define BLING_LED_STRIP_LENGTH 32
|
||||
#elif defined(RADIO_V12)
|
||||
#define LED_STRIP_LENGTH 6 // 6POS switches only?
|
||||
#else
|
||||
#define LED_STRIP_LENGTH 1
|
||||
#define BLING_LED_STRIP_START 0
|
||||
#define BLING_LED_STRIP_LENGTH 1
|
||||
#endif
|
||||
#define LED_STRIP_GPIO GPIO_PIN(GPIOA, 10) // PA.10 / TIM1_CH3
|
||||
#define LED_STRIP_GPIO_AF LL_GPIO_AF_1
|
||||
#define LED_STRIP_TIMER TIM1
|
||||
#define LED_STRIP_TIMER_FREQ (PERI2_FREQUENCY * TIMER_MULT_APB2)
|
||||
#define LED_STRIP_TIMER_CHANNEL LL_TIM_CHANNEL_CH3
|
||||
#define LED_STRIP_TIMER_DMA DMA2
|
||||
#define LED_STRIP_TIMER_DMA_CHANNEL LL_DMA_CHANNEL_6
|
||||
#define LED_STRIP_TIMER_DMA_STREAM LL_DMA_STREAM_5
|
||||
#define LED_STRIP_TIMER_DMA_IRQn DMA2_Stream5_IRQn
|
||||
#define LED_STRIP_TIMER_DMA_IRQHandler DMA2_Stream5_IRQHandler
|
||||
#define LED_STRIP_REFRESH_PERIOD 50 //ms
|
||||
#endif
|
||||
|
||||
#if defined(FUNCTION_SWITCHES)
|
||||
#if defined(RADIO_BUMBLEBEE)
|
||||
#define GPIO_FSLED_GPIO_ON GPIO_SetBits
|
||||
@@ -950,13 +780,6 @@
|
||||
#endif
|
||||
|
||||
// LCD driver
|
||||
#if defined(RADIO_TX12) || defined(RADIO_TX12MK2) || defined(RADIO_BOXER) || defined(RADIO_ZORRO) || defined(RADIO_POCKET) || defined(RADIO_FAMILY_JUMPER_T12) || defined(RADIO_T8) || defined(RADIO_COMMANDO8) || defined(RADIO_TPRO) || defined(RADIO_TPROV2) || defined(RADIO_TPROS) || defined(RADIO_FAMILY_T20) || defined(RADIO_MT12) || defined(RADIO_T12MAX) || defined(RADIO_V12) || defined(RADIO_BUMBLEBEE)
|
||||
#define LCD_VERTICAL_INVERT
|
||||
#endif
|
||||
#if defined(RADIO_LR3PRO) || defined(RADIO_TPROV2) || defined(RADIO_TPROS) || defined(RADIO_FAMILY_T20) || defined(RADIO_T14) || defined(RADIO_BUMBLEBEE) || defined(RADIO_GX12) || defined(RADIO_V14)
|
||||
#define LCD_HORIZONTAL_INVERT
|
||||
#define OLED_SCREEN
|
||||
#endif
|
||||
#if defined(RADIO_T14) || defined(RADIO_GX12) || defined(RADIO_V14)
|
||||
#define SSD1309_LCD
|
||||
#endif
|
||||
@@ -1152,39 +975,6 @@
|
||||
#endif
|
||||
#endif
|
||||
|
||||
// Haptic
|
||||
#if defined(PCBXLITE) || defined(PCBX9LITE) || defined(RADIO_ZORRO) || defined(RADIO_POCKET) || defined(RADIO_TX12MK2)|| defined(RADIO_BOXER) || defined(RADIO_MT12) || defined(RADIO_T20V2) || defined(RADIO_T14) || defined(RADIO_T12MAX) || defined(RADIO_TPROS) || defined(RADIO_V14) || defined(RADIO_V12) || defined(RADIO_BUMBLEBEE) || defined(RADIO_GX12)
|
||||
#define HAPTIC_PWM
|
||||
#define HAPTIC_GPIO GPIO_PIN(GPIOB, 3) // PB.03
|
||||
#define HAPTIC_GPIO_AF GPIO_AF1
|
||||
#define HAPTIC_TIMER TIM2 // Timer 2 Channel1
|
||||
#define HAPTIC_TIMER_FREQ (PERI1_FREQUENCY * TIMER_MULT_APB1)
|
||||
#define HAPTIC_COUNTER_REGISTER HAPTIC_TIMER->CCR2
|
||||
#define HAPTIC_CCMR1 TIM_CCMR1_OC2M_1 | TIM_CCMR1_OC2M_2
|
||||
#define HAPTIC_CCER TIM_CCER_CC2E
|
||||
#define BACKLIGHT_BDTR TIM_BDTR_MOE
|
||||
#elif defined(RADIO_X9DP2019) || defined(RADIO_X7ACCESS)
|
||||
#define HAPTIC_PWM
|
||||
#define HAPTIC_GPIO GPIO_PIN(GPIOA, 10) // PA.10
|
||||
#define HAPTIC_GPIO_AF GPIO_AF1
|
||||
#define HAPTIC_TIMER TIM1 // Timer1 Channel3
|
||||
#define HAPTIC_TIMER_FREQ (PERI2_FREQUENCY * TIMER_MULT_APB2)
|
||||
#define HAPTIC_COUNTER_REGISTER HAPTIC_TIMER->CCR3
|
||||
#define HAPTIC_CCMR2 TIM_CCMR2_OC3M_1 | TIM_CCMR2_OC3M_2
|
||||
#define HAPTIC_CCER TIM_CCER_CC3E
|
||||
#elif defined(PCBX9E) || defined(PCBX9DP) || defined(PCBX7)
|
||||
#define HAPTIC_PWM
|
||||
#define HAPTIC_GPIO GPIO_PIN(GPIOB, 8) // PB.08
|
||||
#define HAPTIC_GPIO_AF GPIO_AF3
|
||||
#define HAPTIC_TIMER TIM10 // Timer 10 Channel1
|
||||
#define HAPTIC_TIMER_FREQ (PERI2_FREQUENCY * TIMER_MULT_APB2)
|
||||
#define HAPTIC_COUNTER_REGISTER HAPTIC_TIMER->CCR1
|
||||
#define HAPTIC_CCMR1 TIM_CCMR1_OC1M_1 | TIM_CCMR1_OC1M_2
|
||||
#define HAPTIC_CCER TIM_CCER_CC1E
|
||||
#else
|
||||
#define HAPTIC_GPIO GPIO_PIN(GPIOC, 12) // PC.12
|
||||
#endif
|
||||
|
||||
#if defined(RADIO_BOXER) || defined(RADIO_FAMILY_T20) || defined(RADIO_X9DP2019) || defined (RADIO_V14) || defined(RADIO_GX12)
|
||||
// Flysky Hall Stick
|
||||
#define FLYSKY_HALL_SERIAL_USART UART4
|
||||
@@ -1256,29 +1046,3 @@
|
||||
#define STORAGE_BLUETOOTH
|
||||
#endif
|
||||
#endif
|
||||
|
||||
// Millisecond timer
|
||||
#define MS_TIMER TIM14
|
||||
#define MS_TIMER_IRQn TIM8_TRG_COM_TIM14_IRQn
|
||||
#define MS_TIMER_IRQHandler TIM8_TRG_COM_TIM14_IRQHandler
|
||||
|
||||
// Mixer scheduler timer
|
||||
#define MIXER_SCHEDULER_TIMER TIM12
|
||||
#define MIXER_SCHEDULER_TIMER_FREQ (PERI1_FREQUENCY * TIMER_MULT_APB1)
|
||||
#define MIXER_SCHEDULER_TIMER_IRQn TIM8_BRK_TIM12_IRQn
|
||||
#define MIXER_SCHEDULER_TIMER_IRQHandler TIM8_BRK_TIM12_IRQHandler
|
||||
|
||||
// LCD driver
|
||||
#if defined(PCBX9D) || defined(PCBX9DP) || defined(PCBX9E)
|
||||
#define LCD_W 212
|
||||
#define LCD_H 64
|
||||
#define LCD_DEPTH 4
|
||||
#else
|
||||
#define LCD_W 128
|
||||
#define LCD_H 64
|
||||
#define LCD_DEPTH 1
|
||||
#endif
|
||||
|
||||
#if defined(PCBX9DP) || defined(PCBX9E)
|
||||
#define HAS_BACKLIGHT_COLOR
|
||||
#endif
|
||||
|
||||
@@ -35,7 +35,7 @@
|
||||
#include "edgetx.h"
|
||||
#endif
|
||||
|
||||
#if defined(OLED_SCREEN)
|
||||
#if OLED_SCREEN
|
||||
#define LCD_CONTRAST_OFFSET 0
|
||||
#elif defined(RADIO_FAMILY_JUMPER_T12) || defined(MANUFACTURER_RADIOMASTER) || defined(RADIO_COMMANDO8) || defined(RADIO_TPRO) || defined(RADIO_T12MAX) || defined(RADIO_V12) || defined(RADIO_V14)
|
||||
#define LCD_CONTRAST_OFFSET -10
|
||||
@@ -158,7 +158,7 @@ void lcdStart()
|
||||
gpio_set(OLED_VCC_CS);
|
||||
#endif
|
||||
#else
|
||||
#if defined(LCD_VERTICAL_INVERT)
|
||||
#if LCD_VERTICAL_INVERT
|
||||
// T12 and TX12 have the screen inverted.
|
||||
#if defined(RADIO_V12)
|
||||
lcdWriteCommand(0xe2); // (14) Soft reset
|
||||
@@ -174,7 +174,7 @@ void lcdStart()
|
||||
lcdWriteCommand(0xa6); // Set display mode
|
||||
#else
|
||||
lcdWriteCommand(0xe2); // (14) Soft reset
|
||||
#if defined(LCD_HORIZONTAL_INVERT)
|
||||
#if LCD_HORIZONTAL_INVERT
|
||||
lcdWriteCommand(0xa1); // Set seg
|
||||
#else
|
||||
lcdWriteCommand(0xa0); // Set seg
|
||||
@@ -295,7 +295,7 @@ void lcdRefresh(bool wait)
|
||||
#else
|
||||
lcdWriteCommand(0x10); // Column addr 0
|
||||
lcdWriteCommand(0xB0 | y); // Page addr y
|
||||
#if !defined(LCD_VERTICAL_INVERT)
|
||||
#if !LCD_VERTICAL_INVERT
|
||||
lcdWriteCommand(0x04);
|
||||
#endif
|
||||
#endif
|
||||
|
||||
@@ -65,12 +65,7 @@ SAI1_Block_A: PDM_CLOCK (1 MHz bit-clock output on SAI1_CK1 / PE5, !FLYSKY_GIMBA
|
||||
#ifndef _HAL_H_
|
||||
#define _HAL_H_
|
||||
|
||||
#define CPU_FREQ 480000000
|
||||
|
||||
#define PERI1_FREQUENCY 120000000
|
||||
#define PERI2_FREQUENCY 120000000
|
||||
#define TIMER_MULT_APB1 2
|
||||
#define TIMER_MULT_APB2 2
|
||||
#include "hal_settings.h"
|
||||
|
||||
// Expanders
|
||||
#define IO_INT_GPIO GPIO_PIN(GPIOD, 3)
|
||||
@@ -136,22 +131,12 @@ SAI1_Block_A: PDM_CLOCK (1 MHz bit-clock output on SAI1_CK1 / PE5, !FLYSKY_GIMBA
|
||||
#define LCD_SPI_MOSI_GPIO GPIOI
|
||||
#define LCD_SPI_MOSI_GPIO_PIN LL_GPIO_PIN_9
|
||||
|
||||
#define LTDC_IRQ_PRIO 4
|
||||
#define DMA_SCREEN_IRQ_PRIO 6
|
||||
|
||||
#define LCD_RESET_GPIO GPIOJ
|
||||
#define LCD_RESET_GPIO_PIN LL_GPIO_PIN_12
|
||||
|
||||
#define LCD_TE_GPIO GPIOI
|
||||
#define LCD_TE_GPIO_PIN LL_GPIO_PIN_4
|
||||
|
||||
// Backlight
|
||||
#define BACKLIGHT_GPIO GPIO_PIN(GPIOA, 10) // TIM1_CH3
|
||||
#define BACKLIGHT_TIMER TIM1
|
||||
#define BACKLIGHT_TIMER_CHANNEL LL_TIM_CHANNEL_CH3
|
||||
#define BACKLIGHT_GPIO_AF GPIO_AF1
|
||||
#define BACKLIGHT_TIMER_FREQ (PERI1_FREQUENCY * TIMER_MULT_APB1)
|
||||
|
||||
// QSPI Flash
|
||||
#define QSPI_CLK_GPIO GPIO_PIN(GPIOF, 10)
|
||||
#define QSPI_CLK_GPIO_AF GPIO_AF9
|
||||
@@ -231,41 +216,6 @@ SAI1_Block_A: PDM_CLOCK (1 MHz bit-clock output on SAI1_CK1 / PE5, !FLYSKY_GIMBA
|
||||
#define I2C_B1_GPIO_AF LL_GPIO_AF_4
|
||||
#define I2C_B1_CLK_RATE 400000
|
||||
|
||||
// Haptic: TIM3_CH2
|
||||
#define HAPTIC_PWM
|
||||
#define HAPTIC_GPIO GPIO_PIN(GPIOC, 7)
|
||||
#define HAPTIC_GPIO_TIMER TIM3
|
||||
#define HAPTIC_GPIO_AF GPIO_AF2
|
||||
#define HAPTIC_TIMER_OUTPUT_ENABLE TIM_CCER_CC2E | TIM_CCER_CC2NE;
|
||||
#define HAPTIC_TIMER_MODE TIM_CCMR1_OC2M_1 | TIM_CCMR1_OC2M_2 | TIM_CCMR1_OC2PE
|
||||
#define HAPTIC_TIMER_COMPARE_VALUE HAPTIC_GPIO_TIMER->CCR2
|
||||
|
||||
// LED Strip
|
||||
#define LED_STRIP_LENGTH 26 // 6POS + 2 rings of 10
|
||||
#define BLING_LED_STRIP_START 6
|
||||
#define BLING_LED_STRIP_LENGTH 20
|
||||
#define CFS_LED_STRIP_START 0
|
||||
#define CFS_LED_STRIP_LENGTH 6
|
||||
#define CFS_LEDS_PER_SWITCH 1
|
||||
#define LED_STRIP_GPIO GPIO_PIN(GPIOA, 0) // PA.00 / TIM2_CH1
|
||||
#define LED_STRIP_GPIO_AF LL_GPIO_AF_1 // TIM1/2/16/17
|
||||
#define LED_STRIP_TIMER TIM2
|
||||
#define LED_STRIP_TIMER_FREQ (PERI1_FREQUENCY * TIMER_MULT_APB1)
|
||||
#define LED_STRIP_TIMER_CHANNEL LL_TIM_CHANNEL_CH1
|
||||
#define LED_STRIP_TIMER_DMA DMA1
|
||||
#define LED_STRIP_TIMER_DMA_CHANNEL LL_DMAMUX1_REQ_TIM2_UP
|
||||
#define LED_STRIP_TIMER_DMA_STREAM LL_DMA_STREAM_0
|
||||
#define LED_STRIP_TIMER_DMA_IRQn DMA1_Stream0_IRQn
|
||||
#define LED_STRIP_TIMER_DMA_IRQHandler DMA1_Stream0_IRQHandler
|
||||
#define LED_STRIP_REFRESH_PERIOD 50 //ms
|
||||
|
||||
#define STATUS_LEDS
|
||||
#define GPIO_LED_GPIO_ON gpio_set
|
||||
#define GPIO_LED_GPIO_OFF gpio_clear
|
||||
#define LED_RED_GPIO GPIO_PIN(GPIOI, 8) // PI.08
|
||||
#define LED_GREEN_GPIO GPIO_PIN(GPIOI, 11) // PI.11
|
||||
#define LED_BLUE_GPIO GPIO_PIN(GPIOI, 10) // PI.10
|
||||
|
||||
// Internal Module
|
||||
#define INTMODULE_PWR_GPIO GPIO_PIN(GPIOB, 13) // PB.13
|
||||
#define INTMODULE_BOOTCMD_GPIO GPIO_PIN(GPIOH, 9) // PH.09
|
||||
@@ -399,71 +349,6 @@ SAI1_Block_A: PDM_CLOCK (1 MHz bit-clock output on SAI1_CK1 / PE5, !FLYSKY_GIMBA
|
||||
#define EXTI2_IRQ_Priority 9
|
||||
#endif
|
||||
|
||||
// IMU
|
||||
#define IMU_I2C_BUS I2C_Bus_1
|
||||
#define IMU_INT_GPIO GPIO_PIN(GPIOG, 13) // PG.13
|
||||
#define IMU_INVERT_X // X axis mounted reversed (default, user-overridable)
|
||||
#define IMU_INVERT_Y // Y axis mounted reversed (default, user-overridable)
|
||||
|
||||
// IMU_INT_EXTI IRQ
|
||||
#if !defined(USE_EXTI15_10_IRQ)
|
||||
#define USE_EXTI15_10_IRQ
|
||||
#define EXTI15_10_IRQ_Priority 6
|
||||
#endif
|
||||
|
||||
|
||||
//ROTARY emulation for trims as buttons
|
||||
#define ROTARY_ENCODER_NAVIGATION
|
||||
// Rotary Encoder
|
||||
#define ROTARY_ENCODER_INVERTED
|
||||
#define ROTARY_ENCODER_GPIO_A GPIOI
|
||||
#define ROTARY_ENCODER_GPIO_PIN_A LL_GPIO_PIN_7
|
||||
#define ROTARY_ENCODER_GPIO_B GPIOJ
|
||||
#define ROTARY_ENCODER_GPIO_PIN_B LL_GPIO_PIN_8
|
||||
#define ROTARY_ENCODER_POSITION() (((ROTARY_ENCODER_GPIO_A->IDR >> 7) & 0x01)|((ROTARY_ENCODER_GPIO_B->IDR >> 7) & 0x02))
|
||||
#define ROTARY_ENCODER_EXTI_LINE1 LL_EXTI_LINE_7
|
||||
#define ROTARY_ENCODER_EXTI_LINE2 LL_EXTI_LINE_8
|
||||
#if !defined(USE_EXTI7_IRQ)
|
||||
#define USE_EXTI7_IRQ
|
||||
#define EXTI7_IRQ_Priority 5
|
||||
#endif
|
||||
#if !defined(USE_EXTI8_IRQ)
|
||||
#define USE_EXTI8_IRQ
|
||||
#define EXTI8_IRQ_Priority 5
|
||||
#endif
|
||||
#define ROTARY_ENCODER_EXTI_PORT_A LL_SYSCFG_EXTI_PORTI
|
||||
#define ROTARY_ENCODER_EXTI_PORT_B LL_SYSCFG_EXTI_PORTJ
|
||||
#define ROTARY_ENCODER_EXTI_SYS_LINE1 LL_SYSCFG_EXTI_LINE7
|
||||
#define ROTARY_ENCODER_EXTI_SYS_LINE2 LL_SYSCFG_EXTI_LINE8
|
||||
#define ROTARY_ENCODER_TIMER TIM17
|
||||
#define ROTARY_ENCODER_TIMER_IRQn TIM17_IRQn
|
||||
#define ROTARY_ENCODER_TIMER_IRQHandler TIM17_IRQHandler
|
||||
|
||||
// Millisecond timer
|
||||
#define MS_TIMER TIM14
|
||||
#define MS_TIMER_IRQn TIM8_TRG_COM_TIM14_IRQn
|
||||
#define MS_TIMER_IRQHandler TIM8_TRG_COM_TIM14_IRQHandler
|
||||
|
||||
// Mixer scheduler timer
|
||||
#define MIXER_SCHEDULER_TIMER TIM12
|
||||
#define MIXER_SCHEDULER_TIMER_FREQ (PERI1_FREQUENCY * TIMER_MULT_APB1)
|
||||
#define MIXER_SCHEDULER_TIMER_IRQn TIM8_BRK_TIM12_IRQn
|
||||
#define MIXER_SCHEDULER_TIMER_IRQHandler TIM8_BRK_TIM12_IRQHandler
|
||||
|
||||
#define LANDSCAPE_LCD true
|
||||
#define PORTRAIT_LCD false
|
||||
#define LANDSCAPE_LCD_SML false
|
||||
#define LANDSCAPE_LCD_STD true
|
||||
#define LANDSCAPE_LCD_LRG false
|
||||
|
||||
#define LCD_W 480
|
||||
#define LCD_H 320
|
||||
|
||||
#define LCD_PHYS_W LCD_H
|
||||
#define LCD_PHYS_H LCD_W
|
||||
|
||||
#define LCD_DEPTH 16
|
||||
|
||||
#define LSE_DRIVE_STRENGTH RCC_LSEDRIVE_HIGH
|
||||
|
||||
#endif // _HAL_H_
|
||||
|
||||
@@ -72,12 +72,7 @@ USART6: INTMODULE_USART
|
||||
#ifndef _HAL_H_
|
||||
#define _HAL_H_
|
||||
|
||||
#define CPU_FREQ 480000000
|
||||
|
||||
#define PERI1_FREQUENCY 120000000
|
||||
#define PERI2_FREQUENCY 120000000
|
||||
#define TIMER_MULT_APB1 2
|
||||
#define TIMER_MULT_APB2 2
|
||||
#include "hal_settings.h"
|
||||
|
||||
// Keys
|
||||
#define KEYS_GPIO_REG_PAGEDN GPIOA
|
||||
@@ -132,91 +127,6 @@ USART6: INTMODULE_USART
|
||||
#define TRIMS_GPIO_REG_LSU GPIOH
|
||||
#define TRIMS_GPIO_PIN_LSU LL_GPIO_PIN_13
|
||||
|
||||
// Extender Switches
|
||||
#define SWITCHES_A_3POS
|
||||
#define SWITCHES_GPIO_REG_A_H
|
||||
#define SWITCHES_GPIO_PIN_A_H PCA95XX_P15
|
||||
#define SWITCHES_GPIO_REG_A_L
|
||||
#define SWITCHES_GPIO_PIN_A_L PCA95XX_P14
|
||||
|
||||
#define SWITCHES_B_3POS
|
||||
#define SWITCHES_GPIO_REG_B_H
|
||||
#define SWITCHES_GPIO_PIN_B_H PCA95XX_P13
|
||||
#define SWITCHES_GPIO_REG_B_L
|
||||
#define SWITCHES_GPIO_PIN_B_L PCA95XX_P12
|
||||
|
||||
#define SWITCHES_C_3POS
|
||||
#define SWITCHES_GPIO_REG_C_H
|
||||
#define SWITCHES_GPIO_PIN_C_H PCA95XX_P11
|
||||
#define SWITCHES_GPIO_REG_C_L
|
||||
#define SWITCHES_GPIO_PIN_C_L PCA95XX_P10
|
||||
|
||||
#define SWITCHES_D_3POS
|
||||
#define SWITCHES_GPIO_REG_D_H
|
||||
#define SWITCHES_GPIO_PIN_D_H PCA95XX_P7
|
||||
#define SWITCHES_GPIO_REG_D_L
|
||||
#define SWITCHES_GPIO_PIN_D_L PCA95XX_P6
|
||||
|
||||
#define SWITCHES_E_3POS
|
||||
#define SWITCHES_GPIO_REG_E_H
|
||||
#define SWITCHES_GPIO_PIN_E_H PCA95XX_P16
|
||||
#define SWITCHES_GPIO_REG_E_L
|
||||
#define SWITCHES_GPIO_PIN_E_L PCA95XX_P17
|
||||
|
||||
#define SWITCHES_F_2POS
|
||||
#define SWITCHES_GPIO_REG_F
|
||||
#define SWITCHES_GPIO_PIN_F PCA95XX_P1
|
||||
|
||||
#define SWITCHES_G_3POS
|
||||
#define SWITCHES_GPIO_REG_G_H
|
||||
#define SWITCHES_GPIO_PIN_G_H PCA95XX_P4
|
||||
#define SWITCHES_GPIO_REG_G_L
|
||||
#define SWITCHES_GPIO_PIN_G_L PCA95XX_P5
|
||||
|
||||
#define SWITCHES_H_2POS
|
||||
#define SWITCHES_GPIO_REG_H
|
||||
#define SWITCHES_GPIO_PIN_H PCA95XX_P0
|
||||
|
||||
#define SWITCHES_I_2POS
|
||||
#define SWITCHES_GPIO_REG_I
|
||||
#define SWITCHES_GPIO_PIN_I PCA95XX_P2
|
||||
|
||||
#define SWITCHES_J_2POS
|
||||
#define SWITCHES_GPIO_REG_J
|
||||
#define SWITCHES_GPIO_PIN_J PCA95XX_P3
|
||||
|
||||
// function switches
|
||||
//SW1
|
||||
#define SWITCHES_GPIO_REG_K
|
||||
#define SWITCHES_GPIO_PIN_K PCA95XX_P0
|
||||
#define SWITCHES_K_CFS_IDX 0
|
||||
#define FUNCTION_SWITCH_1 SK
|
||||
//SW2
|
||||
#define SWITCHES_GPIO_REG_L
|
||||
#define SWITCHES_GPIO_PIN_L PCA95XX_P1
|
||||
#define SWITCHES_L_CFS_IDX 1
|
||||
#define FUNCTION_SWITCH_2 SL
|
||||
//SW3
|
||||
#define SWITCHES_GPIO_REG_M
|
||||
#define SWITCHES_GPIO_PIN_M PCA95XX_P2
|
||||
#define SWITCHES_M_CFS_IDX 2
|
||||
#define FUNCTION_SWITCH_3 SM
|
||||
//SW4
|
||||
#define SWITCHES_GPIO_REG_N
|
||||
#define SWITCHES_GPIO_PIN_N PCA95XX_P3
|
||||
#define SWITCHES_N_CFS_IDX 3
|
||||
#define FUNCTION_SWITCH_4 SN
|
||||
//SW5
|
||||
#define SWITCHES_GPIO_REG_O
|
||||
#define SWITCHES_GPIO_PIN_O PCA95XX_P4
|
||||
#define SWITCHES_O_CFS_IDX 4
|
||||
#define FUNCTION_SWITCH_5 SO
|
||||
//SW6
|
||||
#define SWITCHES_GPIO_REG_P
|
||||
#define SWITCHES_GPIO_PIN_P PCA95XX_P5
|
||||
#define SWITCHES_P_CFS_IDX 5
|
||||
#define FUNCTION_SWITCH_6 SP
|
||||
|
||||
// Expanders
|
||||
#define IO_INT_GPIO GPIO_PIN(GPIOD, 3)
|
||||
#define IO_RESET_GPIO GPIO_PIN(GPIOG, 10)
|
||||
@@ -343,19 +253,9 @@ USART6: INTMODULE_USART
|
||||
|
||||
// LCD
|
||||
|
||||
#define LTDC_IRQ_PRIO 4
|
||||
#define DMA_SCREEN_IRQ_PRIO 6
|
||||
|
||||
#define LCD_RESET_GPIO GPIOJ
|
||||
#define LCD_RESET_GPIO_PIN LL_GPIO_PIN_12
|
||||
|
||||
// Backlight
|
||||
#define BACKLIGHT_GPIO GPIO_PIN(GPIOA, 10) // TIM1_CH3
|
||||
#define BACKLIGHT_TIMER TIM1
|
||||
#define BACKLIGHT_TIMER_CHANNEL LL_TIM_CHANNEL_CH3
|
||||
#define BACKLIGHT_GPIO_AF GPIO_AF1
|
||||
#define BACKLIGHT_TIMER_FREQ (PERI1_FREQUENCY * TIMER_MULT_APB1)
|
||||
|
||||
// QSPI Flash
|
||||
#define QSPI_CLK_GPIO GPIO_PIN(GPIOF, 10)
|
||||
#define QSPI_CLK_GPIO_AF GPIO_AF9
|
||||
@@ -443,41 +343,6 @@ USART6: INTMODULE_USART
|
||||
#define I2C_B2_GPIO_AF LL_GPIO_AF_4
|
||||
#define I2C_B2_CLK_RATE 400000
|
||||
|
||||
// Haptic: TIM3_CH2
|
||||
#define HAPTIC_PWM
|
||||
#define HAPTIC_GPIO GPIO_PIN(GPIOC, 7)
|
||||
#define HAPTIC_GPIO_TIMER TIM3
|
||||
#define HAPTIC_GPIO_AF GPIO_AF2
|
||||
#define HAPTIC_TIMER_OUTPUT_ENABLE TIM_CCER_CC2E | TIM_CCER_CC2NE;
|
||||
#define HAPTIC_TIMER_MODE TIM_CCMR1_OC2M_1 | TIM_CCMR1_OC2M_2 | TIM_CCMR1_OC2PE
|
||||
#define HAPTIC_TIMER_COMPARE_VALUE HAPTIC_GPIO_TIMER->CCR2
|
||||
|
||||
// LED Strip
|
||||
#define LED_STRIP_LENGTH 26 // 6POS + 2 rings of 10
|
||||
#define BLING_LED_STRIP_START 6
|
||||
#define BLING_LED_STRIP_LENGTH 20
|
||||
#define CFS_LED_STRIP_START 0
|
||||
#define CFS_LED_STRIP_LENGTH 6
|
||||
#define CFS_LEDS_PER_SWITCH 1
|
||||
#define LED_STRIP_GPIO GPIO_PIN(GPIOA, 0) // PA.00 / TIM2_CH1
|
||||
#define LED_STRIP_GPIO_AF LL_GPIO_AF_1 // TIM1/2/16/17
|
||||
#define LED_STRIP_TIMER TIM2
|
||||
#define LED_STRIP_TIMER_FREQ (PERI1_FREQUENCY * TIMER_MULT_APB1)
|
||||
#define LED_STRIP_TIMER_CHANNEL LL_TIM_CHANNEL_CH1
|
||||
#define LED_STRIP_TIMER_DMA DMA1
|
||||
#define LED_STRIP_TIMER_DMA_CHANNEL LL_DMAMUX1_REQ_TIM2_UP
|
||||
#define LED_STRIP_TIMER_DMA_STREAM LL_DMA_STREAM_0
|
||||
#define LED_STRIP_TIMER_DMA_IRQn DMA1_Stream0_IRQn
|
||||
#define LED_STRIP_TIMER_DMA_IRQHandler DMA1_Stream0_IRQHandler
|
||||
#define LED_STRIP_REFRESH_PERIOD 50 //ms
|
||||
|
||||
#define STATUS_LEDS
|
||||
#define GPIO_LED_GPIO_ON gpio_set
|
||||
#define GPIO_LED_GPIO_OFF gpio_clear
|
||||
#define LED_RED_GPIO GPIO_PIN(GPIOI, 8) // PI.08
|
||||
#define LED_GREEN_GPIO GPIO_PIN(GPIOI, 11) // PI.11
|
||||
#define LED_BLUE_GPIO GPIO_PIN(GPIOI, 10) // PI.10
|
||||
|
||||
// Internal Module
|
||||
#define INTMODULE_PWR_GPIO GPIO_PIN(GPIOB, 13) // PB.13
|
||||
#define INTMODULE_BOOTCMD_GPIO GPIO_PIN(GPIOH, 9) // PH.09
|
||||
@@ -599,61 +464,6 @@ USART6: INTMODULE_USART
|
||||
#define EXTI2_IRQ_Priority 9
|
||||
#endif
|
||||
|
||||
#define IMU_I2C_BUS I2C_Bus_2
|
||||
#define IMU_INT_GPIO GPIO_PIN(GPIOG, 13) // PG.13
|
||||
#define IMU_INVERT_X // X axis mounted reversed (default, user-overridable)
|
||||
#define IMU_INVERT_Y // Y axis mounted reversed (default, user-overridable)
|
||||
#if !defined(USE_EXTI15_10_IRQ)
|
||||
#define USE_EXTI15_10_IRQ
|
||||
#define EXTI15_10_IRQ_Priority 6
|
||||
#endif
|
||||
|
||||
//ROTARY emulation for trims as buttons
|
||||
#define ROTARY_ENCODER_NAVIGATION
|
||||
// Rotary Encoder
|
||||
#define ROTARY_ENCODER_INVERTED
|
||||
#define ROTARY_ENCODER_GPIO_A GPIOI
|
||||
#define ROTARY_ENCODER_GPIO_PIN_A LL_GPIO_PIN_7
|
||||
#define ROTARY_ENCODER_GPIO_B GPIOJ
|
||||
#define ROTARY_ENCODER_GPIO_PIN_B LL_GPIO_PIN_8
|
||||
#define ROTARY_ENCODER_POSITION() (((ROTARY_ENCODER_GPIO_A->IDR >> 7) & 0x01)|((ROTARY_ENCODER_GPIO_B->IDR >> 7) & 0x02))
|
||||
#define ROTARY_ENCODER_EXTI_LINE1 LL_EXTI_LINE_7
|
||||
#define ROTARY_ENCODER_EXTI_LINE2 LL_EXTI_LINE_8
|
||||
#if !defined(USE_EXTI7_IRQ)
|
||||
#define USE_EXTI7_IRQ
|
||||
#define EXTI7_IRQ_Priority 5
|
||||
#endif
|
||||
#if !defined(USE_EXTI8_IRQ)
|
||||
#define USE_EXTI8_IRQ
|
||||
#define EXTI8_IRQ_Priority 5
|
||||
#endif
|
||||
#define ROTARY_ENCODER_EXTI_PORT_A LL_SYSCFG_EXTI_PORTI
|
||||
#define ROTARY_ENCODER_EXTI_PORT_B LL_SYSCFG_EXTI_PORTJ
|
||||
#define ROTARY_ENCODER_EXTI_SYS_LINE1 LL_SYSCFG_EXTI_LINE7
|
||||
#define ROTARY_ENCODER_EXTI_SYS_LINE2 LL_SYSCFG_EXTI_LINE8
|
||||
#define ROTARY_ENCODER_TIMER TIM17
|
||||
#define ROTARY_ENCODER_TIMER_IRQn TIM17_IRQn
|
||||
#define ROTARY_ENCODER_TIMER_IRQHandler TIM17_IRQHandler
|
||||
|
||||
// Millisecond timer
|
||||
#define MS_TIMER TIM14
|
||||
#define MS_TIMER_IRQn TIM8_TRG_COM_TIM14_IRQn
|
||||
#define MS_TIMER_IRQHandler TIM8_TRG_COM_TIM14_IRQHandler
|
||||
|
||||
// Mixer scheduler timer
|
||||
#define MIXER_SCHEDULER_TIMER TIM12
|
||||
#define MIXER_SCHEDULER_TIMER_FREQ (PERI1_FREQUENCY * TIMER_MULT_APB1)
|
||||
#define MIXER_SCHEDULER_TIMER_IRQn TIM8_BRK_TIM12_IRQn
|
||||
#define MIXER_SCHEDULER_TIMER_IRQHandler TIM8_BRK_TIM12_IRQHandler
|
||||
|
||||
#define LCD_W 800
|
||||
#define LCD_H 480
|
||||
|
||||
#define LCD_PHYS_W LCD_W
|
||||
#define LCD_PHYS_H LCD_H
|
||||
|
||||
#define LCD_DEPTH 16
|
||||
|
||||
#define LSE_DRIVE_STRENGTH RCC_LSEDRIVE_HIGH
|
||||
|
||||
#endif // _HAL_H_
|
||||
|
||||
@@ -88,6 +88,13 @@ def generate_from_template(json_filename, template_filename, target):
|
||||
legacy_inputs=legacy_inputs,
|
||||
main_labels=MAIN_CONTROL_LUT,
|
||||
key_index=key_index,
|
||||
display=hw_def.display,
|
||||
leds=hw_def.leds,
|
||||
backlight=hw_def.backlight,
|
||||
timers=hw_def.timers,
|
||||
imu=hw_def.imu,
|
||||
rotenc=hw_def.rotenc,
|
||||
haptic=hw_def.haptic,
|
||||
)
|
||||
|
||||
try:
|
||||
|
||||
@@ -0,0 +1,126 @@
|
||||
//
|
||||
// WARNING: DO NOT EDIT THIS FILE
|
||||
// This file has been generated from the target's JSON hardware description
|
||||
//
|
||||
|
||||
#pragma once
|
||||
{% if timers %}
|
||||
|
||||
// Timers
|
||||
{% for name, val in timers %}
|
||||
{% if val is not none %}
|
||||
{% if val is sameas true or val is sameas false %}
|
||||
#define {{ name | upper }} {{ val | tojson }}
|
||||
{% elif name.endswith('_irqn') %}
|
||||
#define {{ name[:name | length - 1 ] | upper }}n {{ val }}
|
||||
{% elif name.endswith('_irqhandler') %}
|
||||
#define {{ name[:name | length - 7 ] | upper }}Handler {{ val }}
|
||||
{% else %}
|
||||
#define {{ name | upper }} {{ val }}
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
{% endif -%}
|
||||
|
||||
{% if display %}
|
||||
|
||||
// Display
|
||||
{% for name, val in display %}
|
||||
{% if val is not none %}
|
||||
{% if val is sameas true or val is sameas false %}
|
||||
#define {{ name | upper }} {{ val | tojson }}
|
||||
{% else %}
|
||||
#define {{ name | upper }} {{ val }}
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
{% endif -%}
|
||||
|
||||
{% if backlight %}
|
||||
|
||||
// Backlight
|
||||
{% for name, val in backlight %}
|
||||
{% if val is not none %}
|
||||
{% if val is sameas true or val is sameas false %}
|
||||
#define {{ name | upper }} {{ val | tojson }}
|
||||
{% else %}
|
||||
#define {{ name | upper }} {{ val }}
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
{% endif -%}
|
||||
|
||||
{% if leds %}
|
||||
|
||||
// LEDS
|
||||
{% for name, val in leds %}
|
||||
{% if val is not none %}
|
||||
{% if val is sameas true or val is sameas false %}
|
||||
#define {{ name | upper }} {{ val | tojson }}
|
||||
{% elif name.endswith('_irqn') %}
|
||||
#define {{ name[:name | length - 1 ] | upper }}n {{ val }}
|
||||
{% elif name.endswith('_irqhandler') %}
|
||||
#define {{ name[:name | length - 7 ] | upper }}Handler {{ val }}
|
||||
{% else %}
|
||||
#define {{ name | upper }} {{ val }}
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
{% endif -%}
|
||||
|
||||
{% if imu %}
|
||||
|
||||
// IMU
|
||||
{% for name, val in imu %}
|
||||
{% if val is not none and val is not sameas false %}
|
||||
{% if val is sameas true %}
|
||||
#define {{ name | upper }}
|
||||
{% elif name == 'exti' %}
|
||||
{% for exti in val %}
|
||||
#define USE_{{ exti.irq }}
|
||||
#define {{ exti.irq }}_Priority {{ exti.priority }}
|
||||
{% endfor %}
|
||||
{% else %}
|
||||
#define {{ name | upper }} {{ val }}
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
{% endif -%}
|
||||
|
||||
{% if rotenc %}
|
||||
|
||||
// Rotary Encoder
|
||||
#define ROTARY_ENCODER_NAVIGATION
|
||||
{% for name, val in rotenc %}
|
||||
{% if val is not none and val is not sameas false %}
|
||||
{% if val is sameas true %}
|
||||
#define {{ name | upper }}
|
||||
{% elif name == 'exti' %}
|
||||
{% for exti in val %}
|
||||
#define USE_{{ exti.irq }}
|
||||
#define {{ exti.irq }}_Priority {{ exti.priority }}
|
||||
{% endfor %}
|
||||
{% elif name.endswith('_irqn') %}
|
||||
#define {{ name[:name | length - 1 ] | upper }}n {{ val }}
|
||||
{% elif name.endswith('_irqhandler') %}
|
||||
#define {{ name[:name | length - 7 ] | upper }}Handler {{ val }}
|
||||
{% else %}
|
||||
#define {{ name | upper }} {{ val }}
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
{% endif -%}
|
||||
|
||||
{% if haptic %}
|
||||
|
||||
// Haptic
|
||||
{% for name, val in haptic %}
|
||||
{% if val is not none and val is not sameas false %}
|
||||
{% if val is sameas true %}
|
||||
#define {{ name | upper }}
|
||||
{% else %}
|
||||
#define {{ name | upper }} {{ val }}
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
{% endif -%}
|
||||
@@ -165,6 +165,113 @@ class LuxInput(BaseModel):
|
||||
pin: Optional[str] = None
|
||||
channel: Optional[Union[str, int]] = None
|
||||
|
||||
class EXTI(BaseModel):
|
||||
irq: str
|
||||
priority: int
|
||||
|
||||
class Timers(BaseModel):
|
||||
cpu_freq: int
|
||||
peri1_frequency: int
|
||||
peri2_frequency: int
|
||||
timer_mult_apb1: int
|
||||
timer_mult_apb2: int
|
||||
ms_timer: str
|
||||
ms_timer_irqn: str
|
||||
ms_timer_irqhandler: str
|
||||
mixer_scheduler_timer: str
|
||||
mixer_scheduler_timer_freq: str
|
||||
mixer_scheduler_timer_irqn: str
|
||||
mixer_scheduler_timer_irqhandler: str
|
||||
|
||||
class Backlight(BaseModel):
|
||||
has_backlight_color: Optional[bool] = False
|
||||
backlight_gpio: Optional[str] = None
|
||||
backlight_timer: Optional[str] = None
|
||||
backlight_timer_channel: Optional[str] = None
|
||||
backlight_gpio_af: Optional[str] = None
|
||||
backlight_timer_freq: Optional[str] = None
|
||||
backlight_bdtr: Optional[str] = None
|
||||
|
||||
class Display(BaseModel):
|
||||
lcd_w: int
|
||||
lcd_h: int
|
||||
lcd_phys_w: int
|
||||
lcd_phys_h: int
|
||||
lcd_depth: int
|
||||
oled_screen: Optional[bool] = False
|
||||
lcd_horizontal_invert: Optional[bool] = False
|
||||
lcd_vertical_invert: Optional[bool] = False
|
||||
ltdc_irq_prio: Optional[int] = None
|
||||
dma_screen_irq_prio: Optional[int] = None
|
||||
|
||||
class LEDS(BaseModel):
|
||||
led_strip_length: Optional[int] = None
|
||||
bling_led_strip_start: Optional[int] = None
|
||||
bling_led_strip_length: Optional[int] = None
|
||||
cfs_led_strip_start: Optional[int] = None
|
||||
cfs_led_strip_length: Optional[int] = None
|
||||
cfs_leds_per_switch: Optional[int] = None
|
||||
led_strip_gpio: Optional[str] = None
|
||||
led_strip_gpio_af: Optional[str] = None
|
||||
led_strip_timer: Optional[str] = None
|
||||
led_strip_timer_freq: Optional[str] = None
|
||||
led_strip_timer_channel: Optional[str] = None
|
||||
led_strip_timer_dma: Optional[str] = None
|
||||
led_strip_timer_dma_channel: Optional[str] = None
|
||||
led_strip_timer_dma_stream: Optional[str] = None
|
||||
led_strip_timer_dma_irqn: Optional[str] = None
|
||||
led_strip_timer_dma_irqhandler: Optional[str] = None
|
||||
led_strip_refresh_period: Optional[int] = None
|
||||
status_leds: Optional[bool] = False
|
||||
gpio_led_gpio_on: Optional[str] = None
|
||||
gpio_led_gpio_off: Optional[str] = None
|
||||
led_red_gpio: Optional[str] = None
|
||||
led_red2_gpio: Optional[str] = None
|
||||
led_green_gpio: Optional[str] = None
|
||||
led_blue_gpio: Optional[str] = None
|
||||
|
||||
class IMU(BaseModel):
|
||||
imu_i2c_bus: Optional[str] = None
|
||||
imu_int_gpio: Optional[str] = None
|
||||
imu_i2c_address: Optional[str] = None
|
||||
exti: Optional[List[EXTI]] = None
|
||||
imu_invert_x: Optional[bool] = None
|
||||
imu_invert_y: Optional[bool] = None
|
||||
|
||||
class RotEnc(BaseModel):
|
||||
rotary_encoder_inverted: Optional[bool] = None
|
||||
rotary_encoder_gpio: Optional[str] = None
|
||||
rotary_encoder_gpio_a: Optional[str] = None
|
||||
rotary_encoder_gpio_b: Optional[str] = None
|
||||
rotary_encoder_gpio_pin_a: Optional[str] = None
|
||||
rotary_encoder_gpio_pin_b: Optional[str] = None
|
||||
rotary_encoder_position: Optional[str] = None
|
||||
rotary_encoder_exti_line1: Optional[str] = None
|
||||
rotary_encoder_exti_line2: Optional[str] = None
|
||||
rotary_encoder_exti_port: Optional[str] = None
|
||||
rotary_encoder_exti_port_a: Optional[str] = None
|
||||
rotary_encoder_exti_port_b: Optional[str] = None
|
||||
rotary_encoder_exti_sys_line1: Optional[str] = None
|
||||
rotary_encoder_exti_sys_line2: Optional[str] = None
|
||||
rotary_encoder_timer: Optional[str] = None
|
||||
rotary_encoder_timer_irqn: Optional[str] = None
|
||||
rotary_encoder_timer_irqhandler: Optional[str] = None
|
||||
exti: Optional[List[EXTI]] = None
|
||||
|
||||
class Haptic(BaseModel):
|
||||
haptic_pwm: Optional[bool] = None
|
||||
haptic_gpio: Optional[str] = None
|
||||
haptic_gpio_timer: Optional[str] = None
|
||||
haptic_gpio_af: Optional[str] = None
|
||||
haptic_timer_output_enable: Optional[str] = None
|
||||
haptic_timer_mode: Optional[str] = None
|
||||
haptic_timer_compare_value: Optional[str] = None
|
||||
haptic_timer: Optional[str] = None
|
||||
haptic_timer_freq: Optional[str] = None
|
||||
haptic_counter_register: Optional[str] = None
|
||||
haptic_ccmr1: Optional[str] = None
|
||||
haptic_ccmr2: Optional[str] = None
|
||||
haptic_ccer: Optional[str] = None
|
||||
|
||||
Input = Union[StickInput, FlexInput, SwitchInput, RawInput, VBatInput, RTCBatInput, LuxInput]
|
||||
|
||||
@@ -309,6 +416,13 @@ class HardwareDefinition(BaseModel):
|
||||
adc_inputs: ADCInputs
|
||||
switches: List[Switch]
|
||||
keys: List[Key]
|
||||
display: Display
|
||||
leds: Optional[LEDS] = None
|
||||
backlight: Optional[Backlight] = None
|
||||
timers: Timers
|
||||
imu: Optional[IMU] = None
|
||||
rotenc: Optional[RotEnc] = None
|
||||
haptic: Optional[Haptic] = None
|
||||
|
||||
@staticmethod
|
||||
def from_json(data: Union[str, bytes, bytearray]) -> "HardwareDefinition":
|
||||
|
||||
@@ -118,8 +118,8 @@ int main()
|
||||
{ TR_SF_VARIO, "FUNC_VARIO", FUNC_VARIO, "" },
|
||||
{ TR_SF_HAPTIC, "FUNC_HAPTIC", FUNC_HAPTIC, "" },
|
||||
{ TR_SF_LOGS, "FUNC_LOGS", FUNC_LOGS, "" },
|
||||
{ TR_BRIGHTNESS, "FUNC_BACKLIGHT", FUNC_BACKLIGHT, "defined(OLED_SCREEN)" },
|
||||
{ TR_SF_BACKLIGHT, "FUNC_BACKLIGHT", FUNC_BACKLIGHT, "!defined(OLED_SCREEN)" },
|
||||
{ TR_BRIGHTNESS, "FUNC_BACKLIGHT", FUNC_BACKLIGHT, "OLED_SCREEN" },
|
||||
{ TR_SF_BACKLIGHT, "FUNC_BACKLIGHT", FUNC_BACKLIGHT, "!OLED_SCREEN" },
|
||||
{ TR_SF_SCREENSHOT, "FUNC_SCREENSHOT", FUNC_SCREENSHOT, "" },
|
||||
{ TR_SF_RACING_MODE, "FUNC_RACING_MODE", FUNC_RACING_MODE, "" },
|
||||
{ TR_SF_DISABLE_TOUCH, "FUNC_DISABLE_TOUCH", FUNC_DISABLE_TOUCH, "defined(COLORLCD)" },
|
||||
|
||||
@@ -0,0 +1,377 @@
|
||||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"$id": "https://edgetx.org/schemas/hw_defs.schema.json",
|
||||
"title": "EdgeTX radio hardware definition",
|
||||
"description": "Schema describing the per-target hardware definition JSON files under radio/src/boards/hw_defs/.",
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"required": [
|
||||
"adc_inputs",
|
||||
"switches",
|
||||
"keys",
|
||||
"trims",
|
||||
"display",
|
||||
"hardware",
|
||||
"timers"
|
||||
],
|
||||
"properties": {
|
||||
"adc_inputs": { "$ref": "#/$defs/adc_inputs" },
|
||||
"switches": { "type": "array", "items": { "$ref": "#/$defs/switch" } },
|
||||
"keys": { "type": "array", "items": { "$ref": "#/$defs/key" } },
|
||||
"trims": { "type": "array", "items": { "$ref": "#/$defs/trim" } },
|
||||
"display": { "$ref": "#/$defs/display" },
|
||||
"leds": { "$ref": "#/$defs/leds" },
|
||||
"backlight": { "$ref": "#/$defs/backlight" },
|
||||
"hardware": { "$ref": "#/$defs/hardware" },
|
||||
"timers": { "$ref": "#/$defs/timers" },
|
||||
"imu": { "$ref": "#/$defs/imu" },
|
||||
"rotenc": { "$ref": "#/$defs/rotenc" }
|
||||
},
|
||||
|
||||
"$defs": {
|
||||
"gpio_port": {
|
||||
"description": "STM32 LL GPIO port macro, e.g. GPIOA..GPIOK.",
|
||||
"type": "string",
|
||||
"pattern": "^GPIO[A-K]$"
|
||||
},
|
||||
"gpio_pin": {
|
||||
"description": "GPIO pin macro. Usually an STM32 LL macro (LL_GPIO_PIN_0..LL_GPIO_PIN_15), but may also be an I/O expander macro (e.g. PCA95XX_PIN_5, PCA95XX_P14, AW9523B_PIN_0).",
|
||||
"type": "string",
|
||||
"pattern": "^[A-Z][A-Z0-9_]*$"
|
||||
},
|
||||
"gpio_pin_macro": {
|
||||
"description": "Combined GPIO macro form GPIO_PIN(port, n) used by some LED fields.",
|
||||
"type": "string",
|
||||
"pattern": "^GPIO_PIN\\(GPIO[A-K],\\s*\\d+\\)$"
|
||||
},
|
||||
|
||||
"adc_inputs": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"required": ["adcs", "inputs"],
|
||||
"properties": {
|
||||
"adcs": { "type": "array", "items": { "$ref": "#/$defs/adc" }, "minItems": 1 },
|
||||
"inputs": { "type": "array", "items": { "$ref": "#/$defs/adc_input" } }
|
||||
}
|
||||
},
|
||||
|
||||
"adc": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"required": ["name", "adc"],
|
||||
"properties": {
|
||||
"name": { "type": "string" },
|
||||
"adc": { "type": "string", "pattern": "^(ADC[1-9]|SPI[1-9])$" },
|
||||
"dma": { "type": ["string", "null"], "pattern": "^DMA[12]$" },
|
||||
"dma_channel": { "type": "string" },
|
||||
"dma_stream": { "type": "string" },
|
||||
"dma_stream_irq": { "type": "string" },
|
||||
"dma_stream_irq_handler": { "type": "string" },
|
||||
"sample_time": { "type": "string" },
|
||||
"gpio_pin_cs": { "type": "string" },
|
||||
"gpio_pin_sck": { "type": "string" },
|
||||
"gpio_pin_miso": { "type": "string" },
|
||||
"gpio_pin_mosi": { "type": "string" }
|
||||
}
|
||||
},
|
||||
|
||||
"adc_input": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"required": ["name", "type", "adc"],
|
||||
"properties": {
|
||||
"name": { "type": "string" },
|
||||
"type": {
|
||||
"type": "string",
|
||||
"enum": ["STICK", "FLEX", "VBAT", "RTC_BAT", "SWITCH", "LUX", "RAW"]
|
||||
},
|
||||
"adc": { "type": "string" },
|
||||
"gpio": { "anyOf": [ { "$ref": "#/$defs/gpio_port" }, { "type": "null" } ] },
|
||||
"pin": { "anyOf": [ { "$ref": "#/$defs/gpio_pin" }, { "type": "null" } ] },
|
||||
"channel": {
|
||||
"anyOf": [
|
||||
{ "type": "string", "pattern": "^LL_ADC_CHANNEL_[A-Z0-9_]+$" },
|
||||
{ "type": "integer" },
|
||||
{ "type": "null" }
|
||||
]
|
||||
},
|
||||
"inverted": { "type": "boolean" },
|
||||
"label": { "type": "string" },
|
||||
"short_label": { "type": "string" },
|
||||
"default": {
|
||||
"type": "string",
|
||||
"enum": ["NONE", "POT", "POT_CENTER", "SLIDER", "MULTIPOS", "AXIS_X", "AXIS_Y"]
|
||||
},
|
||||
"pwm_channel": { "type": "integer" }
|
||||
}
|
||||
},
|
||||
|
||||
"switch": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"required": ["name", "type", "default", "is_cfs"],
|
||||
"properties": {
|
||||
"name": { "type": "string" },
|
||||
"type": { "type": "string", "enum": ["2POS", "3POS", "ADC"] },
|
||||
"flags": { "type": "integer" },
|
||||
"inverted": { "type": "boolean" },
|
||||
"default": { "type": "string", "enum": ["NONE", "2POS", "3POS", "TOGGLE"] },
|
||||
"display": {
|
||||
"anyOf": [
|
||||
{ "type": "null" },
|
||||
{
|
||||
"type": "array",
|
||||
"items": { "type": "integer" },
|
||||
"minItems": 2,
|
||||
"maxItems": 2
|
||||
}
|
||||
]
|
||||
},
|
||||
"is_cfs": { "type": "boolean" },
|
||||
"cfs_idx": { "type": "integer" },
|
||||
|
||||
"gpio": { "anyOf": [ { "$ref": "#/$defs/gpio_port" }, { "type": "null" } ] },
|
||||
"pin": { "$ref": "#/$defs/gpio_pin" },
|
||||
"gpio_high": { "anyOf": [ { "$ref": "#/$defs/gpio_port" }, { "type": "null" } ] },
|
||||
"pin_high": { "$ref": "#/$defs/gpio_pin" },
|
||||
"gpio_low": { "anyOf": [ { "$ref": "#/$defs/gpio_port" }, { "type": "null" } ] },
|
||||
"pin_low": { "$ref": "#/$defs/gpio_pin" },
|
||||
|
||||
"adc_input": { "type": "string" }
|
||||
},
|
||||
"allOf": [
|
||||
{
|
||||
"if": { "properties": { "type": { "const": "ADC" } }, "required": ["type"] },
|
||||
"then": { "required": ["adc_input"] }
|
||||
}
|
||||
]
|
||||
},
|
||||
|
||||
"key": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"required": ["active_low", "key", "name", "label"],
|
||||
"properties": {
|
||||
"gpio": { "anyOf": [ { "$ref": "#/$defs/gpio_port" }, { "type": "null" } ] },
|
||||
"pin": { "anyOf": [ { "$ref": "#/$defs/gpio_pin" }, { "type": "null" } ] },
|
||||
"active_low": { "type": "boolean" },
|
||||
"key": {
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"KEY_MENU", "KEY_EXIT", "KEY_ENTER",
|
||||
"KEY_PAGEUP", "KEY_PAGEDN",
|
||||
"KEY_UP", "KEY_DOWN", "KEY_LEFT", "KEY_RIGHT",
|
||||
"KEY_PLUS", "KEY_MINUS",
|
||||
"KEY_MODEL", "KEY_SYS", "KEY_TELE",
|
||||
"KEY_SHIFT"
|
||||
]
|
||||
},
|
||||
"name": { "type": "string" },
|
||||
"label": { "type": "string" }
|
||||
}
|
||||
},
|
||||
|
||||
"trim_pin": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"required": ["gpio", "pin", "active_low"],
|
||||
"properties": {
|
||||
"gpio": { "$ref": "#/$defs/gpio_port" },
|
||||
"pin": { "$ref": "#/$defs/gpio_pin" },
|
||||
"active_low": { "type": "boolean" }
|
||||
}
|
||||
},
|
||||
|
||||
"trim": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"required": ["name"],
|
||||
"properties": {
|
||||
"name": { "type": "string" },
|
||||
"dec": { "$ref": "#/$defs/trim_pin" },
|
||||
"inc": { "$ref": "#/$defs/trim_pin" },
|
||||
"active_low": { "type": "boolean" }
|
||||
}
|
||||
},
|
||||
|
||||
"exti": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"irq": { "type": "string" },
|
||||
"priority": { "type": "integer" }
|
||||
}
|
||||
},
|
||||
|
||||
"display": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"required": ["lcd_w", "lcd_h", "lcd_phys_w", "lcd_phys_h", "lcd_depth"],
|
||||
"properties": {
|
||||
"lcd_w": { "type": "integer", "minimum": 1 },
|
||||
"lcd_h": { "type": "integer", "minimum": 1 },
|
||||
"lcd_phys_w": { "type": "integer", "minimum": 1 },
|
||||
"lcd_phys_h": { "type": "integer", "minimum": 1 },
|
||||
"lcd_depth": { "type": "integer", "enum": [1, 4, 8, 16, 24, 32] },
|
||||
"lcd_vertical_invert": { "type": "boolean" },
|
||||
"lcd_horizontal_invert": { "type": "boolean" },
|
||||
"ltdc_irq_prio": { "type": "integer", "minimum": 0, "maximum": 15 },
|
||||
"dma_screen_irq_prio": { "type": "integer", "minimum": 0, "maximum": 15 },
|
||||
"oled_screen": { "type": "boolean" }
|
||||
}
|
||||
},
|
||||
|
||||
"leds": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"status_leds": { "type": "boolean" },
|
||||
"led_red_gpio": { "type": "string" },
|
||||
"led_red2_gpio": { "type": "string" },
|
||||
"led_green_gpio": { "type": "string" },
|
||||
"led_blue_gpio": { "type": "string" },
|
||||
"gpio_led_gpio_on": { "type": "string" },
|
||||
"gpio_led_gpio_off": { "type": "string" },
|
||||
|
||||
"led_strip_gpio": { "type": "string" },
|
||||
"led_strip_gpio_af": { "type": "string" },
|
||||
"led_strip_length": { "type": "integer", "minimum": 0 },
|
||||
"led_strip_refresh_period": { "type": "integer", "minimum": 0 },
|
||||
"led_strip_timer": { "type": "string" },
|
||||
"led_strip_timer_channel": { "type": "string" },
|
||||
"led_strip_timer_freq": { "type": "string" },
|
||||
"led_strip_timer_dma": { "type": "string" },
|
||||
"led_strip_timer_dma_channel": { "type": "string" },
|
||||
"led_strip_timer_dma_stream": { "type": "string" },
|
||||
"led_strip_timer_dma_irqn": { "type": "string" },
|
||||
"led_strip_timer_dma_irqhandler": { "type": "string" },
|
||||
|
||||
"cfs_led_strip_start": { "type": "integer", "minimum": 0 },
|
||||
"cfs_led_strip_length": { "type": "integer", "minimum": 0 },
|
||||
"cfs_leds_per_switch": { "type": "integer", "minimum": 0 },
|
||||
"bling_led_strip_start": { "type": "integer", "minimum": 0 },
|
||||
"bling_led_strip_length": { "type": "integer", "minimum": 0 }
|
||||
}
|
||||
},
|
||||
|
||||
"backlight": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"backlight_gpio": { "type": "string" },
|
||||
"backlight_gpio_af": { "type": "string" },
|
||||
"backlight_timer": { "type": "string" },
|
||||
"backlight_timer_channel":{ "type": "string" },
|
||||
"backlight_timer_freq": { "type": "string" },
|
||||
"backlight_bdtr": { "type": "string" },
|
||||
"has_backlight_color": { "type": "boolean" }
|
||||
}
|
||||
},
|
||||
|
||||
"hardware": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"required": ["cpu", "cpu_type"],
|
||||
"properties": {
|
||||
"cpu": { "type": "string", "pattern": "^STM32[A-Za-z0-9]+$" },
|
||||
"cpu_type": { "type": "string", "enum": ["STM32F2", "STM32F4", "STM32H7"] },
|
||||
"has_audio_mute": { "type": "boolean" },
|
||||
"has_ext_module_support": { "type": "boolean" },
|
||||
"has_int_module_support": { "type": "boolean" },
|
||||
"sport_max_baudrate": { "type": "integer", "minimum": 0 },
|
||||
"surface": { "type": "boolean" }
|
||||
}
|
||||
},
|
||||
|
||||
"timers": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"required": [
|
||||
"cpu_freq",
|
||||
"peri1_frequency",
|
||||
"peri2_frequency",
|
||||
"timer_mult_apb1",
|
||||
"timer_mult_apb2",
|
||||
"ms_timer",
|
||||
"ms_timer_irqn",
|
||||
"ms_timer_irqhandler",
|
||||
"mixer_scheduler_timer",
|
||||
"mixer_scheduler_timer_freq",
|
||||
"mixer_scheduler_timer_irqn",
|
||||
"mixer_scheduler_timer_irqhandler"
|
||||
],
|
||||
"properties": {
|
||||
"cpu_freq": { "type": "integer", "minimum": 1 },
|
||||
"peri1_frequency": { "type": "integer", "minimum": 1 },
|
||||
"peri2_frequency": { "type": "integer", "minimum": 1 },
|
||||
"timer_mult_apb1": { "type": "integer", "minimum": 1 },
|
||||
"timer_mult_apb2": { "type": "integer", "minimum": 1 },
|
||||
"ms_timer": { "type": "string" },
|
||||
"ms_timer_irqn": { "type": "string" },
|
||||
"ms_timer_irqhandler": { "type": "string" },
|
||||
"mixer_scheduler_timer": { "type": "string" },
|
||||
"mixer_scheduler_timer_freq": { "type": "string" },
|
||||
"mixer_scheduler_timer_irqn": { "type": "string" },
|
||||
"mixer_scheduler_timer_irqhandler": { "type": "string" }
|
||||
}
|
||||
},
|
||||
|
||||
"imu": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"imu_i2c_bus": { "type": "string" },
|
||||
"imu_int_gpio": { "type": "string" },
|
||||
"imu_i2c_address": { "type": "string" },
|
||||
"imu_invert_x": { "type": "boolean" },
|
||||
"imu_invert_y": { "type": "boolean" },
|
||||
"exti": { "type": "array", "items": { "$ref": "#/$defs/exti" } }
|
||||
}
|
||||
},
|
||||
|
||||
"rotenc": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"rotary_encoder_inverted": { "type": "boolean" },
|
||||
"rotary_encoder_gpio": { "type": "string" },
|
||||
"rotary_encoder_gpio_a": { "type": "string" },
|
||||
"rotary_encoder_gpio_b": { "type": "string" },
|
||||
"rotary_encoder_gpio_pin_a": { "type": "string" },
|
||||
"rotary_encoder_gpio_pin_b": { "type": "string" },
|
||||
"rotary_encoder_position": { "type": "string" },
|
||||
"rotary_encoder_exti_line1": { "type": "string" },
|
||||
"rotary_encoder_exti_line2": { "type": "string" },
|
||||
"rotary_encoder_exti_port": { "type": "string" },
|
||||
"rotary_encoder_exti_port_a": { "type": "string" },
|
||||
"rotary_encoder_exti_port_b": { "type": "string" },
|
||||
"rotary_encoder_exti_sys_line1": { "type": "string" },
|
||||
"rotary_encoder_exti_sys_line2": { "type": "string" },
|
||||
"rotary_encoder_timer": { "type": "string" },
|
||||
"rotary_encoder_timer_irqn": { "type": "string" },
|
||||
"rotary_encoder_timer_irqhandler": { "type": "string" },
|
||||
"exti": { "type": "array", "items": { "$ref": "#/$defs/exti" } }
|
||||
}
|
||||
},
|
||||
|
||||
"haptic": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"haptic_pwm": { "type": "boolean" },
|
||||
"haptic_gpio": { "type": "string" },
|
||||
"haptic_gpio_timer": { "type": "string" },
|
||||
"haptic_gpio_af": { "type": "string" },
|
||||
"haptic_timer_output_enable": { "type": "string" },
|
||||
"haptic_timer_mode": { "type": "string" },
|
||||
"haptic_timer_compare_value": { "type": "string" },
|
||||
"haptic_timer": { "type": "string" },
|
||||
"haptic_timer_freq": { "type": "string" },
|
||||
"haptic_counter_register": { "type": "string" },
|
||||
"haptic_ccmr1": { "type": "string" },
|
||||
"haptic_ccmr2": { "type": "string" },
|
||||
"haptic_ccer": { "type": "string" },
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user