Subversion Repositories HomeAutomation

Rev

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

  1. #ifndef MCP2515_H_
  2. #define MCP2515_H_
  3.  
  4. #define MCPDEBUG (1)
  5. #define MCPDEBUG_TXBUF (0)
  6.  
  7. #include "spi.h"
  8. #include "mcp2515_defs.h"
  9. #include "can.h"
  10.  
  11. #define MCP_CS_PORT PORTB
  12. #define MCP_CS_DDR  DDRB
  13. #define MCP_CS_BIT  PB0
  14.  
  15. #define MCP_N_TXBUFFERS (3)
  16.  
  17. #define MCP_RXBUF_0 (MCP_RXB0SIDH)
  18. #define MCP_RXBUF_1 (MCP_RXB1SIDH)
  19.  
  20. #define MCP_TXBUF_0 (MCP_TXB0SIDH)
  21. #define MCP_TXBUF_1 (MCP_TXB1SIDH)
  22. #define MCP_TXBUF_2 (MCP_TXB2SIDH)
  23.  
  24. // #define MCP2515_SELECT() (SPI_SS_LOW())
  25. // #define MCP2515_UNSELECT() (SPI_SS_HIGH())
  26.  
  27. #define MCP2515_SELECT()   ( MCP_CS_PORT &= ~(1<<MCP_CS_BIT) )
  28. #define MCP2515_UNSELECT() ( MCP_CS_PORT |=  (1<<MCP_CS_BIT) )
  29.  
  30. #define MCP2515_OK         (0)
  31. #define MCP2515_FAIL       (1)
  32. #define MCP_ALLTXBUSY      (2)
  33.  
  34. void mcp2515_reset(void);
  35.  
  36. uint8_t mcp2515_readRegister(const uint8_t address);
  37. void mcp2515_setRegisterS(const uint8_t address,
  38.     const uint8_t values[],
  39.     const uint8_t n);
  40.  
  41. void mcp2515_setRegister(const uint8_t address,
  42.     const uint8_t value);
  43. void mcp2515_setRegisterS(const uint8_t address,
  44.     const uint8_t values[],
  45.     const uint8_t n);
  46. void mcp2515_modifyRegister(const uint8_t address, const uint8_t mask,
  47.     const uint8_t data);
  48.  
  49. uint8_t mcp2515_readStatus(void);
  50. uint8_t mcp2515_RXStatus(void);
  51.  
  52. uint8_t mcp2515_setCANCTRL_Mode(const uint8_t newmode);
  53.  
  54. uint8_t mcp2515_configRate(const uint8_t canSpeed);
  55. uint8_t mcp2515_init(const uint8_t canSpeed);
  56.  
  57. void mcp2515_write_can_id( const uint8_t mcp_addr,
  58.     const uint8_t ext, const uint32_t can_id );
  59. void mcp2515_read_can_id( const uint8_t mcp_addr,
  60.     uint8_t* ext, uint32_t* can_id );
  61.  
  62. void mcp2515_write_canMsg( const uint8_t buffer_sidh_addr,
  63.     const CanMessage* msg);
  64. void mcp2515_read_canMsg( const uint8_t buffer_sidh_addr,
  65.     CanMessage* msg);
  66.  
  67. void mcp2515_start_transmit(const uint8_t mcp_addr);
  68.  
  69. uint8_t mcp2515_getNextFreeTXBuf(uint8_t *txbuf_n);
  70.  
  71. #ifdef MCPDEBUG
  72. void mcp2515_dumpExtendedStatus(void);
  73. #endif
  74.  
  75. #endif
  76.