📄 mcf5307.h
字号:
#define MCF5307_DRAMC_DCR_COC (0x1000) /* Command on Clock Enable */
#define MCF5307_DRAMC_DCR_IS (0x0800) /* Initiate Self Refresh Command */
#define MCF5307_DRAMC_DCR_RTIM_3 (0x0000) /* 3 Clocks Between REF and ACTV Cmds */
#define MCF5307_DRAMC_DCR_RTIM_6 (0x0200) /* 6 Clocks Between REF and ACTV Cmds */
#define MCF5307_DRAMC_DCR_RTIM_9 (0x0400) /* 9 Clocks Between REF and ACTV Cmds */
#define MCF5307_DRAMC_DACR_CASL_1 (0x00000000) /* 1 Clock From CAS to Data */
#define MCF5307_DRAMC_DACR_CASL_2 (0x00001000) /* 2 Clock From CAS to Data */
#define MCF5307_DRAMC_DACR_CASL_3 (0x00002000) /* 3 Clock From CAS to Data */
#define MCF5307_DRAMC_DACR_CBM(a) (((a)&0x00000007)<<8) /* Command and Bank Mux */
#define MCF5307_DRAMC_DACR_IMRS (0x00000040) /* Initiate Mode Register Set Cmd */
#define MCF5307_DRAMC_DACR_IP (0x00000008) /* Initiate Precharge All Command */
#define MCF5307_DRAMC_DACR_PM (0x00000004) /* Continuous Page Mode */
/************************************************************************/
/* */
/* Timer Registers */
/* */
/************************************************************************/
typedef volatile struct
{
NATURAL32 reserved0[0x50];
NATURAL16 TMR1; /* Timer 1 Mode Register */
NATURAL16 reserved1;
NATURAL16 TRR1; /* Timer 1 Reference Register */
NATURAL16 reserved2;
NATURAL16 TCR1; /* Timer 1 Capture Register */
NATURAL16 reserved3;
NATURAL16 TCN1; /* Timer 1 Counter */
NATURAL16 reserved4;
NATURAL8 reserved5;
NATURAL8 TER1; /* Timer 1 Event Register */
NATURAL16 reserved6;
NATURAL32 reserved7[0xb];
NATURAL16 TMR2; /* Timer 2 Mode Register */
NATURAL16 reserved8;
NATURAL16 TRR2; /* Timer 2 Reference Register */
NATURAL16 reserved9;
NATURAL16 TCR2; /* Timer 2 Capture Register */
NATURAL16 reserved10;
NATURAL16 TCN2; /* Timer 2 Counter */
NATURAL16 reserved11;
NATURAL8 reserved12;
NATURAL8 TER2; /* Timer 2 Event Register */
} MCF5307_TIMER;
#define MCF5307_TIMER_TMR_PS(a) (((a)&0x00FF)<<8) /* Prescaler Value */
#define MCF5307_TIMER_TMR_CE_ANY (0x00C0) /* Capture on Any Edge */
#define MCF5307_TIMER_TMR_CE_FALL (0x0080) /* Capture on Falling Edge */
#define MCF5307_TIMER_TMR_CE_RISE (0x0040) /* Capture on Rising Edge */
#define MCF5307_TIMER_TMR_CE_NONE (0x0000) /* Disable Capture Event */
#define MCF5307_TIMER_TMR_OM (0x0020) /* Output Mode */
#define MCF5307_TIMER_TMR_ORI (0x0010) /* Output Reference Interrupt Enable */
#define MCF5307_TIMER_TMR_FRR (0x0008) /* Restart After Reference Value */
#define MCF5307_TIMER_TMR_CLK_TIN (0x0006) /* TIN is Input Clock Source */
#define MCF5307_TIMER_TMR_CLK_DIV16 (0x0004) /* Sys Clk / 16 is Input Clock Source */
#define MCF5307_TIMER_TMR_CLK_MSCLK (0x0002) /* Sys Clk is Input Clock Source */
#define MCF5307_TIMER_TMR_CLK_STOP (0x0000) /* Stop Count */
#define MCF5307_TIMER_TMR_RST (0x0001) /* Enable Timer */
/* H to L will Reset Registers */
#define MCF5307_TIMER_TER_REF (0x02) /* Output Reference Event */
#define MCF5307_TIMER_TER_CAP (0x01) /* Capture Event */
/****************************************************************************************/
/* */
/* UART Registers */
/* Several UART registers contain overlapped information for receiving (reads) and */
/* transmitting (writes). To see the programming process, please refer to the */
/* User's manual. */
/* */
/****************************************************************************************/
typedef volatile struct
{
NATURAL32 reserved0[0x70];
NATURAL8 UMR11_UMR21; /* UART 1 (Receive / Transmit) Mode Register */
NATURAL8 reserved1;
NATURAL16 reserved2;
NATURAL8 USR1_UCSR1; /* UART 1 (Status / Clock-Select) Register */
NATURAL8 reserved3;
NATURAL16 reserved4;
NATURAL8 UCR1; /* UART 1 ( -- / Command) Register */
NATURAL8 reserved5;
NATURAL16 reserved6;
NATURAL8 URB1_UTB1; /* UART 1 (Receive / Transmit) Buffer */
NATURAL8 reserved7;
NATURAL16 reserved8;
NATURAL8 UIPCR1_UACR1; /* UART 1 (Input Port Change / Aux Control) Reg */
NATURAL8 reserved9;
NATURAL16 reserved10;
NATURAL8 UISR1_UIMR1; /* UART 1 (Interrupt Status / Interrupt Mask) */
NATURAL8 reserved11;
NATURAL16 reserved12;
NATURAL8 UBG11; /* UART 1 Baud Rate Generator Prescale MSB */
NATURAL8 reserved13;
NATURAL16 reserved14;
NATURAL8 UBG21; /* UART 1 Baud Rate Generator Prescale LSB */
/* The minimum value for UBG concatenated is 2 */
NATURAL8 reserved15;
NATURAL16 reserved16;
NATURAL32 reserved17[4];
NATURAL8 UIVR1; /* UART 1 (Interrupt Vector / ") Register */
NATURAL8 reserved18;
NATURAL16 reserved19;
NATURAL8 UIP1; /* UART 1 (Input Port / --) Register */
NATURAL8 reserved20;
NATURAL16 reserved21;
NATURAL8 UOP11; /* UART 1 (-- / Output Port Bit Set Command) */
NATURAL8 reserved22;
NATURAL16 reserved23;
NATURAL8 UOP01; /* UART 1 (-- / Output Port Bit Reset Command) */
} MCF5307_UART1;
typedef volatile struct
{
NATURAL32 reserved0[0x80];
NATURAL8 UMR12_UMR22; /* UART 2 (Receive / Transmit) Mode Register */
NATURAL8 reserved1;
NATURAL16 reserved2;
NATURAL8 USR2_UCSR2; /* UART 2 (Status / Clock-Select) Register */
NATURAL8 reserved3;
NATURAL16 reserved4;
NATURAL8 UCR2; /* UART 2 ( -- / Command) Register */
NATURAL8 reserved5;
NATURAL16 reserved6;
NATURAL8 URB2_UTB2; /* UART 2 (Receive / Transmit) Buffer */
NATURAL8 reserved7;
NATURAL16 reserved8;
NATURAL8 UIPCR2_UACR2; /* UART 2 (Input Port Change / Aux Control) Reg */
NATURAL8 reserved9;
NATURAL16 reserved10;
NATURAL8 UISR2_UIMR2; /* UART 2 (Interrupt Status / Interrupt Mask) */
NATURAL8 reserved11;
NATURAL16 reserved12;
NATURAL8 UBG12; /* UART 2 Baud Rate Generator Prescale MSB */
NATURAL8 reserved13;
NATURAL16 reserved14;
NATURAL8 UBG22; /* UART 2 Baud Rate Generator Prescale LSB */
/* The minimum value for UBG concatenated is 2 */
NATURAL8 reserved15;
NATURAL16 reserved16;
NATURAL32 reserved17[4];
NATURAL8 UIVR2; /* UART 2 (Interrupt Vector / ") Register */
NATURAL8 reserved18;
NATURAL16 reserved19;
NATURAL8 UIP2; /* UART 2 (Input Port / --) Register */
NATURAL8 reserved20;
NATURAL16 reserved21;
NATURAL8 UOP12; /* UART 2 (-- / Output Port Bit Set Command) */
NATURAL8 reserved22;
NATURAL16 reserved23;
NATURAL8 UOP02; /* UART 2 (-- / Output Port Bit Reset Command) */
} MCF5307_UART2;
/***********************************************************************/
/* */
/* In the first register, UMR1 is for reads and UMR2 is for writes. */
/* */
/***********************************************************************/
#define MCF5307_UART_UMR1_RXRTS (0x80) /* Receive Request-to-Send */
#define MCF5307_UART_UMR1_RXIRQ (0x40) /* Receive Interrupt Select */
#define MCF5307_UART_UMR1_ERR (0x20) /* Error Mode */
#define MCF5307_UART_UMR1_PM_MULTI_ADDR (0x1C) /* Parity: Multidrop Adr Char */
#define MCF5307_UART_UMR1_PM_MULTI_DATA (0x18) /* Parity: Multidrop Data Char */
#define MCF5307_UART_UMR1_PM_NONE (0x10) /* Parity: None */
#define MCF5307_UART_UMR1_PM_FORCE_HI (0x0C) /* Parity: Force High */
#define MCF5307_UART_UMR1_PM_FORCE_LO (0x08) /* Parity: Force Low */
#define MCF5307_UART_UMR1_PM_ODD (0x04) /* Parity: Odd Parity */
#define MCF5307_UART_UMR1_PM_EVEN (0x00) /* Parity: Even Parity */
#define MCF5307_UART_UMR1_BC_5 (0x00) /* 5 Bits Per Character */
#define MCF5307_UART_UMR1_BC_6 (0x01) /* 6 Bits Per Character */
#define MCF5307_UART_UMR1_BC_7 (0x02) /* 7 Bits Per Character */
#define MCF5307_UART_UMR1_BC_8 (0x03) /* 8 Bits Per Character */
#define MCF5307_UART_UMR2_CM_NORMAL (0x00) /* Normal Channel Mode */
#define MCF5307_UART_UMR2_CM_ECHO (0x40) /* Automatic Echo Channel Mode */
#define MCF5307_UART_UMR2_CM_LOCAL_LOOP (0x80) /* Local Loopback Channel Mode */
#define MCF5307_UART_UMR2_CM_REMOTE_LOOP (0xC0) /* Remote Loopback Channel Mode */
#define MCF5307_UART_UMR2_TXRTS (0x20) /* Transmitter Ready-to-Send */
#define MCF5307_UART_UMR2_TXCTS (0x10) /* Transmitter Clear-to-Send */
#define MCF5307_UART_UMR2_STOP_BITS_2 (0x0F) /* 2 Stop Bits */
#define MCF5307_UART_UMR2_STOP_BITS(a) ((a)&0x0f) /* Stop Bit Length */
/***********************************************************************/
/* */
/* In this next register, USR is for reads and UCSR is for writes. */
/* */
/***********************************************************************/
#define MCF5307_UART_USR_RB (0x80) /* Received Break */
#define MCF5307_UART_USR_FE (0x40) /* Framing Error */
#define MCF5307_UART_USR_PE (0x20) /* Parity Error */
#define MCF5307_UART_USR_OE (0x10) /* Overrun Error */
#define MCF5307_UART_USR_TXEMP (0x08) /* Transmitter Empty */
#define MCF5307_UART_USR_TXRDY (0x04) /* Transmitter Ready */
#define MCF5307_UART_USR_FFULL (0x02) /* FIFO Full */
#define MCF5307_UART_USR_RXRDY (0x01) /* Receiver Ready */
#define MCF5307_UART_UCSR_9600_BPS (0xBB) /* 9600 Baud w/ 3.6864 MHz clk */
#define MCF5307_UART_UCSR_RCS(a) (((a)&0x0f)<<4) /* Receiver Clk Select */
#define MCF5307_UART_UCSR_TCS(a) ((a)&0x0f) /* Transmitter Clock Select */
/***********************************************************************/
/* */
/* In this next register, there is only UCR is for writes. */
/* */
/***********************************************************************/
#define MCF5307_UART_UCR_NONE (0x00) /* No Command */
#define MCF5307_UART_UCR_STOP_BREAK (0x70) /* Stop Break */
#define MCF5307_UART_UCR_START_BREAK (0x60) /* Start Break */
#define MCF5307_UART_UCR_RESET_BKCHGINT (0x50) /* Reset Break-Change Interrupt */
#define MCF5307_UART_UCR_RESET_ERROR (0x40) /* Reset Error Status */
#define MCF5307_UART_UCR_RESET_TX (0x30) /* Reset Transmitter */
#define MCF5307_UART_UCR_RESET_RX (0x20) /* Reset Receiver */
#define MCF5307_UART_UCR_RESET_MR (0x10) /* Reset Mode Register Pointer */
#define MCF5307_UART_UCR_TX_DISABLED (0x08) /* Transmitter Disabled */
#define MCF5307_UART_UCR_TX_ENABLED (0x04) /* Transmitter Enabled */
#define MCF5307_UART_UCR_RX_DISABLED (0x02) /* Receiver Disabled */
#define MCF5307_UART_UCR_RX_ENABLED (0x01) /* Receiver Enabled */
/***********************************************************************/
/* */
/* In this next register, UIPCR is for reads and UACR is for writes. */
/* */
/***********************************************************************/
#define MCF5307_UART_UIPCR_COS (0x10) /* Change-of-State at IPx input */
#define MCF5307_UART_UIPCR_CTS (0x01) /* Current State of CTS pin */
#define MCF5307_UART_UACR_BRG (0x80) /* Set 2 of Baud Rate Generator */
#define MCF5307_UART_UACR_CTMS_TIMER (0x60) /* Timer Mode and Source Select */
/* Must set this mode and src */
#define MCF5307_UART_UACR_IEC (0x01) /* Input Enable Control */
/***********************************************************************/
/* */
/* In this next register, UISR is for reads and UIMR is for writes. */
/* */
/***********************************************************************/
#define MCF5307_UART_UISR_COS (0x80) /* Change-of-State at CTS input */
#define MCF5307_UART_UISR_DB (0x04) /* Receiver Has Detected Break */
#define MCF5307_UART_UISR_RXRDY (0x02) /* Receiver Ready or FIFO Full */
#define MCF5307_UART_UISR_TXRDY (0x01) /* Transmitter Ready */
#define MCF5307_UART_UIMR_COS (0x80) /* Enable Change-of-State Intpt */
#define MCF5307_UART_UIMR_DB (0x04) /* Enable Delta Break Interrupt */
#define MCF5307_UART_UIMR_FFULL (0x02) /* Enable FIFO Full Interrupt */
#define MCF5307_UART_UIMR_TXRDY (0x01) /* Enable Transmitter Rdy Intpt */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -