/******************************************************************************* * * * Copyright 2010 Rheinmetall Canada Inc. * * * * No part of this document may be reproduced, stored in * * a retrieval system, or transmitted, in any form or by any means, * * electronic, mechanical, photocopying, recording, or otherwise, * * without the prior written permission of Rheinmetall Canada Inc. * * * *******************************************************************************/ /* ¤Revision: 000 20100616 HCAM, Original version. ,----.. ,----.. / / \ / / \ ,--, | : : __ ,-. ,---. | : : ,--.'| ,---, . | ;. / ,' ,'/ /| ' ,'\ .--.--. . | ;. / | |, ,-+-. / | . ; /--` ' | |' | / / | / / ' . ; /--` `--'_ ,--.'|' | ; | ; __ | | ,'. ; ,. :| : /`./ ; | ; __ ,' ,'| | | ,"' | | : |.' .'' : / ' | |: :| : ;_ | : |.' .'' | | | | / | | . | '_.' :| | ' ' | .; : \ \ `. . | '_.' :| | : | | | | | ' ; : \ |; : | | : | `----. \ ' ; : \ |' : |__ | | | |/ ' | '/ .'| , ; \ \ / / /`--' / ' | '/ .'| | '.'|| | |--' | : / ---' `----' '--'. / | : / ; : ;| |/ \ \ .' `--'---' \ \ .' | , / '---' `---` `---` ---`-' ### YYYYMMDD Initial, Bug Identification Change description. */ /****************************** NOTES *************************************** -> Timers assignment <- - Timer1 used by general timer module (timer.c) - Timer2 used by time based Resolver data acquisition module (resolver.c) - timer3 used by input capture to detect PWM - timer4 used by hall acquisition module (HallAcquisition.c) - timer5 used by FPGAInterface to time-base SPI the transfer to the FPGA -> Interrupt priority assignment <- Priority.SubPriority - Assignment HIGHEST 7.3 7.2 7.1 - UART1 7.0 - UART2 6.3 - TIMER2 (Resolver acquisition & halls computation) 6.2 - PMP 6.1 6.0 - Input Capture 5.3 - ADC 5.2 - SPI 5.1 5.0 4.3 - Drive Enable pin interrupt 4.2 - AD2S DOS Pin 4.1 - AD2S LOT Pin 4.0 3.3 3.2 3.1 3.0 - TIMER5 (FPGA TX) 2.3 - TIMER1 (General purpose timer) 2.2 - TIMER3 (PWM Detection) 2.1 1.0 1.3 1.2 1.1 1.0 LOWEST *****************************************************************************/ #ifndef DEFINE_H #define DEFINE_H /* ************************************************************************** */ /* Includes */ #include //#include "CUHelperFcns.h" /* ************************************************************************** */ /* Defines */ #define SYS_FREQ (77824000L) //Clock period = 12.85 ns #define PERIPHERAL_FREQ (77824000L) #define PIN_INPUT 1 #define PIN_OUTPUT 0 #define LED_ON 0 #define LED_OFF 1 #define false 0 #define true 1 #define MSB8(x) ((x >> 8) & 0xFF) #define LSB8(x) (x & 0xFF) #define PI 3.1415926536 //#define ENABLE_DEBUG_LOG #ifdef ENABLE_DEBUG_LOG #include "util.h" #endif //#define USE_HALL_ACQ_SIMULATOR //Use this switch for development to test hall acquisition traces #define USE_ENGINEERING_MODE //Use this switch to disable speed, position and halls traces and traces buffer allocation (all traces !) //#define USE_TRACE_SIMULATOR //Use this switch to simulate trace data for development //#define USE_SPI_DONGLE_SIMULATOR //Use this switch if you use the CUMUX as a SPI dongle instead of the CS16IS74 dongle. //#define USE_PMP_AUTOINCREMENT //Use to speed-up AD2S data transfer #define USE_PWM_DETECTION //Use PWM detection to enable/disable bridge #define USE_AUTO_BRIDGE_CONTROL //Execute drive bridge control //#define FORCE_BRIDGE_ON //#define DRIVE_BOARD_NOT_INSTALLED #define DISABLE_PRINT_FAULT #define SPI_FAST //#define USE_DMA_WITH_PMP //#define USE_RESOLVER_STATEMACHINE //#define DISABLE_DRIVE_PARAM_MGMT // uncomment to avoid setting the drive at power-up #define POLL_UART1_RX #define POLL_UART2_RX // Uncomment next #define for testing with ICCA board // #define USE_ICCA_CU_PA_UART_SNOOPING //Define the com port assignations //---------------------------- #define DRIVE_UART_PORT UART_1 #ifdef USE_ICCA_CU_PA_UART_SNOOPING // Note: With this configuration there is no CU command going to the PA #define CU_UART_PORT UART_3 #define CONSOLE_UART_PORT UART_2 #else // Normal setting using PA SPI for UART_3 (CONSOLE_UART_PORT) #define CU_UART_PORT UART_2 #define CONSOLE_UART_PORT UART_3 #endif #define ACTUATOR_WITTENSTEIN //#define ACTUATOR_DS50 // //---------------------------- //#define USE_BLOCKING_PRINTF #define USE_PRINTF #ifdef USE_PRINTF #define PRINTF(n, a...) printf(n, ## a) #else #define PRINTF(n, a...) #define NO_EXTERNAL_UART #endif /* ************************************************************************** */ /* Type definitions */ typedef int bool; #endif //EOF