Fórum témák

» Több friss téma
Fórum » ENC28J60 ETHERNET vezérlő használata
Lapozás: OK   9 / 17
(#) pajti2 hozzászólása Jan 7, 2010 /
 
Ha nagyon akarod, és rá akarod szánni az időt, ám tedd

Bár első lépésként nézd meg, hogy a stack kód mennyi RAM-ot igényel. Meg a proci idő igényen is el lehetne filozni. A C18-ban nincsen 64 bites integer support. Hirtelen ezek a buktatók jutottak eszembe.
(#) potyo válasza pajti2 hozzászólására (») Jan 7, 2010 /
 
Nem emlékszem, hogy találkoztam volna olyannal, hogy 64 bites integert használna valahol. Stack kód RAM igényébe szerintem bőven belefér még az SD kártya kezelése, amit csináltam cuccot, 1950 bájtot igényel, és még azon is lehetne valamennyit reszelni. Processzoridőtől nem félek, ha esetleg 150 helyett 250ms az oldal lekérési ideje, az nem különösebben lényeges.
(#) pajti2 válasza potyo hozzászólására (») Jan 7, 2010 /
 
Akkor hát hajrá. Látom nagyon unatkozol

Menet közben esetleg adhatnál egy tippet, mik lehetnek a tipikus hibák. 424j600-as van dsPIC-hez kötve, és élesztéssel szenvedek már mióta. Elementáris a szívás.

A 424 modulárisan van összeforrasztva a környezetével, végig is csengettem, másvalaki is letesztelte, a modul hibátlan.

A többi cumót dugaszpanelbe pakoltam, végignéztem már 3x a kötéseket (különféle módokon), nem nagyon lehet itt elkötve egyáltalán semmi se.

Maga a stack kód az ENC vezérlőnél hal le init közben, amikor resetelni akarja az eszközt, és az EUDAST regisztert írja 0x1234-el egészen addig, amíg ugyan azt olvassa vissza (C:\Microchip Solutions\Microchip\TCPIP Stack\ENCX24J600.c, 1560. sor környéke). Hát sosem kapja azt vissza. 0x0000-t kap minden egyes alkalommal. Mintha a modul kimenete földre ragadt volna.

Az SPI busz olvasására gyanakodtam a sokszoros ellenőrzés után is, de nem tiszta, mi lehet azzal baj. A PIC bemeneten leszedtem a modul bekötését, és felhúztam ellenállással, akkor frankón 0xFFFF-ek érkeztek.

Kommunikáció nélkül is megcsinál olyat az ENC, hogy rádugom a gépre egy lan kábellel, és ahányszor csomagot küldök kifele, felvillan a zöld led. A PIC órajelet pld az ENC küldi, és stabilan megy. Szóval az alapból taccsrament ENC esete is kiesett.

Valami alapvető dolgot szúrtam el, ami valószínűleg a szememet kiböki, és éppen azért nem látom

Pár tipp jól jönne.
(#) tibi0531 válasza pajti2 hozzászólására (») Jan 7, 2010 /
 
Üdv!

dsPic-el nem foglalkoztam, úgyhogy ez csak egy ötlet. A dsPic SPI modulja nem tud véletlenül multi-master módot? És valami oknál fogva (modjuk egy szintváltozás a SS lábon) slave-re vált.
Engem hasonló tünetekkel szívatott egy Atmega32+ENC28j60 páros.
(#) pajti2 válasza tibi0531 hozzászólására (») Jan 8, 2010 /
 
Köszi a tippet, utána néztem.

Van valami Framed SPI support, ott használja az nSSx-et "as frame sync pulse input/output".

Természetesen a config alapján ez a funkció a vezérlő bitben ki van kapcsolva, és az nSS használata is ki van kapcsolva (config bit), valamint nincs is kivezetve az nSS egyik külső lábra sem (peripheral pin selecttel kellene külön beállítani, de nincsen beállítva).
(#) potyo válasza pajti2 hozzászólására (») Jan 10, 2010 /
 
Idézet:
„Akkor hát hajrá. Látom nagyon unatkozol”


Ezaz, hogy pont nem kéne ilyennel foglalkoznom, mert tanulni kellene vizsgára. Csak ilyenkor minden máshoz van kedvem a tanulást kivéve...



Akkor a másik téma alapján lehet, hogy itt is az SPI modul hibája miatt nem működik a kommunikáció? Kódban nincs az errata-ra utalás? Máskor már találkoztam ilyen utalásokkal és megkerülő megoldásokkal a kódokban.
(#) pajti2 válasza potyo hozzászólására (») Jan 11, 2010 /
 
Nyamvadt JTAG bekapcsolva maradt, és nem működtek a felprogramozott lábak SPI buszként az ENC vezérlő felé. Szépet szívtam ám vele
(#) pajti2 hozzászólása Jan 14, 2010 /
 
Még mindig gyűröm a tcp stacket. Valahol gépidő szivárgás van, és egyenlőre nem találom.

Kimértem ilyen időtartamokat mint
-hosszabb saját app rutin végrehajtás 141uSec, -beérkező csomag ellenőrzés + beolvasás + feldolgozás + válasz kiküldése összesen 480uSec
-StackTsk() végrehajtása avg 50uSec, csúcs értéken viszont 38 mSec (!)

DHCP-n és UDP-n kívül semmi sincs a kódban. Már az ICMP támogatást is kivakartam.
(#) cassis hozzászólása Márc 15, 2010 /
 
Az ENC adatlapját olvasgatta valaki? Nekem az ERDPT read pointer és az ERXRDPT vételi buffer read pointer szerepe nem világos. Tudnátok ebben segítséget adni?
(#) potyo válasza cassis hozzászólására (») Márc 15, 2010 /
 
Ha jól látom, akkor a vételi pufferből olvasáskor mindig azt az adatot olvassa a kontroller, amire az ERDPT mutat. Ezt alapesetben nem kell bántani, csak be kell kapcsolni, hogy minden olvasáskor egyel növelje, és akkor szépen egymás után adja ki a bájtokat. Akkor van rá szükség, ha több csomag érkezett a pufferbe, és nem érkezési sorrendben akarjuk kiolvasni.

Az ERXRDPT pedig azt a címet tartalmazza, ameddig a vevő beírhatja az érkezett csomagokat. Tehát ez mutatja meg azt, hogy meddig lett kiolvasva a puffer, és hogy ettől a címtől kezdődően még nem írhatja be a bejövő adatokat, mert ez még nincs feldolgozva. Ilyenkor a vételi logika visszaküldi a csomagot és jelzi, hogy nem tud egyelőre több adatot fogadni. Ezt a pointert kell a csomag kiolvasása után aktualizálni, ha jól sejtem, akkor alapesetben az ERDPT tartalmát kell belé átmásolni.

Most így gyorsan ennyit tudtam kihámozni, talán jön valaki, aki már használt ilyen chipet.
(#) cassis válasza potyo hozzászólására (») Márc 16, 2010 /
 
Köszi a választ, de még mindig zavaros kicsit. Összefoglalnám mire jutottam:
Az ERDPT szerepe egyértelműnek tűnik, a leírás alapján az ECON2.AUTOINC = 1 esetén Automatically increment ERDPT and EWRPT when the SPI RBM/WBM command is used.
Tehát minden buffer memoria olvasáskor növekszik az ERDPT mutató értéke.
Idézet:
„Ezt alapesetben nem kell bántani, csak be kell kapcsolni”

Szerintem a buffer első olvasásakor a mutató értékét az ERXST re (vételi buffer eleje) kell állítani. Jól gondolom? Aztán olvagathatok kedvemre, az ERDPT növekedni fog. Véletlen kiolvasákor az ERDPT értékét kell shiftelni.

Az ERXRDPT már nehezebb ügy.
Idézet:
„Az ERXRDPT pedig azt a címet tartalmazza, ameddig a vevő beírhatja az érkezett csomagokat”

Igazad van ebből is derül ki:
Idézet:
„The ERXRDPT registers define a location within the FIFO where the receive hardware is forbidden to write to. In normal operation, the receive hardware will write data up to, but not including, the memory pointed to by ERXRDPT. If the FIFO fills up with data and new data continues to arrive, the hardware will not overwrite the previously received data.”


Az adatlapon később azt is olvasom, hogy miután a kontroller feldolgozott egy csomagot, és fel szeretné szabadítani a helyét, akkor az ERXRDP vel kell előrelépnie. Mint ahogy Te is írtad ezt.

Azonban a buffer kiolvasását az ERDPT vel már ismert címig kiolvastuk, fel isdolgoztuk, mi szükség az ERXRDPT -re a felszabadításhoz? Talán csak az, hogyha véletlenül olvasunk, akkor tudjuk meddig dolgoztuk fel, és így az ERDPT vel "szabadon" ugrálhatunk???
A máik dolog meg az lehet, hogy ezekszerint kezdőrtékként az ERXRDP - nek ERXST -t nem adhatok, mert akkor nem fog írni az ERXST+1 re sem.
Akkor miszerint lehet inicializálni??
Egyenlőre ennyi, de még kivesézném pl. az EPKTCNT -t is.
(#) m.joco hozzászólása Márc 29, 2010 /
 
Hello
Mikropascal ENC28J60 mintakapcsolását szeretném megépíteni, de nem derül ki nekem a rajzból, hogy az ENC IC 4, 5, 6 lába testre van-e húzva a 74-es IC jobb oldalán?
Sajnos ettől jobb minőségben nem találtam meg ezt a rajzot.
Üdv.
(#) pipi válasza m.joco hozzászólására (») Márc 29, 2010 /
 
nincs földre kötve, ezeket a lábakat a procinak kell fogadnia, a 245-ösön keresztül. viszont úgy látom a 245-ös -oe lába nincs bekötve, ezt viszont vagy a procinak kellene vezérelni, vagy földre kötni
(#) m.joco hozzászólása Ápr 4, 2010 /
 
Hello
Sikerült a Mikropascal példaprogramjával beüzemelnem az ENC28J60-at. Jelenleg patch kábellal van az otthoni switch-re kötve. Ráköthetem az áramkört patch kábellal közvetlenül a PC-re?
Üdv.
(#) pipi válasza m.joco hozzászólására (») Ápr 4, 2010 /
 
rákötheted de nem működik . Kösd rá cross patch kábellel, a pc-nek is és az enc panelodnak is adj fix ipcímet, igy működhet.
(#) qwer85 hozzászólása Máj 11, 2010 /
 
Üdv!

Valaki régebben linkelt ide be egy olyan Microchip-es példaprogramot ami egy lámpát kapcsolt Ethernetes PIC segítségével. Mindenfelé kerestem, de nem találom véletlenül nem tudja vki hol érhető el?
Kösz
(#) m.joco válasza pipi hozzászólására (») Máj 26, 2010 /
 
Hello
PIC18F4550 + ENC28J60 már működik, Mikropascal ENC library-ját használom. Egy egyszerű weblapot kéne visszaküldenie a böngészőnek, ami működik is, de kb. 10-15 perc után már nem töltődik be az oldal. Nem tudok rájönni, mi lehet a gond. A pic biztos nem fagy le, az ENC chip activity LED -je felvillan, amikor be akarom tölteni a böngészőben a weblapot.
Nincs valakinek valami ötlete?
Üdv.
(#) m.joco hozzászólása Jún 3, 2010 /
 
Hello
Fórumozgatás után arra jutottam, hogy az Rbias ellenállás értékét 2,7kOhm-ra cseréltem. Most már stabilabb, viszont most egy napi tesz után ismét nem jön be a weboldal, szóval most már órákat kibír. Nagyon úgy néz ki, hogy az ENC28J60 lefagy. Senki se küszködik ilyen problémával?
Üdv.
(#) potyo válasza m.joco hozzászólására (») Jún 3, 2010 /
 
Amikor lefagy, akkor a PIC irányában van kommunikáció? Mert ha nincs, akkor a PIC resetelhetné a chipet. Persze ez csak tüneti kezelés lenne. Vagy esetleg a PIC fagy le (végtelen ciklusba kerül)? Kicsit pontosabban utána kellene járni, hogy mi fagy le.
(#) icserny válasza m.joco hozzászólására (») Jún 3, 2010 /
 
Ez a kapcsolás egy kicsit hiányosnak tűnik. Ennek egy másik változatát már korábban megtárgyaltuk, akkor arra a konklúzióra jutottunk, hogy az áramkör hibásan van megtervezve. Az interrupt pl. elvileg sem működhet. Valószínűleg a gyári szoftver nem is használja...
(#) m.joco válasza potyo hozzászólására (») Jún 3, 2010 /
 
Hello
A PIC nem fagy le. A főprogram MikroPascalban olyan, hogy végtelen ciklusban állandóan meg van hívva egy függvény (spi_ethernet-dopacket). Ezután beszúrtam egy utasítást, hogy az egyik kimenet állapota invertálódjon. Így végülis gyorsan villog azon a lábon a LED. Amikor nem töltődik be a weboldal, ez a LED akkor is villog (ezt persze szkóppal ellenőriztem). Rbias értéke legelőször 2x 1,2kOhm volt, most 1,2 + 1,5 kOhm, de megpróbálom pontosan 2,32kOhm-al.
A MikroPascalos ENC28J60 kapcsolási rajza van nekem megépítve azzal a különbséggel, hogy a 74HCT245 OE lába csatlakozik a CS vonalra.
Üdv.
(#) icserny válasza icserny hozzászólására (») Jún 3, 2010 /
 
A Mikroelektronika honlapján megtalálható a régi kapcsolás javított kiadása.
(#) m.joco válasza icserny hozzászólására (») Jún 3, 2010 /
 
Hello
Szerinted akkor hardver hibám lehet? A 74HCT245 -s kapcsolás akkor rossz? Nem lehet javítani rajta?
Sajna az általad belinkelt kapcsolásban levő ic-t nem tudnám beszerezni.
Üdv.
(#) icserny válasza m.joco hozzászólására (») Jún 3, 2010 /
 
A te rajzod hiányos és homályos, emiatt nem tudom ellenőrizni, hogy a többi jel hogy van illesztve. A 245 a te kapcsolásodban szerintem működőképes, ha az OE bemenetet a chip selecttel engedélyezted.

A régi kapcsolás, amire utaltam, azért volt hibás, mert az interrupt jelet is megkapuzta a chip select, ami nyilvánvalóan hülyeség: nem tudott interrupttal jelezni az ENC28J60...

Az új kapcsolásban szereplő beszerezhetetlen szintillesztő helyett bármi más is megfelel, ami meg tudja hajtani az 5 V-os PIC bemenetét. Bővebben: Link
(#) tibi0531 válasza m.joco hozzászólására (») Jún 3, 2010 /
 
Szia!
Lehet rajta javítani, a 74HCT245 OE lábát földre kell húzni. Ez nem okoz galibát ha csak egy eszköz van a buszon. Bár a te esetedben ez nem hinném, hogy segít, mert ha polling-al veszed az adatot, a régi kapcsolásnak is működnie kell!
Milyen revíziójú az enc?
(#) m.joco válasza tibi0531 hozzászólására (») Jún 3, 2010 /
 
Hello
Sajna nemtudom, hogy milyen revíziójú, ez áll rajta:
ENC28J60-I/SP 0836VU4.
Ebből meg lehet állapítani? Amikor nem jön be a weboldala, akkor ha megpingelem, nem válaszol. Máskor, amikor működik, akkor válaszol és kb 3-4ms a válaszidő.
Üdv.
(#) tibi0531 válasza m.joco hozzászólására (») Jún 3, 2010 /
 
A fent leírtakból nem lehet megtudni. Ha létezik rá függvény uPascal-ban, érdemes lenne kiolvasni, és utánanézni, hogy a meglévő mikroe-s TCP/IP stack támogatja-e, vagy az errata-t elolvasni, hogy mit változtattak és sajátkezűleg javítani.
A régebbi ENC-k igen bug-osak voltak, én a rev5-tel dolgoztam és abban már kiküszöböltek jó néhány hibát, de ennek ellenére mégis bele kellett nyúlni a TuxGraphics féle stackbe néhány helyen.
(#) m.joco válasza tibi0531 hozzászólására (») Jún 5, 2010 /
 
Hello
Sikerült kiolvasni, hogy a revíziós száma 6. Egyelőre nem találtam hozzá errata-t.
Üdv.
(#) m.joco válasza m.joco hozzászólására (») Jún 5, 2010 /
 
Hello
Úgy néz ki, hogy a B7-es errata való hozzá. Ez 2,32kOhm-os Rbias ellenállásértéket ír, most 2,7 kOhm-os van benne, előtte meg 2,4kOhm-os volt. Ennyire nagyon számít, hogy 2,4kOhm vagy 2,32kOhm van benne? Próba szerencse, kicserélem 2,32-re, hátha megjavul.
Üdv.
(#) potyo válasza m.joco hozzászólására (») Jún 5, 2010 /
 
Nem volt kalandom ENC28J60-al, de a 18F97J60 nem tűnt érzékenynek az Rbias-ra. 2k2-t kapott, lassan egy éve megy, eddig nem volt panasz rá...
Következő: »»   9 / 17
Bejelentkezés

Belépés

Hirdetés
XDT.hu
Az oldalon sütiket használunk a helyes működéshez. Bővebb információt az adatvédelmi szabályzatban olvashatsz. Megértettem