Module17: implemented detection of hardware version

pull/140/head
Silvano Seva 2023-06-14 21:50:12 +02:00
rodzic 1afd868d64
commit 694181df92
4 zmienionych plików z 20 dodań i 6 usunięć

Wyświetl plik

@ -34,7 +34,7 @@ void adc1_init()
/* /*
* Configure GPIOs to analog input mode: * Configure GPIOs to analog input mode:
*/ */
gpio_setMode(AIN_VBAT, INPUT_ANALOG); gpio_setMode(AIN_HWVER, INPUT_ANALOG);
/* /*
* ADC clock is APB2 frequency divided by 8, giving 10.5MHz. * ADC clock is APB2 frequency divided by 8, giving 10.5MHz.

Wyświetl plik

@ -33,7 +33,7 @@ extern "C" {
enum adcCh enum adcCh
{ {
ADC_VBAT_CH = 3, ADC_HWVER_CH = 3,
}; };
/** /**

Wyświetl plik

@ -72,7 +72,7 @@
#define MIC_MUTE GPIOC,4 #define MIC_MUTE GPIOC,4
#define MIC_GAIN GPIOC,5 #define MIC_GAIN GPIOC,5
#define AIN_VBAT GPIOA,3 #define AIN_HWVER GPIOA,3
/* I2C for MCP4551 */ /* I2C for MCP4551 */
#define I2C_SDA GPIOB,7 #define I2C_SDA GPIOB,7

Wyświetl plik

@ -32,7 +32,8 @@
#include <calibInfo_Mod17.h> #include <calibInfo_Mod17.h>
#include <MCP4551.h> #include <MCP4551.h>
mod17Calib_t mod17CalData; mod17Calib_t mod17CalData;
static hwInfo_t hwInfo;
void platform_init() void platform_init()
{ {
@ -64,6 +65,19 @@ void platform_init()
mod17CalData.tx_invert = 0; mod17CalData.tx_invert = 0;
mod17CalData.rx_invert = 0; mod17CalData.rx_invert = 0;
mod17CalData.mic_gain = 0; mod17CalData.mic_gain = 0;
/* Init hardware info data. */
memset(&hwInfo, 0x00, sizeof(hwInfo));
memcpy(hwInfo.name, "Module17", 8);
/*
* Hardware version is set using a voltage divider on PA3.
* - 0V: rev. 0.1d or lower
* - 2.6V: rev 0.1e
*/
uint16_t ver = adc1_getMeasurement(ADC_HWVER_CH);
if(ver >= 2500)
hwInfo.hw_version = 1;
} }
void platform_terminate() void platform_terminate()
@ -80,7 +94,7 @@ void platform_terminate()
uint16_t platform_getVbat() uint16_t platform_getVbat()
{ {
return adc1_getMeasurement(ADC_VBAT_CH)*5; return 0;
} }
uint8_t platform_getMicLevel() uint8_t platform_getMicLevel()
@ -169,7 +183,7 @@ const void *platform_getCalibrationData()
const hwInfo_t *platform_getHwInfo() const hwInfo_t *platform_getHwInfo()
{ {
return NULL; return &hwInfo;
} }
void platform_setBacklightLevel(uint8_t level) void platform_setBacklightLevel(uint8_t level)