三、寄存器设置
slave fifo模式下常用寄存器
IFCONFIG PINFLAGAB PINFLAGCK FIFORESET FIFOPINPOLAR EPxCFG EPxFIFOCFG EPxAUTOINLENH:L
EPxFIFOPFH/L PORTACFG INPKTEND EPxFLAGIE EPxFLAGIRQ EPxFIFOBCH:L EPxFLAGS EPxBUF 3.1 IFCONFIG(E601):接口配置寄存器
IFCLKSRC:FIFO时钟内部/外部时钟源选择,0外部时钟源,1内部时钟源。 3048MHZ:如选择内部时钟,30MHz/48MHz频率选择,0 IFCLK时钟30M,1 IFCLK时钟48M。
IFCLKOE:IFCLK时钟输出使能,0关闭,1打开。 IFCLKPOL:IFCLK输出反转使能,0不反转,1反转。
ASYNC:Slave FIFO同步/异步工作方式选择,0同步,1异步。
GSTATE:选择是否将GSTATE[2:0]在PORTE[2:0]输出,0关闭,1使能。 IFCFG1:0:FX2 I/O端口模式选择,也既是上面所说的FX2与外部逻辑传输方式的选择。00:I/O方式;01:reserved;10:Slave FIFO方式;11:GPIF方式。
15
3.2 PINFLAGSAB/CD(E602:E603):FLAGx引脚配置寄存器
FLAGA,FLAGB,FLAGC,FLAGD反映FIFO状态选择。每个脚有编址/固定两种模式:如设为编址模式,则它们都反映FIFOADR[1:0]脚当前所指端点的状态,其中,FLAGA反映“可编程极限”,FLAGB反映“满”标志,FLAGC反映“空”标志,FLAGD不存在;如设为固定模式,它们均可任意设置成反映任意端点的任意标志,而不受限于FIFOADR[1:0]脚当前所指端点的状态。
Slave fifo模式中,用引脚FLAGA~FLAGD来定义用端点FIFO的状态,并可灵活编程来实现FLAGx设置,见表3.2
16
说明:
1. PF表示FIFO编程状态,EF表示FIFO已空,FF表示FIFO已满 2. 0000为索引模式,其它为固定模式
3.3 FIFORESET(E604):端点缓冲区复位寄存器
将FIFO复位到初始状态。具体过程是,写0x80到此寄存器,NAK所有主机请求;写
17
0x02,0x04,0x06,0x08分别复位各个端点;写0x00,结束复位过程。
一般,在每一次开始进行slave FIFO或GPIF传输之前,先复位端点,再清空端点,然后即可进行数据传输。。
NAKALL-0关闭NAK功能,1用NAK响应主控器请求,例如在复位端点FIFO时,为了保证复位正常,防止主控器请求的干扰,先写入0x80,然后复位端点,最后写入0x00,使能请求响应。
EP3~EP0,1复位对应的端点缓冲区,其中EP3~EP0分别对应端点EP8,EP6,EP4,EP2。
3.4 FIFOPINPOLAR(E609):控制引脚极性设置寄存器
Slave FIFO引脚极性设置:0低有效,1高有效。 提示:PF极性没有提供寄存器设置,为高有效。
3.5 EPxCFG(E610:E615):端点2,4,6,8配置
18
VALID-0端点无效,1端点有效
DIR-端点方向,0=OUT方向,1=IN方向,默认端点2,4为IN,端点6,8为OUT TYPE1,TYPE0-端点类型,见表3.4
SIZE-缓冲区大小(仅端点2和端点),0=512字节,1=1024字节 BUF1,BUF0-端点缓冲区个数(仅端点2和端点6),见表3.5
19