Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file added datasheets/ADS131M08-Q1.pdf
Binary file not shown.
166 changes: 166 additions & 0 deletions firmware/PowerDistributionUnit_Mk1/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,166 @@
# CRAZY COLORS ----------------------------------------------------------------
RED=\033[0;31m
GREEN=\033[0;32m
ORANGE=\033[0;33m
BLUE=\033[0;34m
PURPLE=\033[0;35m
CYAN=\033[0;36m
LIGHTGRAY=\033[0;37m
DARKGRAY=\033[1;30m
YELLOW=\033[0;33m
NC=\033[0m # No Color
# -----------------------------------------------------------------------------

# generate paths
MAKEFILE_DIR = $(shell dirname $(realpath $(lastword $(MAKEFILE_LIST))))

# PROJECT CONFIGURATION -------------------------------------------------------
TEST ?= main

# COMMON TARGETS
# LSOM: stm32g473xx
# PSOM: stm32l431cbt
# FAT NUCLEO: stm32g474xx
# BAD NUCLEO: stm32l432kcu
PROJECT_TARGET ?= stm32g473xx

# SOURCE AND INCLUDE DIRECTORIES
PROJECT_C_INCLUDES = $(wildcard core/inc) $(wildcard ../driver/inc)
PROJECT_C_SOURCES = $(wildcard core/src/*.c) $(wildcard ../driver/src/*.c)
PROJECT_MAIN_DIR ?= core/src

# BUILD DIRECTORIES
PROJECT_BUILD_DIR = build
BUILD_MAKEFILE_DIR ?= ../Embedded-Sharepoint

MADEFILE ?= true
MADEFILE_DIR = ${MAKEFILE_DIR}
# -----------------------------------------------------------------------------


# remove main and add test folders if running test
ifneq ($(TEST), "main")
PROJECT_C_SOURCES := $(filter-out $(PROJECT_MAIN_DIR)/main.c, $(PROJECT_C_SOURCES))
PROJECT_C_SOURCES += $(wildcard test/src/${TEST}.c)

PROJECT_C_INCLUDES += $(wildcard test/inc)
endif

# Convert relative paths to absolute paths for passing to Embedded-Sharepoint build
PROJECT_C_SOURCES := $(addprefix $(MAKEFILE_DIR)/, $(PROJECT_C_SOURCES))
PROJECT_C_INCLUDES := $(addprefix $(MAKEFILE_DIR)/, $(PROJECT_C_INCLUDES))

# Debug
PRINT_DEBUG ?= true

ifeq ($(PRINT_DEBUG), true)
$(info SOURCES: $(PROJECT_C_SOURCES))
$(info INCLUDES: $(PROJECT_C_INCLUDES))
endif

# generate paths (cont.d)
PROJECT_BUILD_DIR := $(addprefix $(MAKEFILE_DIR)/, $(PROJECT_BUILD_DIR))

# export variables
export PROJECT_TARGET
export PROJECT_C_SOURCES
export PROJECT_C_INCLUDES
export PROJECT_BUILD_DIR


# -----------------------------------------------------------------------------
# Clang
BEAR_PREFIX :=
# check if bear is installed
BEAR_INSTALLED := $(shell command -v bear >/dev/null 2>&1 && echo yes || echo no)

# define path of .vscode (create if missing)
VS_CODE_DIR := $(MAKEFILE_DIR)/.vscode
$(shell mkdir -p $(VS_CODE_DIR))

ifeq ($(BEAR_INSTALLED),yes)
BEAR_PREFIX := bear --output $(VS_CODE_DIR)/compile_commands.json --append --
endif
# -----------------------------------------------------------------------------


# BUILD -----------------------------------------------------------------------
ifeq ($(MAKECMDGOALS),)
default: build_code
else ifeq ($(MAKECMDGOALS), all)
all: build_code
else
%:
$(BEAR_PREFIX) $(MAKE) -C $(BUILD_MAKEFILE_DIR) $(MAKECMDGOALS)
endif


build_code:
ifeq ($(MADEFILE), true)
@echo -e "Make initiated at $(shell date)\n" > ${MADEFILE_DIR}/Madefile
endif

ifneq ($(TEST), main)
@echo -e "Making ${PURPLE}$(PROJECT_TARGET)${NC}build for ${BLUE}TEST=${PURPLE}${TEST}${NC}"
ifeq ($(MADEFILE), true)
@echo -e "Making $(PROJECT_TARGET) build for TEST=${TEST}\n" >> ${MADEFILE_DIR}/Madefile
endif
else
@echo -e "Making ${PURPLE}$(PROJECT_TARGET)${NC}build with ${ORANGE}main.${NC}"
ifeq ($(MADEFILE), true)
@echo -e "Making $(PROJECT_TARGET) build with main.\n" >> ${MADEFILE_DIR}/Madefile
endif
endif

ifeq ($(MADEFILE), true)
@set -o pipefail; if $(BEAR_PREFIX) $(MAKE) -C $(BUILD_MAKEFILE_DIR) all -j | tee -a ${MADEFILE_DIR}/Madefile; then \
echo -e "${GREEN}Compiled! Splendid! Jolly Good!!!\n${NC}"; \
echo -e "\nCompiled! Splendid! Jolly Good!!\n" >> ${MADEFILE_DIR}/Madefile; \
else \
echo -e "${RED}Build failure.\n${NC}"; \
echo -e "\nBuild failure.\n" >> ${MADEFILE_DIR}/Madefile; \
exit 1; \
fi
else
@set -o pipefail; if $(BEAR_PREFIX) $(MAKE) -C $(BUILD_MAKEFILE_DIR) all -j; then \
echo -e "${GREEN}Compiled! Splendid! Jolly Good!!!\n${NC}"; \
else \
echo -e "${RED}Build failure.\n${NC}"; \
exit 1; \
fi
endif
# -----------------------------------------------------------------------------


# FLASH -----------------------------------------------------------------------
flash:
@set -o pipefail; if $(MAKE) -C $(BUILD_MAKEFILE_DIR) flash; then \
echo -e "${GREEN}Flash successful.\n${NC}"; \
else \
echo -e "${RED}Flash failure.\n${NC}"; \
exit 1; \
fi
# -----------------------------------------------------------------------------

# FLASH-UART ------------------------------------------------------------------
flash-uart:
@set -o pipefail; if $(MAKE) -C $(BUILD_MAKEFILE_DIR) flash-uart; then \
echo -e "${GREEN}Flash successful.\n${NC}"; \
else \
echo -e "${RED}Flash failure.\n${NC}"; \
exit 1; \
fi
# -----------------------------------------------------------------------------

# CLEAN -----------------------------------------------------------------------
clean:
$(MAKE) -C $(BUILD_MAKEFILE_DIR) clean
-rm -fR $(MADEFILE_DIR)/Madefile
# -----------------------------------------------------------------------------


# DOCUMENTATION ---------------------------------------------------------------
# .PHONY: docs
# docs:
# cd $(BUILD_MAKEFILE_DIR) && mkdocs serve
# -----------------------------------------------------------------------------
104 changes: 104 additions & 0 deletions firmware/PowerDistributionUnit_Mk1/core/inc/LSOM_S_Pins.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,104 @@
// LSOM_S_Pins.h
// ----------------------------------------------------------------------------
// LSOM-S pin mappings

#pragma once

#define LSOM_5_PORT GPIOC
#define LSOM_5_PIN GPIO_PIN_7

#define LSOM_6_PORT GPIOA
#define LSOM_6_PIN GPIO_PIN_11

#define LSOM_7_PORT GPIOC
#define LSOM_7_PIN GPIO_PIN_6

#define LSOM_8_PORT GPIOA
#define LSOM_8_PIN GPIO_PIN_12

#define LSOM_9_PORT GPIOC
#define LSOM_9_PIN GPIO_PIN_9

#define LSOM_10_PORT GPIOB
#define LSOM_10_PIN GPIO_PIN_2

#define LSOM_11_PORT GPIOC
#define LSOM_11_PIN GPIO_PIN_8

#define LSOM_12_PORT GPIOB
#define LSOM_12_PIN GPIO_PIN_12

#define LSOM_13_PORT GPIOD
#define LSOM_13_PIN GPIO_PIN_2

#define LSOM_14_PORT GPIOB
#define LSOM_14_PIN GPIO_PIN_14

#define LSOM_15_PORT GPIOC
#define LSOM_15_PIN GPIO_PIN_12

#define LSOM_16_PORT GPIOB
#define LSOM_16_PIN GPIO_PIN_9

#define LSOM_17_PORT GPIOC
#define LSOM_17_PIN GPIO_PIN_4

#define LSOM_18_PORT GPIOB
#define LSOM_18_PIN GPIO_PIN_15

#define LSOM_19_PORT GPIOC
#define LSOM_19_PIN GPIO_PIN_5

#define LSOM_20_PORT GPIOB
#define LSOM_20_PIN GPIO_PIN_13

#define LSOM_30_PORT GPIOA
#define LSOM_30_PIN GPIO_PIN_15

#define LSOM_31_PORT GPIOB
#define LSOM_31_PIN GPIO_PIN_1

#define LSOM_32_PORT GPIOA
#define LSOM_32_PIN GPIO_PIN_8

#define LSOM_33_PORT GPIOB
#define LSOM_33_PIN GPIO_PIN_0

#define LSOM_34_PORT GPIOB
#define LSOM_34_PIN GPIO_PIN_11

#define LSOM_35_PORT GPIOA
#define LSOM_35_PIN GPIO_PIN_3

#define LSOM_36_PORT GPIOB
#define LSOM_36_PIN GPIO_PIN_10

#define LSOM_39_PORT GPIOA
#define LSOM_39_PIN GPIO_PIN_2

#define LSOM_40_PORT GPIOC
#define LSOM_40_PIN GPIO_PIN_1

#define LSOM_41_PORT GPIOA
#define LSOM_41_PIN GPIO_PIN_1

#define LSOM_42_PORT GPIOB
#define LSOM_42_PIN GPIO_PIN_4

#define LSOM_43_PORT GPIOA
#define LSOM_43_PIN GPIO_PIN_0

#define LSOM_44_PORT GPIOA
#define LSOM_44_PIN GPIO_PIN_10

#define LSOM_45_PORT GPIOC
#define LSOM_45_PIN GPIO_PIN_2

#define LSOM_46_PORT GPIOB
#define LSOM_46_PIN GPIO_PIN_5

#define LSOM_47_PORT GPIOC
#define LSOM_47_PIN GPIO_PIN_0

#define LSOM_48_PORT GPIOB
#define LSOM_48_PIN GPIO_PIN_3
104 changes: 104 additions & 0 deletions firmware/PowerDistributionUnit_Mk1/core/inc/LSOM_U_Pins.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,104 @@
// LSOM_U_Pins.h
// ----------------------------------------------------------------------------
// LSOM-U pin mappings

#pragma once

#define LSOM_5_PORT GPIOC
#define LSOM_5_PIN GPIO_PIN_7

#define LSOM_6_PORT GPIOA
#define LSOM_6_PIN GPIO_PIN_11

#define LSOM_7_PORT GPIOC
#define LSOM_7_PIN GPIO_PIN_6

#define LSOM_8_PORT GPIOA
#define LSOM_8_PIN GPIO_PIN_12

#define LSOM_9_PORT GPIOC
#define LSOM_9_PIN GPIO_PIN_9

#define LSOM_10_PORT GPIOB
#define LSOM_10_PIN GPIO_PIN_2

#define LSOM_11_PORT GPIOC
#define LSOM_11_PIN GPIO_PIN_8

#define LSOM_12_PORT GPIOB
#define LSOM_12_PIN GPIO_PIN_12

#define LSOM_13_PORT GPIOC
#define LSOM_13_PIN GPIO_PIN_12

#define LSOM_14_PORT GPIOB
#define LSOM_14_PIN GPIO_PIN_14

#define LSOM_15_PORT GPIOD
#define LSOM_15_PIN GPIO_PIN_2

#define LSOM_16_PORT GPIOB
#define LSOM_16_PIN GPIO_PIN_9

#define LSOM_17_PORT GPIOC
#define LSOM_17_PIN GPIO_PIN_4

#define LSOM_18_PORT GPIOB
#define LSOM_18_PIN GPIO_PIN_15

#define LSOM_19_PORT GPIOC
#define LSOM_19_PIN GPIO_PIN_5

#define LSOM_20_PORT GPIOB
#define LSOM_20_PIN GPIO_PIN_13

#define LSOM_30_PORT GPIOA
#define LSOM_30_PIN GPIO_PIN_15

#define LSOM_31_PORT GPIOB
#define LSOM_31_PIN GPIO_PIN_1

#define LSOM_32_PORT GPIOA
#define LSOM_32_PIN GPIO_PIN_8

#define LSOM_33_PORT GPIOB
#define LSOM_33_PIN GPIO_PIN_0

#define LSOM_34_PORT GPIOB
#define LSOM_34_PIN GPIO_PIN_11

#define LSOM_35_PORT GPIOA
#define LSOM_35_PIN GPIO_PIN_3

#define LSOM_36_PORT GPIOB
#define LSOM_36_PIN GPIO_PIN_10

#define LSOM_39_PORT GPIOA
#define LSOM_39_PIN GPIO_PIN_2

#define LSOM_40_PORT GPIOC
#define LSOM_40_PIN GPIO_PIN_1

#define LSOM_41_PORT GPIOA
#define LSOM_41_PIN GPIO_PIN_1

#define LSOM_42_PORT GPIOB
#define LSOM_42_PIN GPIO_PIN_4

#define LSOM_43_PORT GPIOA
#define LSOM_43_PIN GPIO_PIN_0

#define LSOM_44_PORT GPIOA
#define LSOM_44_PIN GPIO_PIN_10

#define LSOM_45_PORT GPIOC
#define LSOM_45_PIN GPIO_PIN_2

#define LSOM_46_PORT GPIOB
#define LSOM_46_PIN GPIO_PIN_5

#define LSOM_47_PORT GPIOC
#define LSOM_47_PIN GPIO_PIN_0

#define LSOM_48_PORT GPIOB
#define LSOM_48_PIN GPIO_PIN_3
7 changes: 7 additions & 0 deletions firmware/PowerDistributionUnit_Mk1/core/inc/PDU_Mk1.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
// PDU_Mk1.h
// ----------------------------------------------------------------------------
// BBPDU Mk1 constants and stuff

#pragma once

#define PDU_MK1_NUM_CHANNELS 16
Loading
Loading