Hi
I am using S12ZVC64, The trouble is I cannot set bus-off selfrecovery. Because the involved Register cannot found in MC9S12ZVC64.H when Iadd the involved Register(CAN0CTL1_BORM and CAN0MISC ),it could recovery when BUS-off appeared.
Could you tellme how to do about it or could you give me a DEMO about S12ZVC CAN Bus-off. Thankyou
Hi,
I use CodeWarrior v10.6 and in the file mc9s12zvc64.h you can find both:
/*** CAN0CTL1 - MSCAN0 Control 1 Register; 0x00000801 ***/
typedef union {
byte Byte;
struct {
byte INITAK :1; /* Initialization Mode Acknowledge */
byte SLPAK :1; /* Sleep Mode Acknowledge */
byte WUPM :1; /* Wake-Up Mode */
byte BORM :1; /* Bus-Off Recovery Mode */
byte LISTEN :1; /* Listen Only Mode */
byte LOOPB :1; /* Loop Back Self Test Mode */
byte CLKSRC :1; /* MSCAN Clock Source */
byte CANE :1; /* MSCAN Enable */
} Bits;
} CAN0CTL1STR;
extern volatile CAN0CTL1STR _CAN0CTL1 @0x00000801;
#define CAN0CTL1 _CAN0CTL1.Byte
#define CAN0CTL1_INITAK _CAN0CTL1.Bits.INITAK
#define CAN0CTL1_SLPAK _CAN0CTL1.Bits.SLPAK
#define CAN0CTL1_WUPM _CAN0CTL1.Bits.WUPM
#define CAN0CTL1_BORM _CAN0CTL1.Bits.BORM
#define CAN0CTL1_LISTEN _CAN0CTL1.Bits.LISTEN
#define CAN0CTL1_LOOPB _CAN0CTL1.Bits.LOOPB
#define CAN0CTL1_CLKSRC _CAN0CTL1.Bits.CLKSRC
#define CAN0CTL1_CANE _CAN0CTL1.Bits.CANE
#define CAN0CTL1_INITAK_MASK 1U
#define CAN0CTL1_SLPAK_MASK 2U
#define CAN0CTL1_WUPM_MASK 4U
#define CAN0CTL1_BORM_MASK 8U
#define CAN0CTL1_LISTEN_MASK 16U
#define CAN0CTL1_LOOPB_MASK 32U
#define CAN0CTL1_CLKSRC_MASK 64U
#define CAN0CTL1_CANE_MASK 128U
/*** CAN0MISC - MSCAN0 Miscellaneous Register; 0x0000080D ***/
typedef union {
byte Byte;
struct {
byte BOHOLD :1; /* Bus-off State Hold Until User Request */
byte :1;
byte :1;
byte :1;
byte :1;
byte :1;
byte :1;
byte :1;
} Bits;
} CAN0MISCSTR;
extern volatile CAN0MISCSTR _CAN0MISC @0x0000080D;
#define CAN0MISC _CAN0MISC.Byte
#define CAN0MISC_BOHOLD _CAN0MISC.Bits.BOHOLD
#define CAN0MISC_BOHOLD_MASK 1U
I am not able to provide you example for S12Z, however you can use easy portable example for S12G presented in attachment. (Note, it uses standard IDE of the CW but source file are readable)
best regards,
Ladislav