Detect NV14 vs EL18 at boot
This commit is contained in:
committed by
Raphael Coeffic
parent
e8d82348e0
commit
56eb564b86
@@ -514,15 +514,20 @@ void ModuleSubTypeChoice::update()
|
||||
setGetValueHandler(GET_DEFAULT(md->subType));
|
||||
setSetValueHandler(SET_DEFAULT(md->subType));
|
||||
|
||||
// TODO:
|
||||
// if (moduleIdx == INTERNAL_MODULE) {
|
||||
// md->subType = FLYSKY_SUBTYPE_AFHDS2A;
|
||||
// setAvailableHandler([](int v) { return v == FLYSKY_SUBTYPE_AFHDS2A; });
|
||||
// } else {
|
||||
// md->subType = FLYSKY_SUBTYPE_AFHDS3;
|
||||
// setAvailableHandler([](int v) { return v == FLYSKY_SUBTYPE_AFHDS3; });
|
||||
// }
|
||||
setAvailableHandler(nullptr);
|
||||
#if defined(PCBNV14)
|
||||
if (moduleIdx == INTERNAL_MODULE) {
|
||||
if (hardwareOptions.pcbrev == PCBREV_NV14) {
|
||||
md->subType = FLYSKY_SUBTYPE_AFHDS2A;
|
||||
setAvailableHandler([](int v) { return v == FLYSKY_SUBTYPE_AFHDS2A; });
|
||||
} else {
|
||||
md->subType = FLYSKY_SUBTYPE_AFHDS3;
|
||||
setAvailableHandler([](int v) { return v == FLYSKY_SUBTYPE_AFHDS3; });
|
||||
}
|
||||
}
|
||||
#else
|
||||
md->subType = FLYSKY_SUBTYPE_AFHDS3;
|
||||
setAvailableHandler([](int v) { return v == FLYSKY_SUBTYPE_AFHDS3; });
|
||||
#endif
|
||||
}
|
||||
#endif
|
||||
#if defined(MULTIMODULE)
|
||||
|
||||
@@ -37,7 +37,7 @@ void pwrInit()
|
||||
#endif
|
||||
|
||||
// Internal module power
|
||||
GPIO_ResetBits(INTMODULE_PWR_GPIO, INTMODULE_PWR_GPIO_PIN);
|
||||
INTERNAL_MODULE_OFF();
|
||||
GPIO_InitStructure.GPIO_Pin = INTMODULE_PWR_GPIO_PIN;
|
||||
GPIO_Init(INTMODULE_PWR_GPIO, &GPIO_InitStructure);
|
||||
|
||||
|
||||
@@ -128,6 +128,15 @@ void boardInit()
|
||||
__enable_irq();
|
||||
#endif
|
||||
|
||||
// detect NV14 vs EL18
|
||||
if (GPIO_ReadInputDataBit(INTMODULE_PWR_GPIO, INTMODULE_PWR_GPIO_PIN) == Bit_SET) {
|
||||
// pull-up connected: EL18
|
||||
hardwareOptions.pcbrev = PCBREV_EL18;
|
||||
} else {
|
||||
// pull-down connected: NV14
|
||||
hardwareOptions.pcbrev = PCBREV_NV14;
|
||||
}
|
||||
|
||||
#if defined(DEBUG)
|
||||
serialInit(SP_AUX1, UART_MODE_DEBUG);
|
||||
#endif
|
||||
|
||||
@@ -53,12 +53,6 @@ extern uint16_t sessionTimer;
|
||||
#define SLAVE_MODE() (g_model.trainerData.mode == TRAINER_MODE_SLAVE)
|
||||
#define TRAINER_CONNECTED() (true)
|
||||
|
||||
PACK(typedef struct {
|
||||
uint8_t pxx2Enabled:1;
|
||||
}) HardwareOptions;
|
||||
|
||||
extern HardwareOptions hardwareOptions;
|
||||
|
||||
// Board driver
|
||||
void boardInit();
|
||||
void boardOff();
|
||||
@@ -103,17 +97,48 @@ void SDRAM_Init();
|
||||
|
||||
#if !defined(SIMU)
|
||||
|
||||
// #define INTERNAL_MODULE_OFF() GPIO_SetBits(INTMODULE_PWR_GPIO, INTMODULE_PWR_GPIO_PIN)
|
||||
// #define INTERNAL_MODULE_ON() GPIO_ResetBits(INTMODULE_PWR_GPIO, INTMODULE_PWR_GPIO_PIN)
|
||||
#define INTERNAL_MODULE_OFF() GPIO_ResetBits(INTMODULE_PWR_GPIO, INTMODULE_PWR_GPIO_PIN)
|
||||
#define INTERNAL_MODULE_ON() GPIO_SetBits(INTMODULE_PWR_GPIO, INTMODULE_PWR_GPIO_PIN)
|
||||
enum {
|
||||
PCBREV_NV14 = 0,
|
||||
PCBREV_EL18 = 1,
|
||||
};
|
||||
|
||||
typedef struct {
|
||||
uint8_t pcbrev;
|
||||
} HardwareOptions;
|
||||
|
||||
extern HardwareOptions hardwareOptions;
|
||||
|
||||
#define INTERNAL_MODULE_OFF() \
|
||||
do { \
|
||||
if (hardwareOptions.pcbrev == PCBREV_NV14) \
|
||||
GPIO_SetBits(INTMODULE_PWR_GPIO, INTMODULE_PWR_GPIO_PIN); \
|
||||
else \
|
||||
GPIO_ResetBits(INTMODULE_PWR_GPIO, INTMODULE_PWR_GPIO_PIN); \
|
||||
} while (0)
|
||||
|
||||
#define INTERNAL_MODULE_ON() \
|
||||
do { \
|
||||
if (hardwareOptions.pcbrev == PCBREV_NV14) \
|
||||
GPIO_ResetBits(INTMODULE_PWR_GPIO, INTMODULE_PWR_GPIO_PIN); \
|
||||
else \
|
||||
GPIO_SetBits(INTMODULE_PWR_GPIO, INTMODULE_PWR_GPIO_PIN); \
|
||||
} while (0)
|
||||
|
||||
#define IS_INTERNAL_MODULE_ON() \
|
||||
(hardwareOptions.pcbrev == PCBREV_NV14 \
|
||||
? (GPIO_ReadInputDataBit(INTMODULE_PWR_GPIO, INTMODULE_PWR_GPIO_PIN) == \
|
||||
Bit_SET) \
|
||||
: (GPIO_ReadInputDataBit(INTMODULE_PWR_GPIO, INTMODULE_PWR_GPIO_PIN) == \
|
||||
Bit_RESET))
|
||||
|
||||
#define IS_EXTERNAL_MODULE_ON() \
|
||||
(GPIO_ReadInputDataBit(EXTMODULE_PWR_GPIO, EXTMODULE_PWR_GPIO_PIN) == Bit_SET)
|
||||
|
||||
void EXTERNAL_MODULE_ON();
|
||||
void EXTERNAL_MODULE_OFF();
|
||||
|
||||
#define BLUETOOTH_MODULE_ON() GPIO_ResetBits(BLUETOOTH_ON_GPIO, BLUETOOTH_ON_GPIO_PIN)
|
||||
#define BLUETOOTH_MODULE_OFF() GPIO_SetBits(BLUETOOTH_ON_GPIO, BLUETOOTH_ON_GPIO_PIN)
|
||||
#define IS_INTERNAL_MODULE_ON() (GPIO_ReadInputDataBit(INTMODULE_PWR_GPIO, INTMODULE_PWR_GPIO_PIN) == Bit_SET)
|
||||
#define IS_EXTERNAL_MODULE_ON() (GPIO_ReadInputDataBit(EXTMODULE_PWR_GPIO, EXTMODULE_PWR_GPIO_PIN) == Bit_SET)
|
||||
|
||||
#else
|
||||
|
||||
|
||||
Reference in New Issue
Block a user