quasar_def.h

This file defines MCU pinout and other control definitions.

Copyright

Copyright (C) 2026 SPARK Microsystems International Inc. All rights reserved.

License

This source code is proprietary and subject to the SPARK Microsystems Software EULA found in this package in file EULA.txt.

Author

SPARK FW Team.

Defines

QUASAR_DEF_RADIO_1_SCK_PORT GPIOE

RADIO 1 MAPPING.

QUASAR_DEF_RADIO_1_SCK_PIN QUASAR_GPIO_PIN_13
QUASAR_DEF_RADIO_1_MOSI_PORT GPIOE
QUASAR_DEF_RADIO_1_MOSI_PIN QUASAR_GPIO_PIN_15
QUASAR_DEF_RADIO_1_MISO_PORT GPIOE
QUASAR_DEF_RADIO_1_MISO_PIN QUASAR_GPIO_PIN_14
QUASAR_DEF_RADIO_1_CS_PORT GPIOE
QUASAR_DEF_RADIO_1_CS_PIN QUASAR_GPIO_PIN_11
QUASAR_DEF_RADIO_1_RESET_PORT GPIOG
QUASAR_DEF_RADIO_1_RESET_PIN QUASAR_GPIO_PIN_2
QUASAR_DEF_RADIO_1_SHUTDOWN_PORT GPIOD
QUASAR_DEF_RADIO_1_SHUTDOWN_PIN QUASAR_GPIO_PIN_9
QUASAR_DEF_RADIO_1_IRQ_PORT GPIOE
QUASAR_DEF_RADIO_1_IRQ_PIN QUASAR_GPIO_PIN_8
QUASAR_DEF_RADIO_1_DBG_EN_PORT GPIOD

With the SR11x0 this pin may be used as VDDIO for the radio on the demo board.

QUASAR_DEF_RADIO_1_DBG_EN_PIN QUASAR_GPIO_PIN_13
QUASAR_DEF_RADIO_1_SCN_EN_PORT GPIOD
QUASAR_DEF_RADIO_1_SCN_EN_PIN QUASAR_GPIO_PIN_10
QUASAR_DEF_RADIO_1_PLL_SEL_PORT GPIOC
QUASAR_DEF_RADIO_1_PLL_SEL_PIN QUASAR_GPIO_PIN_6
QUASAR_DEF_RADIO_1_CLK_XTAL_SEL_PORT GPIOC
QUASAR_DEF_RADIO_1_CLK_XTAL_SEL_PIN QUASAR_GPIO_PIN_7
QUASAR_DEF_RADIO_2_SCK_PORT GPIOB

RADIO 2 MAPPING.

QUASAR_DEF_RADIO_2_SCK_PIN QUASAR_GPIO_PIN_10
QUASAR_DEF_RADIO_2_MOSI_PORT_REVA GPIOB
QUASAR_DEF_RADIO_2_MOSI_PIN_REVA QUASAR_GPIO_PIN_15
QUASAR_DEF_RADIO_2_MOSI_PORT_REVB GPIOD
QUASAR_DEF_RADIO_2_MOSI_PIN_REVB QUASAR_GPIO_PIN_4
QUASAR_DEF_RADIO_2_MISO_PORT GPIOB
QUASAR_DEF_RADIO_2_MISO_PIN QUASAR_GPIO_PIN_14
QUASAR_DEF_RADIO_2_CS_PORT GPIOI
QUASAR_DEF_RADIO_2_CS_PIN QUASAR_GPIO_PIN_5
QUASAR_DEF_RADIO_2_RESET_PORT GPIOD
QUASAR_DEF_RADIO_2_RESET_PIN QUASAR_GPIO_PIN_8
QUASAR_DEF_RADIO_2_SHUTDOWN_PORT GPIOD
QUASAR_DEF_RADIO_2_SHUTDOWN_PIN QUASAR_GPIO_PIN_11
QUASAR_DEF_RADIO_2_IRQ_PORT GPIOE
QUASAR_DEF_RADIO_2_IRQ_PIN QUASAR_GPIO_PIN_7
QUASAR_DEF_RADIO_2_IO_4_PORT GPIOB
QUASAR_DEF_RADIO_2_IO_4_PIN QUASAR_GPIO_PIN_13
QUASAR_DEF_RADIO_1_QSPI_SCK_PORT GPIOF

