mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik ENC28J60 an C-Contro Pro (Atmega128)


Autor: Ck Ck (blackdragon)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
ich habe mir ein komplettes Modul vom ENC28J60 gekauft.
Das Modul hängt an einer C-Control Pro 128 (Atmega 128).
Der SPI-Bus ist ohne Levelshifter verbunden und der ENC hat auch seine 
3,3V.

Nun habe ich von der Web-Seite 
"http://members.home.nl/bzijlstra/software/examples... Das 
Testprojekt "Step 24: ARP, PING and Viktor...."
umgeschrieben. Der Code scheint auch zu funktionieren, den ab und zu
bekomme ich auf einen Ping an den Controller auch eine Antwort.
Leider bekomme ich nicht auf jeden Ping halt eine Antwort.

Da habe ich einwenig im Debugmodus mal geschaut was für Bytes gelesen 
werden. Und siehe da, es kommt ein haufen Schrott an.
Ich habe auch mal das RJ45-Kabel abgezogen. Zu meinem erstaunen, denn 
ich dachtem wenn keine Daten Empfangen werden ist auch der Puffer irgend 
wan mal leer. Im Gegenteil, ich bekomme da auch ständig irgend etwas.

Mein Controller hat ein 14,7456 MHz Quarz. Und ich habe auch schon 
verschiedene SPI-Taktraten getestet. Betreiben wollte ich die SPI mit
(14,7456/4) 3,6864 Mhz.

Kann mir da einer vieleicht weiterhelfen ?
Mfg.

Autor: Ck Ck (blackdragon)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo nochmal,
ich habe mir jetzt ein ARP Packet gebastelt das ich in einer Schleife
ständig an meinen PC sende.

SPI-Takt = 3,6 Mhz

 Value = 0
 Value = set_Bit_in_Byte(Value,Econ1_txrst,1)

 Enc28j60bitfield_set(Econ1 , Value)
 Enc28j60bitfield_clear(Econ1 , Value)
 Enc28j60writebuffer_Test() 'call sende ARP
 Enc28j60packetsend(60)

Und siehe da, es kommen alle 60Byte an. Mein PC antwortet sogar auf die 
Anfrage.

Nur mit dem Empfangen habe ich Probleme. Dort habe ich sehr viel 
Schrott.

Was kann das sein ??

Gruss

Autor: Max (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Einstrahlung von aussen ?

Autor: Christian K. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Einstrahlung von aussen ?
soll heissen EMV ?

Die Datenleitungen sich max. 10cm.
Der Atmega vom C-Control ist doch in einem Metalgehäuse.

Autor: Christian K. (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe noch mal einwenig gestestet.
Mein Problem ist jetzt das Abholen der Daten aus dem Buffer.

Der  NextBufferPointer liegt sporadisch immer daneben.?
Schon die 6 Byte mit dem Pointer sind Schrott.

Das fängt schon mit dem ersten Lesevorgang an. die Daten sind aber alle 
da, nur halt nicht an der berechneten Position.

Ich habe als Anhang mal einwenig Programmcode angehängt.

Sub Enc28j60init()
Sub Enc28j60packetreceive()

Gruss

Autor: Christian K. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo nochmal,

seitdem ich folgende Zeile eingefügt habe funktioniert es halbwegs.

 If NextPacketPointer + 1500 >= Rxstop_init Then
       NextPacketPointer = Rxstart_init
 End If

Aber warum sieht der enc28j60 nicht, dass er über sein Rxstop ist und 
automatisch wieder beim Start anfängt.

Oder habe ich ein Fehler beim Init. gemacht das ich ein Register 
vergessen habe?


Gruss

Autor: Christian K. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
ich habe mein Fehler selber gefunden.
Beim Auslesen vom Enc28j60readcontrolregbyte lag ich immer 1 Byte vom 
Buffer daneben.

Ping klappt jetzt ohne Probleme mit ca. 60ms.

Gruss

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.