Forum: Mikrocontroller und Digitale Elektronik Web Server mit ATMEGA328-ENC28J60 + MODBUS


von Mario (Gast)


Angehängte Dateien:

Lesenswert?

Erstmal Hallo liebes Forum, hab hier zwar schon viele Artikel gelesen 
und Infos eingeholt, aber selbst noch keinen Beitrag verfasst.
Vorweg schon mal danke und ein dickes Lob an die Hilfreiche Gemeinde, 
mir habe schon viele eurer Diskussionen weiter geholfen.


Ich stehe vor einem kleinem Verständnisproblem bezüglich ENC28J60 / 
ATmega328 / MAX485.

Vorgeschichte:
Ich bin dabei einen Webserver zusammen zu basteln, welchen ich im Zuge 
meiner Diplomarbeit benötige.

Das Grundkonzept / die Grundidee dieses Webservers habe ich hier 
gefunden:
http://www.tuxgraphics.org/electronics/200606/article06061.shtml

Zusätzlich zum Schema des obigen links benötige ich noch eine 
Buskommunikation um mit weiteren Platinen, welche auch im Zuge der 
Diplomarbeit entwickelt werden, zu kommunizieren. Aus praxisrelevanten 
Gründen ist die Entscheidung hier auf den MODBUS gefallen.
Als Treiber / Receiver IC wird ein MAX485 verwendet.

Zur Programmierung wird ein Arduino ATMEGA2560 verwendet (STK500/ISP 
Atmel Studio 7).

Zu den Problemen:
(Derzeit beziehen sich alle meine Sorgen auf die Hardware)

1.)
Mir ist nicht ganz klar, wofür die Spule "L1" am TPOUT+ / TPOUT- gut ist 
(EMV?) und wie diese ausgelegt werden soll. (Hätte das Datenblatt 
eigentlich durchgesehen, aber leider keine brauchbaren / verständlichen 
Hinweise gesehen).

2.)
Warum sind, nach dem obigen Link/Schaltplan, folgende Pins verbunden:
ENC28J60        ATmega328
   SI     →        MOSI
   SO     →        MISO
Sollten diese zur Kommunikation (SPI?) nicht gekreuzt sein?
Laut Datenblatt sollte es zumindest so sein, soweit ich das verstanden 
habe ^^.

3.)
Der ENC28J60 muss mit 3.3V betrieben werden, bei dem ATmega328 ist es 
mir prinzipiell egal, ob 3V3 oder 5V0. Der MAX485 muss aber wiederum mit 
5V versorgt werden.

Konfiguration ENC-3V3 / MAX485&ATmega-5V0
Laut Datenblatt des ENC muss nur zwischen SO und INT ein Level Shift 
geschalten werden, wenn der uC mit 5V betrieben wird.
Meine Überlegung ist, dass es beim INT nicht nötig ist, da der ATmega 
3V3 als High erkennen müsste (oder?).
Somit würde für SO ein transistor reichen (oder?).

Konfiguration ENC&ATmega-3V3 / MAX485-5V0
Hier wäre ein Level Shift zwischen ENC und uC natürlich hinfällig.
Meinem Verständnis nach würde ich jedoch zwischen uC RXD und MAX485 RO 
ein Level Shift benötigen.

Konfiguration "ganz anders ?"


Nun würde mich interessieren ob mir jemand sagen kann ob ich prinzipiell 
auf dem richtigen Weg bin, bzw. oder ob meine Überlegungen sowieso 
falsch sind ^^, bzw. ob es noch andere /bessere Lösungen gäbe.

4.)
Im Anhang noch der Schaltplan, auch hier würde ich euch bitten, mir ein 
kurzes Feedback bezüglich Funktionstauglichkeit zu geben, bzw. findet 
vielleicht jemand Fehler die mir unterlaufen sind.


So, ich weis das ist vermutlich etwas viel auf einmal, aber trotzdem 
schon mal vielen Dank im voraus :)