QSPI Radio 1 (OCTOSPI1).

QUASAR_DEF_RADIO_1_QSPI_SCK_PIN QUASAR_GPIO_PIN_10
QUASAR_DEF_RADIO_1_QSPI_IO_0_PORT GPIOF
QUASAR_DEF_RADIO_1_QSPI_IO_0_PIN QUASAR_GPIO_PIN_8
QUASAR_DEF_RADIO_1_QSPI_IO_1_PORT GPIOF
QUASAR_DEF_RADIO_1_QSPI_IO_1_PIN QUASAR_GPIO_PIN_9
QUASAR_DEF_RADIO_1_QSPI_IO_2_PORT GPIOF
QUASAR_DEF_RADIO_1_QSPI_IO_2_PIN QUASAR_GPIO_PIN_7
QUASAR_DEF_RADIO_1_QSPI_IO_3_PORT GPIOF
QUASAR_DEF_RADIO_1_QSPI_IO_3_PIN QUASAR_GPIO_PIN_6
QUASAR_DEF_RADIO_2_QSPI_SCK_PORT GPIOH

QSPI Radio 2 (OCTOSPI2).

QUASAR_DEF_RADIO_2_QSPI_SCK_PIN QUASAR_GPIO_PIN_6
QUASAR_DEF_RADIO_2_QSPI_IO_0_PORT GPIOI
QUASAR_DEF_RADIO_2_QSPI_IO_0_PIN QUASAR_GPIO_PIN_3
QUASAR_DEF_RADIO_2_QSPI_IO_1_PORT GPIOI
QUASAR_DEF_RADIO_2_QSPI_IO_1_PIN QUASAR_GPIO_PIN_2
QUASAR_DEF_RADIO_2_QSPI_IO_2_PORT GPIOI
QUASAR_DEF_RADIO_2_QSPI_IO_2_PIN QUASAR_GPIO_PIN_1
QUASAR_DEF_RADIO_2_QSPI_IO_3_PORT GPIOH
QUASAR_DEF_RADIO_2_QSPI_IO_3_PIN QUASAR_GPIO_PIN_8
QUASAR_DEF_AUDIO_I2C_SDA_PORT GPIOF

Audio module I2C2 / SAI1.

QUASAR_DEF_AUDIO_I2C_SDA_PIN QUASAR_GPIO_PIN_0
QUASAR_DEF_AUDIO_I2C_SCL_PORT GPIOF
QUASAR_DEF_AUDIO_I2C_SCL_PIN QUASAR_GPIO_PIN_1
QUASAR_DEF_AUDIO_SAI_SD_A_PORT GPIOC
QUASAR_DEF_AUDIO_SAI_SD_A_PIN QUASAR_GPIO_PIN_1
QUASAR_DEF_AUDIO_SAI_SCK_PORT GPIOE
QUASAR_DEF_AUDIO_SAI_SCK_PIN QUASAR_GPIO_PIN_5
QUASAR_DEF_AUDIO_SAI_MCLK_PORT GPIOB
QUASAR_DEF_AUDIO_SAI_MCLK_PIN QUASAR_GPIO_PIN_8
QUASAR_DEF_AUDIO_SAI_SD_B_PORT GPIOB
QUASAR_DEF_AUDIO_SAI_SD_B_PIN QUASAR_GPIO_PIN_5
QUASAR_DEF_AUDIO_SAI_FS_PORT GPIOB
QUASAR_DEF_AUDIO_SAI_FS_PIN QUASAR_GPIO_PIN_9
QUASAR_DEF_AUDIO_IRQ_PORT GPIOE
QUASAR_DEF_AUDIO_IRQ_PIN QUASAR_GPIO_PIN_1
QUASAR_DEF_I2S_MUX_SEL_PORT GPIOC

If I2S is needed on the expansion port, the MUX_SEL pin should be set to HIGH. By default, the I2S signals are only connected to the onboard codec and the GPIO MUX_SEL is pulled down with a resistor.

QUASAR_DEF_I2S_MUX_SEL_PIN QUASAR_GPIO_PIN_2
QUASAR_DEF_EEPROM_SCL_PORT GPIOB

EEPROM I2C1.

