]> rtime.felk.cvut.cz Git - arc.git/blob - boards/ti_tms570ls/examples/tms570_hdk_can/config/Port_Cfg.h
Added an example of CAN communication for the TMS570LS31x HDK
[arc.git] / boards / ti_tms570ls / examples / tms570_hdk_can / config / Port_Cfg.h
1 /*\r
2 * Configuration of module: Port (Port_Cfg.h)\r
3 *\r
4 * Created by:              \r
5 * Copyright:               \r
6 *\r
7 * Configured for (MCU):    TMS570\r
8 *\r
9 * Module vendor:           ArcCore\r
10 * Generator version:       2.0.2\r
11 *\r
12 * Generated by Arctic Studio (http://arccore.com) \r
13 */\r
14 \r
15 \r
16 #if !(((PORT_SW_MAJOR_VERSION == 1) && (PORT_SW_MINOR_VERSION == 0)) )\r
17 #error Port: Configuration file expected BSW module version to be 1.0.*\r
18 #endif\r
19 \r
20 \r
21 #ifndef PORT_CFG_H_\r
22 #define PORT_CFG_H_\r
23 \r
24 #include "Std_Types.h"\r
25 \r
26 // TODO - check if should change to STD_ON\r
27 /** Build version info API */\r
28 #define PORT_VERSION_INFO_API                           STD_ON\r
29 /** Enable Development Error Trace */\r
30 #define PORT_DEV_ERROR_DETECT                           STD_OFF\r
31 /** Build change pin direction API */\r
32 #define PORT_SET_PIN_DIRECTION_API              STD_ON\r
33 /** Allow Pin mode changes during runtime */\r
34 #define PORT_SET_PIN_MODE_API               STD_ON\r
35 \r
36 #define PORT_NUMBER_OF_PINS     3\r
37 \r
38 #define PORT_FUNC_NO    (0 << 1)\r
39 #define PORT_FUNC               (1 << 1)\r
40 #define PORT_PULL_NONE  (1 << 2)\r
41 #define PORT_PULL_UP    (1 << 3)\r
42 #define PORT_PULL_DOWN  (0 << 3)\r
43 #define PORT_ODE_ENABLE (1 << 4)\r
44 #define PORT_DIRECTION_CHANGEABLE (1 << 5)\r
45 \r
46 /** pins on the base PINMUX0 */\r
47 /* TODO: add all remaining bases */\r
48 \r
49 /* see TMS570LS31x Tech. Ref. Manual - 4.6. Signal Multiplexing and Control (pg. 240 - 243) */\r
50 // TODO: change\r
51 typedef enum\r
52 {\r
53         PINMUX_BALL_W10_SHIFT =  0,             // GIOB[3] - default function\r
54         PINMUX_BALL_A5_SHIFT  =  8,             // GIOA[0] - default function\r
55         PINMUX_BALL_C3_SHIFT  =  16,    // MIBSPI3NCS[3] - default function\r
56         PINMUX_BALL_B2_SHIFT  =  24,    // MIBSPI3NCS[2] - deafult function\r
57 } PinMux_Ball;\r
58 \r
59 typedef enum\r
60 {\r
61         PINMUX_BALL_DEFAULT             =  0x1,\r
62         PINMUX_BALL_ALTERNATE1  =  0x2,\r
63         PINMUX_BALL_ALTERNATE2  =  0x4,\r
64         PINMUX_BALL_ALTERNATE3  =  0x8,\r
65         PINMUX_BALL_ALTERNATE4  =  0x10\r
66 }       PinMux_FunctionNumber;\r
67 \r
68 \r
69 /** HW specific symbolic names of pins */\r
70 /** @req PORT013, PORT076 */\r
71 /** @req PORT219: Port_PinType shall be uint8, uint16 or uint32 */\r
72 typedef enum\r
73 {       // TODO: check if correct\r
74         PORT_PIN_DCAN1_TX = 0x0800,\r
75         PORT_PIN_DCAN1_RX = 0x0801,\r
76         PORT_PIN_LED1 = 0x021b,\r
77 } Port_PinType;\r
78 \r
79 /** Port pad mappings */\r
80 #define PORT_PAD_106    0x0800 // PORT_PIN_DCAN1_TX\r
81 #define PORT_PAD_107    0x0801 // PORT_PIN_DCAN1_RX\r
82 #define PORT_PAD_3              0x0003 // PORT_PIN_LED1\r
83 \r
84 typedef struct {\r
85         Port_PinType pin;\r
86         uint8 conf;\r
87         PinMux_Ball pinmux;\r
88         PinMux_FunctionNumber pinmuxFunctionNum;\r
89         uint16 pinmuxBaseNum;\r
90 \r
91 } Port_ConfiguredPinType;\r
92 \r
93 /** Top level configuration container */\r
94 /** @req PORT073 */\r
95 typedef struct\r
96 {\r
97   const Port_ConfiguredPinType pins[PORT_NUMBER_OF_PINS];\r
98 } Port_ConfigType;\r
99 \r
100 /** Instance of the top level configuration container */\r
101 extern const Port_ConfigType PortConfigData;\r
102 \r
103 \r
104 #endif /*PORT_CFG_H_*/\r