]> rtime.felk.cvut.cz Git - arc.git/blob - boards/ti_tms570ls/examples/tms570_hdk_can/config/Can_Lcfg.c
Added example of CAN communication for the TMS570LS31x HDK
[arc.git] / boards / ti_tms570ls / examples / tms570_hdk_can / config / Can_Lcfg.c
1 /*\r
2 * Configuration of module: Can (Can_Lcfg.c)\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 #include <stdlib.h>\r
17 #include "Can.h"\r
18 #include "CanIf_Cbk.h"\r
19 \r
20 \r
21 //Can_FilterMaskType Can_FilterMaskConfigData_Controller_1_FilterMask = 0x0;\r
22 Can_FilterMaskType Can_FilterMaskConfigData_Controller_1_FilterMask = 0x400007FF;\r
23 // Can_FilterMaskType Can_FilterMaskConfigData_FULLMask = 0x1FFFFFFF;\r
24 \r
25 const Can_HardwareObjectType CanHardwareObjectConfig_Controller_1[] = {\r
26         {\r
27                 .CanObjectId =          TxHwObject,\r
28                 .CanHandleType =        CAN_ARC_HANDLE_TYPE_BASIC,\r
29                 .CanIdType =            CAN_ID_TYPE_STANDARD,\r
30                 .CanObjectType =        CAN_OBJECT_TYPE_TRANSMIT,\r
31                 .CanFilterMaskRef =     &Can_FilterMaskConfigData_Controller_1_FilterMask,\r
32 \r
33                 .Can_Arc_MbMask =       0x2,\r
34                 .Can_Arc_EOL =          1,\r
35         },\r
36         {\r
37                 .CanObjectId =          RxHwObject,\r
38                 .CanHandleType =        CAN_ARC_HANDLE_TYPE_BASIC,\r
39                 .CanIdType =            CAN_ID_TYPE_STANDARD,\r
40                 .CanObjectType =        CAN_OBJECT_TYPE_RECEIVE,\r
41                 .CanFilterMaskRef =     &Can_FilterMaskConfigData_Controller_1_FilterMask,\r
42 \r
43                 .Can_Arc_MbMask =       0x1,\r
44                 .Can_Arc_EOL =          0,\r
45         }\r
46 };\r
47 \r
48 const Can_HardwareObjectType CanHardwareObjectConfig_Controller_2[] = {\r
49         {\r
50                 .CanObjectId =          TxHwObject,\r
51                 .CanHandleType =        CAN_ARC_HANDLE_TYPE_BASIC,\r
52                 .CanIdType =            CAN_ID_TYPE_STANDARD,\r
53                 .CanObjectType =        CAN_OBJECT_TYPE_TRANSMIT,\r
54                 .CanFilterMaskRef =     &Can_FilterMaskConfigData_Controller_1_FilterMask,\r
55 \r
56                 .Can_Arc_MbMask =       0x2,\r
57                 .Can_Arc_EOL =          1,\r
58         },\r
59         {\r
60                 .CanObjectId =          RxHwObject,\r
61                 .CanHandleType =        CAN_ARC_HANDLE_TYPE_BASIC,\r
62                 .CanIdType =            CAN_ID_TYPE_STANDARD,\r
63                 .CanObjectType =        CAN_OBJECT_TYPE_RECEIVE,\r
64                 .CanFilterMaskRef =     &Can_FilterMaskConfigData_Controller_1_FilterMask,\r
65 \r
66                 .Can_Arc_MbMask =       0x1,\r
67                 .Can_Arc_EOL =          0,\r
68         }\r
69 };\r
70 \r
71 const Can_ControllerConfigType CanControllerConfigData[] =\r
72 {\r
73   {\r
74     .CanControllerActivation =  TRUE,\r
75     .CanControllerBaudRate =    500,\r
76     .CanControllerId =                  DCAN1,\r
77     .CanControllerPropSeg =             5,              // for calculation see  TMS570LS31x tech.ref.manual pg.1169\r
78     .CanControllerSeg1 =                3,\r
79     .CanControllerSeg2 =                3,\r
80     .CanBusOffProcessing =              CAN_ARC_PROCESS_TYPE_INTERRUPT,\r
81     .CanRxProcessing =                  CAN_ARC_PROCESS_TYPE_INTERRUPT,\r
82     .CanTxProcessing =                  CAN_ARC_PROCESS_TYPE_INTERRUPT,\r
83     .CanWakeupProcessing =              CAN_ARC_PROCESS_TYPE_INTERRUPT,\r
84     .CanCpuClockRef =                   PERIPHERAL_CLOCK_DCAN1,\r
85     .Can_Arc_Hoh =                              &CanHardwareObjectConfig_Controller_1[0],\r
86     .Can_Arc_Loopback =                 FALSE,\r
87     .Can_Arc_Fifo =                             0,\r
88   },\r
89   {\r
90     .CanControllerActivation =  TRUE,\r
91     .CanControllerBaudRate =    500,\r
92     .CanControllerId =                  DCAN2,\r
93     .CanControllerPropSeg =             5,\r
94     .CanControllerSeg1 =                3,\r
95     .CanControllerSeg2 =                3,\r
96     .CanBusOffProcessing =              CAN_ARC_PROCESS_TYPE_INTERRUPT,\r
97     .CanRxProcessing =                  CAN_ARC_PROCESS_TYPE_INTERRUPT,\r
98     .CanTxProcessing =                  CAN_ARC_PROCESS_TYPE_INTERRUPT,\r
99     .CanWakeupProcessing =              CAN_ARC_PROCESS_TYPE_INTERRUPT,\r
100     .CanCpuClockRef =                   PERIPHERAL_CLOCK_DCAN2,\r
101     .Can_Arc_Hoh =                              &CanHardwareObjectConfig_Controller_2[1],\r
102     .Can_Arc_Loopback =                 FALSE,\r
103     .Can_Arc_Fifo =                             0,\r
104   }\r
105 };\r
106 \r
107 const Can_CallbackType CanCallbackConfigData = {\r
108     NULL, //CanIf_CancelTxConfirmation,\r
109     CanIf_RxIndication,\r
110     CanIf_ControllerBusOff,\r
111     CanIf_TxConfirmation,\r
112     NULL, //CanIf_ControllerWakeup,\r
113     CanIf_Arc_Error,\r
114 };\r
115 \r
116 const Can_ConfigSetType CanConfigSetData =\r
117 {\r
118   .CanController =      CanControllerConfigData,\r
119   .CanCallbacks =       &CanCallbackConfigData,\r
120 };\r
121 \r
122 const Can_ConfigType CanConfigData = {\r
123   .CanConfigSet =       &CanConfigSetData,\r
124 };\r
125 \r
126 // TODO: defines mailboxes?? (example MPC551x)\r