QUASAR_DEF_EEPROM_SCL_PIN QUASAR_GPIO_PIN_6
QUASAR_DEF_EEPROM_SDA_PORT GPIOB
QUASAR_DEF_EEPROM_SDA_PIN QUASAR_GPIO_PIN_3
QUASAR_DEF_EEPROM_RADIO_1_ADDR 0xA2
QUASAR_DEF_EEPROM_RADIO_2_ADDR 0xA0
QUASAR_DEF_BUTTON_USER_1_PORT GPIOH

UI.

QUASAR_DEF_BUTTON_USER_1_PIN QUASAR_GPIO_PIN_10
QUASAR_DEF_BUTTON_USER_2_PORT GPIOH
QUASAR_DEF_BUTTON_USER_2_PIN QUASAR_GPIO_PIN_12
QUASAR_DEF_BUTTON_USER_3_PORT GPIOH
QUASAR_DEF_BUTTON_USER_3_PIN QUASAR_GPIO_PIN_15
QUASAR_DEF_BUTTON_USER_4_PORT GPIOI
QUASAR_DEF_BUTTON_USER_4_PIN QUASAR_GPIO_PIN_0
QUASAR_DEF_LED_USER_1_PORT GPIOA
QUASAR_DEF_LED_USER_1_PIN QUASAR_GPIO_PIN_1
QUASAR_DEF_LED_USER_2_PORT GPIOD
QUASAR_DEF_LED_USER_2_PIN QUASAR_GPIO_PIN_0
QUASAR_DEF_LED_USER_3_PORT GPIOG
QUASAR_DEF_LED_USER_3_PIN QUASAR_GPIO_PIN_15
QUASAR_DEF_LED_USER_4_PORT GPIOI
QUASAR_DEF_LED_USER_4_PIN QUASAR_GPIO_PIN_6
QUASAR_DEF_LED_USB_PORT GPIOB
QUASAR_DEF_LED_USB_PIN QUASAR_GPIO_PIN_2
QUASAR_DEF_LED_LINEIN_PORT GPIOI
QUASAR_DEF_LED_LINEIN_PIN QUASAR_GPIO_PIN_7
QUASAR_DEF_LED_HP_JACK_PORT GPIOH
QUASAR_DEF_LED_HP_JACK_PIN QUASAR_GPIO_PIN_14
QUASAR_DEF_LED_RGB_GREEN_PORT GPIOB
QUASAR_DEF_LED_RGB_GREEN_PIN QUASAR_GPIO_PIN_4
QUASAR_DEF_LED_RGB_BLUE_PORT GPIOD
QUASAR_DEF_LED_RGB_BLUE_PIN QUASAR_GPIO_PIN_7
QUASAR_DEF_LED_RGB_RED_PORT GPIOH
QUASAR_DEF_LED_RGB_RED_PIN QUASAR_GPIO_PIN_11
QUASAR_DEF_BAT_CHRG_PORT GPIOC

Power management and monitoring.

QUASAR_DEF_BAT_CHRG_PIN QUASAR_GPIO_PIN_13
QUASAR_DEF_BAT_CHRG_TS_PORT GPIOF
QUASAR_DEF_BAT_CHRG_TS_PIN QUASAR_GPIO_PIN_14
QUASAR_DEF_BOOT_INDICATOR_PORT GPIOB
QUASAR_DEF_BOOT_INDICATOR_PIN QUASAR_GPIO_PIN_11
QUASAR_DEF_LINEIN_DETECT_PORT GPIOC
QUASAR_DEF_LINEIN_DETECT_PIN QUASAR_GPIO_PIN_4
QUASAR_DEF_USB_5V_IN_DETECT_PORT GPIOF
QUASAR_DEF_USB_5V_IN_DETECT_PIN QUASAR_GPIO_PIN_15
QUASAR_DEF_LDO_MCU_EN_PORT_REVA GPIOD
QUASAR_DEF_LDO_MCU_EN_PIN_REVA QUASAR_GPIO_PIN_4
QUASAR_DEF_LDO_MCU_EN_PORT_REVB GPIOB
QUASAR_DEF_LDO_MCU_EN_PIN_REVB QUASAR_GPIO_PIN_15
QUASAR_DEF_LDO_LED_EN_PORT GPIOI
QUASAR_DEF_LDO_LED_EN_PIN QUASAR_GPIO_PIN_4
QUASAR_DEF_VDD_SEL_PORT GPIOF
QUASAR_DEF_VDD_SEL_PIN QUASAR_GPIO_PIN_11
QUASAR_DEF_NVM_EN_PORT GPIOB
QUASAR_DEF_NVM_EN_PIN QUASAR_GPIO_PIN_12
QUASAR_DEF_ADC_BAT_PORT GPIOA
QUASAR_DEF_ADC_BAT_PIN QUASAR_GPIO_PIN_6
QUASAR_DEF_ADC_BOARD_REV_PORT GPIOC
QUASAR_DEF_ADC_BOARD_REV_PIN QUASAR_GPIO_PIN_0
QUASAR_DEF_ADC_SELECTION_BATTERY_VOLTAGE QUASAR_ADC_PERIPHERAL_1

