Skip to content

Commit

Permalink
an update of XPowers library
Browse files Browse the repository at this point in the history
  • Loading branch information
lyusupov committed Jul 23, 2024
1 parent 922bbaa commit ac744de
Show file tree
Hide file tree
Showing 6 changed files with 63 additions and 23 deletions.
9 changes: 8 additions & 1 deletion software/firmware/source/SkyWatch/GNSSHelper.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1167,7 +1167,9 @@ byte GNSS_setup() {
hw_info.model == SOFTRF_MODEL_ES ||
hw_info.model == SOFTRF_MODEL_BALKAN ||
hw_info.model == SOFTRF_MODEL_HAM ||
hw_info.model == SOFTRF_MODEL_MIDI)
hw_info.model == SOFTRF_MODEL_MIDI ||
hw_info.model == SOFTRF_MODEL_ECO ||
hw_info.model == SOFTRF_MODEL_INK)
{
// power on by wakeup call
Serial_GNSS_Out.write((uint8_t) 0); GNSS_FLUSH(); delay(500);
Expand Down Expand Up @@ -1247,7 +1249,12 @@ byte GNSS_setup() {
#else
int interrupt_num = digitalPinToInterrupt(SOC_GPIO_PIN_GNSS_PPS);
if (interrupt_num != NOT_AN_INTERRUPT) {
#if defined(plat_attachInterrupt_func)
plat_attachInterrupt_func(SOC_GPIO_PIN_GNSS_PPS, SoC->GNSS_PPS_handler,
RISING);
#else
attachInterrupt(interrupt_num, SoC->GNSS_PPS_handler, RISING);
#endif /* plat_attachInterrupt_func */
}
#endif
#endif
Expand Down
1 change: 1 addition & 0 deletions software/firmware/source/SkyWatch/GNSSHelper.h
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@ typedef enum
GNSS_MODULE_MT33, /* L80 */
GNSS_MODULE_GOKE, /* Air530 */
GNSS_MODULE_UC65, /* Unicore FirebirdII UC6580 */
GNSS_MODULE_AG33, /* Airoha AG3335 */
} gnss_id_t;

typedef struct gnss_chip_ops_struct {
Expand Down
3 changes: 3 additions & 0 deletions software/firmware/source/SkyWatch/SkyWatch.h
Original file line number Diff line number Diff line change
Expand Up @@ -165,6 +165,9 @@ enum
SOFTRF_MODEL_BALKAN,
SOFTRF_MODEL_HAM,
SOFTRF_MODEL_MIDI,
SOFTRF_MODEL_ECO,
SOFTRF_MODEL_INK,
SOFTRF_MODEL_NEO,
};

enum
Expand Down
1 change: 1 addition & 0 deletions software/firmware/source/SoftRF/src/driver/GNSS.h
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@ typedef enum
GNSS_MODULE_MT33, /* L80 */
GNSS_MODULE_GOKE, /* Air530 */
GNSS_MODULE_UC65, /* Unicore FirebirdII UC6580 */
GNSS_MODULE_AG33, /* Airoha AG3335 */
} gnss_id_t;

