165 lines
3.9 KiB
C
165 lines
3.9 KiB
C
/* motMsCanOffsets.h - register offset definitions for the Motorola MSCAN */
|
|
|
|
/* Copyright 1984-2004 Wind River Systems, Inc. */
|
|
#include "copyright_wrs.h"
|
|
|
|
/*
|
|
modification history
|
|
--------------------
|
|
01c,25jun04,bjn Adding extern "C" for CPP.
|
|
01b,05may04,bjn Removed MOTMSCAN_GetCanId, not required for external usage.
|
|
01a,23oct03,bjn written
|
|
*/
|
|
|
|
/*
|
|
DESCRIPTION
|
|
This file contains the functions Motorola Scalable CAN register offsets
|
|
*/
|
|
|
|
#ifndef _MOTMSCAN_OFFSETS_H_
|
|
#define _MOTMSCAN_OFFSETS_H_
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif /* __cplusplus */
|
|
|
|
/* MSCAN Base Register Offsets */
|
|
|
|
#define can_CR0 (0x00)
|
|
#define can_CR1 (0x01)
|
|
#define can_BTR0 (0x04)
|
|
#define can_BTR1 (0x05)
|
|
#define can_RFLG (0x08)
|
|
#define can_RIER (0x09)
|
|
#define can_TFLG (0x0C)
|
|
#define can_TIER (0x0D)
|
|
#define can_TARQ (0x10)
|
|
#define can_TAAK (0x11)
|
|
#define can_TBSEL (0x14)
|
|
#define can_IDAC (0x15)
|
|
#define can_RXERR (0x1c)
|
|
#define can_TXERR (0x1d)
|
|
|
|
/* ID Acceptance Registers */
|
|
#define can_IDAR0 (0x20)
|
|
#define can_IDAR1 (0x21)
|
|
#define can_IDAR2 (0x24)
|
|
#define can_IDAR3 (0x25)
|
|
#define can_IDAR4 (0x30)
|
|
#define can_IDAR5 (0x31)
|
|
#define can_IDAR6 (0x34)
|
|
#define can_IDAR7 (0x35)
|
|
|
|
/* ID Mask Registers */
|
|
#define can_IDMR0 (0x28)
|
|
#define can_IDMR1 (0x29)
|
|
#define can_IDMR2 (0x2C)
|
|
#define can_IDMR3 (0x2D)
|
|
#define can_IDMR4 (0x38)
|
|
#define can_IDMR5 (0x39)
|
|
#define can_IDMR6 (0x3C)
|
|
#define can_IDMR7 (0x3D)
|
|
|
|
/* RX FG Buffer */
|
|
#define can_RXIDR0 (0x40)
|
|
#define can_RXIDR1 (0x41)
|
|
#define can_RXIDR2 (0x44)
|
|
#define can_RXIDR3 (0x45)
|
|
#define can_RXDSR0 (0x48)
|
|
#define can_RXDSR1 (0x49)
|
|
#define can_RXDSR2 (0x4c)
|
|
#define can_RXDSR3 (0x4d)
|
|
#define can_RXDSR4 (0x50)
|
|
#define can_RXDSR5 (0x51)
|
|
#define can_RXDSR6 (0x54)
|
|
#define can_RXDSR7 (0x55)
|
|
#define can_RXDLR (0x58)
|
|
#define can_RXTIMH (0x5c)
|
|
#define can_RXTIML (0x5d)
|
|
|
|
/* TX FG Buffer */
|
|
#define can_TXIDR0 (0x60)
|
|
#define can_TXIDR1 (0x61)
|
|
#define can_TXIDR2 (0x64)
|
|
#define can_TXIDR3 (0x65)
|
|
#define can_TXDSR0 (0x68)
|
|
#define can_TXDSR1 (0x69)
|
|
#define can_TXDSR2 (0x6c)
|
|
#define can_TXDSR3 (0x6d)
|
|
#define can_TXDSR4 (0x70)
|
|
#define can_TXDSR5 (0x71)
|
|
#define can_TXDSR6 (0x74)
|
|
#define can_TXDSR7 (0x75)
|
|
#define can_TXDLR (0x78)
|
|
#define can_TXTBPR (0x79)
|
|
#define can_TXTIMH (0x7c)
|
|
#define can_TXTIML (0x7d)
|
|
|
|
|
|
/*
|
|
* Additional MSCAN API functions, provided mainly to configure
|
|
* MSCAN filters
|
|
*/
|
|
|
|
/*
|
|
* CAN IDs for MSCAN ID Mask Registers:
|
|
* '0' bit indicates match the bit.
|
|
* '1' bit indicates don't match the bit.
|
|
*/
|
|
|
|
#define NO_MATCH_STD_BITS (0x000007ffUL) /* 11 Bits for standard CAN */
|
|
#define NO_MATCH_EXT_BITS (0x1fffffffUL) /* 29 Bits for extended CAN */
|
|
|
|
typedef union
|
|
{
|
|
struct
|
|
{
|
|
UINT32 IDR0_3;
|
|
}
|
|
id32;
|
|
|
|
struct
|
|
{
|
|
UINT16 IDR0_1;
|
|
UINT16 IDR2_3;
|
|
}
|
|
id16;
|
|
|
|
struct
|
|
{
|
|
UINT8 IDR0;
|
|
UINT8 IDR1;
|
|
UINT8 IDR2;
|
|
UINT8 IDR3;
|
|
}
|
|
id8;
|
|
}
|
|
MSCAN_ID_REG;
|
|
|
|
#define SET_MSCAN_IDE_BIT (0x01)
|
|
#define SET_MSCAN_RTR_BIT (0x02)
|
|
#define SET_MSCAN_SRR_BIT (0x04)
|
|
|
|
void MOTMSCAN_GetIdMsgBuffer (long canId, BOOL ext, UINT8 options,
|
|
MSCAN_ID_REG * pMSCAN_IDR);
|
|
|
|
/*****************************************************************************
|
|
* Register: IDAC
|
|
*/
|
|
|
|
#define IDAM_BS (3)
|
|
|
|
#define IDAM_2_32BIT_FILTERS (0x00)
|
|
#define IDAM_4_16BIT_FILTERS (0x10)
|
|
#define IDAM_8_08BIT_FILTERS (0x20)
|
|
#define IDAM_FILTER_CLOSED (0x30)
|
|
|
|
#define IDAM_BITS (0x30)
|
|
#define IDHIT_BITS (0x07)
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif /* __cplusplus */
|
|
|
|
#endif /* _MOTMSCAN_OFFSETS_H_ */
|