123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172 |
- ///##############################################################################
- //
- // FILE: BMS_CAN2_Mail_Box.c
- //
- // TITLE: CAN 2
- // - Module Configuration
- // - Mailbox Definition
- // - Mailbox Load
- // uint16_t CAN2_init ( void )
- // - Mailbox Check
- // uint16_t CAN2_update ( void )
- //
- //
- //##############################################################################
- //
- //==============================================================================
- // Change History:
- //==============================================================================
- // Datum: | Name | Version:| Change / Cause: | No
- //------------------------------------------------------------------------------
- // | | | | 002
- //------------------------------------------------------------------------------
- // | | | | 001
- //------------------------------------------------------------------------------
- // 31.07.13 | VR | 1.0 | New Build | 000
- //==============================================================================
- //==============================================================================
- // Comment Change / Cause:
- //==============================================================================
- // Change: 003 // 003
- //----------------------
- //
- //
- //==============================================================================
- // Change: 002 // 002
- //----------------------
- //
- //
- //==============================================================================
- // Change: 001 // 001
- //----------------------
- //
- //
- //==============================================================================
- #include "BMS_Master.h"
- // ****** Config CAN Modul ********************************************************
- CAN_CONFIG CAN_2_Config = {
- &CAN_2,
- CAN2_PortE8_9,
- TxPushPull, //enum {TxPushPull=0,Tx_OpenDrain} TxPortType;
- RxMask_Individual, //RxMaskType
- 0xFFFFFFFF, //uint32_t GlobalRxMask
- CANBaud_250kHz_OSC_40MHz
- };
- // ****** MailBox BMU_DICO *****************************************************
- CAN_MAILBOX CAN_TxMB_BMU_DICO_18FF9F1E = {
- &CAN_2_Config,
- 0, // uint8_t MBNumber //0..15
- MB_Tx, // uint8_t Direction
- 0, // uint8_t RemoteEn
- 8, // uint8_t DataBytes
- 0, // uint8_t InterruptEnable
- 0xFFFFFFFF, // uint32_t AcceptMask
- LONG_ID, // 29 Bit ID
- 0x18FF9F1E // ID
- };
- // ****** MailBox BMU1_EVCU1 ***************************************************
- CAN_MAILBOX CAN_TxMB_BMU1_EVCU1_18FF9E1E = {
- &CAN_2_Config,
- 1, // uint8_t MBNumber //0..15
- MB_Tx, // uint8_t Direction
- 0, // uint8_t RemoteEn
- 4, // uint8_t DataBytes
- 0, // uint8_t InterruptEnable
- 0xFFFFFFFF, // uint32_t AcceptMask
- LONG_ID, // 29 Bit ID
- 0x18FF9E1E // ID
- };
- // ****** MailBox DICO1_EVCU ***************************************************
- CAN_MAILBOX CAN_RxMB_DICO1_EVCU_18FF8F03 = {
- &CAN_2_Config,
- 2, // uint8_t MBNumber //0..15
- MB_Rx, // uint8_t Direction
- 0, // uint8_t RemoteEn
- 8, // uint8_t DataBytes
- 0, // uint8_t Interrupt
- 0xFFFFFFFF, // uint32_t AcceptMask
- LONG_ID, // 29 Bit ID
- 0x18FF8F03 // ID
- };
- // ****** MailBox DICO2_EVCU ***************************************************
- CAN_MAILBOX CAN_RxMB_DICO2_EVCU_18FF8D03 = {
- &CAN_2_Config,
- 3, // uint8_t MBNumber //0..15
- MB_Rx, // uint8_t Direction
- 0, // uint8_t RemoteEn
- 8, // uint8_t DataBytes
- 0, // uint8_t Interrupt
- 0xFFFFFFFF, // uint32_t AcceptMask
- LONG_ID, // 29 Bit ID
- 0x18FF8D03 // ID
- };
- // ****** MailBox EVCU1_BMU ***************************************************
- CAN_MAILBOX CAN_RxMB_EVCU1_BMU_0CFF3D27 = {
- &CAN_2_Config,
- 4, // uint8_t MBNumber //0..15
- MB_Rx, // uint8_t Direction
- 0, // uint8_t RemoteEn
- 8, // uint8_t DataBytes //!! 1.5-0 // von 2 auf 8 wegen BaSyTec
- 0, // uint8_t Interrupt
- 0xFFFFFFFF, // uint32_t AcceptMask
- LONG_ID, // 29 Bit ID
- 0x0CFF3D27 // ID
- };
- // ***** CAN2_init *************************************************************
- uint16_t CAN2_init( void )
- {
- uint16_t ReturnVal = CAN_OK;
-
- if( CAN_Init(&CAN_2_Config) == CAN_OK )
- {
- ReturnVal += CAN_Init_Mailbox(&CAN_TxMB_BMU_DICO_18FF9F1E);
- ReturnVal += CAN_Init_Mailbox(&CAN_TxMB_BMU1_EVCU1_18FF9E1E);
-
- ReturnVal += CAN_Init_Mailbox(&CAN_RxMB_DICO1_EVCU_18FF8F03);
- ReturnVal += CAN_Init_Mailbox(&CAN_RxMB_DICO2_EVCU_18FF8D03);
- ReturnVal += CAN_Init_Mailbox(&CAN_RxMB_EVCU1_BMU_0CFF3D27);
- }
- return ReturnVal;
- }
- // ***** CAN2_update ***********************************************************
- uint16_t CAN2_update( void )
- {
- if( CHECKBIT( CAN_2.IFRL.R, 2 )) { // DICO1 EVCU 0x18FF8F03
- SETBIT( CAN_2.IFRL.R, 2 ); // IFR clear
- check_and_save_DICO1_EVCU( &CAN_RxMB_DICO1_EVCU_18FF8F03 );
- }
-
- if( CHECKBIT( CAN_2.IFRL.R, 3 )) { // DICO2 EVCU 0x18FF8D03
- SETBIT( CAN_2.IFRL.R, 3 ); // IFR clear
- check_and_save_DICO2_EVCU( &CAN_RxMB_DICO2_EVCU_18FF8D03 );
- }
-
- if( CHECKBIT( CAN_2.IFRL.R, 4 )) { // EVCU1 BMU 0x0CFF3D27
- SETBIT( CAN_2.IFRL.R, 4 ); // IFR clear
- check_and_save_EVCU1_BMU( &CAN_RxMB_EVCU1_BMU_0CFF3D27 );
- }
- return CAN_OK;
- }
- // ***** End BMS_CAN2_Mail_Box.c ***********************************************
|