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

📄 sdram.h

📁 基于AT91SAM7SE512cpu使用SDRAM的例子
💻 H
字号:
// ----------------------------------------------------------------------------
//         ATMEL Microcontroller Software Support  -  ROUSSET  -
// ----------------------------------------------------------------------------
// DISCLAIMER:  THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR
// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE
// DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT, INDIRECT,
// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
// OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
// EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
// ----------------------------------------------------------------------------
// File Name           : SDRAM.h
// Object              : MT48LC16M16A2 Features Definition File
// 1.0 18/May/06 JPP   : Creation
// ----------------------------------------------------------------------------

#ifndef SDRAM_H
#define SDRAM_H
#define AT91C_SDRAM_BASE 	((volatile unsigned int *)0x20000000)

//* Data bus definition MT48LC16M16A2   AT91SA7SE
#define DQ0             (unsigned int) AT91C_PC0_D0
#define DQ1             (unsigned int) AT91C_PC1_D1
#define DQ2             (unsigned int) AT91C_PC2_D2
#define DQ3             (unsigned int) AT91C_PC3_D3
#define DQ4             (unsigned int) AT91C_PC4_D4
#define DQ5             (unsigned int) AT91C_PC5_D5
#define DQ6             (unsigned int) AT91C_PC6_D6
#define DQ7             (unsigned int) AT91C_PC7_D7
#define DQ8             (unsigned int) AT91C_PC8_D8
#define DQ9             (unsigned int) AT91C_PC9_D9
#define DQ10            (unsigned int) AT91C_PC10_D10
#define DQ11            (unsigned int) AT91C_PC11_D11
#define DQ12            (unsigned int) AT91C_PC12_D12
#define DQ13            (unsigned int) AT91C_PC13_D13
#define DQ14            (unsigned int) AT91C_PC14_D14
#define DQ15            (unsigned int) AT91C_PC15_D15

//* Address bus definition MT48LC16M16A2   AT91SA7SE
//* 16 bits data interface unur 4 banks
#define DQML            (unsigned int) AT91C_PB0_A0_NBS0
#define DQMLH           (unsigned int) AT91C_PA23_NWR1_NBS1_CFIOR_NUB

#define DA0             (unsigned int) AT91C_PB2_A2
#define DA1             (unsigned int) AT91C_PB3_A3
#define DA2             (unsigned int) AT91C_PB4_A4
#define DA3             (unsigned int) AT91C_PB5_A5
#define DA4             (unsigned int) AT91C_PB6_A6
#define DA5             (unsigned int) AT91C_PB7_A7
#define DA6             (unsigned int) AT91C_PB8_A8
#define DA7             (unsigned int) AT91C_PB9_A9
#define DA8             (unsigned int) AT91C_PB10_A10
#define DA9             (unsigned int) AT91C_PB11_A11
#define DA10            (unsigned int) AT91C_PA24_SDA10  // PIO A
#define DA11            (unsigned int) AT91C_PB13_A13
#define DA12            (unsigned int) AT91C_PB14_A14

#define BA0             (unsigned int) AT91C_PB16_A16_BA0
#define BA1             (unsigned int) AT91C_PB17_A17_BA1


//* Control bus definition MT48LC16M16A2   AT91SA7SE
#define CKE             (unsigned int) AT91C_PA25_SDCKE
#define SDWE            (unsigned int) AT91C_PA27_SDWE
#define CAS             (unsigned int) AT91C_PA28_CAS
#define RAS             (unsigned int) AT91C_PA29_RAS

//* SDRAM Configuration MT48LC16M16A2

// Sdram Size	256 Mbits	32 Mbytes	8 MWords ( 4 bytes)
#define AT91C_SDRAM_SIZE_bits   ((256*1024*1024)/4)       // 256 Mbits
#define AT91C_SDRAM_SIZE        ((32*1024*1024)/4)     // 8 MWords (Unsigned int)


#define AT91C_SDRC_TWR_2    ((unsigned int) 0x2 <<  7) // (SDRC) Number of Write Recovery Time Cycles
#define AT91C_SDRC_TRC_4    ((unsigned int) 0x4 << 11) // (SDRC) Number of RAS Cycle Time Cycles 7
#define AT91C_SDRC_TRP_4    ((unsigned int) 0x4 << 15) // (SDRC) Number of RAS Precharge Time Cycles
#define AT91C_SDRC_TRCD_2   ((unsigned int) 0x2 << 19) // (SDRC) Number of RAS to CAS Delay Cycles 2
#define AT91C_SDRC_TRAS_3   ((unsigned int) 0x3 << 23) // (SDRC) Number of RAS Active Time Cycles 5
#define AT91C_SDRC_TXSR_4   ((unsigned int) 0x4 << 27) // (SDRC) Number of Command Recovery Time Cycles 8

// Refresh time 336 for 48MHz (TR= 15.6 * F ) 1/7 = 0.1428
// Refresh period (8,192 rows)
// Time 64ms	8192 row	Refresh period 祍 7,8125	nb cycles 375,00

#define AT91C_SDRC_TR_TIME  ((AT91B_MCK * 8) / 1000000)    // refresh time 384 ( 375+ 2%error)

//*----------------------------------------------------------------------------
//* External function prototype
//*----------------------------------------------------------------------------

extern void AT91F_EBI_SDRAM_CfgPIO(void);
extern void AT91F_InitSdram (void);

#endif	 //  SDRAM_H

⌨️ 快捷键说明

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