OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [rtos/] [freertos-6.1.1/] [Demo/] [ARM7_AT91FR40008_GCC/] [usart.h] - Blame information for rev 577

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 577 jeremybenn
//*----------------------------------------------------------------------------
2
//*         ATMEL Microcontroller Software Support  -  ROUSSET  -
3
//*----------------------------------------------------------------------------
4
//* The software is delivered "AS IS" without warranty or condition of any
5
//* kind, either express, implied or statutory. This includes without
6
//* limitation any warranty or condition with respect to merchantability or
7
//* fitness for any particular purpose, or against the infringements of
8
//* intellectual property rights of others.
9
//*-----------------------------------------------------------------------------
10
//* File Name           : usart.h
11
//* Object              : USART Header File.
12
//*
13
//* 1.0 01/04/00 JCZ    : Creation
14
//*----------------------------------------------------------------------------
15
 
16
#ifndef usart_h
17
#define usart_h
18
 
19
//#include    "periph/stdc/std_c.h"
20
//#include    "periph/pio/lib_pio.h"
21
 
22
/*-------------------------------------------*/
23
/* USART User Interface Structure Definition */
24
/*-------------------------------------------*/
25
 
26
typedef struct
27
{
28
    at91_reg            US_CR ;         /* Control Register */
29
    at91_reg            US_MR ;         /* Mode Register */
30
    at91_reg            US_IER ;        /* Interrupt Enable Register */
31
    at91_reg            US_IDR ;        /* Interrupt Disable Register */
32
    at91_reg            US_IMR ;        /* Interrupt Mask Register */
33
    at91_reg            US_CSR ;        /* Channel Status Register */
34
    at91_reg            US_RHR ;        /* Receive Holding Register */
35
    at91_reg            US_THR ;        /* Transmit Holding Register */
36
    at91_reg            US_BRGR ;       /* Baud Rate Generator Register */
37
    at91_reg            US_RTOR ;       /* Receiver Timeout Register */
38
    at91_reg            US_TTGR ;       /* Transmitter Time-guard Register */
39
    at91_reg            Reserved ;
40
    at91_reg            US_RPR ;        /* Receiver Pointer Register */
41
    at91_reg            US_RCR ;        /* Receiver Counter Register */
42
    at91_reg            US_TPR ;        /* Transmitter Pointer Register */
43
    at91_reg            US_TCR ;        /* Transmitter Counter Register */
44
} StructUSART ;
45
 
46
/*--------------------------*/
47
/* US_CR : Control Register */
48
/*--------------------------*/
49
 
50
#define US_RSTRX                0x0004      /* Reset Receiver */
51
#define US_RSTTX                0x0008      /* Reset Transmitter */
52
#define US_RXEN                 0x0010      /* Receiver Enable */
53
#define US_RXDIS                0x0020      /* Receiver Disable */
54
#define US_TXEN                 0x0040      /* Transmitter Enable */
55
#define US_TXDIS                0x0080      /* Transmitter Disable */
56
#define US_RSTSTA               0x0100      /* Reset Status Bits */
57
#define US_STTBRK               0x0200      /* Start Break */
58
#define US_STPBRK               0x0400      /* Stop Break */
59
#define US_STTTO                0x0800      /* Start Time-out */
60
#define US_SENDA                0x1000      /* Send Address */
61
 
62
/*-----------------------*/
63
/* US_MR : Mode Register */
64
/*-----------------------*/
65
 
66
#define US_CLKS                 0x0030      /* Clock Selection */
67
#define US_CLKS_MCK             0x00        /* Master Clock */
68
#define US_CLKS_MCK8            0x10        /* Master Clock divided by 8 */
69
#define US_CLKS_SCK             0x20        /* External Clock */
70
#define US_CLKS_SLCK            0x30        /* Slow Clock */
71
 
72
#define US_CHRL                 0x00C0      /* Byte Length */
73
#define US_CHRL_5               0x00        /* 5 bits */
74
#define US_CHRL_6               0x40        /* 6 bits */
75
#define US_CHRL_7               0x80        /* 7 bits */
76
#define US_CHRL_8               0xC0        /* 8 bits */
77
 
78
#define US_SYNC                 0x0100      /* Synchronous Mode Enable */
79
 
80
#define US_PAR                  0x0E00      /* Parity Mode */
81
#define US_PAR_EVEN             0x00        /* Even Parity */
82
#define US_PAR_ODD              0x200       /* Odd Parity */
83
#define US_PAR_SPACE            0x400       /* Space Parity to 0 */
84
#define US_PAR_MARK             0x600       /* Marked Parity to 1 */
85
#define US_PAR_NO               0x800       /* No Parity */
86
#define US_PAR_MULTIDROP        0xC00       /* Multi-drop Mode */
87
 
88
#define US_NBSTOP               0x3000      /* Stop Bit Number */
89
#define US_NBSTOP_1             0x0000      /* 1 Stop Bit */
90
#define US_NBSTOP_1_5           0x1000      /* 1.5 Stop Bits */
91
#define US_NBSTOP_2             0x2000      /* 2 Stop Bits */
92
 
93
#define US_CHMODE                   0xC000  /* Channel Mode */
94
#define US_CHMODE_NORMAL            0x0000  /* Normal Mode */
95
#define US_CHMODE_AUTOMATIC_ECHO    0x4000  /* Automatic Echo */
96
#define US_CHMODE_LOCAL_LOOPBACK    0x8000  /* Local Loopback */
97
#define US_CHMODE_REMOTE_LOOPBACK   0xC000  /* Remote Loopback */
98
 
99
#define US_MODE9                0x20000     /* 9 Bit Mode */
100
 
101
#define US_CLKO                 0x40000     /* Baud Rate Output Enable */
102
 
103
/* Mode Register model */
104
 
105
/* Standard Asynchronous Mode : 8 bits , 1 stop , no parity */
106
#define US_ASYNC_MODE ( US_CHMODE_NORMAL + \
107
                        US_NBSTOP_1 + \
108
                        US_PAR_NO + \
109
                        US_CHRL_8 + \
110
                        US_CLKS_MCK )
111
 
112
/* Standard External Asynchronous Mode : 8 bits , 1 stop , no parity */
113
#define US_ASYNC_SCK_MODE ( US_CHMODE_NORMAL + \
114
                            US_NBSTOP_1 + \
115
                            US_PAR_NO + \
116
                            US_CHRL_8 + \
117
                            US_CLKS_SCK )
118
 
119
/* Standard Synchronous Mode : 8 bits , 1 stop , no parity */
120
#define US_SYNC_MODE ( US_SYNC + \
121
                       US_CHMODE_NORMAL + \
122
                       US_NBSTOP_1 + \
123
                       US_PAR_NO + \
124
                       US_CHRL_8 + \
125
                       US_CLKS_MCK )
126
 
127
/* SCK used Label */
128
#define SCK_USED (US_CLKO | US_CLKS_SCK)
129
 
130
/*---------------------------------------------------------------*/
131
/* US_IER, US_IDR, US_IMR, US_IMR: Status and Interrupt Register */
132
/*---------------------------------------------------------------*/
133
 
134
#define US_RXRDY            0x1       /* Receiver Ready */
135
#define US_TXRDY            0x2       /* Transmitter Ready */
136
#define US_RXBRK            0x4       /* Receiver Break */
137
#define US_ENDRX            0x8       /* End of Receiver PDC Transfer */
138
#define US_ENDTX            0x10       /* End of Transmitter PDC Transfer */
139
#define US_OVRE             0x20       /* Overrun Error */
140
#define US_FRAME            0x40       /* Framing Error */
141
#define US_PARE             0x80       /* Parity Error */
142
#define US_TIMEOUT          0x100       /* Receiver Timeout */
143
#define US_TXEMPTY          0x200       /* Transmitter Empty */
144
 
145
#define US_MASK_IRQ_TX      (US_TXRDY | US_ENDTX | US_TXEMPTY)
146
#define US_MASK_IRQ_RX      (US_RXRDY | US_ENDRX | US_TIMEOUT)
147
#define US_MASK_IRQ_ERROR   (US_PARE | US_FRAME | US_OVRE | US_RXBRK)
148
 
149
 
150
 
151
#endif /* usart_h */

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.