Lg Mario

von Bernd (Gast)


Lesenswert?

ENC28J60        ATmega328
slave           master

   SI     →        MOSI
   SO     →        MISO

SI slave in, MOSI master out slave in, passt!

von Mario (Gast)


Lesenswert?

Hui, das geht ja schnell :)

Danke schon mal.

von Sven K. (svenk)


Lesenswert?

Hallo Mario,

die Stromversorgung aller VDD Eingänge ist unzureichend.
Da gibt es ein Kapitel im Datenblatt des Enc nur für die Pufferung. Auf 
jeden Fall muss dort ein Tantal Kondensator und weitere 
Abblockkondensatoren verwendet werden.
Das muss Stimmen sonst verhält sich der Enc unstabil und Du suchst 
wochenlang einen Fehler in der Software.

Gruß Sven

von Mario W. (mariow92)


Lesenswert?

Danke für den Tipp Sven.

Spannungsversorgung (5V u 3V3) ist jeweils mit UA78M (500mA) vorgesehen.

Abblockkondensatoren laut Datenblatt 100nF.
0805 Keramikkondensator sollten vermutlich reichen.

von Michael U. (amiga)


Lesenswert?

Hallo,

auf die Stromversorgung des ENC28J60 und den nötigen Kondensatoren wurde 
schon hingewiesen. Die Toleranz des RBIAS-Widerstandes ist nicht so 
kritisch wie im Datenblatt gefordert, wenn man maximal möglichen 
Kabellängen nicht nutzen will und muß.
Wenn ENC und AVR auf einer Leiterplatte sind, ist auch ein Pegalwandler 
an SO und /INT nicht zwingend nötig, der AVR erkennt mit 5V den H-Pegel 
des ENC sicher, auch bei den möglichen 8MHz SPI-Takt.

Allerdings sollte man auf solche Eigenarten dann hinweisen und natürlich 
garantiert dann niemand die Stabilität über gen kompletten möglichen 
Spannungs- und Temperaturbereich. Falls also der Webserver in die Arktis 
soll, könnten Pegelwandler es sicherer machen.

Gruß aus Berlin
Michael

von Mario (Gast)


Lesenswert?

Hallo Michael.

Danke für den Hinweis.

Soweit ich das jetzt richtig verstanden habe kann ich den atmega mit 5v 
betreiben und habe dadurch keine probleme bei der Kommunikation mit dem 
MAX485. SO (Slave Out) sollte der uC vom ENC auch problemlos erkennen.

Super. Demnach kann ich die Platine so herstell (bis auf die erweiterung 
der Spannungsversorgung).

Kann mir noch jemand sagen wie (und warum) ich die Spule "L1" 
dimensionieren muss?

Lg

von Wolfgang (Gast)


Angehängte Dateien:

Lesenswert?

Ich kenne den Aufbau eigentlich was anders.
Habe mal ein Schaltplan angehängt, der hier
so läuft.

von Michael U. (amiga)


Lesenswert?

Hallo,

ohne Verbindungspunkte ist der Schaltplan praktisch unlesbar.
Für die 100 Ohm Reihenwiderstände gibt hier eigentlich es keinen 
technischen Grund. Die Ferritperle liegt in der Verbindung zwischen 
Mittelanzapfung TX-Übertrager und +3,3V und sollte mindestens 80mA 
aushalten.
Bei mir isr das, wie im (alten?) Datenblatt eine Ferritperle.

Gruß aus Berlin
Michael

von Wolfgang (Gast)


Lesenswert?

Wenn du die Verbindungspunkte nicht auf
deinen Monitor sehen kannst, dann lad ihn dir herrunter
und vergrößere ihn.

von Mario W. (mariow92)


Lesenswert?

Ah OK, danke Michael.


jetzt weis ich was ich brauche, denke sowas sollte passen:
http://at.farnell.com/wurth-elektronik/74279204/ferritperle-0-35-ohm-0-2a-0805/dp/1635719


