原创 有关CY7C68013中GPIF理解

2009-11-25 10:55 4477 8 9 分类: 工程师职场

Init val of Internal Rdy的含义:
决定了内部RDY的初始状态,决定了GPIFRADYCFG的第7位INTRDY的值。内部RDY作为RDY6由FIRMWARE控制的状态,而不是由RDY引脚(RDY0-RDY4)的状态来决定。当你在gpif中不需要判断gpifradycfg.7的状态时,那么这个设置也就无所谓了。

Sync RDY to IFCLK的含义:
gpif对rdy进行采样时,是同步(SAS=0)还是异步采样(SAS=1),当为异步采样时,GPIF检测到RDY信号的状态实际上是24ns前的状态。48MHz


Subst TC for RDY5:
选折这个选项后,GPIFRADYCFG.5将为1,表示将用TCXpire来代表RDY5的状态。当RDY5=1时,代表TCXpire=1,而TCXpire=1表示传输计数器已经减小到0。

以上三个设置,分别对应GPIFREADYCFG的BIT7,BIT6,BIT5三位

每个gpif波形可以定义最多7个可编程状态(S0-S6)和一个不可编程的空闲状态(IDLE),在每个状态中,你可以编程来实现:
1。控制CTL的输出(高,低,浮空)
2. 对fifo数据线提供数据或对fifo数据线进行数据采集
3。增加gpif地址线上的值
4。增加当前指向fifo的指针,以提供下一个fifo中的数据到数据线上或者读数据线上的数据到下一个fifo地址中。
5。触发gpifwf中断。

另外,在每个状态中,可以检测如下任意两个变量的逻辑与,或,异或运算,根据运算的真假结果进行相应的状态切换(详见logic function寄存器)。
1。RDYx输入引脚的状态
2。fifo标志状态位,EF,FF,PF到底选择哪个标志是由EPxGPIFFLGSEL来决定的。在触发波形前,若波形中使用了fifo状态位来作为dp的跳转判断条件时,应该先设置EPxGPIFFLGSEL。
3.INTRDY标志,即gpifradycfg.7位的值
4。传输计数完成
5。指定一定时间的延时(1-256)ifclk时钟周期。
注意:INTRDY是寄存器的一个位,由FIRMWARE中用户自己编程定义。而Tcxpire是在触发gpif后,传输计数到达用户指定的一个值后自动置位的,这个用户自定义的传输数是用户在触发gpif之前,给GPIFTCB所赋的值。


GPIFDESIGNER/gpiftool其实就是填写128个字节(0xe400-0xe47f)的波形描述符来描述4个波形。

当波形跳到了idle状态时,这个波形就结束了,相应的done位(gpifidlecs.7或gpiftrig.7)为1。当波形结束时,即进入idle状态时,gpif信号的状态是由gpifidlecs和gpifidlectl寄存器来设定的。需要注意的是,当一个波形还没有结束的时候,你是不允许触发下一个波形的,所以你在触发一个波形之前,要判断一下DONE位是否为1,只有DONE位=1时,你才能开始产生下一个波形(也就是与外部slave通讯的时序)。


每个波形由几个状态组成,每个状态由32位(4字节)的状态指令来描述,这4个字节分别称为LENGTH/BRANCH(NDP指明了这个状态要保持多少个IFCLK时钟周期,DP状态表明跳转条件为真时跳转到第几个状态以及为假时跳转到第几状态和是否Re-Execute),OPCODE(SGL=0,使用FIFO,指明到这个状态时,是否产生中断.这个状态开始时,地址线gpifadr[8:0]是否自动加1,out fifo中的数据指针是否指向下一个数据,是否输出out fifo所指的数据或读入数据到当前in fifo的地址中,这个状态是dp还是ndp),,LOGIC FUNCTION(用于DP状态的判断跳转条件的设定), OUTPUT(用于控制在这个状态时,CTL引脚的输出状态).有两种不同类型的状态:NDP,DP

关于re-execute
当在一个DP状态的条件满足时,有时用户定义是挑转到他本身的状态,这样的循环过程不是re-execute,我们将他称为loop back.那么re-execute是什么意思呢?他是指当dp状态跳转到它本身的状态时,其他动作是否也执行,比如你设置了NEXT FIFO DATA,也就是FIFO的指针加1或者你设置了地址线上的地址加1,或者你的CTL要置高,那么当你选折了RE-EXECUTE后,当跳转回来时,这些动作就会再执行一次,这样你就可以实现一些自动功能了

文章评论1条评论)

登录后参与讨论

用户1611320 2013-1-18 09:49

很好,很有概括性
相关推荐阅读
sealove518_112732726 2012-12-14 13:16
同時兩個surfaceview camera 中的一些開發問題
問題1: 如何將camera surfaceview 顯示在最上層:用了this.setZOrderOnTop(true);這個方法 問題2: 如何用一個BUTTON來自由控制came...
sealove518_112732726 2012-12-14 11:22
Eclipse中导入android项目名前有红叉但项目内文件无错误问题解决方法
Eclipse中导入android项目名前有红叉但项目内文件无错误问题解决方法 Eclipse中,Android项目名称前有红叉,但项目内所有文件都无错误,通常发生在导入项目时。 先可以去...
sealove518_112732726 2012-09-05 10:29
android各种权限及说明
  android.permission.ACCESS_CHECKIN_PROPERTIES 允 许读写访问”properties”表在checkin数据库中,改值可以修改上传( Allow...
sealove518_112732726 2012-09-05 10:27
android各种权限及说明
android各种权限及说明 android.permission.ACCESS_CHECKIN_PROPERTIES 允 许读写访问”properties”表在checkin数据库中,改值...
sealove518_112732726 2012-09-04 08:54
android 获取当前程序路径
//  获取当前程序路径     getApplicationContext().getFilesDir().getAbsolutePath();   //  获取该...
sealove518_112732726 2012-01-11 09:40
mt.exe:general error c101008d 最终原因已查明
mt.exe:general error c101008d(最终原因已查明)_算法的天空_百度空间   2011-05-27 16:22:41|  分类: 坑爹软件问题 |  标签: |字号大...
我要评论
1
8
关闭 站长推荐上一条 /2 下一条