Boards add

(cherry picked from commit c91c64da013068cd4ae8c10c435f51b81c5c63a2)
This commit is contained in:
TurboMarian 2022-12-17 13:35:19 +00:00 committed by rusefillc
parent 8f0ea23ca9
commit 99f685d365
34 changed files with 3263 additions and 0 deletions

View File

@ -0,0 +1,2 @@
w folderze /firmware
gen_config_board.sh BB_V2 BB_V2

View File

@ -0,0 +1,491 @@
/**
* @file boards/subaru_eg33/board_io.c
*
* @date Feb 06, 2021
* @author Andrey Gusakov, 2021
*/
#define BOARD_NAME "BB_V2"
#ifndef BOARD_IO_H
#define BOARD_IO_H
#define EFI_USB_AF 10U
#define EFI_USB_SERIAL_DM Gpio::A11
#define EFI_USB_SERIAL_DP Gpio::A12
#define EFI_USE_OSC TRUE
#define EFI_CAN_SUPPORT TRUE
#define CAN_USE_SLEEP_MODE FALSE
#undef EFI_FILE_LOGGING
#define EFI_FILE_LOGGING TRUE
#undef EFI_SDC_DEVICE
#define EFI_SDC_DEVICE SDCD1
#undef EFI_ICU_INPUTS
#define EFI_ICU_INPUTS FALSE
#undef HAL_TRIGGER_USE_PAL
#define HAL_TRIGGER_USE_PAL TRUE
#undef EFI_LOGIC_ANALYZER
#define EFI_LOGIC_ANALYZER FALSE
#undef HAL_VSS_USE_PAL
#define HAL_VSS_USE_PAL TRUE
#ifndef LED_CRITICAL_ERROR_BRAIN_PIN
#define LED_CRITICAL_ERROR_BRAIN_PIN Gpio::Unassigned
#endif
// Ignore USB VBUS pin (we're never a host, only a device)
#define BOARD_OTG_NOVBUSSENS TRUE
/*
* Board oscillators-related settings.
* NOTE: LSE not fitted.
*/
#if !defined(STM32_LSECLK)
#define STM32_LSECLK 32768U
#endif
#define STM32_LSEDRV (3U << 3U)
/*
* Board voltages.
* Required for performance limits calculation.
*/
#define STM32_VDD 300U
#define EFI_PIN_MODE_DEFAULT PIN_MODE_INPUT
#ifndef EFI_DR_DEFAULT
#define EFI_DR_DEFAULT PIN_PUPDR_PULLDOWN
#endif
// See https://github.com/rusefi/rusefi/issues/397
#define DEFAULT_GPIO_SPEED PIN_OSPEED_HIGH
/*
* I/O ports initial setup, this configuration is established soon after reset
* in the initialization code.
* Please refer to the STM32 Reference Manual for details.
*/
#define PIN_MODE_INPUT(n) (0U << ((n) * 2U))
#define PIN_MODE_OUTPUT(n) (1U << ((n) * 2U))
#define PIN_MODE_ALTERNATE(n) (2U << ((n) * 2U))
#define PIN_MODE_ANALOG(n) (3U << ((n) * 2U))
#define PIN_ODR_LOW(n) (0U << (n))
#define PIN_ODR_HIGH(n) (1U << (n))
#define PIN_OTYPE_PUSHPULL(n) (0U << (n))
#define PIN_OTYPE_OPENDRAIN(n) (1U << (n))
#define PIN_OSPEED_VERYLOW(n) (0U << ((n) * 2U))
#define PIN_OSPEED_LOW(n) (1U << ((n) * 2U))
#define PIN_OSPEED_MEDIUM(n) (2U << ((n) * 2U))
#define PIN_OSPEED_HIGH(n) (3U << ((n) * 2U))
#define PIN_PUPDR_FLOATING(n) (0U << ((n) * 2U))
#define PIN_PUPDR_PULLUP(n) (1U << ((n) * 2U))
#define PIN_PUPDR_PULLDOWN(n) (2U << ((n) * 2U))
#define PIN_AFIO_AF(n, v) ((v) << (((n) % 8U) * 4U))
#define VAL_GPIO_MODER_ALL_DEFAULT (EFI_PIN_MODE_DEFAULT(0) | \
EFI_PIN_MODE_DEFAULT(1) | \
EFI_PIN_MODE_DEFAULT(2) | \
EFI_PIN_MODE_DEFAULT(3) | \
EFI_PIN_MODE_DEFAULT(4) | \
EFI_PIN_MODE_DEFAULT(5) | \
EFI_PIN_MODE_DEFAULT(6) | \
EFI_PIN_MODE_DEFAULT(7) | \
EFI_PIN_MODE_DEFAULT(8) | \
EFI_PIN_MODE_DEFAULT(9) | \
EFI_PIN_MODE_DEFAULT(10) | \
EFI_PIN_MODE_DEFAULT(11) | \
EFI_PIN_MODE_DEFAULT(12) | \
EFI_PIN_MODE_DEFAULT(13) | \
EFI_PIN_MODE_DEFAULT(14) | \
EFI_PIN_MODE_DEFAULT(15))
#define VAL_GPIO_OTYPER_ALL_DEFAULT (PIN_OTYPE_PUSHPULL(0) | \
PIN_OTYPE_PUSHPULL(1) | \
PIN_OTYPE_PUSHPULL(2) | \
PIN_OTYPE_PUSHPULL(3) | \
PIN_OTYPE_PUSHPULL(4) | \
PIN_OTYPE_PUSHPULL(5) | \
PIN_OTYPE_PUSHPULL(6) | \
PIN_OTYPE_PUSHPULL(7) | \
PIN_OTYPE_PUSHPULL(8) | \
PIN_OTYPE_PUSHPULL(9) | \
PIN_OTYPE_PUSHPULL(10) | \
PIN_OTYPE_PUSHPULL(11) | \
PIN_OTYPE_PUSHPULL(12) | \
PIN_OTYPE_PUSHPULL(13) | \
PIN_OTYPE_PUSHPULL(14) | \
PIN_OTYPE_PUSHPULL(15))
#define VAL_GPIO_OSPEEDR_ALL_DEFAULT (DEFAULT_GPIO_SPEED(0) | \
DEFAULT_GPIO_SPEED(1) | \
DEFAULT_GPIO_SPEED(2) | \
DEFAULT_GPIO_SPEED(3) | \
DEFAULT_GPIO_SPEED(4) | \
DEFAULT_GPIO_SPEED(5) | \
DEFAULT_GPIO_SPEED(6) | \
DEFAULT_GPIO_SPEED(7) | \
DEFAULT_GPIO_SPEED(8) | \
DEFAULT_GPIO_SPEED(9) | \
DEFAULT_GPIO_SPEED(10) | \
DEFAULT_GPIO_SPEED(11) | \
DEFAULT_GPIO_SPEED(12) | \
DEFAULT_GPIO_SPEED(13) | \
DEFAULT_GPIO_SPEED(14) | \
DEFAULT_GPIO_SPEED(15))
#define VAL_GPIO_ODR_ALL_DEFAULT 0
#define VAL_GPIO_PUPDR_ALL_DEFAULT (EFI_DR_DEFAULT(0) | \
EFI_DR_DEFAULT(1) | \
EFI_DR_DEFAULT(2) | \
EFI_DR_DEFAULT(3) | \
EFI_DR_DEFAULT(4) | \
EFI_DR_DEFAULT(5) | \
EFI_DR_DEFAULT(6) | \
EFI_DR_DEFAULT(7) | \
EFI_DR_DEFAULT(8) | \
EFI_DR_DEFAULT(9) | \
EFI_DR_DEFAULT(10) | \
EFI_DR_DEFAULT(11) | \
EFI_DR_DEFAULT(12) | \
EFI_DR_DEFAULT(13) | \
EFI_DR_DEFAULT(14) | \
EFI_DR_DEFAULT(15))
#define VAL_GPIO_AF_ALL_DEFAULT (PIN_AFIO_AF(0, 0U) | \
PIN_AFIO_AF(1, 0U) | \
PIN_AFIO_AF(2, 0U) | \
PIN_AFIO_AF(3, 0U) | \
PIN_AFIO_AF(4, 0U) | \
PIN_AFIO_AF(5, 0U) | \
PIN_AFIO_AF(6, 0U) | \
PIN_AFIO_AF(7, 0U))
#define VAL_GPIOA_MODER (EFI_PIN_MODE_DEFAULT(0) | \
EFI_PIN_MODE_DEFAULT(1) | \
EFI_PIN_MODE_DEFAULT(2) | \
EFI_PIN_MODE_DEFAULT(3) | \
EFI_PIN_MODE_DEFAULT(4) | \
EFI_PIN_MODE_DEFAULT(5) | \
EFI_PIN_MODE_DEFAULT(6) | \
EFI_PIN_MODE_DEFAULT(7) | \
EFI_PIN_MODE_DEFAULT(8) | \
EFI_PIN_MODE_DEFAULT(9) | \
EFI_PIN_MODE_DEFAULT(10) | \
EFI_PIN_MODE_DEFAULT(11) | \
EFI_PIN_MODE_DEFAULT(12) | \
PIN_MODE_ALTERNATE(13) | \
PIN_MODE_ALTERNATE(14) | \
EFI_PIN_MODE_DEFAULT(15))
#define VAL_GPIOA_OTYPER VAL_GPIO_OTYPER_ALL_DEFAULT
#define VAL_GPIOA_OSPEEDR VAL_GPIO_OSPEEDR_ALL_DEFAULT
#define VAL_GPIOA_PUPDR VAL_GPIO_PUPDR_ALL_DEFAULT
#define VAL_GPIOA_ODR VAL_GPIO_ODR_ALL_DEFAULT
#define VAL_GPIOA_AFRL (PIN_AFIO_AF(0, 0U) | \
PIN_AFIO_AF(1, 0U) | \
PIN_AFIO_AF(2, 0U) | \
PIN_AFIO_AF(3, 0U) | \
PIN_AFIO_AF(4, 6U) | \
PIN_AFIO_AF(5, 5U) | \
PIN_AFIO_AF(6, 5U) | \
PIN_AFIO_AF(7, 5U))
#define VAL_GPIOA_AFRH VAL_GPIO_AF_ALL_DEFAULT
/*
* GPIOB setup:
*/
#define VAL_GPIOB_MODER (EFI_PIN_MODE_DEFAULT(0) | \
EFI_PIN_MODE_DEFAULT(1) | \
EFI_PIN_MODE_DEFAULT(2) | \
EFI_PIN_MODE_DEFAULT(3) | \
EFI_PIN_MODE_DEFAULT(4) | \
EFI_PIN_MODE_DEFAULT(5) | \
EFI_PIN_MODE_DEFAULT(6) | \
EFI_PIN_MODE_DEFAULT(7) | \
EFI_PIN_MODE_DEFAULT(8) | \
EFI_PIN_MODE_DEFAULT(9) | \
EFI_PIN_MODE_DEFAULT(10) | \
EFI_PIN_MODE_DEFAULT(11) | \
EFI_PIN_MODE_DEFAULT(12) | \
EFI_PIN_MODE_DEFAULT(13) | \
EFI_PIN_MODE_DEFAULT(14) | \
EFI_PIN_MODE_DEFAULT(15))
#define VAL_GPIOB_OTYPER VAL_GPIO_OTYPER_ALL_DEFAULT
#define VAL_GPIOB_OSPEEDR VAL_GPIO_OSPEEDR_ALL_DEFAULT
#define VAL_GPIOB_PUPDR VAL_GPIO_PUPDR_ALL_DEFAULT
#define VAL_GPIOB_ODR VAL_GPIO_ODR_ALL_DEFAULT
#define VAL_GPIOB_AFRL VAL_GPIO_AF_ALL_DEFAULT
#define VAL_GPIOB_AFRH VAL_GPIO_AF_ALL_DEFAULT
/*
* GPIOC setup:
* 8 BIT MODE
* PC8 - MMC D0
* PC9 - MMC D1
* PC10 - MMC D2
* PC11 - MMC D3
* PC12 - CLK
* 1 BIT MODE
* PC8 - MMC D0
* PC12 - CLK
* NOW IS SETUP FOR 1 BIT SDIO
*/
#define VAL_GPIOC_MODER (EFI_PIN_MODE_DEFAULT(0) | \
EFI_PIN_MODE_DEFAULT(1) | \
EFI_PIN_MODE_DEFAULT(2) | \
EFI_PIN_MODE_DEFAULT(3) | \
EFI_PIN_MODE_DEFAULT(4) | \
EFI_PIN_MODE_DEFAULT(5) | \
EFI_PIN_MODE_DEFAULT(6) | \
EFI_PIN_MODE_DEFAULT(7) | \
PIN_MODE_ALTERNATE(8) | \
EFI_PIN_MODE_DEFAULT(9) | \
EFI_PIN_MODE_DEFAULT(10) | \
EFI_PIN_MODE_DEFAULT(11) | \
PIN_MODE_ALTERNATE(12) | \
EFI_PIN_MODE_DEFAULT(13) | \
EFI_PIN_MODE_DEFAULT(14) | \
EFI_PIN_MODE_DEFAULT(15))
#define VAL_GPIOC_OTYPER (PIN_OTYPE_PUSHPULL( 0) | \
PIN_OTYPE_PUSHPULL( 1) | \
PIN_OTYPE_PUSHPULL( 2) | \
PIN_OTYPE_PUSHPULL( 3) | \
PIN_OTYPE_PUSHPULL( 4) | \
PIN_OTYPE_PUSHPULL( 5) | \
PIN_OTYPE_PUSHPULL( 6)| \
PIN_OTYPE_PUSHPULL( 7)| \
PIN_OTYPE_PUSHPULL( 8)| \
PIN_OTYPE_PUSHPULL( 9) | \
PIN_OTYPE_PUSHPULL(10) | \
PIN_OTYPE_PUSHPULL(11) | \
PIN_OTYPE_PUSHPULL(12) | \
PIN_OTYPE_PUSHPULL(13) | \
PIN_OTYPE_PUSHPULL(14)| \
PIN_OTYPE_PUSHPULL(15))
#define VAL_GPIOC_OSPEEDR (DEFAULT_GPIO_SPEED( 0) | \
DEFAULT_GPIO_SPEED( 1) | \
DEFAULT_GPIO_SPEED( 2) | \
DEFAULT_GPIO_SPEED( 3) | \
DEFAULT_GPIO_SPEED( 4) | \
DEFAULT_GPIO_SPEED( 5) | \
DEFAULT_GPIO_SPEED( 6) | \
DEFAULT_GPIO_SPEED( 7) | \
PIN_OSPEED_HIGH( 8) | \
DEFAULT_GPIO_SPEED( 9) | \
DEFAULT_GPIO_SPEED(10) | \
DEFAULT_GPIO_SPEED(11) | \
PIN_OSPEED_HIGH(12) | \
DEFAULT_GPIO_SPEED(13) | \
DEFAULT_GPIO_SPEED(14) | \
DEFAULT_GPIO_SPEED(15))
#define VAL_GPIOC_PUPDR (PIN_PUPDR_FLOATING( 0) | \
PIN_PUPDR_PULLDOWN( 1) | \
PIN_PUPDR_PULLDOWN( 2) | \
PIN_PUPDR_PULLDOWN( 3) | \
PIN_PUPDR_PULLDOWN( 4) | \
PIN_PUPDR_PULLDOWN( 5) | \
PIN_PUPDR_PULLDOWN( 6) | \
PIN_PUPDR_PULLDOWN( 7) | \
PIN_PUPDR_PULLDOWN( 8) | \
PIN_PUPDR_PULLDOWN( 9) | \
PIN_PUPDR_PULLDOWN(10) | \
PIN_PUPDR_PULLDOWN(11) | \
PIN_PUPDR_PULLDOWN(12) | \
PIN_PUPDR_PULLDOWN(13) | \
PIN_PUPDR_PULLDOWN(14) | \
PIN_PUPDR_PULLDOWN(15))
#define VAL_GPIOC_ODR (PIN_ODR_HIGH(0) | \
PIN_ODR_LOW(2) | \
PIN_ODR_HIGH(3) | \
PIN_ODR_HIGH(6) | \
PIN_ODR_HIGH(7) | \
PIN_ODR_HIGH(8) | \
PIN_ODR_HIGH(9) | \
PIN_ODR_HIGH(10) | \
PIN_ODR_HIGH(11) | \
PIN_ODR_HIGH(12) | \
PIN_ODR_HIGH(14))
#define VAL_GPIOC_AFRL (PIN_AFIO_AF( 0, 0U) | \
PIN_AFIO_AF( 1, 0U) | \
PIN_AFIO_AF( 2, 0U) | \
PIN_AFIO_AF( 3, 0U) | \
PIN_AFIO_AF( 4, 0U) | \
PIN_AFIO_AF( 5, 0U) | \
PIN_AFIO_AF( 6, 0U) | \
PIN_AFIO_AF( 7, 0U))
#define VAL_GPIOC_AFRH (PIN_AFIO_AF( 8, 12U) | \
PIN_AFIO_AF( 9, 0U) | \
PIN_AFIO_AF(10, 0U) | \
PIN_AFIO_AF(11, 0U) | \
PIN_AFIO_AF(12, 12U) | \
PIN_AFIO_AF(13, 0U) | \
PIN_AFIO_AF(14, 0U) | \
PIN_AFIO_AF(15, 0U))
/*
* GPIOD setup:
* PD2 - CMD
*/
#define VAL_GPIOD_MODER (EFI_PIN_MODE_DEFAULT(0) | \
EFI_PIN_MODE_DEFAULT(1) | \
PIN_MODE_ALTERNATE(2) | \
EFI_PIN_MODE_DEFAULT(3) | \
EFI_PIN_MODE_DEFAULT(4) | \
EFI_PIN_MODE_DEFAULT(5) | \
EFI_PIN_MODE_DEFAULT(6) | \
EFI_PIN_MODE_DEFAULT(7) | \
EFI_PIN_MODE_DEFAULT(8) | \
EFI_PIN_MODE_DEFAULT(9) | \
EFI_PIN_MODE_DEFAULT(10) | \
EFI_PIN_MODE_DEFAULT(11) | \
EFI_PIN_MODE_DEFAULT(12) | \
EFI_PIN_MODE_DEFAULT(13) | \
EFI_PIN_MODE_DEFAULT(14) | \
EFI_PIN_MODE_DEFAULT(15))
#define VAL_GPIOD_OTYPER (PIN_OTYPE_PUSHPULL( 0) | \
PIN_OTYPE_PUSHPULL( 1) | \
PIN_OTYPE_PUSHPULL( 2) | \
PIN_OTYPE_PUSHPULL( 3) | \
PIN_OTYPE_PUSHPULL( 4) | \
PIN_OTYPE_PUSHPULL( 5) | \
PIN_OTYPE_PUSHPULL( 6)| \
PIN_OTYPE_PUSHPULL( 7)| \
PIN_OTYPE_PUSHPULL( 8)| \
PIN_OTYPE_PUSHPULL( 9) | \
PIN_OTYPE_PUSHPULL(10) | \
PIN_OTYPE_PUSHPULL(11) | \
PIN_OTYPE_PUSHPULL(12) | \
PIN_OTYPE_PUSHPULL(13) | \
PIN_OTYPE_PUSHPULL(14)| \
PIN_OTYPE_PUSHPULL(15))
#define VAL_GPIOD_OSPEEDR (DEFAULT_GPIO_SPEED( 0) | \
DEFAULT_GPIO_SPEED( 1) | \
PIN_OSPEED_HIGH( 2) | \
DEFAULT_GPIO_SPEED( 3) | \
DEFAULT_GPIO_SPEED( 4) | \
DEFAULT_GPIO_SPEED( 5) | \
DEFAULT_GPIO_SPEED( 6) | \
DEFAULT_GPIO_SPEED( 7) | \
PIN_OSPEED_HIGH( 8) | \
PIN_OSPEED_HIGH( 9) | \
PIN_OSPEED_HIGH(10) | \
PIN_OSPEED_HIGH(11) | \
PIN_OSPEED_HIGH(12) | \
DEFAULT_GPIO_SPEED(13) | \
DEFAULT_GPIO_SPEED(14) | \
DEFAULT_GPIO_SPEED(15))
#define VAL_GPIOD_PUPDR (PIN_PUPDR_FLOATING( 0) | \
PIN_PUPDR_PULLDOWN( 1) | \
PIN_PUPDR_PULLDOWN( 2) | \
PIN_PUPDR_PULLDOWN( 3) | \
PIN_PUPDR_PULLDOWN( 4) | \
PIN_PUPDR_PULLDOWN( 5) | \
PIN_PUPDR_PULLDOWN( 6) | \
PIN_PUPDR_PULLDOWN( 7) | \
PIN_PUPDR_PULLDOWN( 8) | \
PIN_PUPDR_PULLDOWN( 9) | \
PIN_PUPDR_PULLDOWN(10) | \
PIN_PUPDR_PULLDOWN(11) | \
PIN_PUPDR_PULLDOWN(12) | \
PIN_PUPDR_PULLDOWN(13) | \
PIN_PUPDR_PULLDOWN(14) | \
PIN_PUPDR_PULLDOWN(15))
#define VAL_GPIOD_ODR (PIN_ODR_HIGH(0) | \
PIN_ODR_HIGH(2) | \
PIN_ODR_HIGH(3) | \
PIN_ODR_HIGH(6) | \
PIN_ODR_HIGH(7) | \
PIN_ODR_HIGH(8) | \
PIN_ODR_HIGH(9) | \
PIN_ODR_HIGH(10) | \
PIN_ODR_HIGH(11) | \
PIN_ODR_HIGH(12) | \
PIN_ODR_HIGH(14))
#define VAL_GPIOD_AFRL (PIN_AFIO_AF( 0, 0U) | \
PIN_AFIO_AF( 1, 0U) | \
PIN_AFIO_AF( 2, 12U) | \
PIN_AFIO_AF( 3, 0U) | \
PIN_AFIO_AF( 4, 0U) | \
PIN_AFIO_AF( 5, 0U) | \
PIN_AFIO_AF( 6, 0U) | \
PIN_AFIO_AF( 7, 0U))
#define VAL_GPIOD_AFRH (PIN_AFIO_AF( 8, 12U) | \
PIN_AFIO_AF( 9, 12U) | \
PIN_AFIO_AF(10, 12U) | \
PIN_AFIO_AF(11, 12U) | \
PIN_AFIO_AF(12, 12U) | \
PIN_AFIO_AF(13, 0U) | \
PIN_AFIO_AF(14, 0U) | \
PIN_AFIO_AF(15, 0U))
/*
* GPIOE setup:
*/
#define VAL_GPIOE_MODER VAL_GPIO_MODER_ALL_DEFAULT
#define VAL_GPIOE_OTYPER VAL_GPIO_OTYPER_ALL_DEFAULT
#define VAL_GPIOE_OSPEEDR VAL_GPIO_OSPEEDR_ALL_DEFAULT
#define VAL_GPIOE_PUPDR VAL_GPIO_PUPDR_ALL_DEFAULT
#define VAL_GPIOE_ODR VAL_GPIO_ODR_ALL_DEFAULT
#define VAL_GPIOE_AFRL VAL_GPIO_AF_ALL_DEFAULT
#define VAL_GPIOE_AFRH VAL_GPIO_AF_ALL_DEFAULT
/*
* GPIOF setup:
*/
#define VAL_GPIOF_MODER VAL_GPIO_MODER_ALL_DEFAULT
#define VAL_GPIOF_OTYPER VAL_GPIO_OTYPER_ALL_DEFAULT
#define VAL_GPIOF_OSPEEDR VAL_GPIO_OSPEEDR_ALL_DEFAULT
#define VAL_GPIOF_PUPDR VAL_GPIO_PUPDR_ALL_DEFAULT
#define VAL_GPIOF_ODR VAL_GPIO_ODR_ALL_DEFAULT
#define VAL_GPIOF_AFRL VAL_GPIO_AF_ALL_DEFAULT
#define VAL_GPIOF_AFRH VAL_GPIO_AF_ALL_DEFAULT
/*
* GPIOG setup:
*/
#define VAL_GPIOG_MODER VAL_GPIO_MODER_ALL_DEFAULT
#define VAL_GPIOG_OTYPER VAL_GPIO_OTYPER_ALL_DEFAULT
#define VAL_GPIOG_OSPEEDR VAL_GPIO_OSPEEDR_ALL_DEFAULT
#define VAL_GPIOG_PUPDR VAL_GPIO_PUPDR_ALL_DEFAULT
#define VAL_GPIOG_ODR VAL_GPIO_ODR_ALL_DEFAULT
#define VAL_GPIOG_AFRL VAL_GPIO_AF_ALL_DEFAULT
#define VAL_GPIOG_AFRH VAL_GPIO_AF_ALL_DEFAULT
/*
* GPIOH setup:
*/
#define VAL_GPIOH_MODER VAL_GPIO_MODER_ALL_DEFAULT
#define VAL_GPIOH_OTYPER VAL_GPIO_OTYPER_ALL_DEFAULT
#define VAL_GPIOH_OSPEEDR VAL_GPIO_OSPEEDR_ALL_DEFAULT
#define VAL_GPIOH_PUPDR VAL_GPIO_PUPDR_ALL_DEFAULT
#define VAL_GPIOH_ODR VAL_GPIO_ODR_ALL_DEFAULT
#define VAL_GPIOH_AFRL VAL_GPIO_AF_ALL_DEFAULT
#define VAL_GPIOH_AFRH VAL_GPIO_AF_ALL_DEFAULT
/*
* GPIOI setup:
*/
#define VAL_GPIOI_MODER VAL_GPIO_MODER_ALL_DEFAULT
#define VAL_GPIOI_OTYPER VAL_GPIO_OTYPER_ALL_DEFAULT
#define VAL_GPIOI_OSPEEDR VAL_GPIO_OSPEEDR_ALL_DEFAULT
#define VAL_GPIOI_PUPDR VAL_GPIO_PUPDR_ALL_DEFAULT
#define VAL_GPIOI_ODR VAL_GPIO_ODR_ALL_DEFAULT
#define VAL_GPIOI_AFRL VAL_GPIO_AF_ALL_DEFAULT
#define VAL_GPIOI_AFRH VAL_GPIO_AF_ALL_DEFAULT
#endif /* BOARD_IO_H */

