214 lines
5.9 KiB
C
214 lines
5.9 KiB
C
/*
|
|
* This file is part of the hoverboard-firmware-hack project.
|
|
*
|
|
* Copyright (C) 2017-2018 Rene Hopf <renehopf@mac.com>
|
|
* Copyright (C) 2017-2018 Nico Stute <crinq@crinq.de>
|
|
* Copyright (C) 2017-2018 Niklas Fauth <niklas.fauth@kit.fail>
|
|
*
|
|
* This program is free software: you can redistribute it and/or modify
|
|
* it under the terms of the GNU General Public License as published by
|
|
* the Free Software Foundation, either version 3 of the License, or
|
|
* (at your option) any later version.
|
|
*
|
|
* This program is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU General Public License
|
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
*/
|
|
|
|
#pragma once
|
|
#include "stm32f1xx_hal.h"
|
|
|
|
#ifdef PETERS_PLATINE
|
|
|
|
#ifdef LEFT_HALL_CAB
|
|
#define LEFT_HALL_U_PIN GPIO_PIN_11
|
|
#define LEFT_HALL_V_PIN GPIO_PIN_12
|
|
#define LEFT_HALL_W_PIN GPIO_PIN_10
|
|
#elif LEFT_HALL_CBA
|
|
#define LEFT_HALL_U_PIN GPIO_PIN_11
|
|
#define LEFT_HALL_V_PIN GPIO_PIN_10
|
|
#define LEFT_HALL_W_PIN GPIO_PIN_12
|
|
#elif LEFT_HALL_BAC
|
|
#define LEFT_HALL_U_PIN GPIO_PIN_10
|
|
#define LEFT_HALL_V_PIN GPIO_PIN_12
|
|
#define LEFT_HALL_W_PIN GPIO_PIN_11
|
|
#elif LEFT_HALL_BCA
|
|
#define LEFT_HALL_U_PIN GPIO_PIN_10
|
|
#define LEFT_HALL_V_PIN GPIO_PIN_11
|
|
#define LEFT_HALL_W_PIN GPIO_PIN_12
|
|
#elif LEFT_HALL_ABC
|
|
#define LEFT_HALL_U_PIN GPIO_PIN_12
|
|
#define LEFT_HALL_V_PIN GPIO_PIN_10
|
|
#define LEFT_HALL_W_PIN GPIO_PIN_11
|
|
#else //LEFT_HALL_ACB
|
|
#ifndef LEFT_HALL_ACB
|
|
#warning "No left Hall configuration defined, using default ACB"
|
|
#endif
|
|
#define LEFT_HALL_U_PIN GPIO_PIN_12
|
|
#define LEFT_HALL_V_PIN GPIO_PIN_11
|
|
#define LEFT_HALL_W_PIN GPIO_PIN_10
|
|
#endif
|
|
|
|
#define LEFT_HALL_U_PORT GPIOC
|
|
#define LEFT_HALL_V_PORT GPIOC
|
|
#define LEFT_HALL_W_PORT GPIOC
|
|
|
|
#ifdef RIGHT_HALL_CAB
|
|
#define RIGHT_HALL_U_PIN GPIO_PIN_6
|
|
#define RIGHT_HALL_V_PIN GPIO_PIN_5
|
|
#define RIGHT_HALL_W_PIN GPIO_PIN_7
|
|
#elif RIGHT_HALL_CBA
|
|
#define RIGHT_HALL_U_PIN GPIO_PIN_6
|
|
#define RIGHT_HALL_V_PIN GPIO_PIN_7
|
|
#define RIGHT_HALL_W_PIN GPIO_PIN_5
|
|
#elif RIGHT_HALL_BAC
|
|
#define RIGHT_HALL_U_PIN GPIO_PIN_7
|
|
#define RIGHT_HALL_V_PIN GPIO_PIN_5
|
|
#define RIGHT_HALL_W_PIN GPIO_PIN_6
|
|
#elif RIGHT_HALL_BCA
|
|
#define RIGHT_HALL_U_PIN GPIO_PIN_7
|
|
#define RIGHT_HALL_V_PIN GPIO_PIN_6
|
|
#define RIGHT_HALL_W_PIN GPIO_PIN_5
|
|
#elif RIGHT_HALL_ABC
|
|
#define RIGHT_HALL_U_PIN GPIO_PIN_5
|
|
#define RIGHT_HALL_V_PIN GPIO_PIN_7
|
|
#define RIGHT_HALL_W_PIN GPIO_PIN_6
|
|
#else //RIGHT_HALL_ACB
|
|
#ifndef RIGHT_HALL_ACB
|
|
#warning "No right Hall configuration defined, using default ACB"
|
|
#endif
|
|
#define RIGHT_HALL_U_PIN GPIO_PIN_5
|
|
#define RIGHT_HALL_V_PIN GPIO_PIN_6
|
|
#define RIGHT_HALL_W_PIN GPIO_PIN_7
|
|
#endif
|
|
|
|
#define RIGHT_HALL_U_PORT GPIOB
|
|
#define RIGHT_HALL_V_PORT GPIOB
|
|
#define RIGHT_HALL_W_PORT GPIOB
|
|
#else // defined(PETERS_PLATINE)
|
|
#ifdef HALL_BCA
|
|
#define LEFT_HALL_U_PIN GPIO_PIN_7
|
|
#define LEFT_HALL_V_PIN GPIO_PIN_6
|
|
#define LEFT_HALL_W_PIN GPIO_PIN_5
|
|
#else
|
|
#define LEFT_HALL_U_PIN GPIO_PIN_5
|
|
#define LEFT_HALL_V_PIN GPIO_PIN_6
|
|
#define LEFT_HALL_W_PIN GPIO_PIN_7
|
|
#endif
|
|
|
|
#define LEFT_HALL_U_PORT GPIOB
|
|
#define LEFT_HALL_V_PORT GPIOB
|
|
#define LEFT_HALL_W_PORT GPIOB
|
|
|
|
#ifdef HALL_BCA
|
|
#define RIGHT_HALL_U_PIN GPIO_PIN_12
|
|
#define RIGHT_HALL_V_PIN GPIO_PIN_11
|
|
#define RIGHT_HALL_W_PIN GPIO_PIN_10
|
|
#else
|
|
#define RIGHT_HALL_U_PIN GPIO_PIN_10
|
|
#define RIGHT_HALL_V_PIN GPIO_PIN_11
|
|
#define RIGHT_HALL_W_PIN GPIO_PIN_12
|
|
#endif
|
|
|
|
#define RIGHT_HALL_U_PORT GPIOC
|
|
#define RIGHT_HALL_V_PORT GPIOC
|
|
#define RIGHT_HALL_W_PORT GPIOC
|
|
#endif
|
|
|
|
|
|
|
|
#define LEFT_TIM TIM8
|
|
#define LEFT_TIM_U CCR1
|
|
#define LEFT_TIM_UH_PIN GPIO_PIN_6
|
|
#define LEFT_TIM_UH_PORT GPIOC
|
|
#define LEFT_TIM_UL_PIN GPIO_PIN_7
|
|
#define LEFT_TIM_UL_PORT GPIOA
|
|
|
|
#define LEFT_TIM_V CCR2
|
|
#define LEFT_TIM_VH_PIN GPIO_PIN_7
|
|
#define LEFT_TIM_VL_PIN GPIO_PIN_0
|
|
#define LEFT_TIM_VH_PORT GPIOC
|
|
#define LEFT_TIM_VL_PORT GPIOB
|
|
|
|
#define LEFT_TIM_W CCR3
|
|
#define LEFT_TIM_WH_PIN GPIO_PIN_8
|
|
#define LEFT_TIM_WH_PORT GPIOC
|
|
#define LEFT_TIM_WL_PIN GPIO_PIN_1
|
|
#define LEFT_TIM_WL_PORT GPIOB
|
|
|
|
#define RIGHT_TIM TIM1
|
|
#define RIGHT_TIM_U CCR1
|
|
#define RIGHT_TIM_UH_PIN GPIO_PIN_8
|
|
#define RIGHT_TIM_UH_PORT GPIOA
|
|
#define RIGHT_TIM_UL_PIN GPIO_PIN_13
|
|
#define RIGHT_TIM_UL_PORT GPIOB
|
|
#define RIGHT_TIM_V CCR2
|
|
#define RIGHT_TIM_VH_PIN GPIO_PIN_9
|
|
#define RIGHT_TIM_VH_PORT GPIOA
|
|
#define RIGHT_TIM_VL_PIN GPIO_PIN_14
|
|
#define RIGHT_TIM_VL_PORT GPIOB
|
|
#define RIGHT_TIM_W CCR3
|
|
#define RIGHT_TIM_WH_PIN GPIO_PIN_10
|
|
#define RIGHT_TIM_WH_PORT GPIOA
|
|
#define RIGHT_TIM_WL_PIN GPIO_PIN_15
|
|
#define RIGHT_TIM_WL_PORT GPIOB
|
|
|
|
// #define LEFT_DC_CUR_ADC ADC1
|
|
// #define LEFT_U_CUR_ADC ADC1
|
|
// #define LEFT_V_CUR_ADC ADC1
|
|
|
|
#define LEFT_DC_CUR_PIN GPIO_PIN_0
|
|
#define LEFT_U_CUR_PIN GPIO_PIN_0
|
|
#define LEFT_V_CUR_PIN GPIO_PIN_3
|
|
|
|
#define LEFT_DC_CUR_PORT GPIOC
|
|
#define LEFT_U_CUR_PORT GPIOA
|
|
#define LEFT_V_CUR_PORT GPIOC
|
|
|
|
// #define RIGHT_DC_CUR_ADC ADC2
|
|
// #define RIGHT_U_CUR_ADC ADC2
|
|
// #define RIGHT_V_CUR_ADC ADC2
|
|
|
|
#define RIGHT_DC_CUR_PIN GPIO_PIN_1
|
|
#define RIGHT_U_CUR_PIN GPIO_PIN_4
|
|
#define RIGHT_V_CUR_PIN GPIO_PIN_5
|
|
|
|
#define RIGHT_DC_CUR_PORT GPIOC
|
|
#define RIGHT_U_CUR_PORT GPIOC
|
|
#define RIGHT_V_CUR_PORT GPIOC
|
|
|
|
// #define DCLINK_ADC ADC3
|
|
// #define DCLINK_CHANNEL
|
|
#define DCLINK_PIN GPIO_PIN_2
|
|
#define DCLINK_PORT GPIOC
|
|
// #define DCLINK_PULLUP 30000
|
|
// #define DCLINK_PULLDOWN 1000
|
|
|
|
#define LED_PIN GPIO_PIN_2
|
|
#define LED_PORT GPIOB
|
|
|
|
#define BUZZER_PIN GPIO_PIN_4
|
|
#define BUZZER_PORT GPIOA
|
|
|
|
#define SWITCH_PIN GPIO_PIN_1
|
|
#define SWITCH_PORT GPIOA
|
|
|
|
#define OFF_PIN GPIO_PIN_5
|
|
#define OFF_PORT GPIOA
|
|
|
|
#define BUTTON_PIN GPIO_PIN_1
|
|
#define BUTTON_PORT GPIOA
|
|
|
|
#define CHARGER_PIN GPIO_PIN_12
|
|
#define CHARGER_PORT GPIOA
|
|
|
|
#define DELAY_TIM_FREQUENCY_US 1000000
|
|
|
|
#define MILLI_R (R * 1000)
|
|
#define MILLI_PSI (PSI * 1000)
|
|
#define MILLI_V (V * 1000)
|