Skip to content

Commit

Permalink
Implement pinout for RevK
Browse files Browse the repository at this point in the history
  • Loading branch information
hedgecrw committed Jul 14, 2023
1 parent 4b3f6a9 commit 8396d03
Show file tree
Hide file tree
Showing 9 changed files with 112 additions and 67 deletions.
2 changes: 1 addition & 1 deletion software/firmware/.settings/language.settings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
<provider copy-of="extension" id="org.eclipse.cdt.ui.UserLanguageSettingsProvider"/>
<provider-reference id="org.eclipse.cdt.core.ReferencedProjectsLanguageSettingsProvider" ref="shared-provider"/>
<provider copy-of="extension" id="org.eclipse.cdt.managedbuilder.core.GCCBuildCommandParser"/>
<provider class="org.eclipse.cdt.managedbuilder.language.settings.providers.GCCBuiltinSpecsDetector" console="false" env-hash="-416866876724866265" id="org.eclipse.embedcdt.managedbuild.cross.arm.core.GCCBuiltinSpecsDetector" keep-relative-paths="false" name="CDT Arm Cross GCC Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} ${cross_toolchain_flags} -E -P -v -dD &quot;${INPUTS}&quot;" prefer-non-shared="true">
<provider class="org.eclipse.cdt.managedbuilder.language.settings.providers.GCCBuiltinSpecsDetector" console="false" env-hash="1820961830069425545" id="org.eclipse.embedcdt.managedbuild.cross.arm.core.GCCBuiltinSpecsDetector" keep-relative-paths="false" name="CDT Arm Cross GCC Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} ${cross_toolchain_flags} -E -P -v -dD &quot;${INPUTS}&quot;" prefer-non-shared="true">
<language-scope id="org.eclipse.cdt.core.gcc"/>
<language-scope id="org.eclipse.cdt.core.g++"/>
</provider>
Expand Down
17 changes: 11 additions & 6 deletions software/firmware/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -6,19 +6,24 @@ SHELL := /bin/bash
ifdef BOARD_REV
REVISION := $(BOARD_REV)
else
REVISION := EVB
REVISION := K
endif

ifeq ($(REVISION), EVB)
BSP = apollo4_blue_pro
PART = apollo4p
PART_DEF = AM_PART_APOLLO4P
else
ifeq ($(REVISION), I)
BSP = apollo4_blue
PART = apollo4b
PART_DEF = AM_PART_APOLLO4B
else
BSP = apollo4_blue_pro
PART = apollo4p
PART_DEF = AM_PART_APOLLO4P
endif

$(info Building for Revision $(REVISION):)
$(info BSP = $(BSP))
$(info PART = $(PART))
$(info PART_DEF = $(PART_DEF))

TOOLCHAIN ?= arm-none-eabi
CPU = cortex-m4
FPU = fpv4-sp-d16
Expand Down
2 changes: 1 addition & 1 deletion software/firmware/src/app/app_config.h
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@
typedef enum { BATTERY_EMPTY = 3200, BATTERY_CRITICAL = 3500, BATTERY_NOMINAL = 3700, BATTERY_FULL = 4200 } battery_status_t;


// Dw3000 Ranging Radio Configuration ----------------------------------------------------------------------------------
// DW3000 Ranging Radio Configuration ----------------------------------------------------------------------------------

#define DW_PREAMBLE_LENGTH DWT_PLEN_128
#define DW_PAC_SIZE DWT_PAC8
Expand Down
20 changes: 0 additions & 20 deletions software/firmware/src/boards/revEVB/pinout.h
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@
// Hardware Revision ID
#include "revisions.h"
#define REVISION_ID REVISION_APOLLO4_EVB
#define EXTERNAL_PERIPHERAL_POWER_OFF_ENABLED false

// Battery
#define PIN_BATTERY_VOLTAGE 18
Expand Down Expand Up @@ -72,25 +71,6 @@
#define PIN_STORAGE_WRITE_PROTECT 12
#define PIN_STORAGE_HOLD 13