View File

@ -0,0 +1,19 @@
# List of all the board related files.
BOARDCPPSRC = $(PROJECT_DIR)/config/boards/BB_V2/board_configuration.cpp \
$(PROJECT_DIR)/config/boards/proteus/adc_hack.cpp
BOARDINC = $(PROJECT_DIR)/config/boards/BB_V2
# Override DEFAULT_ENGINE_TYPE
DDEFS += -DSTM32F407xx
DDEFS += -DSHORT_BOARD_NAME=BB_V2 -DDEFAULT_ENGINE_TYPE=MINIMAL_PINS
DDEFS += -DFIRMWARE_ID=\"BB_V2\"
DDEFS += -DLED_CRITICAL_ERROR_BRAIN_PIN=Gpio::Unassigned
DDEFS += -DHAL_TRIGGER_USE_PAL=TRUE
DDEFS += -DHAL_VSS_USE_PAL=TRUE
DDEFS += -DSTM32_ADC_USE_ADC3=TRUE
DDEFS += -DEFI_SOFTWARE_KNOCK=TRUE
# Hardware serial port on UART 2 -> PD5/PD6 LUB PC10/PC11
EFI_CONSOLE_TTL_PINS = -DEFI_CONSOLE_TX_BRAIN_PIN=Gpio::C10 -DEFI_CONSOLE_RX_BRAIN_PIN=Gpio::C11

View File

@ -0,0 +1,152 @@
/**
* @file boards/BB V2/board_configuration.cpp
*
* @brief Configuration defaults for the core8 board
*
* @author Turbo Marian, 2022
*/
#include "pch.h"
static void setInjectorPins() {
engineConfiguration->injectionPinMode = OM_DEFAULT;
engineConfiguration->injectionPins[0] = Gpio::D12;
engineConfiguration->injectionPins[1] = Gpio::D13;
engineConfiguration->injectionPins[2] = Gpio::D14;
engineConfiguration->injectionPins[3] = Gpio::D15;
engineConfiguration->injectionPins[4] = Gpio::E9;
engineConfiguration->injectionPins[5] = Gpio::E11;
engineConfiguration->injectionPins[6] = Gpio::E14;
engineConfiguration->injectionPins[7] = Gpio::E13;
}
static void setIgnitionPins() {
engineConfiguration->ignitionPinMode = OM_DEFAULT;
engineConfiguration->ignitionPins[0] = Gpio::D7;
engineConfiguration->ignitionPins[1] = Gpio::B9;
engineConfiguration->ignitionPins[2] = Gpio::A8;
engineConfiguration->ignitionPins[3] = Gpio::D10;
engineConfiguration->ignitionPins[4] = Gpio::D9;
engineConfiguration->ignitionPins[5] = Gpio::D11;
engineConfiguration->ignitionPins[6] = Gpio::D8;
engineConfiguration->ignitionPins[7] = Gpio::E8;
}
void setSdCardConfigurationOverrides(void) {
}
void setBoardConfigOverrides(void) {
// TLE9201 driver
// This chip has three control pins:
// DIR - sets direction of the motor
// PWM - pwm control (enable high, coast low)
// DIS - disables motor (enable low)
// Throttle #1
// PWM pin
engineConfiguration->etbIo[0].controlPin = Gpio::B14;
// DIR pin
engineConfiguration->etbIo[0].directionPin1 = Gpio::D5;
// Disable pin
engineConfiguration->etbIo[0].disablePin = Gpio::E4;
// Unused
engineConfiguration->etbIo[0].directionPin2 = Gpio::Unassigned;
// Throttle #2
// PWM pin
engineConfiguration->etbIo[1].controlPin = Gpio::Unassigned;
// DIR pin
engineConfiguration->etbIo[1].directionPin1 = Gpio::Unassigned;
// Disable pin
engineConfiguration->etbIo[1].disablePin = Gpio::Unassigned;
// Unused
engineConfiguration->etbIo[1].directionPin2 = Gpio::Unassigned;
// we only have pwm/dir, no dira/dirb
engineConfiguration->etb_use_two_wires = false;
}
void setPinConfigurationOverrides(void) {
//CAN 1 bus overwrites
engineConfiguration->canTxPin = Gpio::D1;
engineConfiguration->canRxPin = Gpio::D0;
//CAN 2 bus overwrites
engineConfiguration->can2RxPin = Gpio::Unassigned;
engineConfiguration->can2TxPin = Gpio::Unassigned;
}
void setSerialConfigurationOverrides(void) {
}
/**
* @brief Board-specific configuration defaults.
*
* See also setDefaultEngineConfiguration
*
* @todo Add your board-specific code, if any.
*/
static void setupVbatt() {
// 5.6k high side/10k low side = 1.56 ratio divider
engineConfiguration->analogInputDividerCoefficient = 1.47f;
// 6.34k high side/1k low side = 9.2
engineConfiguration->vbattDividerCoeff = (6.34f / 1.0f);
// Battery sense on PC5
engineConfiguration->vbattAdcChannel = EFI_ADC_15;
engineConfiguration->adcVcc = 3.3f;
}
static void setupDefaultSensorInputs() {
engineConfiguration->afr.hwChannel = EFI_ADC_14;
setEgoSensor(ES_14Point7_Free);
engineConfiguration->clt.config.bias_resistor = 2490;
engineConfiguration->iat.config.bias_resistor = 2490;
engineConfiguration->baroSensor.hwChannel = EFI_ADC_NONE;
engineConfiguration->lps25BaroSensorScl = Gpio::Unassigned;
engineConfiguration->lps25BaroSensorSda = Gpio::Unassigned;
}
static void setLedPins() {
// PE3 is error LED, configured in board.mk
engineConfiguration->communicationLedPin = Gpio::Unassigned;
engineConfiguration->runningLedPin = Gpio::Unassigned;
engineConfiguration->warningLedPin = Gpio::Unassigned;
}
void setBoardDefaultConfiguration(void) {
setInjectorPins();
setIgnitionPins();
setupVbatt();
setLedPins();
engineConfiguration->sdCardPeriodMs = 50;
engineConfiguration->isSdCardEnabled = true;
engineConfiguration->canWriteEnabled = true;
engineConfiguration->canReadEnabled = true;
engineConfiguration->canSleepPeriodMs = 50;
engineConfiguration->canBaudRate = B500KBPS;
engineConfiguration->can2BaudRate = B500KBPS;
}