Bedeutet dass die Ferrit-Perle nur zur Stromanstiegsbegrenzung dient? 
(di/dt).

von Michael U. (amiga)


Lesenswert?

Hallo,

Wolfgang schrieb:
> Wenn du die Verbindungspunkte nicht auf
> deinen Monitor sehen kannst, dann lad ihn dir herrunter
> und vergrößere ihn.

ich wollte Dich auch nicht unbedingt ärgern, Farbwahl, Punktgröße und 
JPG als Format liefern auch in einer Vergrößerung erstmal nette 
Artefakte.
Auch der Plan des TO gefällt mir nicht sonderlich. Ich nutze Eagle auch 
und die Darstellung völlig ohne Verbindungen ist erstmal ein Suchspiel, 
wo die welche Fahne ist.

@Mario W.:
>Bedeutet dass die Ferrit-Perle nur zur Stromanstiegsbegrenzung dient?
(di/dt).

In meinem simplen Hobby-herangehen würde ich jetzt sagen, daß sie 
Störungen auf der Betriebsspannung durch den Ausgangstreiber verringern 
soll.
Es kann auch als LC-Filter gesehen werden, der Störungen auf der 
Betriebsspannung von der Endstufe fernhalten soll. Oder beides?
Für mich endet sowas damit: es steht so im Datenblatt. ;)

Gruß aus Berlin
Michael

von Mario (Gast)


Lesenswert?

Ok, alles klar. Danke.
Ich denke damit kann ich leben ?

von Torsten S. (tse)


Lesenswert?

Ich habe auch nen Webserver mit dem 2560 und dem ENC im Einsatz, 24/7 
läuft der. Sehr stabil, allerdings mit externem Ram 64k.

Mit den 8k der MCU kann man nur primitivste Sachen machen. Glaubs mir: 
die sind schneller voll als Du denkst.

von Mario (Gast)


Lesenswert?

Danke für die Info, wird ich mal im Hinterkopf behalten.

Hab Die Platine nun geätzt und fertig bestückt.
Sah anfangs ganz gut aus. Atmega läuft, beim anstecken ans Netzwerk geht 
die grüne LED an und bleibt an, die link LED blinkt.
Hab die Software vom obigen link implementiert und soweit angepasst 
(V1.x Test1-Pingtest). Host ist ist aber nicht erreichbar und ich habe 
eine extreme Erwärmung (bis ca 100Grad, dann habe ich abgeschaltet).
Werde gleich noch den aktuellennSchaltplan und Layout hochladen.

Ich messe an den Datenpins des MagJack (Td+ auf Td-, rd+ auf rd-) nur 
knapp 2 Ohm, das kommt mir nicht richtig vor.

Hat vl jemand eine Idee?

Danke schonmal für eure Zeit und Hilfe.

Lg Mario

von Mario W. (mariow92)


Angehängte Dateien:

Lesenswert?

Hier noch Schaltplan und Layout.

von Pete K. (pete77)


Lesenswert?

Mario schrieb:
> Der MAX485 muss aber wiederum mit
> 5V versorgt werden.

Ja, aber es gibt auch RS485 Bausteine mit 3V3 Versorgung.

Deine Spannungsregler müssen übrigens ca. 10W verheizen (ca. 20V * 
500mA, über den großen Daumen). Du hättest Sie auch nacheinander 
schalten können.

von Sven K. (svenk)


Lesenswert?

Mario W. schrieb:
> Hier noch Schaltplan und Layout.

Vcap vom Enc ist falsch angeschlossen.

Aref vom AVR auch.

78M33/M05 max Input 25v -> nicht gut
Datenblatt von TI



Gruß Sven

: Bearbeitet durch User
von Mario (Gast)


Lesenswert?

Hallo Sven.

Vcap ist laut datenblat angeschlossen.
Wie sollte vcap und aref sonst angeschlossen werden?

Hab den ping jz zum laufen gebracht. In meimem Layout hab ich vergessen 
den reset und cs zu routen. Irgendwie übersehen... ?.

