1 /*****************************************************************************
5 |* This file contains definitions for the builtin CAN-Bus Controller of
6 |* the Siemens c515c controller
8 ****************************************************************************/
13 /* define CPU_CLK_10MHZ or CPU_CLK_8MHZ to select the right values for */
14 /* the bit timing registers */
18 /* address of can controller in xmem */
19 #define CAN_CTRL 0xf700
21 /* size of message buffer including 1 dummy byte at end */
22 #define CAN_MSG_SZ 0x10
24 /* register offset definitions */
37 #define MSG15MSK_0 0xc
38 #define MSG15MSK_1 0xd
39 #define MSG15MSK_2 0xe
40 #define MSG15MSK_3 0xf
42 /* register offsets in message buffer */
50 /* beginning of message data */
53 /* bits in cntr_x registers */
64 /* macros for setting and resetting above bits, see Siemens documentation */
65 #define MCR_BIT_SET(p,x) ((p) = (0xff & ~((x) >> 1)))
66 #define MCR_BIT_RES(p,x) ((p) = (0xff & ~(x)))
68 /* direction = transmit in mcfg */
69 #define DIR_TRANSMIT 0x8
71 /* constants for bit timing registers */
75 #define BT_1_125K 0x1c
77 #define BT_1_250K 0x1c
79 #define BT_1_500K 0x1c
86 #define BT_1_125K 0x1c
88 #define BT_1_250K 0x1c
90 #define BT_1_500K 0x2f
95 /* Control register bits */
104 /* status register bits */
115 typedef struct can_msg
124 unsigned char data_bytes[8];
128 xdata at CAN_CTRL struct
142 unsigned char msg15msk_0;
143 unsigned char msg15msk_1;
144 unsigned char msg15msk_2;
145 unsigned char msg15msk_3;
146 struct can_msg msgbufs[15];
149 /* Byte registers in numerical order */
212 /* defining bits in SFR P0 */
224 /* defining bits in SFR PCON1 */
237 /* defining bits in SFR P1 */
257 /* defining bits in SFR SCON */
269 /* defining bits in SFR P2 */
281 /* defining bits in SFR IEN0 */
293 /* defining bits in SFR P3 */
313 /* defining bits in SFR IEN1 */
325 /* defining bits in SFR IRCON */
337 /* defining bits in SFR T2CON */
349 /* defining bits in SFR PSW */
361 /* defining bits in SFR ADCON0 */
373 /* defining bits in SFR ACC */
385 /* defining bits in SFR P4 */
405 /* defining bits in SFR B */
417 /* defining bits in SFR DIR5 */
435 #endif /* _REGC515C_H */