View File

@ -0,0 +1,10 @@
@echo off
cd ../../../
make clean -j8 PROJECT_BOARD=BB_V2
make -j8 PROJECT_BOARD=BB_V2 PROJECT_CPU=ARCH_STM32F4
gen_config_board.sh BB_V2 BB_V2

View File

@ -0,0 +1,43 @@
//DO NOT EDIT MANUALLY, let automation work hard.
// auto-generated by PinoutLogic.java based on config\boards\BB_V2\connectors\main.yaml
#include "pch.h"
// see comments at declaration in pin_repository.h
const char * getBoardSpecificPinName(brain_pin_e brainPin) {
switch(brainPin) {
case Gpio::A8: return "Ignition 3";
case Gpio::B12: return "Low current output 1";
case Gpio::B14: return "DBW_PWM";
case Gpio::B9: return "Ignition 2";
case Gpio::C13: return "Tacho output";
case Gpio::C6: return "Boost controler";
case Gpio::C7: return "Idle valve 1";
case Gpio::D10: return "Ignition 4";
case Gpio::D11: return "Ignition 6";
case Gpio::D12: return "Injector 1";
case Gpio::D13: return "Injector 2";
case Gpio::D14: return "Injector 3";
case Gpio::D15: return "Injector 4";
case Gpio::D3: return "Low side output 1";
case Gpio::D4: return "Digital input 1";
case Gpio::D5: return "DBW_DIR";
case Gpio::D6: return "Digital input 2";
case Gpio::D7: return "Ignition 1";
case Gpio::D8: return "Ignition 7";
case Gpio::D9: return "Ignition 5";
case Gpio::E0: return "Crankshaft Sensor";
case Gpio::E1: return "Camshaft Sensor";
case Gpio::E11: return "Injector 6";
case Gpio::E12: return "VVT output";
case Gpio::E13: return "Injector 8";
case Gpio::E14: return "Injector 7";
case Gpio::E3: return "Fuel pump output";
case Gpio::E4: return "DBW_DIS";
case Gpio::E6: return "Fan output";
case Gpio::E8: return "Ignition 8";
case Gpio::E9: return "Injector 5";
default: return nullptr;
}
return nullptr;
}

View File

@ -0,0 +1,292 @@
pins:
# Low side outputs
- pin: 1
id: D12
class: outputs
function: Low Side Output
type: inj
ts_name: Injector 1
- pin: 2
id: D13
class: outputs
function: Low Side Output
type: inj
ts_name: Injector 2
- pin: 3
id: D14
class: outputs
function: Low Side Output
type: inj
ts_name: Injector 3
- pin: 4
id: D15
class: outputs
function: Low Side Output
type: inj
ts_name: Injector 4
- pin: 5
id: E9
class: outputs
function: Low Side Output
type: inj
ts_name: Injector 5
- pin: 6
id: E11
class: outputs
function: Low Side Output
type: inj
ts_name: Injector 6
- pin: 7
id: E14
class: outputs
function: Low Side Output
type: inj
ts_name: Injector 7
- pin: 8
id: E13
class: outputs
function: Low Side Output
type: inj
ts_name: Injector 8
# Low side
- pin: 9
id: C6
class: outputs
function: Low Side Output
type: ls
ts_name: Boost controler
- pin: 10
id: C7
class: outputs
function: Low Side Output
type: ls
ts_name: Idle valve 1
- pin: 11
id: C13
class: outputs
function: Low Side Output
type: ls
ts_name: Tacho output
- pin: 12
id: D3
class: outputs
function: Low Side Output
type: ls
ts_name: Low side output 1
- pin: 13
id: E12
class: outputs
function: Low Side Output
type: ls
ts_name: VVT output
- pin: 14
id: E6
class: outputs
function: Low Side Output
type: ls
ts_name: Fan output
- pin: 15
id: E3
class: outputs
function: Low Side Output
type: ls
ts_name: Fuel pump output
- pin: 16
id: B12
class: outputs
function: Low Side Output
type: ls
ts_name: Low current output 1
- pin: 17
id: D3
class: outputs
function: Low Side Output
type: ls
ts_name: Low side output 1
- pin: 18
id: B14
class: outputs
function: Low Side Output
type: ls
ts_name: DBW_PWM
- pin: 19
id: E4
class: outputs
function: Low Side Output
type: ls
ts_name: DBW_DIS
- pin: 20
id: D5
class: outputs
function: Low Side Output
type: ls
ts_name: DBW_DIR
# High side
- pin: 21
id: D7
class: outputs
function: High Side Output
type: ign
ts_name: Ignition 1
- pin: 22
id: B9
class: outputs
function: High Side Output
type: ign
ts_name: Ignition 2
- pin: 23
id: A8
class: outputs
function: High Side Output
type: ign
ts_name: Ignition 3
- pin: 24
id: D10
class: outputs
function: High Side Output
type: ign
ts_name: Ignition 4
- pin: 25
id: D9
class: outputs
function: High Side Output
type: ign
ts_name: Ignition 5
- pin: 26
id: D11
class: outputs
function: High Side Output
type: ign
ts_name: Ignition 6
- pin: 27
id: D8
class: outputs
function: High Side Output
type: ign
ts_name: Ignition 7
- pin: 28
id: E8
class: outputs
function: High Side Output
type: ign
ts_name: Ignition 8
# SENSORS
- pin: 29
id: EFI_ADC_15
class: analog_inputs
function: Sensor Input
ts_name: Battery reference voltage
- pin: 30
id: EFI_ADC_0
class: analog_inputs
function: Sensor Input
ts_name: Fuel Pressure-spare analog input 1
- pin: 31
id: EFI_ADC_1
class: analog_inputs
function: Sensor Input
ts_name: Oil pressure-spare analog input 2
- pin: 32
id: EFI_ADC_10
class: analog_inputs
function: Sensor Input
ts_name: Iat sensor
- pin: 33
id: EFI_ADC_11
class: analog_inputs
function: Sensor Input
ts_name: Tps sensor
- pin: 34
id: EFI_ADC_12
class: analog_inputs
function: Sensor Input
ts_name: Map sensor
- pin: 35
id: EFI_ADC_13
class: analog_inputs
function: Sensor Input
ts_name: Clt sensor
- pin: 36
id: EFI_ADC_14
class: analog_inputs
function: Sensor Input
ts_name: AFR sensor
- pin: 37
id: EFI_ADC_9
class: analog_inputs
function: Sensor Input
ts_name: Baro sensor
- pin: 38
id: [E1, E1]
class: [event_inputs, switch_inputs]
function: Camshaft Sensor (VR+/Hall)
type: hall
ts_name: Camshaft Sensor
- pin: 39
id: [E0, E0]
class: [event_inputs, switch_inputs]
function: Crankshaft Sensor (VR+/Hall)
type: hall
ts_name: Crankshaft Sensor
- pin: 40
id: [D4, D4]
class: [event_inputs, switch_inputs]
function: CLUTCH_IN
type: hall
ts_name: Digital input 1
- pin: 41
id: [D6, D6]
class: [event_inputs, switch_inputs]
function: FLEX_IN
type: hall
ts_name: Digital input 2

View File

@ -0,0 +1,21 @@
/**
* @file knock_config.h
*/
#pragma once
// Knock is on ADC3
#define KNOCK_ADC ADCD3
// knock 1 - pin PA2
#define KNOCK_ADC_CH1 ADC_CHANNEL_IN2
#define KNOCK_PIN_CH1 Gpio::A2
// knock 2 - pin PA3
#define KNOCK_HAS_CH2 true
#define KNOCK_ADC_CH2 ADC_CHANNEL_IN3
#define KNOCK_PIN_CH2 Gpio::A3
// Sample rate & time - depends on the exact MCU
#define KNOCK_SAMPLE_TIME ADC_SAMPLE_84
#define KNOCK_SAMPLE_RATE (STM32_PCLK2 / (4 * (84 + 12)))

View File

@ -0,0 +1,13 @@
#define ts_show_hip9011 false
#define ts_show_cj125 false
#define ts_show_lcd false
#define ts_show_joystick false
#define ts_show_gps false
#define ts_show_software_knock true
#define show_test_presets true
#define show_microRusEFI_presets false
#define show_Frankenso_presets false
#define show_Hellen_presets false
#define show_Proteus_presets false

View File

@ -0,0 +1,4 @@
#define SIGNATURE_DATE 2022.04.24
#define SIGNATURE_BOARD BB_V2
// SIGNATURE_HASH is a built-in variable generated by ConfigDefinition.jar
#define TS_SIGNATURE "rusEFI DAY58.BB.V2"

View File

@ -0,0 +1,19 @@
@echo off
cd ../../../
call gen_config.bat
call gen_config_board.bat
call gen_config_common.sh
call gen_config_default.sh
call gen_default_everything.sh
call gen_enum_to_string.bat
call gen_live_documentation.bat
call gen_output_channels.sh
call gen_ptrace_enums.bat
call gen_signature.sh
call generate_docs.bat

View File

@ -0,0 +1,2 @@
w folderze /firmware
gen_config_board.sh BB_V3 BB_V3

View File

