Stellaris LM3Sxxx------EPI【2】

上一篇Blog 讲到HB8地址数据不复用模式 ,Go on !

HB8 地址数据不复用的优点在于其支持传统的8位/16位并行接口(常见于8051单片机、PIC单片机、AVR单片机
或SRAM设备)。这种类型的总线通常是异步总线,通常以选通信号控制总线行为。

接下来我要介绍的是HB8模式下的另一种模式:FIFO模式。FIFO模式可用于访问各种集成了无地址FIFO的8位/
16位接口外设。支持片外FIFO(External FIFO 简称 XFIFO)的EMPTY和FULL信号。

FIFO模式与普通读写访问一样,只是不存在ALE信号和地址管脚。可使用两个输入信号来指示XFIFO是否为满,
以便控制传输情况,避免上溢与下溢。FFULL信号与FEMPTY信号均视为同步信号,一旦其生效,微控制器必须
在2个时钟周期内识别出跳变并及时处理,防止其影响数据会话状态。通过EPIHBnCFG寄存器的MAXWAIT位设置
允许FEMPTY信号和FFULL信号阻塞数据会话过程的最长等待时间(以EPI时钟周期为单位)。下图是FEMPTY信
号应该如何响应来自XFIFO的写和读操作:


下图是传输两个数据时序图:


在单片机引脚配置的时候需要注意:数据线D0~D7或者D0~D15,FFULL、FEMPTY信号、WR、RD、CS信号必
不可少,下图是EPI引脚图:



奉上XFIFO初始化代码:

<pre name="code" class="cpp">void Init_Epi()
{
    SysCtlPeripheralEnable(SYSCTL_PERIPH_EPI0);
    SysCtlPeripheralSleepEnable(SYSCTL_PERIPH_EPI0);

	SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOC);
	SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOD);
	SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOE);
	SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOH);

	GPIOPinConfigure(GPIO_PH3_EPI0S0);//D0  
	GPIOPinConfigure(GPIO_PH2_EPI0S1);//D1
	GPIOPinConfigure(GPIO_PC4_EPI0S2);//D2
	GPIOPinConfigure(GPIO_PC5_EPI0S3);//D3
	GPIOPinConfigure(GPIO_PC6_EPI0S4);//D4
	GPIOPinConfigure(GPIO_PC7_EPI0S5);//D5
	GPIOPinConfigure(GPIO_PH0_EPI0S6);//D6
	GPIOPinConfigure(GPIO_PH1_EPI0S7);//D7
	GPIOPinConfigure(GPIO_PD5_EPI0S28);//RD	
	GPIOPinConfigure(GPIO_PD6_EPI0S29);//WR

	GPIOPinConfigure(GPIO_PH6_EPI0S26);//FEMPTY		
	GPIOPinConfigure(GPIO_PH7_EPI0S27);//FFULL

	GPIOPinTypeEPI(GPIO_PORTC_BASE, EPI_PORTC_PINS);
	GPIOPinTypeEPI(GPIO_PORTD_BASE, EPI_PORTD_PINS);
	GPIOPinTypeEPI(GPIO_PORTE_BASE, EPI_PORTE_PINS);
	GPIOPinTypeEPI(GPIO_PORTH_BASE, EPI_PORTH_PINS);

    EPIModeSet(EPI0_BASE, EPI_MODE_HB8);//主机总线模式

    EPIConfigHB8Set(EPI0_BASE, EPI_HB8_MODE_FIFO, 0);//HB8 XFIFO模式

    EPIAddressMapSet(EPI0_BASE, EPI_ADDR_PER_BASE_C | EPI_ADDR_PER_SIZE_256B);//基址0xC0000000,256字节空间
		
	EPIIntEnable(EPI0_BASE,EPI_INT_TXREQ);//开FIFO传输中断

    EPIDividerSet(EPI0_BASE, 78);   //80分频,EPI_CLK=SYS_CLK/80

    IntEnable(INT_EPI0);//开EPI中断
}


 OVER  ^_^ 


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值