/* * This file is part of the hoverboard-firmware-hack project. * * Copyright (C) 2017-2018 Rene Hopf * Copyright (C) 2017-2018 Nico Stute * Copyright (C) 2017-2018 Niklas Fauth * * 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 . */ #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)