@ -0,0 +1,492 @@
/**
* @file boards/subaru_eg33/board_io.c
*
* @date Feb 06, 2021
* @author Andrey Gusakov, 2021
*/
#define BOARD_NAME "BB_V3"
#ifndef BOARD_IO_H
#define BOARD_IO_H
#define EFI_USB_AF 10U
#define EFI_USB_SERIAL_DM Gpio::A11
#define EFI_USB_SERIAL_DP Gpio::A12
#define EFI_USE_OSC TRUE
#define EFI_CAN_SUPPORT TRUE
#define CAN_USE_SLEEP_MODE FALSE
#undef EFI_FILE_LOGGING
#define EFI_FILE_LOGGING TRUE
#undef EFI_SDC_DEVICE
#define EFI_SDC_DEVICE SDCD1
#undef EFI_ICU_INPUTS
#define EFI_ICU_INPUTS FALSE
#undef HAL_TRIGGER_USE_PAL
#define HAL_TRIGGER_USE_PAL TRUE
#undef EFI_LOGIC_ANALYZER
#define EFI_LOGIC_ANALYZER FALSE
#undef HAL_VSS_USE_PAL
#define HAL_VSS_USE_PAL TRUE
#ifndef LED_CRITICAL_ERROR_BRAIN_PIN
#define LED_CRITICAL_ERROR_BRAIN_PIN Gpio::Unassigned
#endif
// Ignore USB VBUS pin (we're never a host, only a device)
#define BOARD_OTG_NOVBUSSENS TRUE
/*
* Board oscillators-related settings.
* NOTE: LSE not fitted.
*/
#if !defined(STM32_LSECLK)
#define STM32_LSECLK 32768U
#endif
#define STM32_LSEDRV (3U << 3U)
/*
* Board voltages.
* Required for performance limits calculation.
*/
#define STM32_VDD 300U
#define EFI_PIN_MODE_DEFAULT PIN_MODE_INPUT
#ifndef EFI_DR_DEFAULT
#define EFI_DR_DEFAULT PIN_PUPDR_PULLDOWN
#endif
// See https://github.com/rusefi/rusefi/issues/397
#define DEFAULT_GPIO_SPEED PIN_OSPEED_HIGH
/*
* I/O ports initial setup, this configuration is established soon after reset
* in the initialization code.
* Please refer to the STM32 Reference Manual for details.
*/
#define PIN_MODE_INPUT(n) (0U << ((n) * 2U))
#define PIN_MODE_OUTPUT(n) (1U << ((n) * 2U))
#define PIN_MODE_ALTERNATE(n) (2U << ((n) * 2U))
#define PIN_MODE_ANALOG(n) (3U << ((n) * 2U))
#define PIN_ODR_LOW(n) (0U << (n))
#define PIN_ODR_HIGH(n) (1U << (n))
#define PIN_OTYPE_PUSHPULL(n) (0U << (n))
#define PIN_OTYPE_OPENDRAIN(n) (1U << (n))
#define PIN_OSPEED_VERYLOW(n) (0U << ((n) * 2U))
#define PIN_OSPEED_LOW(n) (1U << ((n) * 2U))
#define PIN_OSPEED_MEDIUM(n) (2U << ((n) * 2U))
#define PIN_OSPEED_HIGH(n) (3U << ((n) * 2U))
#define PIN_PUPDR_FLOATING(n) (0U << ((n) * 2U))
#define PIN_PUPDR_PULLUP(n) (1U << ((n) * 2U))
#define PIN_PUPDR_PULLDOWN(n) (2U << ((n) * 2U))
#define PIN_AFIO_AF(n, v) ((v) << (((n) % 8U) * 4U))
#define VAL_GPIO_MODER_ALL_DEFAULT (EFI_PIN_MODE_DEFAULT(0) | \
EFI_PIN_MODE_DEFAULT(1) | \
EFI_PIN_MODE_DEFAULT(2) | \
EFI_PIN_MODE_DEFAULT(3) | \
EFI_PIN_MODE_DEFAULT(4) | \
EFI_PIN_MODE_DEFAULT(5) | \
EFI_PIN_MODE_DEFAULT(6) | \
EFI_PIN_MODE_DEFAULT(7) | \
EFI_PIN_MODE_DEFAULT(8) | \
EFI_PIN_MODE_DEFAULT(9) | \
EFI_PIN_MODE_DEFAULT(10) | \
EFI_PIN_MODE_DEFAULT(11) | \
EFI_PIN_MODE_DEFAULT(12) | \
EFI_PIN_MODE_DEFAULT(13) | \
EFI_PIN_MODE_DEFAULT(14) | \
EFI_PIN_MODE_DEFAULT(15))
#define VAL_GPIO_OTYPER_ALL_DEFAULT (PIN_OTYPE_PUSHPULL(0) | \
PIN_OTYPE_PUSHPULL(1) | \
PIN_OTYPE_PUSHPULL(2) | \
PIN_OTYPE_PUSHPULL(3) | \
PIN_OTYPE_PUSHPULL(4) | \
PIN_OTYPE_PUSHPULL(5) | \
PIN_OTYPE_PUSHPULL(6) | \
PIN_OTYPE_PUSHPULL(7) | \
PIN_OTYPE_PUSHPULL(8) | \
PIN_OTYPE_PUSHPULL(9) | \
PIN_OTYPE_PUSHPULL(10) | \
PIN_OTYPE_PUSHPULL(11) | \
PIN_OTYPE_PUSHPULL(12) | \
PIN_OTYPE_PUSHPULL(13) | \
PIN_OTYPE_PUSHPULL(14) | \
PIN_OTYPE_PUSHPULL(15))
#define VAL_GPIO_OSPEEDR_ALL_DEFAULT (DEFAULT_GPIO_SPEED(0) | \
DEFAULT_GPIO_SPEED(1) | \
DEFAULT_GPIO_SPEED(2) | \
DEFAULT_GPIO_SPEED(3) | \
DEFAULT_GPIO_SPEED(4) | \
DEFAULT_GPIO_SPEED(5) | \
DEFAULT_GPIO_SPEED(6) | \
DEFAULT_GPIO_SPEED(7) | \
DEFAULT_GPIO_SPEED(8) | \
DEFAULT_GPIO_SPEED(9) | \
DEFAULT_GPIO_SPEED(10) | \
DEFAULT_GPIO_SPEED(11) | \
DEFAULT_GPIO_SPEED(12) | \
DEFAULT_GPIO_SPEED(13) | \
DEFAULT_GPIO_SPEED(14) | \
DEFAULT_GPIO_SPEED(15))
#define VAL_GPIO_ODR_ALL_DEFAULT 0
#define VAL_GPIO_PUPDR_ALL_DEFAULT (EFI_DR_DEFAULT(0) | \
EFI_DR_DEFAULT(1) | \
EFI_DR_DEFAULT(2) | \
EFI_DR_DEFAULT(3) | \
EFI_DR_DEFAULT(4) | \
EFI_DR_DEFAULT(5) | \
EFI_DR_DEFAULT(6) | \
EFI_DR_DEFAULT(7) | \
EFI_DR_DEFAULT(8) | \
EFI_DR_DEFAULT(9) | \
EFI_DR_DEFAULT(10) | \
EFI_DR_DEFAULT(11) | \
EFI_DR_DEFAULT(12) | \
EFI_DR_DEFAULT(13) | \
EFI_DR_DEFAULT(14) | \
EFI_DR_DEFAULT(15))
#define VAL_GPIO_AF_ALL_DEFAULT (PIN_AFIO_AF(0, 0U) | \
PIN_AFIO_AF(1, 0U) | \
PIN_AFIO_AF(2, 0U) | \
PIN_AFIO_AF(3, 0U) | \
PIN_AFIO_AF(4, 0U) | \
PIN_AFIO_AF(5, 0U) | \
PIN_AFIO_AF(6, 0U) | \
PIN_AFIO_AF(7, 0U))
#define VAL_GPIOA_MODER (EFI_PIN_MODE_DEFAULT(0) | \
EFI_PIN_MODE_DEFAULT(1) | \
EFI_PIN_MODE_DEFAULT(2) | \
EFI_PIN_MODE_DEFAULT(3) | \
EFI_PIN_MODE_DEFAULT(4) | \
EFI_PIN_MODE_DEFAULT(5) | \
EFI_PIN_MODE_DEFAULT(6) | \
EFI_PIN_MODE_DEFAULT(7) | \
EFI_PIN_MODE_DEFAULT(8) | \
EFI_PIN_MODE_DEFAULT(9) | \
EFI_PIN_MODE_DEFAULT(10) | \
EFI_PIN_MODE_DEFAULT(11) | \
EFI_PIN_MODE_DEFAULT(12) | \
PIN_MODE_ALTERNATE(13) | \
PIN_MODE_ALTERNATE(14) | \
EFI_PIN_MODE_DEFAULT(15))
#define VAL_GPIOA_OTYPER VAL_GPIO_OTYPER_ALL_DEFAULT
#define VAL_GPIOA_OSPEEDR VAL_GPIO_OSPEEDR_ALL_DEFAULT
#define VAL_GPIOA_PUPDR VAL_GPIO_PUPDR_ALL_DEFAULT
#define VAL_GPIOA_ODR VAL_GPIO_ODR_ALL_DEFAULT
#define VAL_GPIOA_AFRL (PIN_AFIO_AF(0, 0U) | \
PIN_AFIO_AF(1, 0U) | \
PIN_AFIO_AF(2, 0U) | \
PIN_AFIO_AF(3, 0U) | \
PIN_AFIO_AF(4, 6U) | \
PIN_AFIO_AF(5, 5U) | \
PIN_AFIO_AF(6, 5U) | \
PIN_AFIO_AF(7, 5U))
#define VAL_GPIOA_AFRH VAL_GPIO_AF_ALL_DEFAULT
/*
* GPIOB setup:
*/
#define VAL_GPIOB_MODER (EFI_PIN_MODE_DEFAULT(0) | \
EFI_PIN_MODE_DEFAULT(1) | \
EFI_PIN_MODE_DEFAULT(2) | \
EFI_PIN_MODE_DEFAULT(3) | \
EFI_PIN_MODE_DEFAULT(4) | \
EFI_PIN_MODE_DEFAULT(5) | \
EFI_PIN_MODE_DEFAULT(6) | \
EFI_PIN_MODE_DEFAULT(7) | \
EFI_PIN_MODE_DEFAULT(8) | \
EFI_PIN_MODE_DEFAULT(9) | \
EFI_PIN_MODE_DEFAULT(10) | \
EFI_PIN_MODE_DEFAULT(11) | \
EFI_PIN_MODE_DEFAULT(12) | \
EFI_PIN_MODE_DEFAULT(13) | \
EFI_PIN_MODE_DEFAULT(14) | \
EFI_PIN_MODE_DEFAULT(15))
#define VAL_GPIOB_OTYPER VAL_GPIO_OTYPER_ALL_DEFAULT
#define VAL_GPIOB_OSPEEDR VAL_GPIO_OSPEEDR_ALL_DEFAULT
#define VAL_GPIOB_PUPDR VAL_GPIO_PUPDR_ALL_DEFAULT
#define VAL_GPIOB_ODR VAL_GPIO_ODR_ALL_DEFAULT
#define VAL_GPIOB_AFRL VAL_GPIO_AF_ALL_DEFAULT
#define VAL_GPIOB_AFRH VAL_GPIO_AF_ALL_DEFAULT
/*
* GPIOC setup:
* 8 BIT MODE
* PC8 - MMC D0
* PC9 - MMC D1
* PC10 - MMC D2
* PC11 - MMC D3
* PC12 - CLK
* 1 BIT MODE
* PC8 - MMC D0
* PC12 - CLK
* NOW IS SETUP FOR 1 BIT SDIO
*/
#define VAL_GPIOC_MODER (EFI_PIN_MODE_DEFAULT(0) | \
EFI_PIN_MODE_DEFAULT(1) | \
EFI_PIN_MODE_DEFAULT(2) | \
EFI_PIN_MODE_DEFAULT(3) | \
EFI_PIN_MODE_DEFAULT(4) | \
EFI_PIN_MODE_DEFAULT(5) | \
EFI_PIN_MODE_DEFAULT(6) | \
EFI_PIN_MODE_DEFAULT(7) | \
PIN_MODE_ALTERNATE(8) | \
EFI_PIN_MODE_DEFAULT(9) | \
EFI_PIN_MODE_DEFAULT(10) | \
EFI_PIN_MODE_DEFAULT(11) | \
PIN_MODE_ALTERNATE(12) | \
EFI_PIN_MODE_DEFAULT(13) | \
EFI_PIN_MODE_DEFAULT(14) | \
EFI_PIN_MODE_DEFAULT(15))
#define VAL_GPIOC_OTYPER (PIN_OTYPE_PUSHPULL( 0) | \
PIN_OTYPE_PUSHPULL( 1) | \
PIN_OTYPE_PUSHPULL( 2) | \
PIN_OTYPE_PUSHPULL( 3) | \
PIN_OTYPE_PUSHPULL( 4) | \
PIN_OTYPE_PUSHPULL( 5) | \
PIN_OTYPE_PUSHPULL( 6)| \
PIN_OTYPE_PUSHPULL( 7)| \
PIN_OTYPE_PUSHPULL( 8)| \
PIN_OTYPE_PUSHPULL( 9) | \
PIN_OTYPE_PUSHPULL(10) | \
PIN_OTYPE_PUSHPULL(11) | \
PIN_OTYPE_PUSHPULL(12) | \
PIN_OTYPE_PUSHPULL(13) | \
PIN_OTYPE_PUSHPULL(14)| \
PIN_OTYPE_PUSHPULL(15))
#define VAL_GPIOC_OSPEEDR (PIN_OSPEED_HIGH( 0) | \
PIN_OSPEED_HIGH( 1) | \
PIN_OSPEED_HIGH( 2) | \
PIN_OSPEED_HIGH( 3) | \
PIN_OSPEED_HIGH( 4) | \
PIN_OSPEED_HIGH( 5) | \
PIN_OSPEED_HIGH( 6) | \
PIN_OSPEED_HIGH( 7) | \
DEFAULT_GPIO_SPEED( 8) | \
PIN_OSPEED_HIGH( 9) | \
DEFAULT_GPIO_SPEED(10) | \
DEFAULT_GPIO_SPEED(11) | \
DEFAULT_GPIO_SPEED(12) | \
PIN_OSPEED_HIGH(13) | \
PIN_OSPEED_HIGH(14) | \
PIN_OSPEED_HIGH(15))
#define VAL_GPIOC_PUPDR (PIN_PUPDR_PULLDOWN( 0) | \
PIN_PUPDR_PULLDOWN( 1) | \
PIN_PUPDR_PULLDOWN( 2) | \
PIN_PUPDR_PULLDOWN( 3) | \
PIN_PUPDR_PULLDOWN( 4) | \
PIN_PUPDR_PULLDOWN( 5) | \
PIN_PUPDR_PULLDOWN( 6) | \
PIN_PUPDR_PULLDOWN( 7) | \
PIN_PUPDR_FLOATING( 8) | \
PIN_PUPDR_PULLDOWN( 9) | \
PIN_PUPDR_FLOATING(10) | \
PIN_PUPDR_FLOATING(11) | \
PIN_PUPDR_FLOATING(12) | \
PIN_PUPDR_PULLDOWN(13) | \
PIN_PUPDR_PULLDOWN(14) | \
PIN_PUPDR_PULLDOWN(15))
#define VAL_GPIOC_ODR (PIN_ODR_LOW(0) | \
PIN_ODR_LOW(2) | \
PIN_ODR_LOW(3) | \
PIN_ODR_LOW(6) | \
PIN_ODR_LOW(7) | \
PIN_ODR_LOW(8) | \
PIN_ODR_LOW(9) | \
PIN_ODR_LOW(10) | \
PIN_ODR_LOW(11) | \
PIN_ODR_LOW(12) | \
PIN_ODR_LOW(14))
#define VAL_GPIOC_AFRL (PIN_AFIO_AF( 0, 0U) | \
PIN_AFIO_AF( 1, 0U) | \
PIN_AFIO_AF( 2, 0U) | \
PIN_AFIO_AF( 3, 0U) | \
PIN_AFIO_AF( 4, 0U) | \
PIN_AFIO_AF( 5, 0U) | \
PIN_AFIO_AF( 6, 0U) | \
PIN_AFIO_AF( 7, 0U))
#define VAL_GPIOC_AFRH (PIN_AFIO_AF( 8, 12U) | \
PIN_AFIO_AF( 9, 0U) | \
PIN_AFIO_AF(10, 0U) | \
PIN_AFIO_AF(11, 0U) | \
PIN_AFIO_AF(12, 12U) | \
PIN_AFIO_AF(13, 0U) | \
PIN_AFIO_AF(14, 0U) | \
PIN_AFIO_AF(15, 0U))
/*
* GPIOD setup:
* PD2 - CMD
*/
#define VAL_GPIOD_MODER (EFI_PIN_MODE_DEFAULT(0) | \
EFI_PIN_MODE_DEFAULT(1) | \
PIN_MODE_ALTERNATE(2) | \
EFI_PIN_MODE_DEFAULT(3) | \
EFI_PIN_MODE_DEFAULT(4) | \
EFI_PIN_MODE_DEFAULT(5) | \
EFI_PIN_MODE_DEFAULT(6) | \
EFI_PIN_MODE_DEFAULT(7) | \
EFI_PIN_MODE_DEFAULT(8) | \
EFI_PIN_MODE_DEFAULT(9) | \
EFI_PIN_MODE_DEFAULT(10) | \
EFI_PIN_MODE_DEFAULT(11) | \
EFI_PIN_MODE_DEFAULT(12) | \
EFI_PIN_MODE_DEFAULT(13) | \
EFI_PIN_MODE_DEFAULT(14) | \
EFI_PIN_MODE_DEFAULT(15))
#define VAL_GPIOD_OTYPER (PIN_OTYPE_PUSHPULL( 0) | \
PIN_OTYPE_PUSHPULL( 1) | \
PIN_OTYPE_PUSHPULL( 2) | \
PIN_OTYPE_PUSHPULL( 3) | \
PIN_OTYPE_PUSHPULL( 4) | \
PIN_OTYPE_PUSHPULL( 5) | \
PIN_OTYPE_PUSHPULL( 6)| \
PIN_OTYPE_PUSHPULL( 7)| \
PIN_OTYPE_PUSHPULL( 8)| \
PIN_OTYPE_PUSHPULL( 9) | \
PIN_OTYPE_PUSHPULL(10) | \
PIN_OTYPE_PUSHPULL(11) | \
PIN_OTYPE_PUSHPULL(12) | \
PIN_OTYPE_PUSHPULL(13) | \
PIN_OTYPE_PUSHPULL(14)| \
PIN_OTYPE_PUSHPULL(15))
#define VAL_GPIOD_OSPEEDR (PIN_OSPEED_HIGH( 0) | \
PIN_OSPEED_HIGH( 1) | \
PIN_OSPEED_HIGH( 2) | \
PIN_OSPEED_HIGH( 3) | \
PIN_OSPEED_HIGH( 4) | \
PIN_OSPEED_HIGH( 5) | \
PIN_OSPEED_HIGH( 6) | \
PIN_OSPEED_HIGH( 7) | \
PIN_OSPEED_HIGH( 8) | \
PIN_OSPEED_HIGH( 9) | \
PIN_OSPEED_HIGH(10) | \
PIN_OSPEED_HIGH(11) | \
PIN_OSPEED_HIGH(12) | \
PIN_OSPEED_HIGH(13) | \
PIN_OSPEED_HIGH(14) | \
PIN_OSPEED_HIGH(15))
#define VAL_GPIOD_PUPDR (PIN_PUPDR_PULLDOWN( 0) | \
PIN_PUPDR_PULLDOWN( 1) | \
PIN_PUPDR_FLOATING( 2) | \
PIN_PUPDR_PULLDOWN( 3) | \
PIN_PUPDR_PULLDOWN( 4) | \
PIN_PUPDR_PULLDOWN( 5) | \
PIN_PUPDR_PULLDOWN( 6) | \
PIN_PUPDR_PULLDOWN( 7) | \
PIN_PUPDR_PULLDOWN( 8) | \
PIN_PUPDR_PULLDOWN( 9) | \
PIN_PUPDR_PULLDOWN(10) | \
PIN_PUPDR_PULLDOWN(11) | \
PIN_PUPDR_PULLDOWN(12) | \
PIN_PUPDR_PULLDOWN(13) | \
PIN_PUPDR_PULLDOWN(14) | \
PIN_PUPDR_PULLDOWN(15))
#define VAL_GPIOD_ODR (PIN_ODR_LOW(0) | \
PIN_ODR_LOW(2) | \
PIN_ODR_LOW(3) | \
PIN_ODR_LOW(6) | \
PIN_ODR_LOW(7) | \
PIN_ODR_LOW(8) | \
PIN_ODR_LOW(9) | \
PIN_ODR_LOW(10) | \
PIN_ODR_LOW(11) | \
PIN_ODR_LOW(12) | \
PIN_ODR_LOW(14))
#define VAL_GPIOD_AFRL (PIN_AFIO_AF( 0, 0U) | \
PIN_AFIO_AF( 1, 0U) | \
PIN_AFIO_AF( 2, 12U) | \
PIN_AFIO_AF( 3, 0U) | \
PIN_AFIO_AF( 4, 0U) | \
PIN_AFIO_AF( 5, 0U) | \
PIN_AFIO_AF( 6, 0U) | \
PIN_AFIO_AF( 7, 0U))
#define VAL_GPIOD_AFRH (PIN_AFIO_AF( 8, 12U) | \
PIN_AFIO_AF( 9, 12U) | \
PIN_AFIO_AF(10, 12U) | \
PIN_AFIO_AF(11, 12U) | \
PIN_AFIO_AF(12, 12U) | \
PIN_AFIO_AF(13, 0U) | \
PIN_AFIO_AF(14, 0U) | \
PIN_AFIO_AF(15, 0U))
/*
* GPIOE setup:
*/
#define VAL_GPIOE_MODER VAL_GPIO_MODER_ALL_DEFAULT
#define VAL_GPIOE_OTYPER VAL_GPIO_OTYPER_ALL_DEFAULT
#define VAL_GPIOE_OSPEEDR VAL_GPIO_OSPEEDR_ALL_DEFAULT
#define VAL_GPIOE_PUPDR VAL_GPIO_PUPDR_ALL_DEFAULT
#define VAL_GPIOE_ODR VAL_GPIO_ODR_ALL_DEFAULT
#define VAL_GPIOE_AFRL VAL_GPIO_AF_ALL_DEFAULT
#define VAL_GPIOE_AFRH VAL_GPIO_AF_ALL_DEFAULT
/*
* GPIOF setup:
*/
#define VAL_GPIOF_MODER VAL_GPIO_MODER_ALL_DEFAULT
#define VAL_GPIOF_OTYPER VAL_GPIO_OTYPER_ALL_DEFAULT
#define VAL_GPIOF_OSPEEDR VAL_GPIO_OSPEEDR_ALL_DEFAULT
#define VAL_GPIOF_PUPDR VAL_GPIO_PUPDR_ALL_DEFAULT
#define VAL_GPIOF_ODR VAL_GPIO_ODR_ALL_DEFAULT
#define VAL_GPIOF_AFRL VAL_GPIO_AF_ALL_DEFAULT
#define VAL_GPIOF_AFRH VAL_GPIO_AF_ALL_DEFAULT
/*
* GPIOG setup:
*/
#define VAL_GPIOG_MODER VAL_GPIO_MODER_ALL_DEFAULT
#define VAL_GPIOG_OTYPER VAL_GPIO_OTYPER_ALL_DEFAULT
#define VAL_GPIOG_OSPEEDR VAL_GPIO_OSPEEDR_ALL_DEFAULT
#define VAL_GPIOG_PUPDR VAL_GPIO_PUPDR_ALL_DEFAULT
#define VAL_GPIOG_ODR VAL_GPIO_ODR_ALL_DEFAULT
#define VAL_GPIOG_AFRL VAL_GPIO_AF_ALL_DEFAULT
#define VAL_GPIOG_AFRH VAL_GPIO_AF_ALL_DEFAULT
/*
* GPIOH setup:
*/
#define VAL_GPIOH_MODER VAL_GPIO_MODER_ALL_DEFAULT
#define VAL_GPIOH_OTYPER VAL_GPIO_OTYPER_ALL_DEFAULT
#define VAL_GPIOH_OSPEEDR VAL_GPIO_OSPEEDR_ALL_DEFAULT
#define VAL_GPIOH_PUPDR VAL_GPIO_PUPDR_ALL_DEFAULT
#define VAL_GPIOH_ODR VAL_GPIO_ODR_ALL_DEFAULT
#define VAL_GPIOH_AFRL VAL_GPIO_AF_ALL_DEFAULT
#define VAL_GPIOH_AFRH VAL_GPIO_AF_ALL_DEFAULT
/*
* GPIOI setup:
*/
#define VAL_GPIOI_MODER VAL_GPIO_MODER_ALL_DEFAULT
#define VAL_GPIOI_OTYPER VAL_GPIO_OTYPER_ALL_DEFAULT
#define VAL_GPIOI_OSPEEDR VAL_GPIO_OSPEEDR_ALL_DEFAULT
#define VAL_GPIOI_PUPDR VAL_GPIO_PUPDR_ALL_DEFAULT
#define VAL_GPIOI_ODR VAL_GPIO_ODR_ALL_DEFAULT
#define VAL_GPIOI_AFRL VAL_GPIO_AF_ALL_DEFAULT
#define VAL_GPIOI_AFRH VAL_GPIO_AF_ALL_DEFAULT
#endif /* BOARD_IO_H */

