⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 at91rm9200_i2c.h

📁 F:worksip2440a board可启动u-boot-like.tar.gz F:worksip2440a board可启动u-boot-like.tar.gz
💻 H
字号:
/* ---------------------------------------------------------------------------- *//*	    ATMEL Microcontroller Software Support  -  ROUSSET	-		*//* ---------------------------------------------------------------------------- *//*  The software is delivered "AS IS" without warranty or condition of any	*//*  kind, either express, implied or statutory. This includes without		*//*  limitation any warranty or condition with respect to merchantability or	*//*  fitness for any particular purpose, or against the infringements of		*//*  intellectual property rights of others.					*//* ---------------------------------------------------------------------------- *//* File Name	       : at91rm9200_i2c.h					*//* Object	       : AT91RM9200 / TWI definitions				*//* Generated	       : AT91 SW Application Group  12/03/2002 (10:48:02)	*//*										*//* ---------------------------------------------------------------------------- */#ifndef AT91RM9200_TWI_H#define AT91RM9200_TWI_H/* ******************************************************************************//*		SOFTWARE API DEFINITION	 FOR Two-wire Interface			*//* ******************************************************************************/#ifndef __ASSEMBLY__typedef struct _AT91S_TWI {	AT91_REG	 TWI_CR;	/* Control Register			*/	AT91_REG	 TWI_MMR;	/* Master Mode Register			*/	AT91_REG	 TWI_SMR;	/* Slave Mode Register			*/	AT91_REG	 TWI_IADR;	/* Internal Address Register		*/	AT91_REG	 TWI_CWGR;	/* Clock Waveform Generator Register	*/	AT91_REG	 Reserved0[3];	AT91_REG	 TWI_SR;	/* Status Register			*/	AT91_REG	 TWI_IER;	/* Interrupt Enable Register		*/	AT91_REG	 TWI_IDR;	/* Interrupt Disable Register		*/	AT91_REG	 TWI_IMR;	/* Interrupt Mask Register		*/	AT91_REG	 TWI_RHR;	/* Receive Holding Register		*/	AT91_REG	 TWI_THR;	/* Transmit Holding Register		*/	AT91_REG	 Reserved1[50];	AT91_REG	 TWI_RPR;	/* Receive Pointer Register		*/	AT91_REG	 TWI_RCR;	/* Receive Counter Register		*/	AT91_REG	 TWI_TPR;	/* Transmit Pointer Register		*/	AT91_REG	 TWI_TCR;	/* Transmit Counter Register		*/	AT91_REG	 TWI_RNPR;	/* Receive Next Pointer Register	*/	AT91_REG	 TWI_RNCR;	/* Receive Next Counter Register	*/	AT91_REG	 TWI_TNPR;	/* Transmit Next Pointer Register	*/	AT91_REG	 TWI_TNCR;	/* Transmit Next Counter Register	*/	AT91_REG	 TWI_PTCR;	/* PDC Transfer Control Register	*/	AT91_REG	 TWI_PTSR;	/* PDC Transfer Status Register		*/} AT91S_TWI, *AT91PS_TWI;#endif/* -------- TWI_CR : (TWI Offset: 0x0) TWI Control Register --------		*/#define AT91C_TWI_START (0x1 <<	 0)	/* (TWI) Send a START Condition		*/#define AT91C_TWI_STOP	(0x1 <<	 1)	/* (TWI) Send a STOP Condition		*/#define AT91C_TWI_MSEN	(0x1 <<	 2)	/* (TWI) TWI Master Transfer Enabled	*/#define AT91C_TWI_MSDIS (0x1 <<	 3)	/* (TWI) TWI Master Transfer Disabled	*/#define AT91C_TWI_SVEN	(0x1 <<	 4)	/* (TWI) TWI Slave Transfer Enabled	*/#define AT91C_TWI_SVDIS (0x1 <<	 5)	/* (TWI) TWI Slave Transfer Disabled	*/#define AT91C_TWI_SWRST (0x1 <<	 7)	/* (TWI) Software Reset		*//* -------- TWI_MMR : (TWI Offset: 0x4) TWI Master Mode Register --------	*/#define AT91C_TWI_IADRSZ      (0x3 <<  8) /* (TWI) Internal Device Address Size */#define	  AT91C_TWI_IADRSZ_NO	  (0x0 <<  8) /* (TWI) No internal device address	*/#define	  AT91C_TWI_IADRSZ_1_BYTE (0x1 <<  8) /* (TWI) One-byte internal device address */#define	  AT91C_TWI_IADRSZ_2_BYTE (0x2 <<  8) /* (TWI) Two-byte internal device address */#define	  AT91C_TWI_IADRSZ_3_BYTE (0x3 <<  8) /* (TWI) Three-byte internal device address */#define AT91C_TWI_MREAD (0x1 << 12)	/* (TWI) Master Read Direction		*/#define AT91C_TWI_DADR	(0x7F <<  6)	/* (TWI) Device Address			*//* -------- TWI_SMR : (TWI Offset: 0x8) TWI Slave Mode Register --------	*/#define AT91C_TWI_SADR	(0x7F << 16)	/* (TWI) Slave Device Address		*//* -------- TWI_CWGR : (TWI Offset: 0x10) TWI Clock Waveform Generator Register --------	*/#define AT91C_TWI_CLDIV	 (0xFF <<  0)	/* (TWI) Clock Low Divider		*/#define AT91C_TWI_CHDIV	 (0xFF <<  8)	/* (TWI) Clock High Divider		*/#define AT91C_TWI_CKDIV	 (0x7 << 16)	/* (TWI) Clock Divider			*//* -------- TWI_SR : (TWI Offset: 0x20) TWI Status Register --------		*/#define AT91C_TWI_TXCOMP (0x1 <<  0)	/* (TWI) Transmission Completed		*/#define AT91C_TWI_RXRDY	 (0x1 <<  1)	/* (TWI) Receive holding register ReaDY */#define AT91C_TWI_TXRDY	 (0x1 <<  2)	/* (TWI) Transmit holding register ReaDY*/#define AT91C_TWI_SVREAD (0x1 <<  3)	/* (TWI) Slave Read			*/#define AT91C_TWI_SVACC	 (0x1 <<  4)	/* (TWI) Slave Access			*/#define AT91C_TWI_GCACC	 (0x1 <<  5)	/* (TWI) General Call Access		*/#define AT91C_TWI_OVRE	 (0x1 <<  6)	/* (TWI) Overrun Error			*/#define AT91C_TWI_UNRE	 (0x1 <<  7)	/* (TWI) Underrun Error			*/#define AT91C_TWI_NACK	 (0x1 <<  8)	/* (TWI) Not Acknowledged		*/#define AT91C_TWI_ARBLST (0x1 <<  9)	/* (TWI) Arbitration Lost		*//* -------- TWI_IER : (TWI Offset: 0x24) TWI Interrupt Enable Register -------- *//* -------- TWI_IDR : (TWI Offset: 0x28) TWI Interrupt Disable Register ------- *//* -------- TWI_IMR : (TWI Offset: 0x2c) TWI Interrupt Mask Register --------	*//*    i2c Support for Atmel's AT91RM9200 Two-Wire Interface    (c) Rick Bronson    This program is free software; you can redistribute it and/or modify    it under the terms of the GNU General Public License as published by    the Free Software Foundation; either version 2 of the License, or    (at your option) any later version.    This program is distributed in the hope that it will be useful,    but WITHOUT ANY WARRANTY; without even the implied warranty of    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the    GNU General Public License for more details.    You should have received a copy of the GNU General Public License    along with this program; if not, write to the Free Software    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.*/#ifndef AT91_I2C_H#define AT91_I2C_H#define AT91C_TWI_CLOCK		100000#define AT91C_TWI_SCLOCK	(10 * AT91C_MASTER_CLOCK / AT91C_TWI_CLOCK)#define AT91C_TWI_CKDIV1	(2 << 16)	/* TWI clock divider.  NOTE: see Errata #22 */#if (AT91C_TWI_SCLOCK % 10) >= 5#define AT91C_TWI_CLDIV2 ((AT91C_TWI_SCLOCK / 10) - 5)#else#define AT91C_TWI_CLDIV2 ((AT91C_TWI_SCLOCK / 10) - 6)#endif#define AT91C_TWI_CLDIV3 ((AT91C_TWI_CLDIV2 + (4 - AT91C_TWI_CLDIV2 % 4)) >> 2)#define AT91C_EEPROM_I2C_ADDRESS	(0x50 << 16)#endif	/* __ASSEMBLY__ */#endif	/* AT91RM9200_TWI_H */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -