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

📄 setupdsp.c

📁 基于BF561的JS28F128 FLASH驱动
💻 C
字号:
#include "SetupDSP.h"
//#include "interrupt.h"
//#include "TestDevice.h"
//#include "cs4955.h"
#include "SetupPLL.h"
//#include "SetupFlash.h"
#include "syscfg.h"
//#include "types.h"
#include "define.h"

/*
int ExceptionWork(void* pParam)
{
	int nException;
	nException  = ((UBYTE)(UDWORD)pParam) << 16;
	errno       = DEVICE_SOFT_EXP;
	nException |= DEVICE_SOFT_EXP;

	//处理软件异常
	ProcessSystemState(nException);
	return 1;
}
*/

/*
void Default_ISR(void* pParam)
{
	//加系统出错处理
	WorkQAdd(ExceptionWork,pParam);
}
*/

//设置SDRAM-32m
void SetupSDRAM()
{
#define SDRAM_SCK1E		(1<<1)
#define SDRAM_SCTLE			(1  <<  0)
#define SDRAM_CL			(3  <<  2)
#define SDRAM_PASR			(3  <<  4)
#define SDRAM_TRAS			(3  <<  6)
#define SDRAM_TRP			(3  <<  11)
#define SDRAM_TRCD			(2  <<  15)
#define SDRAM_TWR			(3  <<  19)
#define SDRAM_PUPSD			(1  <<  21)	
#define SDRAM_PSM			(0  <<  22)		
#define SDRAM_PSSE			(0  <<  23)
#define SDRAM_SRFS			(0  <<  24)
#define SDRAM_EBUFE			(0  <<  25)
#define SDRAM_FBBRW			(0  <<  26)
#define SDRAM_EMREN			(1  <<  28)
#define SDRAM_TCSR			(1  <<  29)
#define SDRAM_CDDBG			(0  <<  30)

#if SDRAM_INIT_EN && (!RUN_IN_EZKITS)
	//if((*pEBIU_SDSTAT) & SDRS)
	{
		//我们的SDRAM mt48lc8m16a2 运行在SYS_CLOCK,4096 row
		//RDIV= (fSCLK*tREF)/NRA - (tRAS+tRP) = (SYS_CLOCK /1000) * 64ms /4096 -(tRAS + tRP)
		int dwSDGCTL;
		*pEBIU_SDRRC  = (SYS_CLOCK/1000)*64/(4096) - ((SDRAM_TRAS >> 6) + (SDRAM_TRP >> 11));		
		
		asm("ssync;");
	
		//SDRAM为8*16M bits,挂在bank 0,column width = 9bits
		//注意,因SDRAM为16bit,故SDRAM的存取,我们只能按16bit进行存取
		*pEBIU_SDBCTL = 0x13;// 9bit column ,32mbyte
		asm("ssync;");
	
		// *pEBIU_SDGCTL = 0x0091998D;
		dwSDGCTL      = SDRAM_SCTLE | SDRAM_SCK1E|SDRAM_CL | SDRAM_PASR | SDRAM_TRAS | SDRAM_TRP | SDRAM_TRCD |\
						SDRAM_TWR | SDRAM_PUPSD | SDRAM_PSM | SDRAM_PSSE | SDRAM_SRFS | SDRAM_EBUFE |\
						SDRAM_FBBRW | SDRAM_EMREN | SDRAM_TCSR | SDRAM_CDDBG;
		*pEBIU_SDGCTL = dwSDGCTL;
		asm("ssync;");
	}
#endif//SDRAM_INIT_EN					
}

/*
// 函数名称: SetupEBIU
// 函数说明: 设置EBIU
// 返回值  : void  :  无
*/
void SetupEBIU()
{
	/************************************************
		ASYNC 0: 挂2MB Flash,地址空间从0x2000,0000 --- 0x2020,0000	
	*************************************************/
	//*pEBIU_AMBCTL0	= 0x0000FFC0;
	//*pEBIU_AMGCTL	= 0x00F2;

	*pEBIU_AMBCTL0	= 0xFFC0FFC0;
	*pEBIU_AMBCTL1  = 0xFFC0FFC0;
	//*pEBIU_AMGCTL	= 0x00B6;//0,1,2
	*pEBIU_AMGCTL	= 0x00F8;//0,1,2,3, --16bit
}



void SetupDSP()
{	
	//SetupPLL(CORE_CLOCK/EXTERN_CLOCK,CORE_CLOCK/SYS_CLOCK);
	SetupEBIU();
	SetupSDRAM();
//	SetupCS4955();
//	SetupInterrupt();

}

⌨️ 快捷键说明

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