View File

@ -0,0 +1,19 @@
# List of all the board related files.
BOARDCPPSRC = $(PROJECT_DIR)/config/boards/BB_V3/board_configuration.cpp \
$(PROJECT_DIR)/config/boards/proteus/adc_hack.cpp
BOARDINC = $(PROJECT_DIR)/config/boards/BB_V3
# Override DEFAULT_ENGINE_TYPE
DDEFS += -DSTM32F407xx
DDEFS += -DSHORT_BOARD_NAME=BB_V3 -DDEFAULT_ENGINE_TYPE=MINIMAL_PINS
DDEFS += -DFIRMWARE_ID=\"BB_V3\"
DDEFS += -DLED_CRITICAL_ERROR_BRAIN_PIN=Gpio::Unassigned
DDEFS += -DHAL_TRIGGER_USE_PAL=TRUE
DDEFS += -DHAL_VSS_USE_PAL=TRUE
DDEFS += -DSTM32_ADC_USE_ADC3=TRUE
DDEFS += -DEFI_SOFTWARE_KNOCK=TRUE
# Hardware serial port on UART 2 -> PD5/PD6 LUB PC10/PC11
EFI_CONSOLE_TTL_PINS = -DEFI_CONSOLE_TX_BRAIN_PIN=Gpio::C10 -DEFI_CONSOLE_RX_BRAIN_PIN=Gpio::C11

View File

@ -0,0 +1,152 @@
/**
* @file boards/BB V3/board_configuration.cpp
*
* @brief Configuration defaults for the core8 board
*
* @author Turbo Marian, 2022
*/
#include "pch.h"
static void setInjectorPins() {
engineConfiguration->injectionPinMode = OM_DEFAULT;
engineConfiguration->injectionPins[0] = Gpio::E5;
engineConfiguration->injectionPins[1] = Gpio::E6;
engineConfiguration->injectionPins[2] = Gpio::E0;
engineConfiguration->injectionPins[3] = Gpio::C13;
engineConfiguration->injectionPins[4] = Gpio::E1;
engineConfiguration->injectionPins[5] = Gpio::A15;
engineConfiguration->injectionPins[6] = Gpio::A7;
engineConfiguration->injectionPins[7] = Gpio::B8;
}
static void setIgnitionPins() {
engineConfiguration->ignitionPinMode = OM_DEFAULT;
engineConfiguration->ignitionPins[0] = Gpio::B9;
engineConfiguration->ignitionPins[1] = Gpio::B6;
engineConfiguration->ignitionPins[2] = Gpio::B7;
engineConfiguration->ignitionPins[3] = Gpio::B3;
engineConfiguration->ignitionPins[4] = Gpio::B5;
engineConfiguration->ignitionPins[5] = Gpio::D1;
engineConfiguration->ignitionPins[6] = Gpio::D4;
engineConfiguration->ignitionPins[7] = Gpio::D7;
}
void setSdCardConfigurationOverrides(void) {
}
void setBoardConfigOverrides(void) {
// TLE9201 driver
// This chip has three control pins:
// DIR - sets direction of the motor
// PWM - pwm control (enable high, coast low)
// DIS - disables motor (enable low)
// Throttle #1
// PWM pin
engineConfiguration->etbIo[0].controlPin = Gpio::B14;
// DIR pin
engineConfiguration->etbIo[0].directionPin1 = Gpio::D0;
// Disable pin
engineConfiguration->etbIo[0].disablePin = Gpio::D3;
// Unused
engineConfiguration->etbIo[0].directionPin2 = Gpio::Unassigned;
// Throttle #2
// PWM pin
engineConfiguration->etbIo[1].controlPin = Gpio::Unassigned;
// DIR pin
engineConfiguration->etbIo[1].directionPin1 = Gpio::Unassigned;
// Disable pin
engineConfiguration->etbIo[1].disablePin = Gpio::Unassigned;
// Unused
engineConfiguration->etbIo[1].directionPin2 = Gpio::Unassigned;
// we only have pwm/dir, no dira/dirb
engineConfiguration->etb_use_two_wires = false;
}
void setPinConfigurationOverrides(void) {
//CAN 1 bus overwrites
engineConfiguration->canTxPin = Gpio::B13;
engineConfiguration->canRxPin = Gpio::B12;
//CAN 2 bus overwrites
engineConfiguration->can2RxPin = Gpio::Unassigned;
engineConfiguration->can2TxPin = Gpio::Unassigned;
}
void setSerialConfigurationOverrides(void) {
}
/**
* @brief Board-specific configuration defaults.
*
* See also setDefaultEngineConfiguration
*
* @todo Add your board-specific code, if any.
*/
static void setupVbatt() {
// 5.6k high side/10k low side = 1.56 ratio divider
engineConfiguration->analogInputDividerCoefficient = 1.47f;
// 6.34k high side/1k low side = 9.2
engineConfiguration->vbattDividerCoeff = (6.34f / 1.0f);
// Battery sense on PC5
engineConfiguration->vbattAdcChannel = EFI_ADC_15;
engineConfiguration->adcVcc = 3.3f;
}
static void setupDefaultSensorInputs() {
engineConfiguration->afr.hwChannel = EFI_ADC_14;
setEgoSensor(ES_14Point7_Free);
engineConfiguration->clt.config.bias_resistor = 2490;
engineConfiguration->iat.config.bias_resistor = 2490;
engineConfiguration->baroSensor.hwChannel = EFI_ADC_NONE;
engineConfiguration->lps25BaroSensorScl = Gpio::Unassigned;
engineConfiguration->lps25BaroSensorSda = Gpio::Unassigned;
}
static void setLedPins() {
// PE3 is error LED, configured in board.mk
engineConfiguration->communicationLedPin = Gpio::Unassigned;
engineConfiguration->runningLedPin = Gpio::Unassigned;
engineConfiguration->warningLedPin = Gpio::Unassigned;
}
void setBoardDefaultConfiguration(void) {
setInjectorPins();
setIgnitionPins();
setupVbatt();
setLedPins();
engineConfiguration->sdCardPeriodMs = 50;
engineConfiguration->isSdCardEnabled = true;
engineConfiguration->canWriteEnabled = true;
engineConfiguration->canReadEnabled = true;
engineConfiguration->canSleepPeriodMs = 50;
engineConfiguration->canBaudRate = B500KBPS;
engineConfiguration->can2BaudRate = B500KBPS;
}

View File

@ -0,0 +1,12 @@
@echo off
cd ../../../
make clean -j8 PROJECT_BOARD=BB_V3
make -j8 PROJECT_BOARD=BB_V3 PROJECT_CPU=ARCH_STM32F4
gen_config_board.sh BB_V3 BB_V3
pause

View File

@ -0,0 +1,10 @@
@echo off
cd ../../../
gen_config_board.sh BB_V3 BB_V3
pause

View File

@ -0,0 +1,44 @@
//DO NOT EDIT MANUALLY, let automation work hard.
// auto-generated by PinoutLogic.java based on config\boards\BB_V3\connectors\main.yaml
#include "pch.h"
// see comments at declaration in pin_repository.h
const char * getBoardSpecificPinName(brain_pin_e brainPin) {
switch(brainPin) {
case Gpio::A10: return "Camshaft Sensor";
case Gpio::A15: return "Injector 6";
case Gpio::A7: return "Injector 7";
case Gpio::A8: return "VSS";
case Gpio::A9: return "Crankshaft Sensor";
case Gpio::B14: return "DBW_PWM";
case Gpio::B3: return "Ignition 4";
case Gpio::B5: return "Ignition 5";
case Gpio::B6: return "Ignition 2";
case Gpio::B7: return "Ignition 3";
case Gpio::B8: return "Injector 8";
case Gpio::B9: return "Ignition 1";
case Gpio::C13: return "Injector 4";
case Gpio::D0: return "DBW_DIR";
case Gpio::D1: return "Ignition 6";
case Gpio::D10: return "Digital input 2";
case Gpio::D3: return "DBW_DIS";
case Gpio::D4: return "Ignition 7";
case Gpio::D7: return "Ignition 8";
case Gpio::D8: return "Digital input 1";
case Gpio::E0: return "Injector 3";
case Gpio::E1: return "Injector 5";
case Gpio::E10: return "Low side output 2";
case Gpio::E11: return "Low side output 1";
case Gpio::E12: return "Tacho output";
case Gpio::E13: return "Low side output 3";
case Gpio::E14: return "Fan output";
case Gpio::E15: return "Fuel pump output";
case Gpio::E5: return "Injector 1";
case Gpio::E6: return "Injector 2";
case Gpio::E8: return "Boost controler";
case Gpio::E9: return "Idle valve 1";
default: return nullptr;
}
return nullptr;
}

View File

