关于LM3S9B96 的EPI 不知道如何配置 采用16位模式 数据和地址复用方式, 外接一个4M SRAM 数据线16条 地址线用373锁存16条+EPIO17+片选(EPIO18),希望哪位能给我讲解下
请查阅数据手册和实例代码。
贴个例程给你,参考一下
/****************************************Copyright (c)****************************************************
** 捷恩斯威科技
** TEL:0755-83024605
**--------------File Info---------------------------------------------------------------------------------
** File Name: Main.c
** Last modified Date: 2011-05-31
** Last Version: 1.0
** Description: The main function example template 主函数例子模版
** 适用于LM3S9B96 EPI 使用外部Flash+SRAm board
**--------------------------------------------------------------------------------------------------------
** Created By: 彭博[mail:pengbo@jeansway.cn][phone:15112272786]
** Created date: 2011-05-31
** Version: 1.0
** Descriptions: The original version 初始版本
**
**--------------------------------------------------------------------------------------------------------
** Modified by:
** Modified date:
** Version:
** Description:
**
*********************************************************************************************************/
#include <include.h>
#include <extflash.h>
int main(void)
{
unsigned char ub_FlashDataCheck[8] = {0x11,0x22,0x33,0x44,0x55,0x66,0x77};
//================= 系统初始化 =================
SysCtlClockSet(SYSCTL_SYSDIV_2_5 | SYSCTL_USE_PLL | SYSCTL_OSC_MAIN |
SYSCTL_XTAL_16MHZ); //配置系统时钟为80MHz
SysCtlPeripheralEnable(SYSCTL_PERIPH_EPI0); //使能EPI模块
SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOC); //使能GPIO模块
SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOE);
SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOF);
SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOG);
SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOH);
SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOJ);
SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOB);
SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOD);
//============ 配置GPIO的电流及斜率 ============
GPIOPadConfigSet(GPIO_PORTB_BASE, GPIO_PIN_4|GPIO_PIN_5,
GPIO_STRENGTH_8MA, GPIO_PIN_TYPE_STD);
GPIODirModeSet(GPIO_PORTB_BASE, GPIO_PIN_4|GPIO_PIN_5,
GPIO_DIR_MODE_HW);
GPIOPadConfigSet(GPIO_PORTC_BASE, GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_6|GPIO_PIN_7,
GPIO_STRENGTH_8MA, GPIO_PIN_TYPE_STD);
GPIODirModeSet(GPIO_PORTC_BASE, GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_6|GPIO_PIN_7,
GPIO_DIR_MODE_HW);
GPIOPadConfigSet(GPIO_PORTD_BASE, GPIO_PIN_2|GPIO_PIN_3,
GPIO_STRENGTH_8MA, GPIO_PIN_TYPE_STD);
GPIODirModeSet(GPIO_PORTD_BASE, GPIO_PIN_2|GPIO_PIN_3,
GPIO_DIR_MODE_HW);
GPIOPadConfigSet(GPIO_PORTE_BASE, GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3,
GPIO_STRENGTH_8MA, GPIO_PIN_TYPE_STD);
GPIODirModeSet(GPIO_PORTE_BASE, GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3,
GPIO_DIR_MODE_HW);
GPIOPadConfigSet(GPIO_PORTF_BASE, GPIO_PIN_4|GPIO_PIN_5,
GPIO_STRENGTH_8MA, GPIO_PIN_TYPE_STD);
GPIODirModeSet(GPIO_PORTF_BASE, GPIO_PIN_4|GPIO_PIN_5,
GPIO_DIR_MODE_HW);
GPIOPadConfigSet(GPIO_PORTG_BASE, GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_7,
GPIO_STRENGTH_8MA, GPIO_PIN_TYPE_STD);
GPIODirModeSet(GPIO_PORTG_BASE, GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_7,
GPIO_DIR_MODE_HW);
GPIOPadConfigSet(GPIO_PORTH_BASE, 0xff,
GPIO_STRENGTH_8MA, GPIO_PIN_TYPE_STD);
GPIODirModeSet(GPIO_PORTH_BASE, 0xff,
GPIO_DIR_MODE_HW);
GPIOPadConfigSet(GPIO_PORTJ_BASE, GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3|GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_6,
GPIO_STRENGTH_8MA, GPIO_PIN_TYPE_STD);
GPIODirModeSet(GPIO_PORTJ_BASE, GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3|GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_6,
GPIO_DIR_MODE_HW);
//================== 配置GPIO为EPI=================
GPIOPinConfigure(GPIO_PH3_EPI0S0);
GPIOPinConfigure(GPIO_PH2_EPI0S1);
GPIOPinConfigure(GPIO_PC4_EPI0S2);
GPIOPinConfigure(GPIO_PC5_EPI0S3);
GPIOPinConfigure(GPIO_PC6_EPI0S4);
GPIOPinConfigure(GPIO_PC7_EPI0S5);
GPIOPinConfigure(GPIO_PH0_EPI0S6);
GPIOPinConfigure(GPIO_PH1_EPI0S7);
GPIOPinConfigure(GPIO_PE0_EPI0S8);
GPIOPinConfigure(GPIO_PE1_EPI0S9);
GPIOPinConfigure(GPIO_PH4_EPI0S10);
GPIOPinConfigure(GPIO_PH5_EPI0S11);
GPIOPinConfigure(GPIO_PF4_EPI0S12);
GPIOPinConfigure(GPIO_PG0_EPI0S13);
GPIOPinConfigure(GPIO_PG1_EPI0S14);
GPIOPinConfigure(GPIO_PF5_EPI0S15);
GPIOPinConfigure(GPIO_PJ0_EPI0S16);
GPIOPinConfigure(GPIO_PJ1_EPI0S17);
GPIOPinConfigure(GPIO_PJ2_EPI0S18);
GPIOPinConfigure(GPIO_PJ3_EPI0S19);
GPIOPinConfigure(GPIO_PD2_EPI0S20);
GPIOPinConfigure(GPIO_PD3_EPI0S21);
GPIOPinConfigure(GPIO_PB5_EPI0S22);
GPIOPinConfigure(GPIO_PB4_EPI0S23);
GPIOPinConfigure(GPIO_PE2_EPI0S24);
GPIOPinConfigure(GPIO_PE3_EPI0S25);
GPIOPinConfigure(GPIO_PH6_EPI0S26);
GPIOPinConfigure(GPIO_PH7_EPI0S27);
GPIOPinConfigure(GPIO_PJ4_EPI0S28);
GPIOPinConfigure(GPIO_PJ5_EPI0S29);
GPIOPinConfigure(GPIO_PJ6_EPI0S30);
GPIOPinConfigure(GPIO_PG7_EPI0S31);
//================== EPI配置 ===================
EPIModeSet(EPI0_BASE, EPI_MODE_HB8); //Flash + SRAM使用HB8模式
EPIDividerSet(EPI0_BASE, 1); //波特率等于系统时钟/2
EPIConfigHB8Set(EPI0_BASE,
EPI_HB8_MODE_ADMUX | //使用ADMUX子模式,地址/数据总线复用子模式
EPI_HB8_WRWAIT_0 | //无写等待态
EPI_HB8_RDWAIT_0 | //无读等待态
EPI_HB8_WORD_ACCESS| //使用字访问模式
EPI_HB8_CSCFG_ALE , //使用ALE配置,EPI0S30用作ALE,EPI0S26、27则由访问的地址确定
0); //无使用FIFO,无需设置
EPIAddressMapSet(EPI0_BASE,
EPI_ADDR_RAM_SIZE_256MB | //设置片外SRAM空间为256MB
EPI_ADDR_RAM_BASE_6); //设置自外SRAM的映射空间基地址为0x60000000
//==============================================
while(HWREG(EPI0_BASE + EPI_O_STAT) & EPI_STAT_INITSEQ)
{
}
if(ExtFlashPresent()!= true) //识别外部flash
{
}
ExtFlashBlockErase(0x60000000,1); //以0x60000000开始,擦除1个单位block空间
ExtFlashWrite(0x60000740,8,ub_FlashDataCheck); //从0x60000740开始写入8byte数据
while(1)
{}
}