BMS_CAN2_Mail_Box.c 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172
  1. ///##############################################################################
  2. //
  3. // FILE: BMS_CAN2_Mail_Box.c
  4. //
  5. // TITLE: CAN 2
  6. // - Module Configuration
  7. // - Mailbox Definition
  8. // - Mailbox Load
  9. // uint16_t CAN2_init ( void )
  10. // - Mailbox Check
  11. // uint16_t CAN2_update ( void )
  12. //
  13. //
  14. //##############################################################################
  15. //
  16. //==============================================================================
  17. // Change History:
  18. //==============================================================================
  19. // Datum: | Name | Version:| Change / Cause: | No
  20. //------------------------------------------------------------------------------
  21. // | | | | 002
  22. //------------------------------------------------------------------------------
  23. // | | | | 001
  24. //------------------------------------------------------------------------------
  25. // 31.07.13 | VR | 1.0 | New Build | 000
  26. //==============================================================================
  27. //==============================================================================
  28. // Comment Change / Cause:
  29. //==============================================================================
  30. // Change: 003 // 003
  31. //----------------------
  32. //
  33. //
  34. //==============================================================================
  35. // Change: 002 // 002
  36. //----------------------
  37. //
  38. //
  39. //==============================================================================
  40. // Change: 001 // 001
  41. //----------------------
  42. //
  43. //
  44. //==============================================================================
  45. #include "BMS_Master.h"
  46. // ****** Config CAN Modul ********************************************************
  47. CAN_CONFIG CAN_2_Config = {
  48. &CAN_2,
  49. CAN2_PortE8_9,
  50. TxPushPull, //enum {TxPushPull=0,Tx_OpenDrain} TxPortType;
  51. RxMask_Individual, //RxMaskType
  52. 0xFFFFFFFF, //uint32_t GlobalRxMask
  53. CANBaud_250kHz_OSC_40MHz
  54. };
  55. // ****** MailBox BMU_DICO *****************************************************
  56. CAN_MAILBOX CAN_TxMB_BMU_DICO_18FF9F1E = {
  57. &CAN_2_Config,
  58. 0, // uint8_t MBNumber //0..15
  59. MB_Tx, // uint8_t Direction
  60. 0, // uint8_t RemoteEn
  61. 8, // uint8_t DataBytes
  62. 0, // uint8_t InterruptEnable
  63. 0xFFFFFFFF, // uint32_t AcceptMask
  64. LONG_ID, // 29 Bit ID
  65. 0x18FF9F1E // ID
  66. };
  67. // ****** MailBox BMU1_EVCU1 ***************************************************
  68. CAN_MAILBOX CAN_TxMB_BMU1_EVCU1_18FF9E1E = {
  69. &CAN_2_Config,
  70. 1, // uint8_t MBNumber //0..15
  71. MB_Tx, // uint8_t Direction
  72. 0, // uint8_t RemoteEn
  73. 4, // uint8_t DataBytes
  74. 0, // uint8_t InterruptEnable
  75. 0xFFFFFFFF, // uint32_t AcceptMask
  76. LONG_ID, // 29 Bit ID
  77. 0x18FF9E1E // ID
  78. };
  79. // ****** MailBox DICO1_EVCU ***************************************************
  80. CAN_MAILBOX CAN_RxMB_DICO1_EVCU_18FF8F03 = {
  81. &CAN_2_Config,
  82. 2, // uint8_t MBNumber //0..15
  83. MB_Rx, // uint8_t Direction
  84. 0, // uint8_t RemoteEn
  85. 8, // uint8_t DataBytes
  86. 0, // uint8_t Interrupt
  87. 0xFFFFFFFF, // uint32_t AcceptMask
  88. LONG_ID, // 29 Bit ID
  89. 0x18FF8F03 // ID
  90. };
  91. // ****** MailBox DICO2_EVCU ***************************************************
  92. CAN_MAILBOX CAN_RxMB_DICO2_EVCU_18FF8D03 = {
  93. &CAN_2_Config,
  94. 3, // uint8_t MBNumber //0..15
  95. MB_Rx, // uint8_t Direction
  96. 0, // uint8_t RemoteEn
  97. 8, // uint8_t DataBytes
  98. 0, // uint8_t Interrupt
  99. 0xFFFFFFFF, // uint32_t AcceptMask
  100. LONG_ID, // 29 Bit ID
  101. 0x18FF8D03 // ID
  102. };
  103. // ****** MailBox EVCU1_BMU ***************************************************
  104. CAN_MAILBOX CAN_RxMB_EVCU1_BMU_0CFF3D27 = {
  105. &CAN_2_Config,
  106. 4, // uint8_t MBNumber //0..15
  107. MB_Rx, // uint8_t Direction
  108. 0, // uint8_t RemoteEn
  109. 8, // uint8_t DataBytes //!! 1.5-0 // von 2 auf 8 wegen BaSyTec
  110. 0, // uint8_t Interrupt
  111. 0xFFFFFFFF, // uint32_t AcceptMask
  112. LONG_ID, // 29 Bit ID
  113. 0x0CFF3D27 // ID
  114. };
  115. // ***** CAN2_init *************************************************************
  116. uint16_t CAN2_init( void )
  117. {
  118. uint16_t ReturnVal = CAN_OK;
  119. if( CAN_Init(&CAN_2_Config) == CAN_OK )
  120. {
  121. ReturnVal += CAN_Init_Mailbox(&CAN_TxMB_BMU_DICO_18FF9F1E);
  122. ReturnVal += CAN_Init_Mailbox(&CAN_TxMB_BMU1_EVCU1_18FF9E1E);
  123. ReturnVal += CAN_Init_Mailbox(&CAN_RxMB_DICO1_EVCU_18FF8F03);
  124. ReturnVal += CAN_Init_Mailbox(&CAN_RxMB_DICO2_EVCU_18FF8D03);
  125. ReturnVal += CAN_Init_Mailbox(&CAN_RxMB_EVCU1_BMU_0CFF3D27);
  126. }
  127. return ReturnVal;
  128. }
  129. // ***** CAN2_update ***********************************************************
  130. uint16_t CAN2_update( void )
  131. {
  132. if( CHECKBIT( CAN_2.IFRL.R, 2 )) { // DICO1 EVCU 0x18FF8F03
  133. SETBIT( CAN_2.IFRL.R, 2 ); // IFR clear
  134. check_and_save_DICO1_EVCU( &CAN_RxMB_DICO1_EVCU_18FF8F03 );
  135. }
  136. if( CHECKBIT( CAN_2.IFRL.R, 3 )) { // DICO2 EVCU 0x18FF8D03
  137. SETBIT( CAN_2.IFRL.R, 3 ); // IFR clear
  138. check_and_save_DICO2_EVCU( &CAN_RxMB_DICO2_EVCU_18FF8D03 );
  139. }
  140. if( CHECKBIT( CAN_2.IFRL.R, 4 )) { // EVCU1 BMU 0x0CFF3D27
  141. SETBIT( CAN_2.IFRL.R, 4 ); // IFR clear
  142. check_and_save_EVCU1_BMU( &CAN_RxMB_EVCU1_BMU_0CFF3D27 );
  143. }
  144. return CAN_OK;
  145. }
  146. // ***** End BMS_CAN2_Mail_Box.c ***********************************************