@ -0,0 +1,305 @@
pins:
# Low side outputs
- pin: 1
id: E5
class: outputs
function: Low Side Output
type: inj
ts_name: Injector 1
- pin: 2
id: E6
class: outputs
function: Low Side Output
type: inj
ts_name: Injector 2
- pin: 3
id: E0
class: outputs
function: Low Side Output
type: inj
ts_name: Injector 3
- pin: 4
id: C13
class: outputs
function: Low Side Output
type: inj
ts_name: Injector 4
- pin: 5
id: E1
class: outputs
function: Low Side Output
type: inj
ts_name: Injector 5
- pin: 6
id: A15
class: outputs
function: Low Side Output
type: inj
ts_name: Injector 6
- pin: 7
id: A7
class: outputs
function: Low Side Output
type: inj
ts_name: Injector 7
- pin: 8
id: B8
class: outputs
function: Low Side Output
type: inj
ts_name: Injector 8
# Low side
- pin: 9
id: E8
class: outputs
function: Low Side Output
type: ls
ts_name: Boost controler
- pin: 10
id: E9
class: outputs
function: Low Side Output
type: ls
ts_name: Idle valve 1
- pin: 11
id: E12
class: outputs
function: Low Side Output
type: ls
ts_name: Tacho output
- pin: 12
id: E11
class: outputs
function: Low Side Output
type: ls
ts_name: Low side output 1
- pin: 13
id: E10
class: outputs
function: Low Side Output
type: ls
ts_name: Low side output 2
- pin: 14
id: E13
class: outputs
function: Low Side Output
type: ls
ts_name: Low side output 3
- pin: 15
id: E14
class: outputs
function: Low Side Output
type: ls
ts_name: Fan output
- pin: 16
id: E15
class: outputs
function: Low Side Output
type: ls
ts_name: Fuel pump output
- pin: 17
id: B14
class: outputs
function: Low Side Output
type: ls
ts_name: DBW_PWM
- pin: 18
id: D3
class: outputs
function: Low Side Output
type: ls
ts_name: DBW_DIS
- pin: 19
id: D0
class: outputs
function: Low Side Output
type: ls
ts_name: DBW_DIR
# High side
- pin: 20
id: B9
class: outputs
function: High Side Output
type: ign
ts_name: Ignition 1
- pin: 21
id: B6
class: outputs
function: High Side Output
type: ign
ts_name: Ignition 2
- pin: 22
id: B7
class: outputs
function: High Side Output
type: ign
ts_name: Ignition 3
- pin: 23
id: B3
class: outputs
function: High Side Output
type: ign
ts_name: Ignition 4
- pin: 24
id: B5
class: outputs
function: High Side Output
type: ign
ts_name: Ignition 5
- pin: 25
id: D1
class: outputs
function: High Side Output
type: ign
ts_name: Ignition 6
- pin: 26
id: D4
class: outputs
function: High Side Output
type: ign
ts_name: Ignition 7
- pin: 27
id: D7
class: outputs
function: High Side Output
type: ign
ts_name: Ignition 8
# SENSORS
- pin: 28
id: EFI_ADC_15
class: analog_inputs
function: Sensor Input
ts_name: Battery reference voltage
- pin: 29
id: EFI_ADC_0
class: analog_inputs
function: Sensor Input
ts_name: Fuel Pressure-spare analog input 1
- pin: 30
id: EFI_ADC_1
class: analog_inputs
function: Sensor Input
ts_name: Oil pressure-spare analog input 2
- pin: 31
id: EFI_ADC_10
class: analog_inputs
function: Sensor Input
ts_name: Iat sensor
- pin: 32
id: EFI_ADC_11
class: analog_inputs
function: Sensor Input
ts_name: Tps sensor
- pin: 33
id: EFI_ADC_12
class: analog_inputs
function: Sensor Input
ts_name: Map sensor
- pin: 34
id: EFI_ADC_13
class: analog_inputs
function: Sensor Input
ts_name: Clt sensor
- pin: 35
id: EFI_ADC_4
class: analog_inputs
function: Sensor Input
ts_name: Analog sensor 1
- pin: 36
id: EFI_ADC_5
class: analog_inputs
function: Sensor Input
ts_name: Analog sensor 2
- pin: 37
id: EFI_ADC_6
class: analog_inputs
function: Sensor Input
ts_name: Analog sensor 3
- pin: 38
id: EFI_ADC_14
class: analog_inputs
function: Sensor Input
ts_name: AFR sensor
- pin: 39
id: [A10, A10]
class: [event_inputs, switch_inputs]
function: Camshaft Sensor (VR+/Hall)
type: hall
ts_name: Camshaft Sensor
- pin: 40
id: [A9, A9]
class: [event_inputs, switch_inputs]
function: Crankshaft Sensor (VR+/Hall)
type: hall
ts_name: Crankshaft Sensor
- pin: 41
id: [A8, A8]
class: [event_inputs, switch_inputs]
function: VSS (VR+/Hall)
type: hall
ts_name: VSS
- pin: 42
id: [D8, D8]
class: [event_inputs, switch_inputs]
function: CLUTCH_IN
type: hall
ts_name: Digital input 1
- pin: 43
id: [D10, D10]
class: [event_inputs, switch_inputs]
function: FLEX_IN
type: hall
ts_name: Digital input 2

View File

@ -0,0 +1,21 @@
/**
* @file knock_config.h
*/
#pragma once
// Knock is on ADC3
#define KNOCK_ADC ADCD3
// knock 1 - pin PA2
#define KNOCK_ADC_CH1 ADC_CHANNEL_IN2
#define KNOCK_PIN_CH1 Gpio::A2
// knock 2 - pin PA3
#define KNOCK_HAS_CH2 true
#define KNOCK_ADC_CH2 ADC_CHANNEL_IN3
#define KNOCK_PIN_CH2 Gpio::A3
// Sample rate & time - depends on the exact MCU
#define KNOCK_SAMPLE_TIME ADC_SAMPLE_84
#define KNOCK_SAMPLE_RATE (STM32_PCLK2 / (4 * (84 + 12)))

View File

@ -0,0 +1,13 @@
#define ts_show_hip9011 false
#define ts_show_cj125 false
#define ts_show_lcd false
#define ts_show_joystick false
#define ts_show_gps false
#define ts_show_software_knock true
#define show_test_presets true
#define show_microRusEFI_presets false
#define show_Frankenso_presets false
#define show_Hellen_presets false
#define show_Proteus_presets false

View File

@ -0,0 +1,4 @@
#define SIGNATURE_DATE 2022.06.06
#define SIGNATURE_BOARD BB_V3
// SIGNATURE_HASH is a built-in variable generated by ConfigDefinition.jar
#define TS_SIGNATURE "rusEFI DAY98.BB.V3"

View File

@ -0,0 +1,19 @@
@echo off
cd ../../../
call gen_config.bat
call gen_config_board.bat
call gen_config_common.sh
call gen_config_default.sh
call gen_default_everything.sh
call gen_enum_to_string.bat
call gen_live_documentation.bat
call gen_output_channels.sh
call gen_ptrace_enums.bat
call gen_signature.sh
call generate_docs.bat

View File

@ -0,0 +1,2 @@
w folderze /firmware
gen_config_board.sh BB_V3 BB_V3

View File

