Merge pull request #251 from Jfriesen222/master

Added HW Conf for 60D+
This commit is contained in:
Benjamin Vedder 2021-01-11 21:42:30 +01:00 committed by GitHub
commit 47c4342808
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 88 additions and 11 deletions

View File

@ -371,6 +371,25 @@ make -j8 build_args='-DDISABLE_HW_LIMITS -DHW_SOURCE=\"hw_stormcore_60d.c\" -DHW
cd $DIR cd $DIR
cp $FWPATH/build/BLDC_4_ChibiOS.bin $COPYDIR/VESC_default_no_hw_limits.bin cp $FWPATH/build/BLDC_4_ChibiOS.bin $COPYDIR/VESC_default_no_hw_limits.bin
#################### STORMCORE_60D+ ########################
COPYDIR='STORMCORE_60D+'
rm -f $COPYDIR/*
# default
cd $FWPATH
touch conf_general.h
make -j8 build_args='-DHW_SOURCE=\"hw_stormcore_60d.c\" -DHW_HEADER=\"hw_stormcore_60d.h\" -DHW_VER_IS_60D_PLUS' USE_VERBOSE_COMPILE=no
cd $DIR
cp $FWPATH/build/BLDC_4_ChibiOS.bin $COPYDIR/VESC_default.bin
# default with HW limits disabled
cd $FWPATH
touch conf_general.h
make -j8 build_args='-DDISABLE_HW_LIMITS -DHW_SOURCE=\"hw_stormcore_60d.c\" -DHW_HEADER=\"hw_stormcore_60d.h\" -DHW_VER_IS_60D_PLUS' USE_VERBOSE_COMPILE=no
cd $DIR
cp $FWPATH/build/BLDC_4_ChibiOS.bin $COPYDIR/VESC_default_no_hw_limits.bin
#################### STORMCORE_100D ######################## #################### STORMCORE_100D ########################
COPYDIR=STORMCORE_100D COPYDIR=STORMCORE_100D

View File

@ -148,6 +148,7 @@
//#define HW_SOURCE "hw_stormcore_100d.c" //#define HW_SOURCE "hw_stormcore_100d.c"
//#define HW_HEADER "hw_stormcore_100d.h" //#define HW_HEADER "hw_stormcore_100d.h"
//#define HW_VER_IS_60D_PLUS
//#define HW_SOURCE "hw_stormcore_60d.c" //#define HW_SOURCE "hw_stormcore_60d.c"
//#define HW_HEADER "hw_stormcore_60d.h" //#define HW_HEADER "hw_stormcore_60d.h"

View File

@ -61,6 +61,18 @@ void hw_init_gpio(void) {
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOE, ENABLE); RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOE, ENABLE);
#ifdef HW_VER_IS_60D_PLUS
mc_interface_select_motor_thread(2);
palSetPadMode(PHASE_FILTER_GPIO, PHASE_FILTER_PIN,
PAL_MODE_OUTPUT_PUSHPULL |
PAL_STM32_OSPEED_HIGHEST);
PHASE_FILTER_OFF();
mc_interface_select_motor_thread(1);
palSetPadMode(PHASE_FILTER_GPIO, PHASE_FILTER_PIN,
PAL_MODE_OUTPUT_PUSHPULL |
PAL_STM32_OSPEED_HIGHEST);
PHASE_FILTER_OFF();
#endif
// LEDs // LEDs

View File

@ -17,7 +17,11 @@
#ifndef HW_STORMCORE_60D_H_ #ifndef HW_STORMCORE_60D_H_
#define HW_STORMCORE_60D_H_ #define HW_STORMCORE_60D_H_
#ifdef HW_VER_IS_60D_PLUS
#define HW_NAME "STORMCORE_60D+"
#else
#define HW_NAME "STORMCORE_60D" #define HW_NAME "STORMCORE_60D"
#endif
#define HW_HAS_DUAL_MOTORS #define HW_HAS_DUAL_MOTORS
#include "drv8323s.h" #include "drv8323s.h"
@ -27,8 +31,8 @@
#define HW_HAS_3_SHUNTS #define HW_HAS_3_SHUNTS
#define DRV8323S_CUSTOM_SETTINGS(); drv8323s_set_current_amp_gain(CURRENT_AMP_GAIN); \ #define DRV8323S_CUSTOM_SETTINGS(); drv8323s_set_current_amp_gain(CURRENT_AMP_GAIN); \
drv8323s_write_reg(3,0x3af); \ drv8323s_write_reg(3,0x3af); \
drv8323s_write_reg(4,0x7af); drv8323s_write_reg(4,0x7af);
@ -60,26 +64,34 @@
#define SMART_SWITCH_MSECS_PRESSED_OFF 2000 #define SMART_SWITCH_MSECS_PRESSED_OFF 2000
#ifdef HW_VER_IS_60D_PLUS
// Depending on current motor selected for the thread select different phase filter
#define PHASE_FILTER_GPIO (mc_interface_motor_now() == 1 ? GPIOE : GPIOE)
#define PHASE_FILTER_PIN (mc_interface_motor_now() == 1 ? 4 : 1)
#define PHASE_FILTER_ON() palSetPad(PHASE_FILTER_GPIO, PHASE_FILTER_PIN)
#define PHASE_FILTER_OFF() palClearPad(PHASE_FILTER_GPIO, PHASE_FILTER_PIN)
#endif
#define HW_SHUTDOWN_HOLD_ON(); #define HW_SHUTDOWN_HOLD_ON();
#define HW_SAMPLE_SHUTDOWN() 1 #define HW_SAMPLE_SHUTDOWN() 1
#define HW_SHUTDOWN_HOLD_OFF() palClearPad(SWITCH_OUT_GPIO, SWITCH_OUT_PIN); \ #define HW_SHUTDOWN_HOLD_OFF() palClearPad(SWITCH_OUT_GPIO, SWITCH_OUT_PIN); \
palClearPad(SWITCH_PRECHARGED_GPIO, SWITCH_PRECHARGED_PIN); palClearPad(SWITCH_PRECHARGED_GPIO, SWITCH_PRECHARGED_PIN);
#define DCCAL_ON() //drv8323s_dccal_on() #define DCCAL_ON() //drv8323s_dccal_on()
#define DCCAL_OFF() //drv8323s_dccal_off() #define DCCAL_OFF() //drv8323s_dccal_off()
#define HW_EARLY_INIT() smart_switch_pin_init(); \ #define HW_EARLY_INIT() smart_switch_pin_init(); \
smart_switch_thread_start(); smart_switch_thread_start();
//Pins for BLE UART //Pins for BLE UART
//#define USE_ALT_UART_PORT
#define HW_UART_P_BAUD 115200 #define HW_UART_P_BAUD 115200
#define HW_UART_P_DEV SD1 #define HW_UART_P_DEV SD1
#define HW_UART_P_GPIO_AF GPIO_AF_USART1 #define HW_UART_P_GPIO_AF GPIO_AF_USART1
#define HW_UART_P_TX_PORT GPIOA #define HW_UART_P_TX_PORT GPIOA
@ -87,6 +99,18 @@
#define HW_UART_P_RX_PORT GPIOA #define HW_UART_P_RX_PORT GPIOA
#define HW_UART_P_RX_PIN 10 #define HW_UART_P_RX_PIN 10
#ifdef HW_VER_IS_60D_PLUS
//Pins for Third UART
#define HW_UART_3_BAUD 115200
#define HW_UART_3_DEV SD2
#define HW_UART_3_GPIO_AF GPIO_AF_USART2
#define HW_UART_3_TX_PORT GPIOD
#define HW_UART_3_TX_PIN 6
#define HW_UART_3_RX_PORT GPIOD
#define HW_UART_3_RX_PIN 5
#endif
// SPI for DRV8301 // SPI for DRV8301
#define DRV8323S_MOSI_GPIO GPIOC #define DRV8323S_MOSI_GPIO GPIOC
#define DRV8323S_MOSI_PIN 12 #define DRV8323S_MOSI_PIN 12
@ -217,12 +241,23 @@
#ifndef VIN_R2 #ifndef VIN_R2
#define VIN_R2 2200.0 #define VIN_R2 2200.0
#endif #endif
#ifdef HW_VER_IS_60D_PLUS
#ifndef CURRENT_AMP_GAIN #ifndef CURRENT_AMP_GAIN
#define CURRENT_AMP_GAIN 10.0 #define CURRENT_AMP_GAIN 20.0
#endif #endif
#ifndef CURRENT_SHUNT_RES #ifndef CURRENT_SHUNT_RES
#define CURRENT_SHUNT_RES 0.001 #define CURRENT_SHUNT_RES 0.0005
#endif #endif
#else
#ifndef CURRENT_AMP_GAIN
#define CURRENT_AMP_GAIN 10.0
#endif
#ifndef CURRENT_SHUNT_RES
#define CURRENT_SHUNT_RES 0.001
#endif
#endif
// Input voltage // Input voltage
#define GET_INPUT_VOLTAGE() ((V_REG / 4095.0) * (float)ADC_Value[ADC_IND_VIN_SENS] * ((VIN_R1 + VIN_R2) / VIN_R2)) #define GET_INPUT_VOLTAGE() ((V_REG / 4095.0) * (float)ADC_Value[ADC_IND_VIN_SENS] * ((VIN_R1 + VIN_R2) / VIN_R2))
@ -323,10 +358,20 @@
#define NRF_PIN_MISO 10 #define NRF_PIN_MISO 10
// NRF SWD // NRF SWD
#define NRF5x_SWDIO_GPIO GPIOD
#define NRF5x_SWDIO_PIN 6 #ifdef HW_VER_IS_60D_PLUS
#define NRF5x_SWCLK_GPIO GPIOD #define NRF5x_SWDIO_GPIO GPIOD
#define NRF5x_SWCLK_PIN 5 #define NRF5x_SWDIO_PIN 9
#define NRF5x_SWCLK_GPIO GPIOD
#define NRF5x_SWCLK_PIN 8
#else
#define NRF5x_SWDIO_GPIO GPIOD
#define NRF5x_SWDIO_PIN 6
#define NRF5x_SWCLK_GPIO GPIOD
#define NRF5x_SWCLK_PIN 5
#endif
#ifndef MCCONF_DEFAULT_MOTOR_TYPE #ifndef MCCONF_DEFAULT_MOTOR_TYPE
#define MCCONF_DEFAULT_MOTOR_TYPE MOTOR_TYPE_FOC #define MCCONF_DEFAULT_MOTOR_TYPE MOTOR_TYPE_FOC