Pete K. schrieb:
> Ja, aber es gibt auch RS485 Bausteine mit 3V3 Versorgung.

Habe auf allen anderen Platinen auch einen Rs485 mit 5v0. Sollte das 
wohl auf allen beibehalten (bzw bei allen gleichen Pegel) denke ich
>
> Deine Spannungsregler müssen übrigens ca. 10W verheizen (ca. 20V *
> 500mA, über den großen Daumen). Du hättest Sie auch nacheinander
> schalten können.
Könntest du das näher erklären? Das versteh ich nicht ^^

Lg Mario

von Sven K. (svenk)


Lesenswert?

Hallo Mario,

> Vcap ist laut datenblat angeschlossen.
> Wie sollte vcap und aref sonst angeschlossen werden?

Vcap wird gegen Gnd angeschlossen. Du hast Vcap gegen Vcc.

Aref - wird normalerweise nur mit einem Kondensator stabilisiert. Avcc 
wird angeschlossen etwas gefiltert und dann wird die interne Referenz 
genommen.

(ja man kann an Aref eine andere Spannung als intern nutzen aber nicht 
so wie bei Dir)


>
> Hab den ping jz zum laufen gebracht. In meimem Layout hab ich vergessen
> den reset und cs zu routen. Irgendwie übersehen... ?.
>
> Pete K. schrieb:
>> Ja, aber es gibt auch RS485 Bausteine mit 3V3 Versorgung.
>
> Habe auf allen anderen Platinen auch einen Rs485 mit 5v0. Sollte das
> wohl auf allen beibehalten (bzw bei allen gleichen Pegel) denke ich
>>
>> Deine Spannungsregler müssen übrigens ca. 10W verheizen (ca. 20V *
>> 500mA, über den großen Daumen). Du hättest Sie auch nacheinander
>> schalten können.
> Könntest du das näher erklären? Das versteh ich nicht ^^
>
Er meinte damit Du hättest den 3,3 v Regler hinter den 5v Regler 
schalten können.

Das Problem das Du mit 24v am Eingang auf die Regler gehst ändert aber 
grundsätzlich nichts an: Maximum Rating 25v

Ich würde so die Schaltung max mit 8-12v betreiben.
Bei 24v würde ich raten über Schaltregler nachzudenken .


Gruß Sven

: Bearbeitet durch User
von Mario (Gast)


Lesenswert?

OK. Danke Sven.

Lasse mir das nochmal durch den Kopf gehen, da ich das Layout sowieso 
neu zeichnen muss.

Aber danke für die Unterstützung.

Lg

von Mario (Gast)


Lesenswert?

So Sven. VCAP hab ich gerade im datenblatt gefunden, da hast du völlig 
recht. Ist hier wirklich 1-10mF notwendig?!

Dad mit den 24VAC hab ich gesehen, momentan am Labornetzgerät mit 12V, 
werde ich mir noch genauer ansehn wie ich das ändere.

Bezüglich der Serienschaltung der Festspannungsregler, ich verstehe die 
Sinnhaftigkeit nicht, ich würde den 5V0 Regler nur unnötig mit dem 3V3 
Regler belasten?!

Trotzdem danke für eure Anmerkungen.

Lg

von Pete K. (pete77)


Lesenswert?

Wenn Dein Linearregler 24V (DC!) Eingangsspannung bekommt und 5V 
Ausgangsspannung liefert, dann wird die Differenz (19V) in Wärme 
umgesetzt.
Je mehr Ampere fließen, desto mehr Wärme entsteht.

Ab wann Du z.B. einen Kühlkörper brauchst, verrät Dir das Datenblatt.

Bitte befasse Dich noch einmal mit den Grundlagen und den Datenblättern, 
dann wäre Dir auch die ARef-Beschaltung aufgefallen.

Bei Elektronik kann ich nur davor warnen, irgendwelche Schaltpläne aus 
dem Internet ungeprüft nachzubauen.

