当前位置: 代码迷 >> 单片机 >> DM9000EP接收有关问题
  详细解决方案

DM9000EP接收有关问题

热度:80   发布时间:2016-04-28 15:25:37.0
DM9000EP接收问题
DM9000EP为何每次接收时总产生接收FIFO缓存溢出错误,且接收数据包长度总大于1526

------解决方案--------------------
这个就不好判断了,这里给你我原来用DM9000的初始化代码参考一下





//==================================================================================================
// DM9000寄存器的初始化
//==================================================================================================
void dm9000_register_init(void)
{
    dm9000_write_index(0, 0);                               // NCR
    dm9000_write_index(2, 0);                               // TX Control Register
    dm9000_write_index(0x2d, 0x10);                         // Transmit Ctrol Register 2
    dm9000_write_index(0x08, 0x3f);                         // Back Pressure Threshold Register
    dm9000_write_index(0x2f, 0x00);                         // Special Mode Control Register
    dm9000_write_index(0x01, 0x2e);                         // Network Status Register, 写1清除
    dm9000_write_index(0xfe, 0x0f);                         // Interrupt Status Register
    dm9000_write_index(0x31, 0x07);                         // Check Sum Control Register, 允许UDP, TCP, IP协议包产生校验和
    dm9000_write_index(0x32, 0x00);                         // Receive Check Sum Status Register
}


//==================================================================================================
// 初始化DM9000
//==================================================================================================

unsigned char dm9000_init(void)
{
    volatile unsigned short count;
    unsigned char ch;
    
    if((dm9000_read_index(0x2b) != 0x90) 
------解决方案--------------------
 dm9000_read_index(0x2a) != 0x00)
  相关解决方案