@ -0,0 +1,494 @@
/**
* @file boards/coreECU/board.h
*
* @date Feb 06, 2022
* @author Mariusz Podgajny, 2022
*/
#define BOARD_NAME "CORE_ECU"
#ifndef BOARD_IO_H
#define BOARD_IO_H
#define EFI_USB_AF 10U
#define EFI_USB_SERIAL_DM Gpio::A11
#define EFI_USB_SERIAL_DP Gpio::A12
#define EFI_USE_OSC TRUE
#define EFI_CAN_SUPPORT TRUE
#define CAN_USE_SLEEP_MODE FALSE
#undef EFI_FILE_LOGGING
#define EFI_FILE_LOGGING TRUE
#undef EFI_SDC_DEVICE
#define EFI_SDC_DEVICE SDCD1
#undef EFI_ICU_INPUTS
#define EFI_ICU_INPUTS FALSE
#undef HAL_TRIGGER_USE_PAL
#define HAL_TRIGGER_USE_PAL TRUE
#undef EFI_LOGIC_ANALYZER
#define EFI_LOGIC_ANALYZER FALSE
#undef HAL_VSS_USE_PAL
#define HAL_VSS_USE_PAL TRUE
#ifndef LED_CRITICAL_ERROR_BRAIN_PIN
#define LED_CRITICAL_ERROR_BRAIN_PIN Gpio::Unassigned
#endif
// Ignore USB VBUS pin (we're never a host, only a device)
#define BOARD_OTG_NOVBUSSENS TRUE
/*
* Board oscillators-related settings.
* NOTE: LSE not fitted.
*/
#if !defined(STM32_LSECLK)
#define STM32_LSECLK 32768U
#endif
#define STM32_LSEDRV (3U << 3U)
/*
* Board voltages.
* Required for performance limits calculation.
*/
#define STM32_VDD 300U
#define EFI_PIN_MODE_DEFAULT PIN_MODE_INPUT
#ifndef EFI_DR_DEFAULT
#define EFI_DR_DEFAULT PIN_PUPDR_PULLDOWN
#endif
// See https://github.com/rusefi/rusefi/issues/397
#define DEFAULT_GPIO_SPEED PIN_OSPEED_HIGH
/*
* I/O ports initial setup, this configuration is established soon after reset
* in the initialization code.
* Please refer to the STM32 Reference Manual for details.
*/
#define PIN_MODE_INPUT(n) (0U << ((n) * 2U))
#define PIN_MODE_OUTPUT(n) (1U << ((n) * 2U))
#define PIN_MODE_ALTERNATE(n) (2U << ((n) * 2U))
#define PIN_MODE_ANALOG(n) (3U << ((n) * 2U))
#define PIN_ODR_LOW(n) (0U << (n))
#define PIN_ODR_HIGH(n) (1U << (n))
#define PIN_OTYPE_PUSHPULL(n) (0U << (n))
#define PIN_OTYPE_OPENDRAIN(n) (1U << (n))
#define PIN_OSPEED_VERYLOW(n) (0U << ((n) * 2U))
#define PIN_OSPEED_LOW(n) (1U << ((n) * 2U))
#define PIN_OSPEED_MEDIUM(n) (2U << ((n) * 2U))
#define PIN_OSPEED_HIGH(n) (3U << ((n) * 2U))
#define PIN_PUPDR_FLOATING(n) (0U << ((n) * 2U))
#define PIN_PUPDR_PULLUP(n) (1U << ((n) * 2U))
#define PIN_PUPDR_PULLDOWN(n) (2U << ((n) * 2U))
#define PIN_AFIO_AF(n, v) ((v) << (((n) % 8U) * 4U))
#define VAL_GPIO_MODER_ALL_DEFAULT (EFI_PIN_MODE_DEFAULT(0) | \
EFI_PIN_MODE_DEFAULT(1) | \
EFI_PIN_MODE_DEFAULT(2) | \
EFI_PIN_MODE_DEFAULT(3) | \
EFI_PIN_MODE_DEFAULT(4) | \
EFI_PIN_MODE_DEFAULT(5) | \
EFI_PIN_MODE_DEFAULT(6) | \
EFI_PIN_MODE_DEFAULT(7) | \
EFI_PIN_MODE_DEFAULT(8) | \
EFI_PIN_MODE_DEFAULT(9) | \
EFI_PIN_MODE_DEFAULT(10) | \
EFI_PIN_MODE_DEFAULT(11) | \
EFI_PIN_MODE_DEFAULT(12) | \
EFI_PIN_MODE_DEFAULT(13) | \
EFI_PIN_MODE_DEFAULT(14) | \
EFI_PIN_MODE_DEFAULT(15))
#define VAL_GPIO_OTYPER_ALL_DEFAULT (PIN_OTYPE_PUSHPULL(0) | \
PIN_OTYPE_PUSHPULL(1) | \
PIN_OTYPE_PUSHPULL(2) | \
PIN_OTYPE_PUSHPULL(3) | \
PIN_OTYPE_PUSHPULL(4) | \
PIN_OTYPE_PUSHPULL(5) | \
PIN_OTYPE_PUSHPULL(6) | \
PIN_OTYPE_PUSHPULL(7) | \
PIN_OTYPE_PUSHPULL(8) | \
PIN_OTYPE_PUSHPULL(9) | \
PIN_OTYPE_PUSHPULL(10) | \
PIN_OTYPE_PUSHPULL(11) | \
PIN_OTYPE_PUSHPULL(12) | \
PIN_OTYPE_PUSHPULL(13) | \
PIN_OTYPE_PUSHPULL(14) | \
PIN_OTYPE_PUSHPULL(15))
#define VAL_GPIO_OSPEEDR_ALL_DEFAULT (DEFAULT_GPIO_SPEED(0) | \
DEFAULT_GPIO_SPEED(1) | \
DEFAULT_GPIO_SPEED(2) | \
DEFAULT_GPIO_SPEED(3) | \
DEFAULT_GPIO_SPEED(4) | \
DEFAULT_GPIO_SPEED(5) | \
DEFAULT_GPIO_SPEED(6) | \
DEFAULT_GPIO_SPEED(7) | \
DEFAULT_GPIO_SPEED(8) | \
DEFAULT_GPIO_SPEED(9) | \
DEFAULT_GPIO_SPEED(10) | \
DEFAULT_GPIO_SPEED(11) | \
DEFAULT_GPIO_SPEED(12) | \
DEFAULT_GPIO_SPEED(13) | \
DEFAULT_GPIO_SPEED(14) | \
DEFAULT_GPIO_SPEED(15))
#define VAL_GPIO_ODR_ALL_DEFAULT 0
#define VAL_GPIO_PUPDR_ALL_DEFAULT (EFI_DR_DEFAULT(0) | \
EFI_DR_DEFAULT(1) | \
EFI_DR_DEFAULT(2) | \
EFI_DR_DEFAULT(3) | \
EFI_DR_DEFAULT(4) | \
EFI_DR_DEFAULT(5) | \
EFI_DR_DEFAULT(6) | \
EFI_DR_DEFAULT(7) | \
EFI_DR_DEFAULT(8) | \
EFI_DR_DEFAULT(9) | \
EFI_DR_DEFAULT(10) | \
EFI_DR_DEFAULT(11) | \
EFI_DR_DEFAULT(12) | \
EFI_DR_DEFAULT(13) | \
EFI_DR_DEFAULT(14) | \
EFI_DR_DEFAULT(15))
#define VAL_GPIO_AF_ALL_DEFAULT (PIN_AFIO_AF(0, 0U) | \
PIN_AFIO_AF(1, 0U) | \
PIN_AFIO_AF(2, 0U) | \
PIN_AFIO_AF(3, 0U) | \
PIN_AFIO_AF(4, 0U) | \
PIN_AFIO_AF(5, 0U) | \
PIN_AFIO_AF(6, 0U) | \
PIN_AFIO_AF(7, 0U))
#define VAL_GPIOA_MODER (EFI_PIN_MODE_DEFAULT(0) | \
EFI_PIN_MODE_DEFAULT(1) | \
EFI_PIN_MODE_DEFAULT(2) | \
EFI_PIN_MODE_DEFAULT(3) | \
EFI_PIN_MODE_DEFAULT(4) | \
EFI_PIN_MODE_DEFAULT(5) | \
EFI_PIN_MODE_DEFAULT(6) | \
EFI_PIN_MODE_DEFAULT(7) | \
EFI_PIN_MODE_DEFAULT(8) | \
EFI_PIN_MODE_DEFAULT(9) | \
EFI_PIN_MODE_DEFAULT(10) | \
EFI_PIN_MODE_DEFAULT(11) | \
EFI_PIN_MODE_DEFAULT(12) | \
PIN_MODE_ALTERNATE(13) | \
PIN_MODE_ALTERNATE(14) | \
EFI_PIN_MODE_DEFAULT(15))
#define VAL_GPIOA_OTYPER VAL_GPIO_OTYPER_ALL_DEFAULT
#define VAL_GPIOA_OSPEEDR VAL_GPIO_OSPEEDR_ALL_DEFAULT
#define VAL_GPIOA_PUPDR VAL_GPIO_PUPDR_ALL_DEFAULT
#define VAL_GPIOA_ODR VAL_GPIO_ODR_ALL_DEFAULT
#define VAL_GPIOA_AFRL (PIN_AFIO_AF(0, 0U) | \
PIN_AFIO_AF(1, 0U) | \
PIN_AFIO_AF(2, 0U) | \
PIN_AFIO_AF(3, 0U) | \
PIN_AFIO_AF(4, 6U) | \
PIN_AFIO_AF(5, 5U) | \
PIN_AFIO_AF(6, 5U) | \
PIN_AFIO_AF(7, 5U))
#define VAL_GPIOA_AFRH VAL_GPIO_AF_ALL_DEFAULT
/*
* GPIOB setup:
*/
#define VAL_GPIOB_MODER (EFI_PIN_MODE_DEFAULT(0) | \
EFI_PIN_MODE_DEFAULT(1) | \
EFI_PIN_MODE_DEFAULT(2) | \
EFI_PIN_MODE_DEFAULT(3) | \
EFI_PIN_MODE_DEFAULT(4) | \
EFI_PIN_MODE_DEFAULT(5) | \
EFI_PIN_MODE_DEFAULT(6) | \
EFI_PIN_MODE_DEFAULT(7) | \
EFI_PIN_MODE_DEFAULT(8) | \
EFI_PIN_MODE_DEFAULT(9) | \
EFI_PIN_MODE_DEFAULT(10) | \
EFI_PIN_MODE_DEFAULT(11) | \
EFI_PIN_MODE_DEFAULT(12) | \
EFI_PIN_MODE_DEFAULT(13) | \
EFI_PIN_MODE_DEFAULT(14) | \
EFI_PIN_MODE_DEFAULT(15))
#define VAL_GPIOB_OTYPER VAL_GPIO_OTYPER_ALL_DEFAULT
#define VAL_GPIOB_OSPEEDR VAL_GPIO_OSPEEDR_ALL_DEFAULT
#define VAL_GPIOB_PUPDR VAL_GPIO_PUPDR_ALL_DEFAULT
#define VAL_GPIOB_ODR VAL_GPIO_ODR_ALL_DEFAULT
#define VAL_GPIOB_AFRL VAL_GPIO_AF_ALL_DEFAULT
#define VAL_GPIOB_AFRH VAL_GPIO_AF_ALL_DEFAULT
/*
* GPIOC setup:
* 8 BIT MODE
* PC8 - MMC D0
* PC9 - MMC D1
* PC10 - MMC D2
* PC11 - MMC D3
* PC12 - CLK
* 1 BIT MODE
* PC8 - MMC D0
* PC12 - CLK
* NOW IS SETUP FOR 1 BIT SDIO
*/
#define VAL_GPIOC_MODER (EFI_PIN_MODE_DEFAULT(0) | \
EFI_PIN_MODE_DEFAULT(1) | \
EFI_PIN_MODE_DEFAULT(2) | \
EFI_PIN_MODE_DEFAULT(3) | \
EFI_PIN_MODE_DEFAULT(4) | \
EFI_PIN_MODE_DEFAULT(5) | \
EFI_PIN_MODE_DEFAULT(6) | \
EFI_PIN_MODE_DEFAULT(7) | \
PIN_MODE_ALTERNATE(8) | \
EFI_PIN_MODE_DEFAULT(9) | \
EFI_PIN_MODE_DEFAULT(10) | \
EFI_PIN_MODE_DEFAULT(11) | \
PIN_MODE_ALTERNATE(12) | \
EFI_PIN_MODE_DEFAULT(13) | \
EFI_PIN_MODE_DEFAULT(14) | \
EFI_PIN_MODE_DEFAULT(15))
#define VAL_GPIOC_OTYPER (PIN_OTYPE_PUSHPULL( 0) | \
PIN_OTYPE_PUSHPULL( 1) | \
PIN_OTYPE_PUSHPULL( 2) | \
PIN_OTYPE_PUSHPULL( 3) | \
PIN_OTYPE_PUSHPULL( 4) | \
PIN_OTYPE_PUSHPULL( 5) | \
PIN_OTYPE_PUSHPULL( 6)| \
PIN_OTYPE_PUSHPULL( 7)| \
PIN_OTYPE_PUSHPULL( 8)| \
PIN_OTYPE_PUSHPULL( 9) | \
PIN_OTYPE_PUSHPULL(10) | \
PIN_OTYPE_PUSHPULL(11) | \
PIN_OTYPE_PUSHPULL(12) | \
PIN_OTYPE_PUSHPULL(13) | \
PIN_OTYPE_PUSHPULL(14)| \
PIN_OTYPE_PUSHPULL(15))
#define VAL_GPIOC_OSPEEDR (PIN_OSPEED_HIGH( 0) | \
PIN_OSPEED_HIGH( 1) | \
PIN_OSPEED_HIGH( 2) | \
PIN_OSPEED_HIGH( 3) | \
PIN_OSPEED_HIGH( 4) | \
PIN_OSPEED_HIGH( 5) | \
PIN_OSPEED_HIGH( 6) | \
PIN_OSPEED_HIGH( 7) | \
PIN_OSPEED_HIGH( 8) | \
PIN_OSPEED_HIGH( 9) | \
PIN_OSPEED_HIGH(10) | \
PIN_OSPEED_HIGH(11) | \
PIN_OSPEED_HIGH(12) | \
PIN_OSPEED_HIGH(13) | \
PIN_OSPEED_HIGH(14) | \
PIN_OSPEED_HIGH(15))
#define VAL_GPIOC_PUPDR (PIN_PUPDR_FLOATING( 0) | \
PIN_PUPDR_PULLDOWN( 1) | \
PIN_PUPDR_PULLDOWN( 2) | \
PIN_PUPDR_PULLDOWN( 3) | \
PIN_PUPDR_PULLDOWN( 4) | \
PIN_PUPDR_PULLDOWN( 5) | \
PIN_PUPDR_PULLDOWN( 6) | \
PIN_PUPDR_PULLDOWN( 7) | \
PIN_PUPDR_PULLDOWN( 8) | \
PIN_PUPDR_PULLDOWN( 9) | \
PIN_PUPDR_PULLDOWN(10) | \
PIN_PUPDR_PULLDOWN(11) | \
PIN_PUPDR_PULLDOWN(12) | \
PIN_PUPDR_PULLDOWN(13) | \
PIN_PUPDR_PULLDOWN(14) | \
PIN_PUPDR_PULLDOWN(15))
#define VAL_GPIOC_ODR (PIN_ODR_HIGH(0) | \
PIN_ODR_HIGH(2) | \
PIN_ODR_HIGH(3) | \
PIN_ODR_HIGH(6) | \
PIN_ODR_HIGH(7) | \
PIN_ODR_HIGH(8) | \
PIN_ODR_HIGH(9) | \
PIN_ODR_HIGH(10) | \
PIN_ODR_HIGH(11) | \
PIN_ODR_HIGH(12) | \
PIN_ODR_HIGH(14))
#define VAL_GPIOC_AFRL (PIN_AFIO_AF( 0, 0U) | \
PIN_AFIO_AF( 1, 0U) | \
PIN_AFIO_AF( 2, 0U) | \
PIN_AFIO_AF( 3, 0U) | \
PIN_AFIO_AF( 4, 0U) | \
PIN_AFIO_AF( 5, 0U) | \
PIN_AFIO_AF( 6, 0U) | \
PIN_AFIO_AF( 7, 0U))
#define VAL_GPIOC_AFRH (PIN_AFIO_AF( 8, 12U) | \
PIN_AFIO_AF( 9, 0U) | \
PIN_AFIO_AF(10, 0U) | \
PIN_AFIO_AF(11, 0U) | \
PIN_AFIO_AF(12, 12U) | \
PIN_AFIO_AF(13, 0U) | \
PIN_AFIO_AF(14, 0U) | \
PIN_AFIO_AF(15, 0U))
/*
* GPIOD setup:
* PD0 - CAN RX
* PD1 - CAN TX
* PD2 - CMD
*/
#define VAL_GPIOD_MODER (PIN_MODE_ALTERNATE(0) | \
PIN_MODE_ALTERNATE(1) | \
PIN_MODE_ALTERNATE(2) | \
EFI_PIN_MODE_DEFAULT(3) | \
EFI_PIN_MODE_DEFAULT(4) | \
EFI_PIN_MODE_DEFAULT(5) | \
EFI_PIN_MODE_DEFAULT(6) | \
EFI_PIN_MODE_DEFAULT(7) | \
EFI_PIN_MODE_DEFAULT(8) | \
EFI_PIN_MODE_DEFAULT(9) | \
EFI_PIN_MODE_DEFAULT(10) | \
EFI_PIN_MODE_DEFAULT(11) | \
EFI_PIN_MODE_DEFAULT(12) | \
EFI_PIN_MODE_DEFAULT(13) | \
EFI_PIN_MODE_DEFAULT(14) | \
EFI_PIN_MODE_DEFAULT(15))
#define VAL_GPIOD_OTYPER (PIN_OTYPE_PUSHPULL( 0) | \
PIN_OTYPE_PUSHPULL( 1) | \
PIN_OTYPE_PUSHPULL( 2) | \
PIN_OTYPE_PUSHPULL( 3) | \
PIN_OTYPE_PUSHPULL( 4) | \
PIN_OTYPE_PUSHPULL( 5) | \
PIN_OTYPE_PUSHPULL( 6)| \
PIN_OTYPE_PUSHPULL( 7)| \
PIN_OTYPE_PUSHPULL( 8)| \
PIN_OTYPE_PUSHPULL( 9) | \
PIN_OTYPE_PUSHPULL(10) | \
PIN_OTYPE_PUSHPULL(11) | \
PIN_OTYPE_PUSHPULL(12) | \
PIN_OTYPE_PUSHPULL(13) | \
PIN_OTYPE_PUSHPULL(14)| \
PIN_OTYPE_PUSHPULL(15))
#define VAL_GPIOD_OSPEEDR (PIN_OSPEED_HIGH( 0) | \
PIN_OSPEED_HIGH( 1) | \
PIN_OSPEED_HIGH( 2) | \
PIN_OSPEED_HIGH( 3) | \
PIN_OSPEED_HIGH( 4) | \
PIN_OSPEED_HIGH( 5) | \
PIN_OSPEED_HIGH( 6) | \
PIN_OSPEED_HIGH( 7) | \
PIN_OSPEED_HIGH( 8) | \
PIN_OSPEED_HIGH( 9) | \
PIN_OSPEED_HIGH(10) | \
PIN_OSPEED_HIGH(11) | \
PIN_OSPEED_HIGH(12) | \
PIN_OSPEED_HIGH(13) | \
PIN_OSPEED_HIGH(14) | \
PIN_OSPEED_HIGH(15))
#define VAL_GPIOD_PUPDR (PIN_PUPDR_PULLDOWN( 0) | \
PIN_PUPDR_PULLDOWN( 1) | \
PIN_PUPDR_PULLDOWN( 2) | \
PIN_PUPDR_PULLDOWN( 3) | \
PIN_PUPDR_PULLDOWN( 4) | \
PIN_PUPDR_PULLDOWN( 5) | \
PIN_PUPDR_PULLDOWN( 6) | \
PIN_PUPDR_PULLDOWN( 7) | \
PIN_PUPDR_PULLDOWN( 8) | \
PIN_PUPDR_PULLDOWN( 9) | \
PIN_PUPDR_PULLDOWN(10) | \
PIN_PUPDR_PULLDOWN(11) | \
PIN_PUPDR_PULLDOWN(12) | \
PIN_PUPDR_PULLDOWN(13) | \
PIN_PUPDR_PULLDOWN(14) | \
PIN_PUPDR_PULLDOWN(15))
#define VAL_GPIOD_ODR (PIN_ODR_LOW(0) | \
PIN_ODR_LOW(1) | \
PIN_ODR_LOW(2) | \
PIN_ODR_LOW(3) | \
PIN_ODR_LOW(6) | \
PIN_ODR_LOW(7) | \
PIN_ODR_LOW(8) | \
PIN_ODR_LOW(9) | \
PIN_ODR_LOW(10) | \
PIN_ODR_LOW(11) | \
PIN_ODR_LOW(12) | \
PIN_ODR_LOW(14))
#define VAL_GPIOD_AFRL (PIN_AFIO_AF( 0, 9U) | \
PIN_AFIO_AF( 1, 9U) | \
PIN_AFIO_AF( 2, 12U) | \
PIN_AFIO_AF( 3, 0U) | \
PIN_AFIO_AF( 4, 0U) | \
PIN_AFIO_AF( 5, 0U) | \
PIN_AFIO_AF( 6, 0U) | \
PIN_AFIO_AF( 7, 0U))
#define VAL_GPIOD_AFRH (PIN_AFIO_AF( 8, 0U) | \
PIN_AFIO_AF( 9, 0U) | \
PIN_AFIO_AF(10, 12U) | \
PIN_AFIO_AF(11, 12U) | \
PIN_AFIO_AF(12, 12U) | \
PIN_AFIO_AF(13, 0U) | \
PIN_AFIO_AF(14, 0U) | \
PIN_AFIO_AF(15, 0U))
/*
* GPIOE setup:
*/
#define VAL_GPIOE_MODER VAL_GPIO_MODER_ALL_DEFAULT
#define VAL_GPIOE_OTYPER VAL_GPIO_OTYPER_ALL_DEFAULT
#define VAL_GPIOE_OSPEEDR VAL_GPIO_OSPEEDR_ALL_DEFAULT
#define VAL_GPIOE_PUPDR VAL_GPIO_PUPDR_ALL_DEFAULT
#define VAL_GPIOE_ODR VAL_GPIO_ODR_ALL_DEFAULT
#define VAL_GPIOE_AFRL VAL_GPIO_AF_ALL_DEFAULT
#define VAL_GPIOE_AFRH VAL_GPIO_AF_ALL_DEFAULT
/*
* GPIOF setup:
*/
#define VAL_GPIOF_MODER VAL_GPIO_MODER_ALL_DEFAULT
#define VAL_GPIOF_OTYPER VAL_GPIO_OTYPER_ALL_DEFAULT
#define VAL_GPIOF_OSPEEDR VAL_GPIO_OSPEEDR_ALL_DEFAULT
#define VAL_GPIOF_PUPDR VAL_GPIO_PUPDR_ALL_DEFAULT
#define VAL_GPIOF_ODR VAL_GPIO_ODR_ALL_DEFAULT
#define VAL_GPIOF_AFRL VAL_GPIO_AF_ALL_DEFAULT
#define VAL_GPIOF_AFRH VAL_GPIO_AF_ALL_DEFAULT
/*
* GPIOG setup:
*/
#define VAL_GPIOG_MODER VAL_GPIO_MODER_ALL_DEFAULT
#define VAL_GPIOG_OTYPER VAL_GPIO_OTYPER_ALL_DEFAULT
#define VAL_GPIOG_OSPEEDR VAL_GPIO_OSPEEDR_ALL_DEFAULT
#define VAL_GPIOG_PUPDR VAL_GPIO_PUPDR_ALL_DEFAULT
#define VAL_GPIOG_ODR VAL_GPIO_ODR_ALL_DEFAULT
#define VAL_GPIOG_AFRL VAL_GPIO_AF_ALL_DEFAULT
#define VAL_GPIOG_AFRH VAL_GPIO_AF_ALL_DEFAULT
/*
* GPIOH setup:
*/
#define VAL_GPIOH_MODER VAL_GPIO_MODER_ALL_DEFAULT
#define VAL_GPIOH_OTYPER VAL_GPIO_OTYPER_ALL_DEFAULT
#define VAL_GPIOH_OSPEEDR VAL_GPIO_OSPEEDR_ALL_DEFAULT
#define VAL_GPIOH_PUPDR VAL_GPIO_PUPDR_ALL_DEFAULT
#define VAL_GPIOH_ODR VAL_GPIO_ODR_ALL_DEFAULT
#define VAL_GPIOH_AFRL VAL_GPIO_AF_ALL_DEFAULT
#define VAL_GPIOH_AFRH VAL_GPIO_AF_ALL_DEFAULT
/*
* GPIOI setup:
*/
#define VAL_GPIOI_MODER VAL_GPIO_MODER_ALL_DEFAULT
#define VAL_GPIOI_OTYPER VAL_GPIO_OTYPER_ALL_DEFAULT
#define VAL_GPIOI_OSPEEDR VAL_GPIO_OSPEEDR_ALL_DEFAULT
#define VAL_GPIOI_PUPDR VAL_GPIO_PUPDR_ALL_DEFAULT
#define VAL_GPIOI_ODR VAL_GPIO_ODR_ALL_DEFAULT
#define VAL_GPIOI_AFRL VAL_GPIO_AF_ALL_DEFAULT
#define VAL_GPIOI_AFRH VAL_GPIO_AF_ALL_DEFAULT
#endif /* BOARD_IO_H */

View File