von Mario W. (mariow92)


Lesenswert?

Pete K. schrieb:
> Wenn Dein Linearregler 24V (DC!) Eingangsspannung bekommt und 5V
> Ausgangsspannung liefert, dann wird die Differenz (19V) in Wärme
> umgesetzt.
> Je mehr Ampere fließen, desto mehr Wärme entsteht.
Habe ich mir noch einmal angesehen, wusste leider nicht dass die 
Linearregler so arbeiten, hab ich geändert. 5VDC DC/DC-Wandler, 3V3 LDO 
an 5V. Sollte so klappen.


> Bitte befasse Dich noch einmal mit den Grundlagen und den Datenblättern,
> dann wäre Dir auch die ARef-Beschaltung aufgefallen.
Wusste zwar nicht, dass Linearregler zu den Grundlagen gehören, aber 
trotzdem danke für den Hinweis.


> Bei Elektronik kann ich nur davor warnen, irgendwelche Schaltpläne aus
> dem Internet ungeprüft nachzubauen.
Mache ich auch nicht, nur fehlen mir bei vielen Themenbereichen die 
Erfahrungen, daher stelle ich meine Fragen hier im Forum.

Habe den gesamten Schaltplan geändert. Würde mich über euer Feedback 
freuen. Denke dass nun alles laufen sollt, würde aber gerne noch eure 
Meinung dazu wissen, bevor ich die Platine erneut Ätze.

Danke schon im Voraus.

Lg Mario

von Mario W. (mariow92)


Angehängte Dateien:

Lesenswert?

So, wie üblich den Anhang vergessen ^^.

Hier noch der aktuelle Schaltplan.

Lg

von Mario W. (mariow92)


Lesenswert?

Als 3V3 wird folgender LDO verwendet MCP1825S-3302E/DB.
Hier sollte die Eingangsspannung von 5V ausreichen, oder?

LG

von Mario W. (mariow92)


Lesenswert?

Hab mich gerade doch für folgenden Leo entschieden: MIC5209-3.3YS-TR
Da dieser Eine Eingangsspannung von max 16V verträgt. Wird aber trotzdem 
mit nur 5V versorgt.

LG

von Mario W. (mariow92)


Lesenswert?

Hat noch jemand Anmerkungen zu dieser Beschallung?

Wäre euch sehr dankbar.

LG

von Pete K. (pete77)


Lesenswert?

Was sollen Deine Kondensatorenbänke (22µF) im Schaltplan machen? Oder 
steht das so in den Datenblättern Deiner Linearregler?

von Mario W. (mariow92)


Lesenswert?

Pete K. schrieb:
> Was sollen Deine Kondensatorenbänke (22µF) im Schaltplan machen?
Glättung / Siebung ...

> Oder steht das so in den Datenblättern Deiner Linearregler?
Eingangsseitig am DC/DC Wandler (kein Linearregler!) laut Datenblatt, 
ausgangsseitig siehe oben.

Sonst noch was auszusetzen?

Mir geht es hier um die Funktion, nicht um i-tüpfelchen-reiterei...

Danke

von Pete K. (pete77)


Lesenswert?

Mario W. schrieb:
> Mir geht es hier um die Funktion, nicht um i-tüpfelchen-reiterei..

Dann solltest Du auch die Bauteile nach Datenblatt beschalten. Für den 
DC-DC Wandler sind laut Datenblatt keine ausgangsseitigen Elkos 
vorgesehen.

Oder sind Dir 50mV Output Ripple bei 5V zuviel?

von Mario W. (mariow92)


Lesenswert?

Pete K. schrieb:
> Oder sind Dir 50mV Output Ripple bei 5V zuviel?
150mV unter Last => JA.

5V Versorgung ist für mehrere Platinen entworfen worden.
Kondensatoren Ausgangsseitig sind hier nur C203 und C208 bestückt.

Lg, schönes Wochenende.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.