您的位置: OpenADSP社区论坛 -> Blackfin专区 -> 新手上路 -> BF51X技术支持专区 -> [求助]BF518F的EBIU与FPGA接口问题
本帖共有900个阅读者
发表帖子 发表投票 回复主题
[求助]BF518F的EBIU与FPGA接口问题
kaisoo(论坛新手)
kaisoo
头衔:社区公民
帮派:无帮无派
帖数:3
金钱:122
积分:4
注册时间:2013/11/12
楼主信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
[求助]BF518F的EBIU与FPGA接口问题

自己画的BF518F的板子,通过EBIU以异步存储访问FPGA内部自己设计的256字节双口RAM,接口信号用了下面的信号线:

A[19:1],D[15:0],AMS[3-0],ABE[1:0],ARE,AWE,

其中数据线D[15:0]采用245驱动,AMS[3-0],ARE,AWE均有上拉电阻。

写了个测试程序

/*******************************************************************
*  global variables and defines
*******************************************************************/

#define pDebugLed  (volatile unsigned short *)0x20000000

//#define START_ADDR   0xFF800000 /* start address on EZ-Board */
/*******************************************************************
*   Function:    Init_EBIU
*   Description: This function initializes EBIU interface.
*******************************************************************/
void Init_EBIU(void);

int main( void )
{
int i;
int DelayValue=5000000;
/* Begin adding your custom code here */
Init_EBIU();
while(1)
{
      *pDebugLed = 0x0000;
        for(i=0;i<DelayValue;i++);
  
        *pDebugLed = 0xffff;
        for(i=0;i<DelayValue;i++);
}

}
/*******************************************************************
*   Function:    Init_EBIU
*   Description: This function initializes EBIU interface.
*******************************************************************/
void Init_EBIU(void)
{
/* sets wait states for EBIU interface */
*pEBIU_AMBCTL0 = 0xFFFEFFFE;
*pEBIU_AMBCTL1 = 0xFFFEFFFE;
ssync();

/* enable all banks 0 */
*pEBIU_AMGCTL = 0x00F2;
ssync();

/* PG11 - AMS2, PG15 - AMS3 */

/* setup mux bits */
short portg_mux = *pPORTG_MUX; /* bits [15:14] = 10 for AMS3
            bits [13:12] = 01 for AMS2 */
portg_mux |= 0x9000;   /* set bits 15, 12 */
portg_mux &= 0x9fff;   /* clear bits 14, 13 */
*pPORTG_MUX = portg_mux;  /* write it back */
*pPORTG_FER |= (PG15 | PG11); /* enable peripheral function */
}

调试运行时,每次执行到对双口RAM写操作时( *pDebugLed = 0x0000;),提示如下错误:

Target halted due to software breakpoint but no breakpoint found at address: 0xef00067e
Possible reasons are:
1.An embedded breakpoint (EMUEXCPT instruction) in the code
2.A breakpoint is placed at the last instruction of a do() loop

Error reading opcode for breakpoint at address:

然后程序跑飞了,调了好长时间找不到问题所在,求高手指点。


这家伙很懒,什么也没有留下!
等级:论坛新手 参考IP地址:*.*.*.*
2013/11/12 20:56:21
kaisoo(论坛新手)
kaisoo
头衔:社区公民
帮派:无帮无派
帖数:3
金钱:122
积分:4
注册时间:2013/11/12
1信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线

自己怀疑是不是可能跟下面因素有关:

(1)LDF文件中,异步存储器的四个BANK均已映射,显示unused,是否执行时内核认为访问了不存在的存储器地址,导致EBIU检测到错误,然后强制定位到可用的存储器地址或者强制DSP软复位,从而出现上述问题?

(2)信号完整性原因?外部晶振25MHz,VCO跑400MHz,CCLK跑80MHz,SCLK跑20MHz,用带宽1.5GHz示波器查AMS0低电平时间约为80ns,ARE的低电平几乎看不到,只有类似干扰的小扰动。数据线在AMS0为高电平期间把245关断置高阻,应该不会引起冲突吧?

求指点。


这家伙很懒,什么也没有留下!
等级:论坛新手 参考IP地址:*.*.*.*
2013/11/12 21:05:40
kaisoo(论坛新手)
kaisoo
头衔:社区公民
帮派:无帮无派
帖数:3
金钱:122
积分:4
注册时间:2013/11/12
2信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
问题已解决。是电平的问题。FPGA程序在编译时将不用引脚默认设置为下拉,导致信号线电平异常。将不用引脚默认设置为悬空,就没有问题了,感谢各位关注。

这家伙很懒,什么也没有留下!
等级:论坛新手 参考IP地址:*.*.*.*
2013/11/14 13:00:27
尊贵身份标志
andy(论坛版主)
andy
头衔:社区公民
帮派:无帮无派
帖数:2287
金钱:11132
积分:2263
注册时间:2011/6/8
3信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
恭喜,刚刚看到此贴。发帖的话,建议直接发到新手上路里面,藏得太深很难找到。

这家伙很懒,什么也没有留下!
等级:论坛版主 参考IP地址:*.*.*.*
2013/11/14 21:57:20
Powered by OpenADSP Copyright © 2010 www.Openadsp.com. All rights reserved.154069 Call, 1 Queries, Processed in 0.031250 second(s),