ADC peripheral and channel selection PC0 (Board revision) -> ADC1_IN1 PA6 (Battery level) -> ADC1_IN11

QUASAR_DEF_ADC_SELECTION_BOARD_REVISION QUASAR_ADC_PERIPHERAL_1
QUASAR_DEF_ADC_CHANNEL_BATTERY_VOLTAGE QUASAR_ADC_CHANNEL_11
QUASAR_DEF_ADC_CHANNEL_BOARD_REVISION QUASAR_ADC_CHANNEL_1
QUASAR_DEF_DEBUG_IO_0_PORT GPIOA

Expansion port IO used as debug IO.

QUASAR_DEF_DEBUG_IO_0_PIN QUASAR_GPIO_PIN_4
QUASAR_DEF_DEBUG_IO_1_PORT GPIOA
QUASAR_DEF_DEBUG_IO_1_PIN QUASAR_GPIO_PIN_5
QUASAR_DEF_DEBUG_IO_2_PORT GPIOC
QUASAR_DEF_DEBUG_IO_2_PIN QUASAR_GPIO_PIN_3
QUASAR_DEF_DEBUG_IO_3_PORT GPIOC
QUASAR_DEF_DEBUG_IO_3_PIN QUASAR_GPIO_PIN_5
QUASAR_DEF_DEBUG_IO_4_PORT GPIOB
QUASAR_DEF_DEBUG_IO_4_PIN QUASAR_GPIO_PIN_1
QUASAR_DEF_EXPANSION_UART_TX_PORT GPIOA
QUASAR_DEF_EXPANSION_UART_TX_PIN QUASAR_GPIO_PIN_2
QUASAR_DEF_EXPANSION_UART_RX_PORT GPIOA
QUASAR_DEF_EXPANSION_UART_RX_PIN QUASAR_GPIO_PIN_3
QUASAR_DEF_EXPANSION_SPI_CS_PORT GPIOA
QUASAR_DEF_EXPANSION_SPI_CS_PIN QUASAR_GPIO_PIN_15
QUASAR_DEF_EXPANSION_SPI_MOSI_PORT GPIOD
QUASAR_DEF_EXPANSION_SPI_MOSI_PIN QUASAR_GPIO_PIN_6
QUASAR_DEF_EXPANSION_SPI_SCK_PORT GPIOG
QUASAR_DEF_EXPANSION_SPI_SCK_PIN QUASAR_GPIO_PIN_9
QUASAR_DEF_EXPANSION_SPI_MISO_PORT GPIOG
QUASAR_DEF_EXPANSION_SPI_MISO_PIN QUASAR_GPIO_PIN_10
QUASAR_DEF_PRIO_MULTI_RADIO_TIMER_IRQ QUASAR_IRQ_PRIORITY_0

Priorities.