// Memory Storage (MSPI)
#define STORAGE_MSPI_NUMBER 1
#define PIN_STORAGE_MSPI_CLK 82
#define PIN_STORAGE_MSPI_IO0 74
#define PIN_STORAGE_MSPI_IO1 75
#define PIN_STORAGE_MSPI_IO2 76
#define PIN_STORAGE_MSPI_IO3 77
#define PIN_STORAGE_MSPI_CS 11
#define PIN_STORAGE_MSPI_CLK_FUNCTION AM_HAL_PIN_82_MSPI1_8
#define PIN_STORAGE_MSPI_IO0_FUNCTION AM_HAL_PIN_74_MSPI1_0
#define PIN_STORAGE_MSPI_IO1_FUNCTION AM_HAL_PIN_75_MSPI1_1
#define PIN_STORAGE_MSPI_IO2_FUNCTION AM_HAL_PIN_76_MSPI1_2
#define PIN_STORAGE_MSPI_IO3_FUNCTION AM_HAL_PIN_77_MSPI1_3
#define PIN_STORAGE_MSPI_CS_FUNCTION AM_HAL_PIN_11_NCE11

// Power
#define PIN_BLE_PERIPH_POWER_ENABLE 85
#define PIN_EXTERNAL_PERIPH_POWER_ENABLE 85

// Timers
#define BUZZER_TIMER_NUMBER 0
#define RADIO_WAKEUP_TIMER_NUMBER 2
Expand Down
20 changes: 0 additions & 20 deletions software/firmware/src/boards/revI/pinout.h
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@
// Hardware Revision ID
#include "revisions.h"
#define REVISION_ID REVISION_I
#define EXTERNAL_PERIPHERAL_POWER_OFF_ENABLED false

// Battery
#define PIN_BATTERY_VOLTAGE 18
Expand Down Expand Up @@ -68,25 +67,6 @@
#define PIN_STORAGE_WRITE_PROTECT 66
#define PIN_STORAGE_HOLD 67

// Memory Storage (MSPI)
#define STORAGE_MSPI_NUMBER 0
#define PIN_STORAGE_MSPI_CLK 72
#define PIN_STORAGE_MSPI_IO0 64
#define PIN_STORAGE_MSPI_IO1 65
#define PIN_STORAGE_MSPI_IO2 66
#define PIN_STORAGE_MSPI_IO3 67
#define PIN_STORAGE_MSPI_CS 63
#define PIN_STORAGE_MSPI_CLK_FUNCTION AM_HAL_PIN_72_MSPI0_8
#define PIN_STORAGE_MSPI_IO0_FUNCTION AM_HAL_PIN_64_MSPI0_0
#define PIN_STORAGE_MSPI_IO1_FUNCTION AM_HAL_PIN_65_MSPI0_1
#define PIN_STORAGE_MSPI_IO2_FUNCTION AM_HAL_PIN_66_MSPI0_2
#define PIN_STORAGE_MSPI_IO3_FUNCTION AM_HAL_PIN_67_MSPI0_3
#define PIN_STORAGE_MSPI_CS_FUNCTION AM_HAL_PIN_63_NCE63

// Power
#define PIN_BLE_PERIPH_POWER_ENABLE 61
#define PIN_EXTERNAL_PERIPH_POWER_ENABLE 85

// Timers
#define BUZZER_TIMER_NUMBER 0
#define RADIO_WAKEUP_TIMER_NUMBER 2
Expand Down
87 changes: 87 additions & 0 deletions software/firmware/src/boards/revK/pinout.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
#ifndef __PINOUT_HEADER_H__
#define __PINOUT_HEADER_H__

// Hardware Revision ID
#include "revisions.h"
#define REVISION_ID REVISION_K

