主题 : 求助,裸机调试DM9000总线出问题 复制链接 | 浏览器收藏 | 打印
级别: 新手上路
UID: 57621
精华: 0
发帖: 19
金钱: 95 两
威望: 19 点
贡献值: 0 点
综合积分: 38 分
注册时间: 2011-10-27
最后登录: 2017-01-18
楼主  发表于: 2013-04-09 16:54

 求助,裸机调试DM9000总线出问题

生产了一个板子,直接用DM9000的16位总线接口,裸机调试时,FPGA收到6410的数据库后,再把这个数据在发送回去,用示波器看DATA0~15的电压变化正常,6410发到总线的数据和电平波形一致,但是在读取总线数据时,只能读取低八位的数据,高八位被低八位自动覆盖,例如,我发送0xEEFF到总线,电平正常,但是只能读到0xFFFF,不清楚什么原因

static U16 FPGA_io(int data)
{
        *(volatile int *)FPGA_BASE = data;             //向总线写入数据
        return *(volatile U16 *)(FPGA_BASE+FPGA_DATA_OFFSET); //从总线读出数据
}
static void testBUS(int x)
{
    U16 tmp=FPGA_io(0xEEFF);  //原来是变量x,后来发现一直输出ERROR,才用0xEEFF看现象
    //Uart_SendString("\r\ni = ");
    Uart_SendByte(x);
    Uart_SendByte(x>>8);
    //Uart_SendString("    get = ");
    Uart_SendByte(tmp);
    Uart_SendByte(tmp>>8);
    //Uart_SendString("    FPGABUS STATUS = ");
//    if(tmp-x)
    //    Uart_SendString("ERROR\r\n");
    //     else   Uart_SendString("OK\r\n");
}