typedef struct gnss_chip_ops_struct {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -903,7 +903,7 @@ public:
};
Serial.println();
Serial.println("-------------------------");
for (int i = 0; i < sizeof(regis) / sizeof(regis[0]); ++i) {
for (uint32_t i = 0; i < sizeof(regis) / sizeof(regis[0]); ++i) {
int val = readRegister(regis[i]);
if (val == -1) {
continue;
Expand Down
70 changes: 49 additions & 21 deletions software/firmware/source/libraries/XPowersLib/src/XPowersCommon.tpp
Original file line number Diff line number Diff line change
Expand Up @@ -79,14 +79,28 @@
#endif

#ifndef ESP32
#ifdef LOG_FILE_LINE_INFO
#undef LOG_FILE_LINE_INFO
#endif
#define LOG_FILE_LINE_INFO __FILE__, __LINE__
#ifndef log_e
#define log_e(...) Serial.printf(__VA_ARGS__)
#define log_e(fmt, ...) Serial.printf("[E][%s:%d] " fmt "\n", LOG_FILE_LINE_INFO, ##__VA_ARGS__)
#endif
#ifndef log_i
#define log_i(...) Serial.printf(__VA_ARGS__)
#define log_i(fmt, ...) Serial.printf("[I][%s:%d] " fmt "\n", LOG_FILE_LINE_INFO, ##__VA_ARGS__)
#endif
#ifndef log_d
#define log_d(...) Serial.printf(__VA_ARGS__)
#define log_d(fmt, ...) Serial.printf("[D][%s:%d] " fmt "\n", LOG_FILE_LINE_INFO, ##__VA_ARGS__)
#endif
#endif

#if defined(NRF52840_XXAA) || defined(NRF52832_XXAA)
#ifndef SDA
#define SDA (0xFF)
#endif

#ifndef SCL
#define SCL (0xFF)
#endif
#endif

Expand All @@ -103,20 +117,28 @@ public:
{
if (__has_init)return thisChip().initImpl();
__has_init = true;
__sda = sda;
__scl = scl;
__wire = &w;
#if defined(ARDUINO_ARCH_RP2040) || defined(ARDUINO_ARCH_STM32)
__wire->end();
__wire->setSDA(__sda);
__wire->setSCL(__scl);
__wire->begin();
#elif defined(ARDUINO_ARCH_NRF52) || defined(ARDUINO_ARCH_NRF52840)
__wire->end();

#if defined(NRF52840_XXAA) || defined(NRF52832_XXAA) || defined(ARDUINO_ARCH_NRF52840)
if (__sda != 0xFF && __scl != 0xFF) {
#if !defined(ARDUINO_ARCH_MBED)
__wire->setPins(__sda, __scl);
__wire->setPins(__sda, __scl);
#endif /* ARDUINO_ARCH_MBED */
}
__wire->begin();
#elif defined(ARDUINO_ARCH_RP2040) || defined(ARDUINO_ARCH_STM32)
if (__sda != 0xFF && __scl != 0xFF) {
__wire->end();
__wire->setSDA(__sda);
__wire->setSCL(__scl);
}
__wire->begin();
#elif defined(ARDUINO_ARCH_ESP32)
__wire->begin(__sda, __scl);
#else
__wire->begin(sda, scl);
__wire->begin();
#endif
__addr = addr;
return thisChip().initImpl();
Expand Down Expand Up @@ -279,19 +301,25 @@ protected:
__has_init = true;
if (__wire) {
log_i("SDA:%d SCL:%d", __sda, __scl);
#if defined(ARDUINO_ARCH_RP2040) || defined(ARDUINO_ARCH_STM32)
__wire->end();
__wire->setSDA(__sda);
__wire->setSCL(__scl);
__wire->begin();
#elif defined(ARDUINO_ARCH_NRF52) || defined(ARDUINO_ARCH_NRF52840)
__wire->end();
#if defined(NRF52840_XXAA) || defined(NRF52832_XXAA) || defined(ARDUINO_ARCH_NRF52840)
if (__sda != 0xFF && __scl != 0xFF) {
__wire->end();
#if !defined(ARDUINO_ARCH_MBED)
__wire->setPins(__sda, __scl);
__wire->setPins(__sda, __scl);
#endif /* ARDUINO_ARCH_MBED */
}
__wire->begin();
#else
#elif defined(ARDUINO_ARCH_RP2040) || defined(ARDUINO_ARCH_STM32)
if (__sda != 0xFF && __scl != 0xFF) {
__wire->end();
__wire->setSDA(__sda);
__wire->setSCL(__scl);
}
__wire->begin();
#elif defined(ARDUINO_ARCH_ESP32)
__wire->begin(__sda, __scl);
#else
__wire->begin();
#endif
}
#endif /*ARDUINO*/
Expand Down

0 comments on commit ac744de

Please sign in to comment.