QUASAR_DEF_PRIO_AUDIO_SAI_DMA_TX_IRQ QUASAR_IRQ_PRIORITY_1
QUASAR_DEF_PRIO_AUDIO_SAI_DMA_RX_IRQ QUASAR_IRQ_PRIORITY_1
QUASAR_DEF_PRIO_RADIO_1_IRQ QUASAR_IRQ_PRIORITY_2
QUASAR_DEF_PRIO_RADIO_2_IRQ QUASAR_IRQ_PRIORITY_2
QUASAR_DEF_PRIO_RADIO_1_DMA_IRQ QUASAR_IRQ_PRIORITY_2
QUASAR_DEF_PRIO_RADIO_2_DMA_IRQ QUASAR_IRQ_PRIORITY_2
FREE_RUNNING_TIMER_PRIORITY QUASAR_IRQ_PRIORITY_3
QUASAR_DEF_PRIO_OTG_HS_IRQ QUASAR_IRQ_PRIORITY_8
QUASAR_DEF_PRIO_USB_DETECT_IRQ QUASAR_IRQ_PRIORITY_11
QUASAR_DEF_PRIO_PENDSV_IRQ QUASAR_IRQ_PRIORITY_12
QUASAR_DEF_PRIO_TIMER_NO_IRQ QUASAR_IRQ_PRIORITY_NONE
QUASAR_DEF_DMA_SELECTION_RADIO_1_TX QUASAR_DMA_SELECTION_GPDMA1_CHANNEL1

DMA Controller channel (SAI has not been converted to use DMA driver instead of HAL).

QUASAR_DEF_DMA_SELECTION_RADIO_1_RX QUASAR_DMA_SELECTION_GPDMA1_CHANNEL2
QUASAR_DEF_DMA_SELECTION_RADIO_2_TX QUASAR_DMA_SELECTION_GPDMA1_CHANNEL5
QUASAR_DEF_DMA_SELECTION_RADIO_2_RX QUASAR_DMA_SELECTION_GPDMA1_CHANNEL6
QUASAR_DEF_GPDMA1_CHANNEL_SAI_TX GPDMA1_Channel7
QUASAR_DEF_GPDMA1_CHANNEL_SAI_RX GPDMA1_Channel8
QUASAR_NVIC_SAI_DMA_TX_CPLT GPDMA1_Channel7_IRQn

Nested vectored interrupt controller ID.

QUASAR_NVIC_SAI_DMA_RX_CPLT GPDMA1_Channel8_IRQn
QUASAR_DEF_SPI_SELECTION_RADIO_1 QUASAR_SPI_SELECTION_SPI1

Peripherals selection (SAI driver has not been implemented. SAI selection is directly in quasar_audio file).

QUASAR_DEF_SPI_SELECTION_RADIO_2 QUASAR_SPI_SELECTION_SPI2
QUASAR_DEF_QSPI_SELECTION_RADIO_1 QUASAR_QSPI_SELECTION_OSPI1
QUASAR_DEF_QSPI_SELECTION_RADIO_2 QUASAR_QSPI_SELECTION_OSPI2
QUASAR_DEF_I2C_SELECTON_EEROM_RADIO_1 QUASAR_I2C_SELECTION_I2C1
QUASAR_DEF_I2C_SELECTION_CODEC QUASAR_I2C_SELECTION_I2C2
QUASAR_DEF_UART_SELECTION_EXPANSION QUASAR_UART_SELECTION_USART2
QUASAR_DEF_SPI_SELECTION_EXPANSION QUASAR_SPI_SELECTION_SPI3
QUASAR_DEF_UART_SELECTION_DEBUG QUASAR_UART_SELECTION_UART4
QUASAR_DEF_TIMER_SELECTION_FREE_RUNNING_MS QUASAR_TIMER_SELECTION_TIMER8

Timer selection.

QUASAR_DEF_TIMER_SELECTION_MULTI_RADIO QUASAR_TIMER_SELECTION_TIMER4
QUASAR_DEF_TIMER_SELECTION_BLOCKING_DELAY QUASAR_TIMER_SELECTION_TIMER2
QUASAR_SET_BIT(REG, BIT_MASK) ((REG) |= (BIT_MASK))

Set a specific bit in a register.

QUASAR_CLEAR_BIT(REG, BIT_MASK) ((REG) &= ~(BIT_MASK))

Clear a specific bit in a register.

QUASAR_READ_BIT(REG, BIT_POS) (((REG) >> (BIT_POS)) & 1)

Read a specific bit in a register at a given position.

QUASAR_WRITE_BITS(BYTES, BITS_MASK, BITS_POS, VALUE) ((BYTES) |= ((BITS_MASK) & ((VALUE) << (BITS_POS))))

Write a specific value in specific bytes at a specific position.