The SJA1000 controller is connected to the memory bus. It's base address and interrupt is set by NutRegisterDevice.
Have a look to our m-can board if you have questions.
Data Structures | |
struct | _CANBuffer |
Defines | |
#define | SJA_SIGNAL sig_INTERRUPT7 |
#define | SJA_EICR EICRB |
#define | SJA_SIGNAL_BIT 7 |
#define | CAN_BufSize 64 |
Typedefs | |
typedef _CANBuffer | CANBuffer |
Functions | |
void | CANBufferInit (CANBuffer *buffer, u_short size) |
CANFRAME | CANBufferGetMutex (CANBuffer *buffer) |
void | CANBufferPutMutex (CANBuffer *buffer, CANFRAME *data) |
CANFRAME | CANBufferGet (CANBuffer *buffer) |
void | CANBufferPut (CANBuffer *buffer, CANFRAME *data) |
u_short | CANBufferFree (CANBuffer *buffer) |
u_char | SJARxAvail (NUTDEVICE *dev) |
checks if data is available in input buffer | |
u_char | SJATxFree (NUTDEVICE *dev) |
checks if there's still space in output buffer | |
void | SJAOutput (NUTDEVICE *dev, CANFRAME *frame) |
Write a frame from to output buffer. | |
void | SJAInput (NUTDEVICE *dev, CANFRAME *frame) |
Reads a frame from input buffer. | |
void | SJASetAccCode (NUTDEVICE *dev, u_char *ac) |
Sets the acceptance code. | |
void | SJASetAccMask (NUTDEVICE *dev, u_char *am) |
Sets the acceptance mask. | |
u_char | SJASetBaudrate (NUTDEVICE *dev, u_long baudrate) |
Sets the baudrate. | |
void | SJATxFrame (CANFRAME *CAN_frame) |
Sends a CAN Frane. | |
void | SJARxFrame (CANFRAME *CAN_frame) |
Receives a CAN Frane. | |
void | CAN_Tx (void *arg) |
CAN transmitter thread. | |
int | SJAInit (NUTDEVICE *dev) |
Initialize SJA1000 Canbus interface. | |
Variables | |
CANINFO | dcb_sja1000 |
volatile u_short | sja_base = 0x0000 |
CANBuffer | CAN_RX_BUF |
CANBuffer | CAN_TX_BUF |
IFCAN | ifc_sja1000 |
Interface information structure. | |
NUTDEVICE | devSJA1000 |
Device information structure. |