enc28j60 bug


enc28j60.c里初始化代码434行:
// enable interrutps
    spi_write_op(ENC28J60_BIT_FIELD_SET, EIE, EIE_INTIE|EIE_PKTIE|EIR_TXIF);
EIE寄存器里并没有EIR_TXIF这一位,那是EIR寄存器里的。不知写这里是什么意思。


第542行:
// Reset the transmit logic problem. See Rev. B4 Silicon Errata point 12.
    if( (spi_read(EIR) & EIR_TXERIF) )
    {
        spi_write_op(ENC28J60_BIT_FIELD_CLR, ECON1, ECON1_TXRTS);
    }
注意,是ECON1_TXRST,而不是ECON1_TXRTS,这个问题害我调了一周。板子运行一些时间就ping不通,只能收数据,不能发。

你可能感兴趣的:(enc28j60 bug)