Hotwheels-Cluster 1.2
Creation of Cluster APP for SEA:ME project.
 
Loading...
Searching...
No Matches
MCP2515Configurator.hpp
Go to the documentation of this file.
1
16
17#ifndef MCP2515CONFIGURATOR_HPP
18#define MCP2515CONFIGURATOR_HPP
19
20#include "ISPIController.hpp"
21#include <cstdint>
22#include <vector>
23
29public:
32
33 bool resetChip();
34 void configureBaudRate();
35 void configureTXBuffer();
36 void configureRXBuffer();
39 void setMode(uint8_t mode);
40
41 bool verifyMode(uint8_t expectedMode);
42 std::vector<uint8_t> readCANMessage(uint16_t &frameID);
43 void sendCANMessage(uint16_t frameID, uint8_t *CAN_TX_Buf, uint8_t length1);
44
45 static constexpr uint8_t RESET_CMD = 0xC0;
46 static constexpr uint8_t CANCTRL = 0x0F;
47 static constexpr uint8_t CANSTAT = 0x0E;
48 static constexpr uint8_t CNF1 = 0x2A;
49 static constexpr uint8_t CNF2 = 0x29;
50 static constexpr uint8_t CNF3 = 0x28;
51 static constexpr uint8_t TXB0CTRL = 0x30;
52 static constexpr uint8_t RXB0CTRL = 0x60;
53 static constexpr uint8_t CANINTF = 0x2C;
54 static constexpr uint8_t CANINTE = 0x2B;
55 static constexpr uint8_t RXB0SIDH = 0x61;
56 static constexpr uint8_t RXB0SIDL = 0x62;
57
58 static constexpr uint8_t CAN_RD_STATUS = 0xA0;
59 static constexpr uint8_t TXB0SIDH = 0x31;
60 static constexpr uint8_t TXB0SIDL = 0x32;
61 static constexpr uint8_t TXB0EID8 = 0x33;
62 static constexpr uint8_t TXB0EID0 = 0x34;
63 static constexpr uint8_t TXB0DLC = 0x35;
64 static constexpr uint8_t TXB0D0 = 0x36;
65 static constexpr uint8_t CAN_RTS_TXB0 = 0x81;
66
67private:
70
71 void writeRegister(uint8_t address, uint8_t value);
72 uint8_t readRegister(uint8_t address);
73 void sendCommand(uint8_t command);
74};
75
76#endif // MCP2515CONFIGURATOR_HPP
Definition of the ISPIController interface.
Interface for the SPI controller.
MCP2515Configurator(ISPIController &spiController)
Construct a new MCP2515Configurator::MCP2515Configurator object.
static constexpr uint8_t RXB0SIDH
static constexpr uint8_t CNF2
static constexpr uint8_t CNF1
bool verifyMode(uint8_t expectedMode)
Verify the mode of the MCP2515.
static constexpr uint8_t TXB0CTRL
static constexpr uint8_t TXB0EID8
static constexpr uint8_t CNF3
static constexpr uint8_t CANCTRL
void configureRXBuffer()
Configure the RX buffer for the MCP2515.
static constexpr uint8_t TXB0D0
static constexpr uint8_t CANINTF
void setMode(uint8_t mode)
Set the mode for the MCP2515.
static constexpr uint8_t TXB0SIDL
static constexpr uint8_t RESET_CMD
bool resetChip()
clean up the resources used by the MCP2515Configurator.
~MCP2515Configurator()=default
void configureBaudRate()
Configure the baud rate for the MCP2515.
ISPIController & spiController
Reference to the SPI controller.
static constexpr uint8_t CANINTE
uint8_t readRegister(uint8_t address)
Read a value from a register.
void writeRegister(uint8_t address, uint8_t value)
Write a value to a register.
void configureInterrupts()
Configure the interrupts for the MCP2515.
static constexpr uint8_t CAN_RD_STATUS
void sendCommand(uint8_t command)
Send a command to the MCP2515.
std::vector< uint8_t > readCANMessage(uint16_t &frameID)
Read a CAN message from the MCP2515.
static constexpr uint8_t TXB0EID0
static constexpr uint8_t RXB0SIDL
static constexpr uint8_t TXB0SIDH
void configureFiltersAndMasks()
Configure the filters and masks for the MCP2515.
static constexpr uint8_t CAN_RTS_TXB0
static constexpr uint8_t TXB0DLC
void configureTXBuffer()
Configure the TX buffer for the MCP2515.
static constexpr uint8_t CANSTAT
void sendCANMessage(uint16_t frameID, uint8_t *CAN_TX_Buf, uint8_t length1)
Send a CAN message to the MCP2515.
static constexpr uint8_t RXB0CTRL