Sari la conținut
ELFORUM - Forumul electronistilor

Realtek RTL8139D & Atmega8/16


DarkAngel_Bv

Postări Recomandate

In principiu, te poti complica cum ai zis tu. Poti chiar sa si raspunzi (nu tu, dispozitivul) cu un pachet UDP la o cerere sa vezi daca a fost primita.Dar, un xmega128D3 (8 KB SRAM) e 23 de lei si te scapa de bataile de cap. Folosesti HTTP si o sa mearga de pe orice are un browser. Indiferent ca folosesti ENC28J60, 424J600 sau alt controller. Mai erau niste controlere eth ce aveau toata stiva implementata si le comandai printr-un port serial dar erau destul de scumpe (mult mai scumpe decat un xmega + encXX).LE: plus ca DHCP e destul de util in unele cazuri.

Link spre comentariu
  • Răspunsuri 29
  • Creat
  • Ultimul Răspuns

Top autori în acest subiect

  • DarkAngel_Bv

    13

  • godFather89

    8

  • radhoo

    4

  • danzup

    2

Top autori în acest subiect

A, cu tine am vorbit pe mail? :)

Ai idee, cu USBAsp-ul de la tine pot sa programez xMega?

 

In BascomAVR am un exemplu de implementare TCP/IP (si HTTP). Iar pe situl MCS apare o schema de implementare, dar cu IIM7000. Ideea este ca acest IIM7000 seamana cu realtek-ul ce il am eu la numele pinilor: http://www.mcselec.com/index.php?option ... &Itemid=41

dar nu am gasit la farnell spre exemplu asa ceva.

Link spre comentariu

In BascomAVR am un exemplu de implementare TCP/IP (si HTTP). Iar pe situl MCS apare o schema de implementare, dar cu IIM7000. Ideea este ca acest IIM7000 seamana cu realtek-ul ce il am eu la numele pinilor: http://www.mcselec.com/index.php?option ... &Itemid=41dar nu am gasit la farnell spre exemplu asa ceva.

Solutia aia se bazeaza pe W3100A. Pe scurt: stiva nu e scrisa in Bascom si nu e gazduita in AVR.
Link spre comentariu
  • 2 luni mai târziu...
  • 3 săptămâni mai târziu...

Salut, da, mai sunt interesat. Tocmai ce am incercat varianta fara buffer si fara INT.Daca leg int-ul nu mai face nimic placuta ENC28J60. Fara INT legat (doar CS, MOSI, MISO, SCK) se aprinde ledul verde si clipeste din cand in cand cel portocaliu, semn ca ceva functioneaza totusi. Dar nu raspunde la ping. Am schimbat adresa ip in 192.168.0.24 (din 2.24) si am schimbat clock-ul la 8 Mhz, dar tot nu functioneaza.

Link spre comentariu

Am reusit cumva sa comunic, doar ca uneori nu se initializeaza ENC-ul si programul se opreste, alte ori raspunde la 5-6-20 de ping-uri dupa care se opreste.La indemnul lui @radhoo, am pus un led care ar trebui sa blink-uiasca atunci cand se trece prin main loop. Cand nu mai raspunde la ping acest led nu se aprinde, deci ma gandesc ca programul nu mai ruleaza in uC.Aveti vreo idee ce as putea face?

Link spre comentariu

1. Verifică mai întâi alimentarea.Să fie tensiunea cerută, bine stabilizată şi filtrată şi, mai ales, să ai câte un condensator de decuplare (de cîteva zeci de nF - ex. 100 nF) pus în paralel pe alimentare, lângă fiecare integrat.2. Verifică oscilatorul.Vezi dacă mai oscilează atunci cănd nu mai pâlpâie LED-ul. Dacă se opreşte, schimbă valoarea cele două condensatoare din oscilator (cele de câteva zeci de pF).3. Posibile bug-uri software.

Link spre comentariu

