Subversion Repositories HomeAutomation

Rev

Blame | Last modification | View Log | SVN | RSS feed

  1. /* from Microchip Example */
  2.  
  3. #ifndef MCP2515_DEFS_H_
  4. #define MCP2515_DEFS_H_
  5.  
  6. /*
  7. mcp2515_defs.h
  8.  
  9. This file contains constants that are specific to the MCP2515.
  10.  
  11. Version     Date        Description
  12. ----------------------------------------------------------------------
  13. v1.00       2003/12/11  Initial release
  14. Copyright 2003 Kimberly Otten Software Consulting
  15.  
  16. Changes M. Thomas:
  17. - rename to mcp2515_defs.h
  18. - added handy definitions from kvaser-sample
  19. - status-bits
  20.  
  21. */
  22.  
  23. // Begin mt
  24. #define MCP_SIDH        0
  25. #define MCP_SIDL        1
  26. #define MCP_EID8        2
  27. #define MCP_EID0        3
  28.  
  29. #define MCP_TXB_EXIDE_M     0x08    /* In TXBnSIDL */
  30. #define MCP_DLC_MASK        0x0F    /* 4 LSBits */
  31. #define MCP_RTR_MASK        0x40    /* (1<<6) Bit 6 */
  32.  
  33. #define MCP_RXB_RX_ANY      0x60
  34. #define MCP_RXB_RX_EXT      0x40
  35. #define MCP_RXB_RX_STD      0x20
  36. #define MCP_RXB_RX_STDEXT   0x00
  37. #define MCP_RXB_RX_MASK     0x60
  38. #define MCP_RXB_BUKT_MASK   (1<<2)
  39.  
  40. /*
  41. ** Bits in the TXBnCTRL registers.
  42. */
  43. #define MCP_TXB_TXBUFE_M    0x80
  44. #define MCP_TXB_ABTF_M      0x40
  45. #define MCP_TXB_MLOA_M      0x20
  46. #define MCP_TXB_TXERR_M     0x10
  47. #define MCP_TXB_TXREQ_M     0x08
  48. #define MCP_TXB_TXIE_M      0x04
  49. #define MCP_TXB_TXP10_M     0x03
  50.  
  51. #define MCP_TXB_RTR_M       0x40    // In TXBnDLC
  52. #define MCP_RXB_IDE_M       0x08    // In RXBnSIDL
  53. #define MCP_RXB_RTR_M       0x40    // In RXBnDLC
  54.  
  55. #define MCP_STAT_RXIF_MASK   (0x03)
  56. #define MCP_STAT_RX0IF (1<<0)
  57. #define MCP_STAT_RX1IF (1<<1)
  58.  
  59. #define MCP_EFLG_RX1OVR (1<<7)
  60. #define MCP_EFLG_RX0OVR (1<<6)
  61. #define MCP_EFLG_TXBO   (1<<5)
  62. #define MCP_EFLG_TXEP   (1<<4)
  63. #define MCP_EFLG_RXEP   (1<<3)
  64. #define MCP_EFLG_TXWAR  (1<<2)
  65. #define MCP_EFLG_RXWAR  (1<<1)
  66. #define MCP_EFLG_EWARN  (1<<0)
  67. #define MCP_EFLG_ERRORMASK  (0xF8) /* 5 MS-Bits */
  68.  
  69. // End mt
  70.  
  71.  
  72. // Define MCP2515 register addresses
  73.  
  74. #define MCP_RXF0SIDH    0x00
  75. #define MCP_RXF0SIDL    0x01
  76. #define MCP_RXF0EID8    0x02
  77. #define MCP_RXF0EID0    0x03
  78. #define MCP_RXF1SIDH    0x04
  79. #define MCP_RXF1SIDL    0x05
  80. #define MCP_RXF1EID8    0x06
  81. #define MCP_RXF1EID0    0x07
  82. #define MCP_RXF2SIDH    0x08
  83. #define MCP_RXF2SIDL    0x09
  84. #define MCP_RXF2EID8    0x0A
  85. #define MCP_RXF2EID0    0x0B
  86. #define MCP_CANSTAT     0x0E
  87. #define MCP_CANCTRL     0x0F
  88. #define MCP_RXF3SIDH    0x10
  89. #define MCP_RXF3SIDL    0x11
  90. #define MCP_RXF3EID8    0x12
  91. #define MCP_RXF3EID0    0x13
  92. #define MCP_RXF4SIDH    0x14
  93. #define MCP_RXF4SIDL    0x15
  94. #define MCP_RXF4EID8    0x16
  95. #define MCP_RXF4EID0    0x17
  96. #define MCP_RXF5SIDH    0x18
  97. #define MCP_RXF5SIDL    0x19
  98. #define MCP_RXF5EID8    0x1A
  99. #define MCP_RXF5EID0    0x1B
  100. #define MCP_TEC         0x1C
  101. #define MCP_REC         0x1D
  102. #define MCP_RXM0SIDH    0x20
  103. #define MCP_RXM0SIDL    0x21
  104. #define MCP_RXM0EID8    0x22
  105. #define MCP_RXM0EID0    0x23
  106. #define MCP_RXM1SIDH    0x24
  107. #define MCP_RXM1SIDL    0x25
  108. #define MCP_RXM1EID8    0x26
  109. #define MCP_RXM1EID0    0x27
  110. #define MCP_CNF3        0x28
  111. #define MCP_CNF2        0x29
  112. #define MCP_CNF1        0x2A
  113. #define MCP_CANINTE     0x2B
  114. #define MCP_CANINTF     0x2C
  115. #define MCP_EFLG        0x2D
  116. #define MCP_TXB0CTRL    0x30
  117. #define MCP_TXB1CTRL    0x40
  118. #define MCP_TXB2CTRL    0x50
  119. #define MCP_RXB0CTRL    0x60
  120. #define MCP_RXB0SIDH    0x61
  121. #define MCP_RXB1CTRL    0x70
  122. #define MCP_RXB1SIDH    0x71
  123.  
  124.  
  125. #define MCP_TX_INT      0x1C        // Enable all transmit interrupts
  126. #define MCP_TX01_INT    0x0C        // Enable TXB0 and TXB1 interrupts
  127. #define MCP_RX_INT      0x03        // Enable receive interrupts
  128. #define MCP_NO_INT      0x00        // Disable all interrupts
  129.  
  130. #define MCP_TX01_MASK   0x14
  131. #define MCP_TX_MASK     0x54
  132.  
  133. // Define SPI Instruction Set
  134.  
  135. #define MCP_WRITE       0x02
  136.  
  137. #define MCP_READ        0x03
  138.  
  139. #define MCP_BITMOD      0x05
  140.  
  141. #define MCP_LOAD_TX0    0x40
  142. #define MCP_LOAD_TX1    0x42
  143. #define MCP_LOAD_TX2    0x44
  144.  
  145. #define MCP_RTS_TX0     0x81
  146. #define MCP_RTS_TX1     0x82
  147. #define MCP_RTS_TX2     0x84
  148. #define MCP_RTS_ALL     0x87
  149.  
  150. #define MCP_READ_RX0    0x90
  151. #define MCP_READ_RX1    0x94
  152.  
  153. #define MCP_READ_STATUS 0xA0
  154.  
  155. #define MCP_RX_STATUS   0xB0
  156.  
  157. #define MCP_RESET       0xC0
  158.  
  159.  
  160. // CANCTRL Register Values
  161.  
  162. #define MODE_NORMAL     0x00
  163. #define MODE_SLEEP      0x20
  164. #define MODE_LOOPBACK   0x40
  165. #define MODE_LISTENONLY 0x60
  166. #define MODE_CONFIG     0x80
  167. #define MODE_POWERUP    0xE0
  168. #define MODE_MASK       0xE0
  169. #define ABORT_TX        0x10
  170. #define MODE_ONESHOT    0x08
  171. #define CLKOUT_ENABLE   0x04
  172. #define CLKOUT_DISABLE  0x00
  173. #define CLKOUT_PS1      0x00
  174. #define CLKOUT_PS2      0x01
  175. #define CLKOUT_PS4      0x02
  176. #define CLKOUT_PS8      0x03
  177.  
  178.  
  179. // CNF1 Register Values
  180.  
  181. #define SJW1            0x00
  182. #define SJW2            0x40
  183. #define SJW3            0x80
  184. #define SJW4            0xC0
  185.  
  186.  
  187. // CNF2 Register Values
  188.  
  189. #define BTLMODE         0x80
  190. #define SAMPLE_1X       0x00
  191. #define SAMPLE_3X       0x40
  192.  
  193.  
  194. // CNF3 Register Values
  195.  
  196. #define SOF_ENABLE      0x80
  197. #define SOF_DISABLE     0x00
  198. #define WAKFIL_ENABLE   0x40
  199. #define WAKFIL_DISABLE  0x00
  200.  
  201.  
  202. // CANINTF Register Bits
  203.  
  204. #define MCP_RX0IF       0x01
  205. #define MCP_RX1IF       0x02
  206. #define MCP_TX0IF       0x04
  207. #define MCP_TX1IF       0x08
  208. #define MCP_TX2IF       0x10
  209. #define MCP_ERRIF       0x20
  210. #define MCP_WAKIF       0x40
  211. #define MCP_MERRF       0x80
  212.  
  213.  
  214.  
  215. #endif
  216.