// Battery
#define PIN_BATTERY_VOLTAGE 18
#define PIN_BATTERY_VOLTAGE_FUNCTION AM_HAL_PIN_18_ADCSE1
#define PIN_BATTERY_VOLTAGE_ADC_CHANNEL AM_HAL_ADC_SLOT_CHSEL_SE1
#define PIN_BATTERY_CHARGING_STATUS 58
#define PIN_BATTERY_INPUT_POWER_GOOD 60
#define PIN_BATTERY_CHARGE_COMPLETE_SIGNAL 66
#define VOLTAGE_DIVIDER_LOWER 187
#define VOLTAGE_DIVIDER_UPPER 510

// Buzzer
#define PIN_BUZZER_DRIVER 55

// DecaWave Radio
#define RADIO_SPI_NUMBER 3
#define PIN_RADIO_SPI_SCK 31
#define PIN_RADIO_SPI_MISO 33
#define PIN_RADIO_SPI_MOSI 32
#define PIN_RADIO_SPI_CS 29
#define PIN_RADIO_INTERRUPT 27
#define PIN_RADIO_RESET 50
#define PIN_RADIO_WAKEUP 26
#define PIN_RADIO_ANTENNA_SELECT1 24
#define PIN_RADIO_ANTENNA_SELECT2 25
#define PIN_RADIO_SPI_SCK_FUNCTION AM_HAL_PIN_31_M3SCK
#define PIN_RADIO_SPI_MISO_FUNCTION AM_HAL_PIN_33_M3MISO
#define PIN_RADIO_SPI_MOSI_FUNCTION AM_HAL_PIN_32_M3MOSI
#define PIN_RADIO_SPI_CS_FUNCTION AM_HAL_PIN_29_NCE29

// IMU
#define IMU_I2C_NUMBER 1
#define IMU_I2C_ADDRESS 0x29
#define PIN_IMU_I2C_SCL 8
#define PIN_IMU_I2C_SDA 9
#define PIN_IMU_I2C_SCL_FUNCTION AM_HAL_PIN_8_M1SCL
#define PIN_IMU_I2C_SDA_FUNCTION AM_HAL_PIN_9_M1SDAWIR3
#define PIN_IMU_INTERRUPT 17
#define PIN_IMU_RESET 65

// LEDs
#define PIN_LED1_RED 53
#define PIN_LED1_GREEN 51
#define PIN_LED2_RED 79
#define PIN_LED2_YELLOW 88

// Logging
#define PIN_SWO 3
#define PIN_SWO_FUNCTION AM_HAL_PIN_3_SWO
#define PIN_SWTRACE_CLK 38
#define PIN_SWTRACE_CLK_FUNCTION AM_HAL_PIN_38_SWTRACECLK
#define PIN_SWTRACE_0 80
#define PIN_SWTRACE_0_FUNCTION AM_HAL_PIN_80_SWTRACE0
#define PIN_SWTRACE_1 81
#define PIN_SWTRACE_1_FUNCTION AM_HAL_PIN_81_SWTRACE1
#define PIN_SWTRACE_2 82
#define PIN_SWTRACE_2_FUNCTION AM_HAL_PIN_82_SWTRACE2
#define PIN_SWTRACE_3 83
#define PIN_SWTRACE_3_FUNCTION AM_HAL_PIN_83_SWTRACE3

// Memory Storage (SPI)
#define STORAGE_SPI_NUMBER 5
#define PIN_STORAGE_SPI_SCK 47
#define PIN_STORAGE_SPI_MISO 49
#define PIN_STORAGE_SPI_MOSI 48
#define PIN_STORAGE_SPI_CS 69
#define PIN_STORAGE_SPI_SCK_FUNCTION AM_HAL_PIN_47_M5SCK
#define PIN_STORAGE_SPI_MISO_FUNCTION AM_HAL_PIN_49_M5MISO
#define PIN_STORAGE_SPI_MOSI_FUNCTION AM_HAL_PIN_48_M5MOSI
#define PIN_STORAGE_SPI_CS_FUNCTION AM_HAL_PIN_69_NCE69
#define PIN_STORAGE_WRITE_PROTECT 30
#define PIN_STORAGE_HOLD 6

