FDA (15.06.2018 17:59, просмотров: 188) ответил Andreas на Гудвин, ты вроде полностью разобрался с глюками enc28j60?
У меня в коде сделал обход этого косяка прям как описано в еррате. Вроде зависонов не встречал.
while (encReadOp(ENC28J60_READ_CTRL_REG, ECON1) & ECON1_TXRTS)
CLRWDT();
if ((encRead(EIR) & EIR_TXERIF))
{
encWriteOp(ENC28J60_BIT_FIELD_SET, ECON1, ECON1_TXRST);
encWriteOp(ENC28J60_BIT_FIELD_CLR, ECON1, ECON1_TXRST);
encWriteOp(ENC28J60_BIT_FIELD_CLR, EIR, EIR_TXERIF);
__delaywdt_ms(10);
++EncPackSendErrorCnt;
}
encWrite16(EWRPT, TXSTART_INIT);
encWrite16(ETXND, TXSTART_INIT + len);
encWriteOp(ENC28J60_WRITE_BUF_MEM, 0, 0x00);
encWriteBuffer(len, packet);
encWriteOp(ENC28J60_BIT_FIELD_SET, ECON1, ECON1_TXRTS);