您的位置: OpenADSP社区论坛 -> Blackfin专区 -> 新手上路 -> [求助]PPI 输出数据给FPGA
本帖共有624个阅读者
发表帖子 发表投票 回复主题
[求助]PPI 输出数据给FPGA
mathslee(论坛新手)
mathslee
头衔:社区公民
帮派:无帮无派
帖数:35
金钱:421
积分:43
注册时间:2013/9/23
楼主信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
[求助]PPI 输出数据给FPGA
        
大家好,我现在想实现609使用PPI向FPGA发送一帧图像,格式是640×512,内部产生FS1,FS2两种同步信号,内部产生12.5Mhz的时钟(设定25帧每秒输出)
不清楚FS1,FS2的四个寄存器的具体含义,其配置依据什么?

我是这样算的不知道对不对,请高手指教!

pREG_EPPI2_FS2_PALPF<=12.5M/25 ;
pREG_EPPI2_FS1_PASPL=640+316(有效+无效);
pREG_EPPI2_FS1_WLHB=?   1/12.5×656;
pREG_EPPI2_FS2_WLVB=?   1/12.5×5760;

下面是我的配置,FPGA如何匹配我的这个时序??


        *pREG_EPPI2_FS1_PASPL = 956;
*pREG_EPPI2_FS1_WLHB  = 656;

*pREG_EPPI2_FS2_PALPF = 499988;
*pREG_EPPI2_FS2_WLVB  = 5760;



        *pREG_DMA31_ADDRSTART = DispBuffer1;//DispBuffer1;
*pREG_DMA31_XCNT = IMG_WID/32;
*pREG_DMA31_XMOD = 32;
*pREG_DMA31_YCNT = IMG_HIG;
*pREG_DMA31_YMOD = 32;

*pREG_DMA31_CFG = ENUM_DMA_CFG_MSIZE32 |
  ENUM_DMA_CFG_PSIZE04 |
  ENUM_DMA_CFG_ADDR2D |
  ENUM_DMA_CFG_SYNC |
//ENUM_DMA_CFG_STOP;
  ENUM_DMA_CFG_AUTO;

*pREG_EPPI2_CLKDIV = 0x9; //PPI_CLK = 12.5 000 000Mhz    sclk= 250 000 000Mhz

*pREG_EPPI2_LINE  = 956;//976;
*pREG_EPPI2_FRAME = 523;//512;

*pREG_EPPI2_HCNT = 640;
*pREG_EPPI2_VCNT = 512;

*pREG_EPPI2_FS1_PASPL = 956;
*pREG_EPPI2_FS1_WLHB  = 656;

*pREG_EPPI2_FS2_PALPF = 499988;
*pREG_EPPI2_FS2_WLVB  = 5760;

*pREG_EPPI2_HDLY = 0;
*pREG_EPPI2_VDLY = 0;

*pREG_EPPI2_CTL = ENUM_EPPI_CTL_TXMODE |
  ENUM_EPPI_CTL_NON656 |
  ENUM_EPPI_CTL_SYNC2  |
  ENUM_EPPI_CTL_INTCLK |
          ENUM_EPPI_CTL_INTFS  |
          //ENUM_EPPI_CTL_FS1LO_FS2LO|
  //ENUM_EPPI_CTL_POLC00  |
  ENUM_EPPI_CTL_PACK_EN |
          ENUM_EPPI_CTL_DLEN08;

这家伙很懒,什么也没有留下!
等级:论坛新手 参考IP地址:*.*.*.*
2014/10/25 15:53:27
尊贵身份标志
andy(论坛版主)
andy
头衔:社区公民
帮派:无帮无派
帖数:2287
金钱:11132
积分:2263
注册时间:2011/6/8
1信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
609我没用过,寄存器也和其他的不太一样,给你一个BF54x上面配置液晶屏的,你参考一下吧。
液晶屏包含消隐 整个像素是525*286,实际显示出来的尺寸是480*272 配置如下:

*pEPPI0_LINE = 525;                  //一行数据数
*pEPPI0_FRAME = 286; //整场尺寸
*pEPPI0_FS1W_HBL = 41; //随意给出值,满足时序中的脉宽即可。
*pEPPI0_FS1P_AVPL = 525;
*pEPPI0_HDELAY = 43; //随意给出值,满足时序中的脉宽即可。
*pEPPI0_HCOUNT = 480; //有效显示尺寸
*pEPPI0_FS2W_LVB = 10; //随意给出值,满足时序中的脉宽即可。
*pEPPI0_FS2P_LAVF = 150150;             //286*525
*pEPPI0_VDELAY = 12; //随意给出值,满足时序中的脉宽即可。
*pEPPI0_VCOUNT = 272; //有效显示尺寸
PPI的配置,不会和时钟频率有关系,所以你用时钟频率来除,肯定是错误的。时钟频率仅仅是改变液晶屏的刷新率,不会改变显示一副图像所消耗的时钟数。你按照上面的配置,看看能否对号入座。

这家伙很懒,什么也没有留下!
等级:论坛版主 参考IP地址:*.*.*.*
2014/10/25 22:58:56
mathslee(论坛新手)
mathslee
头衔:社区公民
帮派:无帮无派
帖数:35
金钱:421
积分:43
注册时间:2013/9/23
2信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
好的,非常感谢andy!

这家伙很懒,什么也没有留下!
等级:论坛新手 参考IP地址:*.*.*.*
2014/10/27 8:40:14
Powered by OpenADSP Copyright © 2010 www.Openadsp.com. All rights reserved.159142 Call, 1 Queries, Processed in 0.031250 second(s),