// Timers
#define BUZZER_TIMER_NUMBER 0
#define RADIO_WAKEUP_TIMER_NUMBER 2
#define RADIO_WAKEUP_TIMER_TICK_RATE_HZ (AM_HAL_CLKGEN_FREQ_MAX_HZ / 16)
#define BLE_SCANNING_TIMER_NUMBER 4
#define BLE_SCANNING_TIMER_TICK_RATE_HZ (AM_HAL_CLKGEN_FREQ_MAX_HZ / 16)

#endif // #ifndef __PINOUT_HEADER_H__
1 change: 1 addition & 0 deletions software/firmware/src/boards/revisions.h
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@

#define REVISION_APOLLO4_EVB 0x00
#define REVISION_I 0x10
#define REVISION_K 0x11

#endif // #ifndef __REVISIONS_HEADER_H__

13 changes: 0 additions & 13 deletions software/firmware/src/peripherals/src/system.c
Original file line number Diff line number Diff line change
Expand Up @@ -206,12 +206,6 @@ void setup_hardware(void)
am_hal_cachectrl_config(&cachectrl_config);
am_hal_cachectrl_enable();

// Turn on the power rails to all external peripherals
configASSERT0(am_hal_gpio_pinconfig(PIN_EXTERNAL_PERIPH_POWER_ENABLE, am_hal_gpio_pincfg_output));
configASSERT0(am_hal_gpio_pinconfig(PIN_BLE_PERIPH_POWER_ENABLE, am_hal_gpio_pincfg_output));
am_hal_gpio_output_set(PIN_EXTERNAL_PERIPH_POWER_ENABLE);
am_hal_gpio_output_set(PIN_BLE_PERIPH_POWER_ENABLE);

// Set up printing to the console
logging_init();
print_reset_reason(&reset_reason);
Expand Down Expand Up @@ -266,13 +260,6 @@ void system_enter_power_off_mode(uint32_t wake_on_gpio, uint32_t wake_on_timesta
NVIC_EnableIRQ(GPIO0_001F_IRQn + GPIO_NUM2IDX(wakeup_pin));
}

// Turn off the power rails to all external peripherals
if (EXTERNAL_PERIPHERAL_POWER_OFF_ENABLED)
{
am_hal_gpio_output_clear(PIN_EXTERNAL_PERIPH_POWER_ENABLE);
am_hal_gpio_output_clear(PIN_BLE_PERIPH_POWER_ENABLE);
}

// Optionally, configure the RTC to wake the device at a specific timestamp
if (wake_on_timestamp)
rtc_set_wakeup_timestamp(wake_on_timestamp);
Expand Down
17 changes: 11 additions & 6 deletions software/firmware/tests/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -5,19 +5,24 @@ SHELL := /bin/bash
ifdef BOARD_REV
REVISION := $(BOARD_REV)
else
REVISION := EVB
REVISION := K
endif

ifeq ($(REVISION), EVB)
BSP = apollo4_blue_pro
PART = apollo4p
PART_DEF = AM_PART_APOLLO4P
else
ifeq ($(REVISION), I)
BSP = apollo4_blue
PART = apollo4b
PART_DEF = AM_PART_APOLLO4B
else
BSP = apollo4_blue_pro
PART = apollo4p
PART_DEF = AM_PART_APOLLO4P
endif

$(info Building test for Revision $(REVISION):)
$(info BSP = $(BSP))
$(info PART = $(PART))
$(info PART_DEF = $(PART_DEF))

TOOLCHAIN ?= arm-none-eabi
CPU = cortex-m4
FPU = fpv4-sp-d16
Expand Down

0 comments on commit 8396d03

Please sign in to comment.