source: rc_os_nios2/atk2-sc1_1.3.2/obj/nios2_dev_rc/nces_can.h@ 128

Last change on this file since 128 was 128, checked in by ertl-honda, 9 years ago

追加.

File size: 9.7 KB
Line 
1#ifndef __NCES_CAN_H__
2#define __NCES_CAN_H__
3
4#include "Os.h"
5#include "prc_sil.h"
6#include "de0_nano.h"
7
8/*
9 * NCES CAN ‚̃ŒƒWƒXƒ^’è‹`
10 */
11#define EXTEND_CAN_ID_LENGTH 18U /* Šg’£•ª‚ÌCAN-ID• */
12#define ACCEPTANCE_OFFSET 21U /* ƒAƒNƒZƒvƒ^ƒ“ƒXƒR[ƒhƒŒƒWƒXƒ^‚̃IƒtƒZƒbƒg */
13#define ACCEPTANCE_MASK 0x001FFFFFU /* ƒAƒNƒZƒvƒ^ƒ“ƒXƒ}ƒXƒNƒŒƒWƒXƒ^‚ɐݒ肷‚éƒ}ƒXƒN */
14
15/* ƒ‚[ƒhƒŒƒWƒXƒ^ */
16#define RESET_MODE 0x00000001U /* “®ìƒ‚[ƒh‚ðRESET_MODE‚É‚·‚é */
17#define OPERATING_MODE 0x00000000U /* “®ìƒ‚[ƒh‚ðOPERATING_MODE‚É‚·‚é */
18#define LISTEN_ONLY_MODE 0x00000002U /* ‘—M‹ÖŽ~ */
19#define NO_LISTEN_ONLY_MODE 0x00000000U /* ‘—M‹–‰Â */
20#define NO_SEND_ACK_MODE 0x00000004U /* ACK‘—M‹ÖŽ~ */
21#define SEND_ACK_MODE 0x00000000U /* ACK‘—M */
22#define SINGLE_FILTER_MODE 0x00000008U /* Single filter mode */
23#define DUAL_FILTER_MODE 0x00000000U /* Dual filter mode */
24#define CANC_MODE_START (OPERATING_MODE | NO_LISTEN_ONLY_MODE | SEND_ACK_MODE | SINGLE_FILTER_MODE) /* CANƒRƒ“ƒgƒ[ƒ‰‚ÌSTARTó‘Ô */
25#define CANC_MODE_STOP (RESET_MODE | NO_LISTEN_ONLY_MODE | SEND_ACK_MODE | SINGLE_FILTER_MODE) /* CANƒRƒ“ƒgƒ[ƒ‰‚ÌSTOPó‘Ô */
26
27/* Š„ž‚Ý—v‹ */
28#define RECEIVE_IRQ 0x00000001U /* ŽóMŠ®—¹ */
29#define TRANSMIT_IRQ 0x00000002U /* ‘—MŠ®—¹ */
30
31#define IRQ_SET_DISABLE 0x00000000U /* [Š„ž‚Ý‹–‰ÂƒŒƒWƒXƒ^]‘SŠ„ž‚Ý—v‹‚ð‹ÖŽ~ */
32#define IRQ_SET_ENABLE 0x000000FFU /* [Š„ž‚Ý‹–‰ÂƒŒƒWƒXƒ^]Žw’è‚ÌŠ„ž‚Ý—v‹‚ð‹–‰Â */
33#define TXABORT_CLEAR 0x0000FFFFU /* [‘—MƒLƒƒƒ“ƒZƒ‹ƒŒƒWƒXƒ^]‘SƒƒbƒZ[ƒWƒ{ƒbƒNƒX‘—MƒLƒƒƒ“ƒZƒ‹ */
34#define TXCMP_CLEAR 0x0000FFFFU /* [‘—MŠ®—¹ƒŒƒWƒXƒ^]‘—MŠ®—¹ƒrƒbƒgƒNƒŠƒA */
35#define TXABORTCMP_CLEAR 0x0000FFFFU /* [‘—MƒLƒƒƒ“ƒZƒ‹Š®—¹ƒŒƒWƒXƒ^]‘—MƒLƒƒƒ“ƒZƒ‹Š®—¹ƒrƒbƒgƒNƒŠƒA */
36#define RXWAIT_OFF 0x00000000U /* [ŽóMƒEƒFƒCƒgƒŒƒWƒXƒ^]ƒEƒFƒCƒgˆ—OFF */
37#define RXCMP_CLEAR 0xFFFFFFFFU /* [ŽóMŠ®—¹ƒŒƒWƒXƒ^]ŽóMŠ®—¹ƒrƒbƒgƒNƒŠƒA */
38#define RXSELFREQ_CLEAR 0x00000000U /* [ƒZƒ‹ƒtŽóM—v‹ƒŒƒWƒXƒ^]‘—ŽóM—v‹‚È‚µ */
39#define ERROR_CNT_CLEAR 0x00000060U /* [ƒGƒ‰[ƒJƒEƒ“ƒ^ƒŒƒWƒXƒ^]ƒGƒ‰[ƒJƒEƒ“ƒ^‚ð‰Šú’l‚É‚·‚é */
40#define BAUDRATE_250 0x80007F03U /* [ƒNƒƒbƒN§ŒäCƒoƒXƒ^ƒCƒ~ƒ“ƒOƒŒƒWƒXƒ^]ƒ{[ƒŒ[ƒg:250kbps */
41#define BAUDRATE_500 0x80007F01U /* [ƒNƒƒbƒN§ŒäCƒoƒXƒ^ƒCƒ~ƒ“ƒOƒŒƒWƒXƒ^]ƒ{[ƒŒ[ƒg:500kbps */
42#define IRQ_RXEN_PERMIT 0xFFFFFFFFU /* [ŽóMŠ„‚荞‚Ý‹–‰ÂƒŒƒWƒXƒ^]ŽóMŠ„‚荞‚Ý‹–‰Â */
43
44#define MASK_CAN_ID_MASK 0x1FFFFFFFU /* CanIdŽæ“¾ƒ}ƒXƒN */
45#define MASK_4BIT 0x0000000FU /* 4ƒrƒbƒgƒ}ƒXƒN */
46#define MASK_8BIT 0x000000FFU /* 8ƒrƒbƒgƒ}ƒXƒN */
47
48/* */
49/* ŠeƒŒƒWƒXƒ^‚܂ł̃IƒtƒZƒbƒgƒAƒhƒŒƒX */
50#define CANC_MODE_REG 0x0000U /* ƒ‚[ƒh */
51#define CANC_TXREQ_REG 0x0004U
52#define CANC_TXABORT_REG 0x0008U /* ‘—MƒLƒƒƒ“ƒZƒ‹ƒŒƒWƒXƒ^ */
53#define CANC_TXCMP_REG 0x000CU
54#define CANC_TXABORTCMP_REG 0x0010U
55#define CANC_RXWAIT_REG 0x0014U
56#define CANC_RXCMP_REG 0x0018U
57#define CANC_RXOVERWRITE_REG 0x001CU
58#define CANC_RXSELFREQ_REG 0x0020U
59#define CANC_STATUS_REG 0x0024U
60#define CANC_IRQ_REG 0x0028U
61#define CANC_IRQ_EN_REG 0x002CU /* Š„ž‚Ý‹–‰ÂƒŒƒWƒXƒ^ */
62#define CANC_IRQ_RXEN_REG 0x0030U
63#define CANC_CLKDIV_BUSTIM_REG 0x0034U /* ƒNƒƒbƒN§ŒäCƒoƒXƒ^ƒCƒ~ƒ“ƒO */
64#define CANC_ACCEPTANCE_CODE_REG 0x0038U /* ƒAƒNƒZƒvƒ^ƒ“ƒXƒR[ƒhƒŒƒWƒXƒ^ */
65#define CANC_ACCEPTANCE_MASK_REG 0x003CU /* ƒAƒNƒZƒvƒ^ƒ“ƒXƒ}ƒXƒNƒŒƒWƒXƒ^ */
66#define CANC_ARBITRATION_LOST_CAPTURE_REG 0x0040U
67#define CANC_ERROR_CAPTURE_CODE_REG 0x0044U
68#define CANC_ERROR_CNT_REG 0x0048U
69#define CANC_MBOXWIN_REG 0x004CU /* ƒƒbƒZ[ƒWƒ{ƒbƒNƒXƒEƒBƒ“ƒhƒEƒŒƒWƒXƒ^ */
70#define CANC_RXMBOX_ACCEPTANCE_CODE_REG 0x0070U /* ŽóMƒƒbƒZ[ƒWƒ{ƒbƒNƒX‚̃AƒNƒZƒvƒ^ƒ“ƒXƒR[ƒhƒŒƒWƒXƒ^ */
71#define CANC_RXMBOX_ACCEPTANCE_MASK_REG 0x0074U /* ŽóMƒƒbƒZ[ƒWƒ{ƒbƒNƒX‚̃AƒNƒZƒvƒ^ƒ“ƒXƒ}ƒXƒNƒŒƒWƒXƒ^ */
72#define CANC_TXMBOX_DATA0_REG 0x0100U
73#define CANC_TXMBOX_DATA1_REG 0x0104U
74#define CANC_TXMBOX_DATA2_REG 0x0108U
75#define CANC_TXMBOX_DATA3_REG 0x010CU
76#define CANC_RXMBOX_DATA0_REG 0x0200U
77#define CANC_RXMBOX_DATA1_REG 0x0204U
78#define CANC_RXMBOX_DATA2_REG 0x0208U
79#define CANC_RXMBOX_DATA3_REG 0x020CU
80
81#define SIL_REW_IOP_CANC_0_BASE(mem) sil_rew_iop((void *) (CANC_0_BASE + (mem)))
82#define SIL_WRW_IOP_CANC_0_BASE(mem, data) sil_wrw_iop((void *) (CANC_0_BASE + (mem)), (data))
83
84/* “ÇŽæ‚è—pƒŒƒWƒXƒ^ƒAƒNƒZƒXƒ}ƒNƒ */
85#define CANC_RD_TXCMP_REG() SIL_REW_IOP_CANC_0_BASE(CANC_TXCMP_REG)
86#define CANC_RD_TXABORTCMP_REG() SIL_REW_IOP_CANC_0_BASE(CANC_TXABORTCMP_REG)
87#define CANC_RD_RXWAIT_REG() SIL_REW_IOP_CANC_0_BASE(CANC_RXWAIT_REG)
88#define CANC_RD_RXCMP_REG() SIL_REW_IOP_CANC_0_BASE(CANC_RXCMP_REG)
89#define CANC_RD_RXOVERWRITE_REG() SIL_REW_IOP_CANC_0_BASE(CANC_RXOVERWRITE_REG)
90#define CANC_RD_STATUS_REG() SIL_REW_IOP_CANC_0_BASE(CANC_STATUS_REG)
91#define CANC_RD_IRQ_REG() SIL_REW_IOP_CANC_0_BASE(CANC_IRQ_REG)
92#define CANC_RD_CLKDIV_BUSTIM_REG() SIL_REW_IOP_CANC_0_BASE(CANC_CLKDIV_BUSTIM_REG)
93#define CANC_RD_ERROR_CNT_REG() SIL_REW_IOP_CANC_0_BASE(CANC_ERROR_CNT_REG)
94#define CANC_RD_RXMBOX_DATA0_REG(box_num) SIL_REW_IOP_CANC_0_BASE((CANC_RXMBOX_DATA0_REG + (0x0010U * (box_num))))
95#define CANC_RD_RXMBOX_DATA1_REG(box_num) SIL_REW_IOP_CANC_0_BASE((CANC_RXMBOX_DATA1_REG + (0x0010U * (box_num))))
96#define CANC_RD_RXMBOX_DATA2_REG(box_num) SIL_REW_IOP_CANC_0_BASE((CANC_RXMBOX_DATA2_REG + (0x0010U * (box_num))))
97#define CANC_RD_RXMBOX_DATA3_REG(box_num) SIL_REW_IOP_CANC_0_BASE((CANC_RXMBOX_DATA3_REG + (0x0010U * (box_num))))
98
99/* ‘ž‚Ý—pƒŒƒWƒXƒ^ƒAƒNƒZƒXƒ}ƒNƒ */
100#define CANC_WR_MODE_REG(data) SIL_WRW_IOP_CANC_0_BASE(CANC_MODE_REG, data)
101#define CANC_WR_TXREQ_REG(data) SIL_WRW_IOP_CANC_0_BASE(CANC_TXREQ_REG, data)
102#define CANC_WR_TXABORT_REG(data) SIL_WRW_IOP_CANC_0_BASE(CANC_TXABORT_REG, data)
103#define CANC_WR_TXCMP_REG(data) SIL_WRW_IOP_CANC_0_BASE(CANC_TXCMP_REG, data)
104#define CANC_WR_TXABORTCMP_REG(data) SIL_WRW_IOP_CANC_0_BASE(CANC_TXABORTCMP_REG, data)
105#define CANC_WR_RXWAIT_REG(data) SIL_WRW_IOP_CANC_0_BASE(CANC_RXWAIT_REG, data)
106#define CANC_WR_RXCMP_REG(data) SIL_WRW_IOP_CANC_0_BASE(CANC_RXCMP_REG, data)
107#define CANC_WR_RXSELFREQ_REG(data) SIL_WRW_IOP_CANC_0_BASE(CANC_RXSELFREQ_REG, data)
108#define CANC_WR_IRQ_EN_REG(data) SIL_WRW_IOP_CANC_0_BASE(CANC_IRQ_EN_REG, data)
109#define CANC_WR_IRQ_RXEN_REG(data) SIL_WRW_IOP_CANC_0_BASE(CANC_IRQ_RXEN_REG, data)
110#define CANC_WR_CLKDIV_BUSTIM_REG(data) SIL_WRW_IOP_CANC_0_BASE(CANC_CLKDIV_BUSTIM_REG, data)
111#define CANC_WR_ACCEPTANCE_CODE_REG(data) SIL_WRW_IOP_CANC_0_BASE(CANC_ACCEPTANCE_CODE_REG, data)
112#define CANC_WR_ACCEPTANCE_MASK_REG(data) SIL_WRW_IOP_CANC_0_BASE(CANC_ACCEPTANCE_MASK_REG, data)
113#define CANC_WR_ERROR_CNT_REG(data) SIL_WRW_IOP_CANC_0_BASE(CANC_ERROR_CNT_REG, data)
114#define CANC_WR_MBOXWIN_REG(box_num) SIL_WRW_IOP_CANC_0_BASE(CANC_MBOXWIN_REG, ((box_num) << 16))
115#define CANC_WR_RXMBOX_ACCEPTANCE_CODE_REG(data) SIL_WRW_IOP_CANC_0_BASE(CANC_RXMBOX_ACCEPTANCE_CODE_REG, data)
116#define CANC_WR_RXMBOX_ACCEPTANCE_MASK_REG(data) SIL_WRW_IOP_CANC_0_BASE(CANC_RXMBOX_ACCEPTANCE_MASK_REG, data)
117#define CANC_WR_TXMBOX_DATA0_REG(data, box_num) SIL_WRW_IOP_CANC_0_BASE((CANC_TXMBOX_DATA0_REG + (0x0010U * (box_num))), data)
118#define CANC_WR_TXMBOX_DATA1_REG(data, box_num) SIL_WRW_IOP_CANC_0_BASE((CANC_TXMBOX_DATA1_REG + (0x0010U * (box_num))), data)
119#define CANC_WR_TXMBOX_DATA2_REG(data, box_num) SIL_WRW_IOP_CANC_0_BASE((CANC_TXMBOX_DATA2_REG + (0x0010U * (box_num))), data)
120#define CANC_WR_TXMBOX_DATA3_REG(data, box_num) SIL_WRW_IOP_CANC_0_BASE((CANC_TXMBOX_DATA3_REG + (0x0010U * (box_num))), data)
121
122/*----------------------------------------------------------------------
123 ƒ}ƒNƒ’è‹`
124----------------------------------------------------------------------*/
125#define DIR_RECV ( 0 ) /* ŽóM•ûŒü */
126#define DIR_SEND ( 1 ) /* ‘—M•ûŒü */
127
128/* ƒXƒe[ƒ^ƒXŠÖŒW */
129#define STATUS_OK ( 0 )
130#define STATUS_ERROR ( 1 )
131
132#define STATUS_READY ( 2 )
133#define STATUS_SEND ( 3 )
134#define STATUS_RECV ( 4 )
135
136#define BYTE_LENGTH ( 4 )
137
138
139/*----------------------------------------------------------------------
140 ƒ^ƒCƒv’è‹`
141----------------------------------------------------------------------*/
142/* ƒXƒe[ƒ^ƒX */
143typedef uint8 STATUS;
144
145/*----------------------------------------------------------------------
146 ƒvƒƒgƒ^ƒCƒvéŒ¾
147----------------------------------------------------------------------*/
148extern STATUS NcanInit(uint8 no);
149extern void NcanEnable(uint8 no);
150extern void NcanDisable(uint8 no);
151extern STATUS NcanComStatus(uint8 no);
152extern STATUS NcanSetTxData(uint8 no, uint8 mb_num, uint8 id, uint8 *p_data, uint8 len );
153extern STATUS NcanGetRxData(uint8 no, uint8 mb_num, uint8 *p_data, uint8 *p_len );
154extern STATUS NcanSetMailBoxInfo(uint8 no, uint8 mb_num, uint8 direction,
155 uint8 ide, uint32 id, uint8 mask, uint32 remote);
156
157extern void Ncan0InterruptRx(void);
158extern void Ncan0InterruptTx(void);
159
160/*----------------------------------------------------------------------
161 ƒOƒ[ƒoƒ‹•Ï”iŠO•”ŽQÆj
162----------------------------------------------------------------------*/
163
164#endif /* __NCES_CAN_H__ */
165
Note: See TracBrowser for help on using the repository browser.