[elektro] ENC28J60

Bali Zoltan eltexto at freemail.hu
Mon Mar 23 18:09:30 CET 2015


Átnéztem a forrásom, de nem lettem okosabb.

ERXFCON.CRCEN be van kapcsolva(1) a vétel filterezésnél?

Gondolom alap esetben be van, így ha CRC-s a packet,
akkor eldobja. Ki kellene kapcsolni a CRC filterezést
(most látom én is kikapcsoltam ) így láthatóvá válik a
CRC-s packet. A RcvFrame-ben az elsők között, meg kellene
vizsgálni a státuszvektorban a  CRC error bitet, ha 1,
akkor egy while(1);-el megállítani a programot.
Én első körben így kizárnám, a CRC-s packet lehetőségét.
Bár, szerintem pont hogy ez lesz a hiba.

További ötletek,
kvarc más gyártótól, trafó bekötést újra ellenőrizni,
elkötve is hasonlókat produkált, ahogy olvastam,
táp szkópolás.

Üdv.  Zoli



2015.03.22. 14:08 keltezéssel, hg12345 írta:
> Szia, Fullduplex-nek van konfigurálva. A netes driver verziót használom.     // Setup Rx/Tx buffer
>      enc28j60_wcr16(ERXST, ENC28J60_RXSTART);
>      enc28j60_rcr16(ERXST);
>      enc28j60_wcr16(ERXRDPT, ENC28J60_RXSTART);
>      enc28j60_wcr16(ERXND, ENC28J60_RXEND);
>      enc28j60_rxrdpt = ENC28J60_RXSTART;    // Setup MAC
>      enc28j60_wcr(MACON1, MACON1_TXPAUS| // Enable flow control
>          MACON1_RXPAUS|MACON1_MARXEN); // Enable MAC Rx
>      enc28j60_wcr(MACON2, 0); // Clear reset
>      enc28j60_wcr(MACON3, MACON3_PADCFG0| // Enable padding,
>          MACON3_TXCRCEN|MACON3_FRMLNEN|MACON3_FULDPX); // Enable crc & frame len chk
>      enc28j60_wcr16(MAMXFL, ENC28J60_MAXFRAME);
>      enc28j60_wcr(MABBIPG, 0x15); // Set inter-frame gap
>      enc28j60_wcr(MAIPGL, 0x12);
>      enc28j60_wcr(MAIPGH, 0x0c);
>      enc28j60_wcr(MAADR5, macadr[0]); // Set MAC address
>      enc28j60_wcr(MAADR4, macadr[1]);
>      enc28j60_wcr(MAADR3, macadr[2]);
>      enc28j60_wcr(MAADR2, macadr[3]);
>      enc28j60_wcr(MAADR1, macadr[4]);
>      enc28j60_wcr(MAADR0, macadr[5]);// return;    // Setup PHY
>      enc28j60_write_phy(PHCON1, PHCON1_PDPXMD); // Force full-duplex mode
>      enc28j60_write_phy(PHCON2, PHCON2_HDLDIS); // Disable loopback
>      enc28j60_write_phy(PHLCON, PHLCON_LACFG2| // Configure LED ctrl
>          PHLCON_LBCFG2|PHLCON_LBCFG1|PHLCON_LBCFG0|
>          PHLCON_LFRQ0|PHLCON_STRCH);    // Enable Rx packets
>      enc28j60_bfs(ECON1, ECON1_RXEN);  Bali Zoltan <eltexto at freemail.hu> írta:
>> Hali!
>>
>> Mire van programozva?  Half vagy Full duplex?
>> Mintha rémlene, hogy a collisionnál  voltak
>> driver gondjaim, Half módban. De ez csak addig
>> volt gond, amíg meg nem írtam a TCP modulhoz
>> a fast retransmission-t. Közben ezzel a half collision
>> feature-el teszteltem a fast retransmit-et.
>>
>> Valami rémlik hogy a MCHP driver az ütközéskor
>> nem küldte újra a packet-et. Bele kellene néznem
>> a forrásomba, hátha több minden feljön a távolból.
>> Ha elő tudom kotorni, megnézem
>>
>> Üdv.  Zoli
>>
>>
>> 2015.03.22. 8:38 keltezéssel, hg12345 írta:
>>> Hi, A fenti áramkörrel van valakinek tapasztalata? Milyen hiba aránnyal dolgozik?Alkalmazásomban, 0.05...0.1% közötti üzenet kihagyást produkál, több darabbal is kipróbálva. (rev5). Egész egyszerűen nem érzékeli a neki jövő üzenetet a MAC cím alapján, amit meg a program nem kap meg arra nem válaszol!A kellemetlenség annyi, hogy a folyamatos kommunikáció timeout-ra fut, és ez a szemközti eszközben 500ms,  jól látszik a lassulás. Van erre megoldás, vagy ez gyári hiba, az Rbias mindegy neki, 2.7K és 2.32K  1% (3K +10K) ugyan azt csinálja. Imádom az MCHIP-s termékeket :-(, jó nincs csak olyan aminek abba hagyták a gyártását, az már jó :-).Üdv
>>> -----------------------------------------
>>>             elektro[-flame|-etc]
>> -----------------------------------------
>>           elektro[-flame|-etc]
> -----------------------------------------
>            elektro[-flame|-etc]



More information about the Elektro mailing list