fix(v14): incorrect switch definition and add v12/v14 battery voltage sensing (#6155)
Co-authored-by: Richard Li <richard.li@ces.hk>
This commit is contained in:
co-authored by
Richard Li
parent
1890d09ba0
commit
f6631f5574
@@ -158,6 +158,15 @@ if(FLYSKY_GIMBAL)
|
||||
add_definitions(-DFLYSKY_GIMBAL)
|
||||
endif()
|
||||
|
||||
if(CSD203_SENSOR)
|
||||
set(FIRMWARE_SRC ${FIRMWARE_SRC}
|
||||
targets/common/arm/stm32/csd203_sensor.cpp
|
||||
)
|
||||
add_definitions(-DCSD203_SENSOR)
|
||||
message("-- Adding support for Current sensor")
|
||||
endif()
|
||||
|
||||
|
||||
if(DEBUG OR CLI OR USB_SERIAL)
|
||||
add_definitions(-DUSB_SERIAL)
|
||||
message("-- Adding support for USB serial")
|
||||
|
||||
+17
-3
@@ -34,6 +34,7 @@
|
||||
#include "stm32_hal.h"
|
||||
#include "stm32_hal_ll.h"
|
||||
#include "stm32_i2c_driver.h"
|
||||
#include "hal/i2c_driver.h"
|
||||
|
||||
// clang-format off
|
||||
/* CSD203 Regsistor map */
|
||||
@@ -203,7 +204,7 @@ bool I2C_CSD203_WriteRegister(uint8_t I2C_ADDR, uint8_t reg, uint8_t *buf,
|
||||
}
|
||||
}
|
||||
|
||||
if (stm32_i2c_master_tx(TOUCH_I2C_BUS, I2C_ADDR, uAddrAndBuf, len + 1, 100) <
|
||||
if (stm32_i2c_master_tx(I2C_Bus_1, I2C_ADDR, uAddrAndBuf, len + 1, 100) <
|
||||
0) {
|
||||
TRACE("I2C B1 ERROR: WriteRegister failed");
|
||||
return false;
|
||||
@@ -218,12 +219,12 @@ bool I2C_CSD203_ReadRegister(uint8_t I2C_ADDR, uint8_t reg, uint8_t *buf,
|
||||
// uRegAddr[0] = (uint8_t)((reg & 0xFF00) >> 8);
|
||||
uRegAddr[0] = (uint8_t)(reg & 0x00FF);
|
||||
|
||||
if (stm32_i2c_master_tx(TOUCH_I2C_BUS, I2C_ADDR, uRegAddr, 1, 100) < 0) {
|
||||
if (stm32_i2c_master_tx(I2C_Bus_1, I2C_ADDR, uRegAddr, 1, 100) < 0) {
|
||||
TRACE("I2C B1 ERROR: ReadRegister write reg address failed");
|
||||
return false;
|
||||
}
|
||||
|
||||
if (stm32_i2c_master_rx(TOUCH_I2C_BUS, I2C_ADDR, buf, len, 100) < 0) {
|
||||
if (stm32_i2c_master_rx(I2C_Bus_1, I2C_ADDR, buf, len, 100) < 0) {
|
||||
TRACE("I2C B1 ERROR: ReadRegister read reg address failed");
|
||||
return false;
|
||||
}
|
||||
@@ -317,6 +318,19 @@ uint16_t CSD203_ReadManufacturerID(CSD_CONFIG *CSD203_CFG)
|
||||
return Data;
|
||||
}
|
||||
|
||||
void IICcsd203init(void)
|
||||
{
|
||||
if (i2c_init(I2C_Bus_1) < 0) {
|
||||
return; //err
|
||||
}
|
||||
}
|
||||
void ReIICcsd203init(void)
|
||||
{
|
||||
if (i2c_init(I2C_Bus_1) < 0) {
|
||||
return; //err
|
||||
}
|
||||
}
|
||||
|
||||
void initCSD203(void)
|
||||
{
|
||||
CSD203MainInitFlag = false;
|
||||
+1
@@ -21,5 +21,6 @@
|
||||
|
||||
#pragma once
|
||||
|
||||
void IICcsd203init(void);
|
||||
void initCSD203(void);
|
||||
void readCSD203(void);
|
||||
@@ -132,7 +132,7 @@ if (PCB STREQUAL X10)
|
||||
set(INTERNAL_GPS_BAUDRATE "9600" CACHE STRING "Baud rate for internal GPS")
|
||||
set(FLEXSW "2" CACHE STRING "Max flex inputs usable as switches")
|
||||
set(AUX2_SERIAL OFF)
|
||||
set(HAS_CSD203_SENSOR ON)
|
||||
set(CSD203_SENSOR ON)
|
||||
set(FLYSKY_GIMBAL ON)
|
||||
if (BLUETOOTH)
|
||||
set(AUX_SERIAL OFF)
|
||||
@@ -357,10 +357,6 @@ if(USB_CHARGER)
|
||||
target_sources(board PRIVATE ${TARGET_SRC_DIR}/usb_charger_driver.cpp)
|
||||
endif()
|
||||
|
||||
if(HAS_CSD203_SENSOR)
|
||||
set(FIRMWARE_TARGET_SRC ${FIRMWARE_TARGET_SRC} csd203_sensor.cpp)
|
||||
add_definitions(-DCSD203_SENSOR)
|
||||
endif()
|
||||
set(FIRMWARE_SRC
|
||||
${FIRMWARE_SRC}
|
||||
targets/common/arm/loadboot.cpp
|
||||
|
||||
@@ -406,6 +406,7 @@ elseif(PCB STREQUAL X7)
|
||||
add_definitions(-DSTM32_SUPPORT_32BIT_TIMERS)
|
||||
set(PXX2 ON)
|
||||
set(ENABLE_SERIAL_PASSTHROUGH ON CACHE BOOL "Enable serial passthrough")
|
||||
set(CSD203_SENSOR ON)
|
||||
if (NOT BLUETOOTH)
|
||||
set(AUX_SERIAL ON)
|
||||
endif()
|
||||
@@ -421,6 +422,7 @@ elseif(PCB STREQUAL X7)
|
||||
add_definitions(-DSTM32_SUPPORT_32BIT_TIMERS)
|
||||
set(PXX2 ON)
|
||||
set(ENABLE_SERIAL_PASSTHROUGH ON CACHE BOOL "Enable serial passthrough")
|
||||
set(CSD203_SENSOR ON)
|
||||
set(FLYSKY_GIMBAL ON)
|
||||
if (NOT BLUETOOTH)
|
||||
set(AUX_SERIAL ON)
|
||||
|
||||
@@ -60,6 +60,10 @@
|
||||
#include "bluetooth_driver.h"
|
||||
#endif
|
||||
|
||||
#if defined(CSD203_SENSOR)
|
||||
#include "csd203_sensor.h"
|
||||
#endif
|
||||
|
||||
HardwareOptions hardwareOptions;
|
||||
|
||||
#if !defined(BOOT)
|
||||
@@ -154,6 +158,11 @@ void boardInit()
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if defined(CSD203_SENSOR)
|
||||
IICcsd203init();
|
||||
initCSD203();
|
||||
#endif
|
||||
|
||||
// If the radio was powered on by dual use USB, halt the boot process, let battery charge
|
||||
// TODO: needs refactoring if any other manufacturer implements either of the following:
|
||||
// - function switches and the radio supports charging
|
||||
|
||||
@@ -674,7 +674,10 @@
|
||||
#define SWITCHES_GPIO_REG_A GPIOD
|
||||
#define SWITCHES_GPIO_PIN_A LL_GPIO_PIN_0 // PD.00
|
||||
#elif defined(RADIO_V14) || defined(RADIO_V12)
|
||||
// ADC based switch
|
||||
#define STORAGE_SWITCH_A
|
||||
#define HARDWARE_SWITCH_A
|
||||
#define SWITCHES_GPIO_REG_A GPIOC
|
||||
#define SWITCHES_GPIO_PIN_A LL_GPIO_PIN_13 // PC.13
|
||||
#elif defined(PCBX7)
|
||||
#define SWITCHES_GPIO_REG_A_L GPIOE
|
||||
#define SWITCHES_GPIO_PIN_A_L LL_GPIO_PIN_7 // PE.07
|
||||
@@ -890,7 +893,10 @@
|
||||
#elif defined(RADIO_GX12)
|
||||
#define SWITCHES_D_2POS
|
||||
#elif defined(RADIO_V14) || defined(RADIO_V12)
|
||||
// ADC based switch
|
||||
#define STORAGE_SWITCH_D
|
||||
#define HARDWARE_SWITCH_D
|
||||
#define SWITCHES_GPIO_REG_D GPIOE
|
||||
#define SWITCHES_GPIO_PIN_D LL_GPIO_PIN_8 // PE.08
|
||||
#elif defined(PCBX7) && !defined(RADIO_COMMANDO8)
|
||||
#define SWITCHES_GPIO_REG_D_L GPIOE
|
||||
#define SWITCHES_GPIO_PIN_D_L LL_GPIO_PIN_1 // PE.01
|
||||
@@ -963,8 +969,7 @@
|
||||
#elif defined(RADIO_GX12)
|
||||
#define SWITCHES_E_3POS
|
||||
#elif defined(RADIO_V14) || defined(RADIO_V12)
|
||||
#define SWITCHES_GPIO_REG_E GPIOC
|
||||
#define SWITCHES_GPIO_PIN_E LL_GPIO_PIN_13 // PC.13
|
||||
// ADC based switch
|
||||
#elif defined(PCBX7)
|
||||
// no SWE
|
||||
#else
|
||||
@@ -1027,8 +1032,7 @@
|
||||
#elif defined(RADIO_GX12)
|
||||
#define SWITCHES_F_3POS
|
||||
#elif defined(RADIO_V14) || defined(RADIO_V12)
|
||||
#define SWITCHES_GPIO_REG_F GPIOE
|
||||
#define SWITCHES_GPIO_PIN_F LL_GPIO_PIN_8 // PE.08
|
||||
// ADC based switch
|
||||
#elif defined(PCBX7)
|
||||
#define SWITCHES_GPIO_REG_F GPIOE
|
||||
#define SWITCHES_GPIO_PIN_F LL_GPIO_PIN_14 // PE.14
|
||||
@@ -1700,17 +1704,17 @@
|
||||
#define ADC_CHANNEL_POT1 LL_ADC_CHANNEL_8 // ADC12_IN8 -> ADC1_IN8
|
||||
#define ADC_CHANNEL_POT2 LL_ADC_CHANNEL_6 // ADC12_IN6 -> ADC1_IN6
|
||||
#define ADC_CHANNEL_POT3 LL_ADC_CHANNEL_12 // ADC123_IN12 -> ADC1_IN12
|
||||
#define ADC_GPIO_PIN_SWA LL_GPIO_PIN_7 // PA.07
|
||||
#define ADC_GPIO_PIN_SWE LL_GPIO_PIN_7 // PA.07
|
||||
#define ADC_GPIO_PIN_SWB LL_GPIO_PIN_5 // PA.05
|
||||
#define ADC_GPIO_PIN_SWC LL_GPIO_PIN_0 // PC.00
|
||||
#define ADC_GPIO_PIN_SWD LL_GPIO_PIN_5 // PC.05
|
||||
#define ADC_CHANNEL_SWA LL_ADC_CHANNEL_7 // ADC12_IN7 -> ADC1_IN7
|
||||
#define ADC_GPIO_PIN_SWF LL_GPIO_PIN_5 // PC.05
|
||||
#define ADC_CHANNEL_SWE LL_ADC_CHANNEL_7 // ADC12_IN7 -> ADC1_IN7
|
||||
#define ADC_CHANNEL_SWB LL_ADC_CHANNEL_5 // ADC12_IN5 -> ADC1_IN5
|
||||
#define ADC_CHANNEL_SWC LL_ADC_CHANNEL_10 // ADC123_IN10 -> ADC1_IN10
|
||||
#define ADC_CHANNEL_SWD LL_ADC_CHANNEL_15 // ADC12_IN15 -> ADC1_IN15
|
||||
#define ADC_GPIOA_PINS (ADC_GPIO_PIN_STICK_RV | ADC_GPIO_PIN_STICK_RH | ADC_GPIO_PIN_STICK_LH | ADC_GPIO_PIN_STICK_LV | ADC_GPIO_PIN_POT2 | ADC_GPIO_PIN_SWA | ADC_GPIO_PIN_SWB)
|
||||
#define ADC_CHANNEL_SWF LL_ADC_CHANNEL_15 // ADC12_IN15 -> ADC1_IN15
|
||||
#define ADC_GPIOA_PINS (ADC_GPIO_PIN_STICK_RV | ADC_GPIO_PIN_STICK_RH | ADC_GPIO_PIN_STICK_LH | ADC_GPIO_PIN_STICK_LV | ADC_GPIO_PIN_POT2 | ADC_GPIO_PIN_SWE | ADC_GPIO_PIN_SWB)
|
||||
#define ADC_GPIOB_PINS (ADC_GPIO_PIN_POT1)
|
||||
#define ADC_GPIOC_PINS (ADC_GPIO_PIN_POT3 | ADC_GPIO_PIN_SWC | ADC_GPIO_PIN_SWD)
|
||||
#define ADC_GPIOC_PINS (ADC_GPIO_PIN_POT3 | ADC_GPIO_PIN_SWC | ADC_GPIO_PIN_SWF)
|
||||
#define ADC_VREF_PREC2 330
|
||||
#elif defined(PCBX7)
|
||||
#define HARDWARE_POT1
|
||||
@@ -2546,14 +2550,14 @@
|
||||
#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_V14) || defined(RADIO_V12) || defined(RADIO_BUMBLEBEE)
|
||||
#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)
|
||||
#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)
|
||||
#if defined(RADIO_T14) || defined(RADIO_GX12) || defined(RADIO_V14)
|
||||
#define SSD1309_LCD
|
||||
#endif
|
||||
#if defined(PCBX9E)
|
||||
@@ -2625,7 +2629,7 @@
|
||||
|
||||
#if defined(PCBXLITE) || defined(PCBX9LITE) || defined(PCBX7ACCESS) || \
|
||||
defined(RADIO_ZORRO) || defined(RADIO_POCKET) || defined(RADIO_X9DP2019) || \
|
||||
defined(RADIO_GX12)
|
||||
defined(RADIO_GX12) || defined(RADIO_V12) || defined(RADIO_V14)
|
||||
#define I2C_B1_SCL_GPIO GPIO_PIN(GPIOB, 8) // PB.08
|
||||
#define I2C_B1_SDA_GPIO GPIO_PIN(GPIOB, 9) // PB.09
|
||||
#else
|
||||
|
||||
@@ -116,7 +116,7 @@ SWITCH_CONFIG = {
|
||||
"SE": {"default": "2POS", "display": [0, 2]},
|
||||
# right side
|
||||
"SC": {"default": "2POS", "display": [1, 0]},
|
||||
"SD": {"default": "3POS", "display": [1, 1]},
|
||||
"SD": {"default": "2POS", "display": [1, 1]},
|
||||
"SF": {"default": "TOGGLE", "display": [1, 2]},
|
||||
},
|
||||
"v16": {
|
||||
|
||||
Reference in New Issue
Block a user