@ -0,0 +1,19 @@
# List of all the board related files.
BOARDCPPSRC = $(PROJECT_DIR)/config/boards/coreECU/board_configuration.cpp \
$(PROJECT_DIR)/config/boards/proteus/adc_hack.cpp
BOARDINC = $(PROJECT_DIR)/config/boards/coreECU
# Override DEFAULT_ENGINE_TYPE
DDEFS += -DSTM32F407xx
DDEFS += -DSHORT_BOARD_NAME=BB_V3 -DDEFAULT_ENGINE_TYPE=MINIMAL_PINS
DDEFS += -DFIRMWARE_ID=\"BB_V3\"
DDEFS += -DLED_CRITICAL_ERROR_BRAIN_PIN=Gpio::Unassigned
DDEFS += -DHAL_TRIGGER_USE_PAL=TRUE
DDEFS += -DHAL_VSS_USE_PAL=TRUE
DDEFS += -DSTM32_ADC_USE_ADC3=TRUE
DDEFS += -DEFI_SOFTWARE_KNOCK=TRUE
# Hardware serial port on UART 2 -> PD5/PD6 LUB PC10/PC11
EFI_CONSOLE_TTL_PINS = -DEFI_CONSOLE_TX_BRAIN_PIN=Gpio::C10 -DEFI_CONSOLE_RX_BRAIN_PIN=Gpio::C11

View File

@ -0,0 +1,152 @@
/**
* @file boards/coreECU/board_configuration.cpp
*
* @brief Configuration defaults for the coreECU board
*
* @author Turbo Marian, 2022
*/
#include "pch.h"
static void setInjectorPins() {
engineConfiguration->injectionPinMode = OM_DEFAULT;
engineConfiguration->injectionPins[0] = Gpio::D12;
engineConfiguration->injectionPins[1] = Gpio::D13;
engineConfiguration->injectionPins[2] = Gpio::D14;
engineConfiguration->injectionPins[3] = Gpio::D15;
engineConfiguration->injectionPins[4] = Gpio::C6;
engineConfiguration->injectionPins[5] = Gpio::C7;
engineConfiguration->injectionPins[6] = Gpio::C9;
engineConfiguration->injectionPins[7] = Gpio::A8;
}
static void setIgnitionPins() {
engineConfiguration->ignitionPinMode = OM_DEFAULT;
engineConfiguration->ignitionPins[0] = Gpio::E15;
engineConfiguration->ignitionPins[1] = Gpio::E14;
engineConfiguration->ignitionPins[2] = Gpio::E13;
engineConfiguration->ignitionPins[3] = Gpio::E12;
engineConfiguration->ignitionPins[4] = Gpio::E11;
engineConfiguration->ignitionPins[5] = Gpio::E10;
engineConfiguration->ignitionPins[6] = Gpio::E9;
engineConfiguration->ignitionPins[7] = Gpio::E8;
}
void setSdCardConfigurationOverrides(void) {
}
void setBoardConfigOverrides(void) {
// TLE9201 driver
// This chip has three control pins:
// DIR - sets direction of the motor
// PWM - pwm control (enable high, coast low)
// DIS - disables motor (enable low)
// Throttle #1
// PWM pin
engineConfiguration->etbIo[0].controlPin = Gpio::E7;
// DIR pin
engineConfiguration->etbIo[0].directionPin1 = Gpio::B1;
// Disable pin
engineConfiguration->etbIo[0].disablePin = Gpio::B0;
// Unused
engineConfiguration->etbIo[0].directionPin2 = Gpio::Unassigned;
// Throttle #2
// PWM pin
engineConfiguration->etbIo[1].controlPin = Gpio::Unassigned;
// DIR pin
engineConfiguration->etbIo[1].directionPin1 = Gpio::Unassigned;
// Disable pin
engineConfiguration->etbIo[1].disablePin = Gpio::Unassigned;
// Unused
engineConfiguration->etbIo[1].directionPin2 = Gpio::Unassigned;
// we only have pwm/dir, no dira/dirb
engineConfiguration->etb_use_two_wires = false;
}
void setPinConfigurationOverrides(void) {
//CAN 1 bus overwrites
engineConfiguration->canTxPin = Gpio::D1;
engineConfiguration->canRxPin = Gpio::D0;
//CAN 2 bus overwrites
engineConfiguration->can2RxPin = Gpio::Unassigned;
engineConfiguration->can2TxPin = Gpio::Unassigned;
}
void setSerialConfigurationOverrides(void) {
}
/**
* @brief Board-specific configuration defaults.
*
* See also setDefaultEngineConfiguration
*
* @todo Add your board-specific code, if any.
*/
static void setupVbatt() {
// 5.6k high side/10k low side = 1.56 ratio divider
engineConfiguration->analogInputDividerCoefficient = 1.47f;
// 6.34k high side/1k low side = 9.2
engineConfiguration->vbattDividerCoeff = (6.34f / 1.0f);
// Battery sense on PC4
engineConfiguration->vbattAdcChannel = EFI_ADC_14;
engineConfiguration->adcVcc = 3.3f;
}
static void setupDefaultSensorInputs() {
engineConfiguration->afr.hwChannel = EFI_ADC_6;
setEgoSensor(ES_14Point7_Free);
engineConfiguration->clt.config.bias_resistor = 2490;
engineConfiguration->iat.config.bias_resistor = 2490;
engineConfiguration->baroSensor.hwChannel = EFI_ADC_NONE;
engineConfiguration->lps25BaroSensorScl = Gpio::Unassigned;
engineConfiguration->lps25BaroSensorSda = Gpio::Unassigned;
}
static void setLedPins() {
// PE3 is error LED, configured in board.mk
engineConfiguration->communicationLedPin = Gpio::B8;
engineConfiguration->runningLedPin = Gpio::B7;
engineConfiguration->warningLedPin = Gpio::B6;
}
void setBoardDefaultConfiguration(void) {
setInjectorPins();
setIgnitionPins();
setupVbatt();
setLedPins();
engineConfiguration->sdCardPeriodMs = 50;
engineConfiguration->isSdCardEnabled = true;
engineConfiguration->canWriteEnabled = true;
engineConfiguration->canReadEnabled = true;
engineConfiguration->canSleepPeriodMs = 50;
engineConfiguration->canBaudRate = B500KBPS;
engineConfiguration->can2BaudRate = B500KBPS;
}

View File

@ -0,0 +1,10 @@
@echo off
cd ../../../
gen_config_board.sh coreECU coreECU
pause

View File

@ -0,0 +1,11 @@
@echo off
cd ../../../
make clean -j8 PROJECT_BOARD=coreECU
make -j8 PROJECT_BOARD=coreECU PROJECT_CPU=ARCH_STM32F4
gen_config_board.sh coreECU coreECU
pause

View File

@ -0,0 +1,47 @@
//DO NOT EDIT MANUALLY, let automation work hard.
// auto-generated by PinoutLogic.java based on config\boards\coreECU\connectors\main.yaml
#include "pch.h"
// see comments at declaration in pin_repository.h
const char * getBoardSpecificPinName(brain_pin_e brainPin) {
switch(brainPin) {
case Gpio::A14: return "Camshaft Sensor";
case Gpio::A15: return "Crankshaft Sensor";
case Gpio::A8: return "Injector 8";
case Gpio::B0: return "DBW_DIS";
case Gpio::B1: return "DBW_DIR";
case Gpio::B12: return "Tacho output";
case Gpio::B13: return "Idle valve 1";
case Gpio::B14: return "Low side output 2";
case Gpio::B15: return "Low side output 3";
case Gpio::B9: return "Digital Input 1";
case Gpio::C6: return "Injector 5";
case Gpio::C7: return "Injector 6";
case Gpio::C9: return "Injector 7";
case Gpio::D10: return "Boost controler";
case Gpio::D11: return "Fuel pump output";
case Gpio::D12: return "Injector 1";
case Gpio::D13: return "Injector 2";
case Gpio::D14: return "Injector 3";
case Gpio::D15: return "Injector 4";
case Gpio::D3: return "Spare trigger input";
case Gpio::D4: return "VSS";
case Gpio::D5: return "Digital Input 3";
case Gpio::D6: return "Digital Input 4";
case Gpio::D8: return "Low side output 1";
case Gpio::D9: return "Fan output";
case Gpio::E0: return "Digital Input 2";
case Gpio::E10: return "Ignition 6";
case Gpio::E11: return "Ignition 5";
case Gpio::E12: return "Ignition 4";
case Gpio::E13: return "Ignition 3";
case Gpio::E14: return "Ignition 2";
case Gpio::E15: return "Ignition 1";
case Gpio::E7: return "DBW_PWM";
case Gpio::E8: return "Ignition 8";
case Gpio::E9: return "Ignition 7";
default: return nullptr;
}
return nullptr;
}

View File

@ -0,0 +1,331 @@
pins:
# Low side outputs
- pin: 1
id: D12
class: outputs
function: Low Side Output
type: inj
ts_name: Injector 1
- pin: 2
id: D13
class: outputs
function: Low Side Output
type: inj
ts_name: Injector 2
- pin: 3
id: D14
class: outputs
function: Low Side Output
type: inj
ts_name: Injector 3
- pin: 4
id: D15
class: outputs
function: Low Side Output
type: inj
ts_name: Injector 4
- pin: 5
id: C6
class: outputs
function: Low Side Output
type: inj
ts_name: Injector 5
- pin: 6
id: C7
class: outputs
function: Low Side Output
type: inj
ts_name: Injector 6
- pin: 7
id: C9
class: outputs
function: Low Side Output
type: inj
ts_name: Injector 7
- pin: 8
id: A8
class: outputs
function: Low Side Output
type: inj
ts_name: Injector 8
# Low side
- pin: 9
id: D10
class: outputs
function: Low Side Output
type: ls
ts_name: Boost controler
- pin: 10
id: B13
class: outputs
function: Low Side Output
type: ls
ts_name: Idle valve 1
- pin: 11
id: B12
class: outputs
function: Low Side Output
type: ls
ts_name: Tacho output
- pin: 12
id: D8
class: outputs
function: Low Side Output
type: ls
ts_name: Low side output 1
- pin: 13
id: B14
class: outputs
function: Low Side Output
type: ls
ts_name: Low side output 2
- pin: 14
id: B15
class: outputs
function: Low Side Output
type: ls
ts_name: Low side output 3
- pin: 15
id: D9
class: outputs
function: Low Side Output
type: ls
ts_name: Fan output
- pin: 16
id: D11
class: outputs
function: Low Side Output
type: ls
ts_name: Fuel pump output
- pin: 17
id: E7
class: outputs
function: Low Side Output
type: ls
ts_name: DBW_PWM
- pin: 18
id: B0
class: outputs
function: Low Side Output
type: ls
ts_name: DBW_DIS
- pin: 19
id: B1
class: outputs
function: Low Side Output
type: ls
ts_name: DBW_DIR
# High side
- pin: 20
id: E15
class: outputs
function: High Side Output
type: ign
ts_name: Ignition 1
- pin: 21
id: E14
class: outputs
function: High Side Output
type: ign
ts_name: Ignition 2
- pin: 22
id: E13
class: outputs
function: High Side Output
type: ign
ts_name: Ignition 3
- pin: 23
id: E12
class: outputs
function: High Side Output
type: ign
ts_name: Ignition 4
- pin: 24
id: E11
class: outputs
function: High Side Output
type: ign
ts_name: Ignition 5
- pin: 25
id: E10
class: outputs
function: High Side Output
type: ign
ts_name: Ignition 6
- pin: 26
id: E9
class: outputs
function: High Side Output
type: ign
ts_name: Ignition 7
- pin: 27
id: E8
class: outputs
function: High Side Output
type: ign
ts_name: Ignition 8
# SENSORS
- pin: 28
id: EFI_ADC_14
class: analog_inputs
function: Sensor Input
ts_name: Battery reference voltage
- pin: 29
id: EFI_ADC_0
class: analog_inputs
function: Sensor Input
ts_name: Spare analog input 1
- pin: 30
id: EFI_ADC_1
class: analog_inputs
function: Sensor Input
ts_name: Spare analog input 2
- pin: 31
id: EFI_ADC_10
class: analog_inputs
function: Sensor Input
ts_name: Clt sensor
- pin: 32
id: EFI_ADC_11
class: analog_inputs
function: Sensor Input
ts_name: Iat sensor
- pin: 33
id: EFI_ADC_12
class: analog_inputs
function: Sensor Input
ts_name: Oilpress sensor
- pin: 34
id: EFI_ADC_13
class: analog_inputs
function: Sensor Input
ts_name: Fuelpress sensor
- pin: 35
id: EFI_ADC_4
class: analog_inputs
function: Sensor Input
ts_name: Spare analog input 3
- pin: 36
id: EFI_ADC_5
class: analog_inputs
function: Sensor Input
ts_name: MAP sensor
- pin: 37
id: EFI_ADC_6
class: analog_inputs
function: Sensor Input
ts_name: Build-in wideband sensor
- pin: 38
id: EFI_ADC_7
class: analog_inputs
function: Sensor Input
ts_name: Baro sensor
- pin: 39
id: [A14, A14]
class: [event_inputs, switch_inputs]
function: Camshaft Sensor (VR+/Hall)
type: hall
ts_name: Camshaft Sensor
- pin: 40
id: [A15, A15]
class: [event_inputs, switch_inputs]
function: Crankshaft Sensor (VR+/Hall)
type: hall
ts_name: Crankshaft Sensor
- pin: 41
id: [D4, D4]
class: [event_inputs, switch_inputs]
function: VSS (VR+/Hall)
type: hall
ts_name: VSS
- pin: 42
id: [D3, D3]
class: [event_inputs, switch_inputs]
function: Spare trigger input (VR+/Hall)
type: hall
ts_name: Spare trigger input
- pin: 43
id: EFI_ADC_15
class: analog_inputs
function: Sensor Input
ts_name: TPS sensor
- pin: 44
id: B9
class: switch_inputs
function: Digital Input
type: hall
ts_name: Digital Input 1
- pin: 45
id: E0
class: switch_inputs
function: Digital Input
type: hall
ts_name: Digital Input 2
- pin: 46
id: D5
class: switch_inputs
function: Digital Input
type: hall
ts_name: Digital Input 3
- pin: 47
id: D6
class: switch_inputs
function: Digital Input
type: hall
ts_name: Digital Input 4

View File

@ -0,0 +1,21 @@
/**
* @file knock_config.h
*/
#pragma once
// Knock is on ADC3
#define KNOCK_ADC ADCD3
// knock 1 - pin PA2
#define KNOCK_ADC_CH1 ADC_CHANNEL_IN2
#define KNOCK_PIN_CH1 Gpio::A2
// knock 2 - pin PA3
#define KNOCK_HAS_CH2 true
#define KNOCK_ADC_CH2 ADC_CHANNEL_IN3
#define KNOCK_PIN_CH2 Gpio::A3
// Sample rate & time - depends on the exact MCU
#define KNOCK_SAMPLE_TIME ADC_SAMPLE_84
#define KNOCK_SAMPLE_RATE (STM32_PCLK2 / (4 * (84 + 12)))

View File

@ -0,0 +1,13 @@
#define ts_show_hip9011 false
#define ts_show_cj125 false
#define ts_show_lcd false
#define ts_show_joystick false
#define ts_show_gps false
#define ts_show_software_knock true
#define show_test_presets true
#define show_microRusEFI_presets false
#define show_Frankenso_presets false
#define show_Hellen_presets false
#define show_Proteus_presets false

View File

@ -0,0 +1,4 @@
#define SIGNATURE_DATE 2022.04.24
#define SIGNATURE_BOARD coreECU
// SIGNATURE_HASH is a built-in variable generated by ConfigDefinition.jar
#define TS_SIGNATURE "rusEFI DAY58.coreECU"