void InitECanGpio(void) { InitECanaGpio(); #if (DSP28_ECANB) InitECanbGpio(); #endif // if DSP28_ECANB }
void CANSetup() { InitECanaGpio(); InitECana(); ClearMailBoxes(); ECanaShadow.CANMIM.all = 0; ECanaShadow.CANMIL.all = 0; ECanaShadow.CANGIM.all = 0; ECanaShadow.CANGAM.bit.AMI = 0; //must be standard ECanaShadow.CANGIM.bit.I1EN = 1; // enable I1EN ECanaShadow.CANMD.all = ECanaRegs.CANMD.all; ECanaShadow.CANME.all = ECanaRegs.CANME.all; //todo USER: Node specifc CAN setup EALLOW; // create mailbox for all Receive and transmit IDs // MBOX0 - MBOX31 //Command RECEIVE ECanaMboxes.MBOX0.MSGID.bit.IDE = 0; //standard id ECanaMboxes.MBOX0.MSGID.bit.AME = 0; // all bit must match ECanaMboxes.MBOX0.MSGID.bit.AAM = 0; // no RTR AUTO TRANSMIT ECanaMboxes.MBOX0.MSGCTRL.bit.DLC = 8; ECanaMboxes.MBOX0.MSGID.bit.STDMSGID = COMMAND_ID; ECanaShadow.CANMD.bit.MD0 = 1; //receive ECanaShadow.CANME.bit.ME0 = 1; //enable ECanaShadow.CANMIM.bit.MIM0 = 1; //int enable ECanaShadow.CANMIL.bit.MIL0 = 1; // Int.-Level MB#0 -> I1EN //Heart TRANSMIT ECanaMboxes.MBOX1.MSGID.bit.IDE = 0; //standard id ECanaMboxes.MBOX1.MSGID.bit.AME = 0; // all bit must match ECanaMboxes.MBOX1.MSGID.bit.AAM = 1; //RTR AUTO TRANSMIT ECanaMboxes.MBOX1.MSGCTRL.bit.DLC = 8; ECanaMboxes.MBOX1.MSGID.bit.STDMSGID = HEARTBEAT_ID; ECanaShadow.CANMD.bit.MD1 = 0; //transmit ECanaShadow.CANME.bit.ME1 = 1; //enable //SOMETHING ODD ABOUT ORDER HERE AND RTR BIT... //adc TRANSMIT ECanaMboxes.MBOX2.MSGID.bit.IDE = 0; //standard id ECanaMboxes.MBOX2.MSGID.bit.AME = 0; // all bit must match ECanaMboxes.MBOX2.MSGID.bit.AAM = 1; //RTR AUTO TRANSMIT ECanaMboxes.MBOX2.MSGCTRL.bit.DLC = 8; ECanaMboxes.MBOX2.MSGID.bit.STDMSGID = ADC_ID; ECanaShadow.CANMD.bit.MD2 = 0; //transmit ECanaShadow.CANME.bit.ME2 = 1; //enable //gp_button TRANSMIT ECanaMboxes.MBOX3.MSGID.bit.IDE = 0; //standard id ECanaMboxes.MBOX3.MSGID.bit.AME = 0; // all bit must match ECanaMboxes.MBOX3.MSGID.bit.AAM = 1; //RTR AUTO TRANSMIT ECanaMboxes.MBOX3.MSGCTRL.bit.DLC = 8; ECanaMboxes.MBOX3.MSGID.bit.STDMSGID = GP_BUTTON_ID; ECanaShadow.CANMD.bit.MD3 = 0; //transmit ECanaShadow.CANME.bit.ME3 = 1; //enable ECanaRegs.CANGAM.all = ECanaShadow.CANGAM.all; ECanaRegs.CANGIM.all = ECanaShadow.CANGIM.all; ECanaRegs.CANMIM.all = ECanaShadow.CANMIM.all; ECanaRegs.CANMIL.all = ECanaShadow.CANMIL.all; ECanaRegs.CANMD.all = ECanaShadow.CANMD.all; ECanaRegs.CANME.all = ECanaShadow.CANME.all; ECanaShadow.CANMC.all = ECanaRegs.CANMC.all; ECanaShadow.CANMC.bit.STM = 0; // No self-test mode ECanaRegs.CANMC.all = ECanaShadow.CANMC.all; EDIS; //ENABLE PIE INTERRUPTS IER |= M_INT9; PieCtrlRegs.PIEIER9.bit.INTx6= 1; can_watch = StartStopWatch(SENDCAN_STOPWATCH); }
void InitECanGpio(void) { InitECanaGpio(); }