@RoGeorge, folosesc ocilatorul intern de 8Mhz.In functie de fusebiti (delay la pornire) numarul de esecuri la pornire e mai mare sau mai mic. Din cate am vazut, cu 0ms delay este cel mai "bun".Ciudat este ca uneori imi stinge led-ul ENC-ului, alte ori nu (ma refer atunci cand se blocheaza).P.S. Face la fel cu alimentare din PC (prin USB), laptop alimentat A/C, laptop pe baterie, acumulator de 4.5V (de bios), deci tind sa cred ca nu este de la alimentare.Distanta intre enc si atmega este de 4-5cm maximum (printr-un cablu IDE taiat si mufat corespunsator).

Link spre comentariu

Dacă nu te-ai jucat la constanta de calibrare, atunci oscilatorul intern porneşte sigur, de fiecare dată şi indiferent de setări. Până acum, n-am întâlnit să nu pornească.

 

Nu contează cât de scurte sunt firele, sau de unde alimentezi.

Trebuie să ai un condensator de 10...100nF pus în paralel pe alimentare, cât mai aproape de pinii microcontrolerului. La fel şi lângă chip-ul Realtek sau oricare alt integrat.

 

Acel condensator de decuplare are rolul de a închide circuitul, pe un traseu cât mai scurt, pentru curenţii de înaltă frecventă care apar la comutaţiile din 0 în 1 (sau invers), comutaţii specifice circuitelor digitale. Fără condensatorul de decuplare, traseul curenţilor de înaltă frecvenţă este mult mai lung, orice pin şi orice bucăţică de cablaj sau de fir are inductanţe şi capacităţi parazite. Din cauza asta, dacă laşi curenţii de înaltă frecvenţă să umble de capul lor prin tot montajul, pot apărea tot felul de comportamente bizare sau instabile cum ar fi: oscilaţii, rezonanţe, paraziţi de radiofrecvenţă, blocări, reset-uri neaşteptate, montaje sensibile la aparatele sau oamenii din apropiere, etc.

 

Ai pus condensatoare de decuplare? Constanta de calibrare pentru oscilatorul intern e cea din fabrică?

 

Dacă da, atunci cele mai probabile motive rămase ar fi bug-urile sau un microcontroler defect.

Link spre comentariu

Bun, dupa multi nervi total aiurea, am pus acel condensator pe alimentare (100 nF). Si culmea... FUNCTIONEAZA.Prima data s-a blocat cand am bagat cablul de retea. Apoi nu a mai facut figuri.

Webserver running on Atmega8Server pings:123 Access Count:6

Link spre comentariu

eh, si s-a blocat totusi :) mult mai greu(dupa vreo 400 de ping request), dar s-a blocat :d

Am avut putin timp sa pun o varianta noua, cred ca ar trebui sa o incerci. Rezultate la ping:

Posted Image

 

Sau daca iti place mai mult sa le vezi in consola, asa fara timeout-uri sau alte probleme :rade:

Posted Image

 

Schema e aici:

http://www.pocketmagic.net/?p=2866#121103

Dar ar trebui sa fie identic cu ce ai tu, mai putin partea cu cristalul de 16Mhz . Asta nu prea conteaza.

 

Codul sursa aici:

http://www.pocketmagic.net/wp-content/u ... tmega8.zip

Link spre comentariu

Am incercat solutia ta si tot face figuri. In sensul ca am umplut cu date UC-ul (99.9% memorie utilizata) si raspunde la ping continuu, pana accesez prima data http-ul, moment in care crapa.Am si un mega16, este mai bun decat 8-ul? adica incap mai multe date? in principiu oricum nu am nevoie de ceva avansat, ca o sa includ un JS de pe serverul meu si trimit doar date sub forma de json din uc.

Link spre comentariu

Creează un cont sau autentifică-te pentru a adăuga comentariu

Trebuie să fi un membru pentru a putea lăsa un comentariu.

Creează un cont

Înregistrează-te pentru un nou cont în comunitatea nostră. Este simplu!

Înregistrează un nou cont

Autentificare

Ai deja un cont? Autentifică-te aici.

Autentifică-te acum



×
×
  • Creează nouă...

Informații Importante

Am plasat cookie-uri pe dispozitivul tău pentru a îmbunătății navigarea pe acest site. Poți modifica setările cookie, altfel considerăm că ești de acord să continui.Termeni de Utilizare si Ghidări