]> rtime.felk.cvut.cz Git - arc.git/blobdiff - 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
diff --git a/boards/ti_tms570ls/examples/tms570_hdk_can/config/Can_Lcfg.c b/boards/ti_tms570ls/examples/tms570_hdk_can/config/Can_Lcfg.c
new file mode 100644 (file)
index 0000000..10c4846
--- /dev/null
@@ -0,0 +1,126 @@
+/*\r
+* Configuration of module: Can (Can_Lcfg.c)\r
+*\r
+* Created by:\r
+* Copyright:\r
+*\r
+* Configured for (MCU):    TMS570\r
+*\r
+* Module vendor:           ArcCore\r
+* Generator version:       2.0.2\r
+*\r
+* Generated by Arctic Studio (http://arccore.com)\r
+*/\r
+\r
+\r
+#include <stdlib.h>\r
+#include "Can.h"\r
+#include "CanIf_Cbk.h"\r
+\r
+\r
+//Can_FilterMaskType Can_FilterMaskConfigData_Controller_1_FilterMask = 0x0;\r
+Can_FilterMaskType Can_FilterMaskConfigData_Controller_1_FilterMask = 0x400007FF;\r
+// Can_FilterMaskType Can_FilterMaskConfigData_FULLMask = 0x1FFFFFFF;\r
+\r
+const Can_HardwareObjectType CanHardwareObjectConfig_Controller_1[] = {\r
+       {\r
+               .CanObjectId =          TxHwObject,\r
+               .CanHandleType =        CAN_ARC_HANDLE_TYPE_BASIC,\r
+               .CanIdType =            CAN_ID_TYPE_STANDARD,\r
+               .CanObjectType =        CAN_OBJECT_TYPE_TRANSMIT,\r
+               .CanFilterMaskRef =     &Can_FilterMaskConfigData_Controller_1_FilterMask,\r
+\r
+               .Can_Arc_MbMask =       0x2,\r
+               .Can_Arc_EOL =          1,\r
+       },\r
+       {\r
+               .CanObjectId =          RxHwObject,\r
+               .CanHandleType =        CAN_ARC_HANDLE_TYPE_BASIC,\r
+               .CanIdType =            CAN_ID_TYPE_STANDARD,\r
+               .CanObjectType =        CAN_OBJECT_TYPE_RECEIVE,\r
+               .CanFilterMaskRef =     &Can_FilterMaskConfigData_Controller_1_FilterMask,\r
+\r
+               .Can_Arc_MbMask =       0x1,\r
+               .Can_Arc_EOL =          0,\r
+       }\r
+};\r
+\r
+const Can_HardwareObjectType CanHardwareObjectConfig_Controller_2[] = {\r
+       {\r
+               .CanObjectId =          TxHwObject,\r
+               .CanHandleType =        CAN_ARC_HANDLE_TYPE_BASIC,\r
+               .CanIdType =            CAN_ID_TYPE_STANDARD,\r
+               .CanObjectType =        CAN_OBJECT_TYPE_TRANSMIT,\r
+               .CanFilterMaskRef =     &Can_FilterMaskConfigData_Controller_1_FilterMask,\r
+\r
+               .Can_Arc_MbMask =       0x2,\r
+               .Can_Arc_EOL =          1,\r
+       },\r
+       {\r
+               .CanObjectId =          RxHwObject,\r
+               .CanHandleType =        CAN_ARC_HANDLE_TYPE_BASIC,\r
+               .CanIdType =            CAN_ID_TYPE_STANDARD,\r
+               .CanObjectType =        CAN_OBJECT_TYPE_RECEIVE,\r
+               .CanFilterMaskRef =     &Can_FilterMaskConfigData_Controller_1_FilterMask,\r
+\r
+               .Can_Arc_MbMask =       0x1,\r
+               .Can_Arc_EOL =          0,\r
+       }\r
+};\r
+\r
+const Can_ControllerConfigType CanControllerConfigData[] =\r
+{\r
+  {\r
+    .CanControllerActivation = TRUE,\r
+    .CanControllerBaudRate =   500,\r
+    .CanControllerId =                 DCAN1,\r
+    .CanControllerPropSeg =            5,              // for calculation see  TMS570LS31x tech.ref.manual pg.1169\r
+    .CanControllerSeg1 =               3,\r
+    .CanControllerSeg2 =               3,\r
+    .CanBusOffProcessing =             CAN_ARC_PROCESS_TYPE_INTERRUPT,\r
+    .CanRxProcessing =                 CAN_ARC_PROCESS_TYPE_INTERRUPT,\r
+    .CanTxProcessing =                 CAN_ARC_PROCESS_TYPE_INTERRUPT,\r
+    .CanWakeupProcessing =             CAN_ARC_PROCESS_TYPE_INTERRUPT,\r
+    .CanCpuClockRef =                  PERIPHERAL_CLOCK_DCAN1,\r
+    .Can_Arc_Hoh =                             &CanHardwareObjectConfig_Controller_1[0],\r
+    .Can_Arc_Loopback =                        FALSE,\r
+    .Can_Arc_Fifo =                            0,\r
+  },\r
+  {\r
+    .CanControllerActivation = TRUE,\r
+    .CanControllerBaudRate =   500,\r
+    .CanControllerId =                 DCAN2,\r
+    .CanControllerPropSeg =            5,\r
+    .CanControllerSeg1 =               3,\r
+    .CanControllerSeg2 =               3,\r
+    .CanBusOffProcessing =             CAN_ARC_PROCESS_TYPE_INTERRUPT,\r
+    .CanRxProcessing =                 CAN_ARC_PROCESS_TYPE_INTERRUPT,\r
+    .CanTxProcessing =                 CAN_ARC_PROCESS_TYPE_INTERRUPT,\r
+    .CanWakeupProcessing =             CAN_ARC_PROCESS_TYPE_INTERRUPT,\r
+    .CanCpuClockRef =                  PERIPHERAL_CLOCK_DCAN2,\r
+    .Can_Arc_Hoh =                             &CanHardwareObjectConfig_Controller_2[1],\r
+    .Can_Arc_Loopback =                        FALSE,\r
+    .Can_Arc_Fifo =                            0,\r
+  }\r
+};\r
+\r
+const Can_CallbackType CanCallbackConfigData = {\r
+    NULL, //CanIf_CancelTxConfirmation,\r
+    CanIf_RxIndication,\r
+    CanIf_ControllerBusOff,\r
+    CanIf_TxConfirmation,\r
+    NULL, //CanIf_ControllerWakeup,\r
+    CanIf_Arc_Error,\r
+};\r
+\r
+const Can_ConfigSetType CanConfigSetData =\r
+{\r
+  .CanController =     CanControllerConfigData,\r
+  .CanCallbacks =      &CanCallbackConfigData,\r
+};\r
+\r
+const Can_ConfigType CanConfigData = {\r
+  .CanConfigSet =      &CanConfigSetData,\r
+};\r
+\r
+// TODO: defines mailboxes?? (example MPC551x)\r