Forum: Mikrocontroller und Digitale Elektronik Schaltplan-Kritik: Atmega + RS485 + OneWire


von Felix (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,

ich habe mich an meiner ersten Mikrocontroller-Schaltung versucht und 
einige Infos mit einfließen lassen, die ich hier im Forum gefunden habe.

Hausautomatisierung mal wieder. Da alles was ich bisher gefunden hab 
nicht das kann was ich gerne hätte erfinde ich das Rad eben neu :-)

Das ganze soll eine kleine Platine werden die in der Unterputz-Dose 
verschwindet. Über RS485 ist sie mit den Aktoren im Schaltschrank 
(Keller, ca. 15m) verbunden. Über den OneWire-Bus sollen weitere 
Komponenten in einem Zimmer, z.B. Temperatursensor und Fensterkontakte 
angeschlossen werden können. Dessen Länge sollte also nicht mehr als 10m 
betragen.

Die ganzen IO's dienen zum Anschluss von Tastern. Im Moment benötige ich 
2x2 Rolladen + 2x Licht = 6 Eingänge. Hab mal ein paar mehr vorgesehen 
als Puffer. Die meisten können auch als Ausgänge verwendet werden, um 
LED's zu treiben. An den Pins die zum ISP gehen habe ich mich nicht 
getraut Kondensatoren hinzuhängen. Deshalb mit Pullup. Könnte ich mir 
die ganzen Kondensatoren + Widerstände sparen wenn da keine langen Kabel 
bis zu den Tastern dran hängen (ca. 20cm)?

Am RM-Stecker soll ein Rauchmelder angeschlossen werden. Der gibt ca. 6V 
aus wenn er Rauch erkannt hat. Bzw. er kann als Alarm verwendet werden 
wenn man ihn mit mindestens 3V ansteuert.

Als RS485 Transceiver ist gerade der MAX485 eingezeichnet. Ich würde 
aber den Pin-Kompatiblen LT1785 verbauen - den habe ich nur in KiCad 
nicht gefunden.

Mit der Versorgungsspannung gehe ich wahrscheinlich weiter runter auf 
ca. 8-9V und nicht 24V wie eingezeichnet um die Verlustleistung zu 
verringern.

Fragen:
- Benötigt der Mikrocontroller an jedem VCC-Pin einen 100nF-Kondensator 
oder reicht einer für beide VCC-Pins?
- Ist der DS2482 als OneWire-Master übertrieben? Würdet ihr OneWire 
direkt mit einem Pin vom Controller emulieren?
- Passt der Überspannungsschutz mit den Varistoren so bei dieser 
Anwendung?
- Sonstige Punkte die ich noch beachten sollte?

Bevor ich das ganze auf eine Platine quetsche würde ich mich über 
konstruktive Rückmeldungen freuen!

von Georg G. (df2au)


Lesenswert?

Felix schrieb:
> - Benötigt der Mikrocontroller an jedem VCC-Pin einen 100nF-Kondensator
> oder reicht einer für beide VCC-Pins?
Jedes Pärchen bekommt einen eigenen Kondensator.

> - Ist der DS2482 als OneWire-Master übertrieben? Würdet ihr OneWire
> direkt mit einem Pin vom Controller emulieren?
Das macht der ATMega mit links und nebenbei.

> - Passt der Überspannungsschutz mit den Varistoren so bei dieser
> Anwendung?
Du musst viel Angst haben.

> - Sonstige Punkte die ich noch beachten sollte?
AREF nicht an VCC legen.
Was soll der Quarz an PD5 und PD6? Falls das der Taktoszillator sein 
soll, sind es die falschen Pins.
Welcher Kabeltyp für RS485 hat nur 30pF pro Meter?

von Uwe B. (Firma: TU Darmstadt) (uwebonnes)


Lesenswert?

Felix schrieb:

> Fragen:
> - Benötigt der Mikrocontroller an jedem VCC-Pin einen 100nF-Kondensator
> oder reicht einer für beide VCC-Pins?

Ein Kondensator fuer jeden Versorgungspin ist gute Praxis. Zum Test 
solltest Du mit den Finger vom Chip ueber den Kondensator zum Chip 
zurueck die Schleife abfahren. Die Schleife sollte moeglichst kein 
sein...


> - Ist der DS2482 als OneWire-Master übertrieben? Würdet ihr OneWire
> direkt mit einem Pin vom Controller emulieren?
Hast Du noch einen UART mit  RX/TX frei? Suche mal mit Google nach
"one-wire uart" fuer eine Loesung ohne externen One-Wire Master.

von Horst (Gast)


Lesenswert?

24 Volt sind für einen ua78m05 ganz hart an der Obergrenze von 25Volt. 
Außerdem würd ich keine 19Volt an einem Linearregler verheizen wollen.

Uwe B. schrieb:
>> - Ist der DS2482 als OneWire-Master übertrieben? Würdet ihr OneWire
>> direkt mit einem Pin vom Controller emulieren?
> Hast Du noch einen UART mit  RX/TX frei? Suche mal mit Google nach
> "one-wire uart" fuer eine Loesung ohne externen One-Wire Master.

Das bekommt der AVR ohne zusätzlichen Master in Software gut hin.

von Peter D. (peda)


Lesenswert?

Felix schrieb:
> - Ist der DS2482 als OneWire-Master übertrieben? Würdet ihr OneWire
> direkt mit einem Pin vom Controller emulieren?

Kommt ganz auf Deine Programmiererfahrungen an.

Der DS2482 nimmt Dir nur das Timing ab, d.h. Du kannst ihn beliebig 
langsam ansteuern und must keine anderen Interrupts sperren.
D.h. Du hast keine Seiteneffekte auf andere Tasks.
Allerdings wird die Firmware komplexer, da Du ja jede 1-Wire-Aktion über 
I2C tunneln mußt.

Der direkte IO-Pin des MC macht das Programm einfacher, aber hat den 
Seiteneffekt, daß Du Interrupts für 60µs bzw. 480µs sperren können mußt, 
da der AVR ja keine Interruptprioritäten vergeben kann.

von Pete K. (pete77)


Lesenswert?

Als Stromversorgung schlage ich mal den LM2596 oder MP1584EN 
Schaltregler vor (z.B. auch Module bei aliexpress.com).

: Bearbeitet durch User
von Uwe B. (Firma: TU Darmstadt) (uwebonnes)


Lesenswert?

Peter D. schrieb:
> Der direkte IO-Pin des MC macht das Programm einfacher, aber hat den
> Seiteneffekt, daß Du Interrupts für 60µs bzw. 480µs sperren können mußt,
> da der AVR ja keine Interruptprioritäten vergeben kann.

Und wenn Du OWI mit UART machts, dann macht der UART das Timing fuer 
Dich!

von Peter D. (peda)


Lesenswert?

Uwe B. schrieb:
> Und wenn Du OWI mit UART machts, dann macht der UART das Timing fuer
> Dich!

Dann braucht er aber den ATmega328PB und nen open-drain Treiber 
(74HC125).

Eh ich mir noch ne SW-UART dazu bastele, mache ich lieber SW-1-Wire.

Bei einem 80C51 Projekt habe ich das 1-Wire mit einem Timerinterrupt 
gemacht, dem ich die höchste Priorität vergeben habe. Dann müssen keine 
anderen Interrupts gesperrt werden.

: Bearbeitet durch User
von Felix (Gast)


Angehängte Dateien:

Lesenswert?

Vielen Dank für die ganzen Tips, insbesondere Georg G.! Der Hinweis mit 
dem Quarz war gut, keine Ahnung, was mich da geritten hat den an die 
falschen Pins zu hängen.

Hat leider etwas gedauert, bis ich die Zeit gefunden habe das zu ändern.

Versorgung mach ich jetzt mit 9V, dann sollte der Linearregler kein 
Problem sein. One-Wire geht direkt an den Atmega, das kann er mit 
machen.

Zum Thema Überspannungsschutz: So wie ich Georg G. verstehe könnte ich 
die Varistoren komplett weg lassen? Wenn man hier im Forum alle 
möglichen Themen liest, dann erstreckt sich das von gar nichts machen 
bis alles industrietauglich doppelt und dreifach sichern.
Was ist denn für den Hobbybastler, der zuverlässige Geräte für zuhause 
haben möchte, ein gesundes Mittelmaß?

von Georg G. (df2au)


Lesenswert?

VR2 würde ich weglassen. Bis der genügend Spannung bekommt, um wirksam 
zu werden, ist der Eingang des Konverters schon aufgeraucht. Ansonsten: 
Lass es so, hast du das gute Gefühl, etwas gegen Störungen getan zu 
haben. Bei einem Blitzeinschlag in der Nähe hast du eh keine Chance.

von Falk B. (falk)


Lesenswert?

@  Uwe Bonnes (Firma: TU Darmstadt) (uwebonnes)

>> Der direkte IO-Pin des MC macht das Programm einfacher, aber hat den
>> Seiteneffekt, daß Du Interrupts für 60µs bzw. 480µs sperren können mußt,
>> da der AVR ja keine Interruptprioritäten vergeben kann.

>Und wenn Du OWI mit UART machts, dann macht der UART das Timing fuer
>Dich!

In der Tat. Und selbst wenn er das nicht tut, für ein bissel 
Hausautomatisierung kann man auch mit 0,5ms Interruptsperre leben.

Beitrag "Re: Onewire + DS18x20 Library"

von Falk B. (falk)


Angehängte Dateien:

Lesenswert?

@  Felix (Gast)

>getraut Kondensatoren hinzuhängen. Deshalb mit Pullup. Könnte ich mir
>die ganzen Kondensatoren + Widerstände sparen wenn da keine langen Kabel
>bis zu den Tastern dran hängen (ca. 20cm)?

Ja, das kann man in Software entprellen und so viel Störeinkopplung wird 
es nicht geben.

>- Ist der DS2482 als OneWire-Master übertrieben?

Ja.

> Würdet ihr OneWire
>direkt mit einem Pin vom Controller emulieren?

Ja.

https://www.mikrocontroller.net/topic/goto_post/4602608

>- Passt der Überspannungsschutz mit den Varistoren so bei dieser
>Anwendung?

Nein ;-)

VR1 ist soweit OK, VR5 ist eher wirkungslos. Varisoren haben kein 
superscharfe Kennlinie bei kleine Strömen, erst recht nicht bei kleinen 
Nennspannungen.
Nimm dort lieber eine Z-Diode mit 5,1V und pack einen 100nF Kondensator 
NAH an die Dioden.
Als Lektüre zum Thema kann ich das Dokument im Anhang empfehlen. Man 
kann natürlich auch gleich das Bauteil als ESD-Schutz nehmen.

VR2-VR4 sind überflüssig, die Tranceiver haben schon genügend internen 
ESD-Schutz.

- Sonstige Punkte die ich noch beachten sollte?

>Bevor ich das ganze auf eine Platine quetsche würde ich mich über
>konstruktive Rückmeldungen freuen!

D5 ist überflüssig.
Es fehlt ein Pull-Up an U1/Pin1
AREF kannst du offen lassen, da du keinerlei ADC-Eingänge verwendest.

von Peter D. (peda)


Lesenswert?

Felix schrieb:
> Zum Thema Überspannungsschutz:

Ich setze da auch hinter den Regler nen Elko (100µF), dessen Trägheit
verhindert das Durchgreifen kurzer Störimpulse.
Und noch ne Transzorb (SMBJ5,0A) zum Schutz.

von Jan S. (db8jo)


Lesenswert?

Moin,
da Du einen 5V pin an Deiner 1W Schnittsetlle vorgesehen hast, wirst Du 
vermutlich eher kein parasite power verwenden wollen.
Aber wenn doch, ist es ganz gut einen "active pull up" zu verwenden - 
also einen Transistor der die Datenleitung für die Zeit einer Messung 
auf high zieht.

von Felix (Gast)


Lesenswert?

Noch eine kurze Rückfrage: Benötigt Pin 4 an U1 nicht auch einen Pullup?
Auf dem Steckbrett habe ich weder an pin 1 noch an Pin 4 einen Pullup 
und es funktioniert. Aber das will ja nichts heißen.

Muss der zweite 100 muF Elko am Ausgang des Spannungsregler sein? Der 
braucht so viel Platz.

von Falk B. (falk)


Lesenswert?

@  Felix (Gast)

>Noch eine kurze Rückfrage: Benötigt Pin 4 an U1 nicht auch einen Pullup?

Nein.

>Muss der zweite 100 muF Elko am Ausgang des Spannungsregler sein?

Nein.

von Felix (Gast)


Angehängte Dateien:

Lesenswert?

So, ich habe mich an einem Layout für die Platine versucht. Irgendwie 
sind alle 100nF Kondensatoren zur Stabilisierung der Versorgungsspannung 
für die ICs sehr nah beieinander gelandet. Benötige ich die dann 
trotzdem alle? Das leuchtet mir nicht so ganz ein.

Wie breit macht man Leiterbahnen für die Stromversorgung von 
Komponenten? Ich ziehe die 5V mit einer 0,75mm breiten Leiterbahn über 
die Platine. Ist das etwas viel?

In Kicad habe ich für die 0805-SMDs 0805_HandSoldering als Footprint 
gewählt. Kann man auch den normalen 0805-Footprint noch von Hand löten? 
Das würde noch etwas Platz sparen.

Ich glaub ich bestell jetzt mal die Teile, druck das Layout auf Papier 
und schau mir an ob überhaupt alle Teile so gequetscht passen.

Die Dioden von Hand zu löten macht mir Angst ...

von Falk B. (falk)


Lesenswert?

@Felix (Gast)

>für die ICs sehr nah beieinander gelandet. Benötige ich die dann
>trotzdem alle? Das leuchtet mir nicht so ganz ein.

Wenn man WIRKLICH weiß was man tut, kann man die 3x100nF in der Mitte 
auf einen reduzieren. Im Zweifelsfall sollte man aber eher alle drei 
drinlassen.

>Wie breit macht man Leiterbahnen für die Stromversorgung von
>Komponenten? Ich ziehe die 5V mit einer 0,75mm breiten Leiterbahn über
>die Platine. Ist das etwas viel?

Wen du den Platz hast, lass es so. Für die paar ma reichen auch 0,3 oder 
0,5mm.

>In Kicad habe ich für die 0805-SMDs 0805_HandSoldering als Footprint
>gewählt. Kann man auch den normalen 0805-Footprint noch von Hand löten?

Ja.

>Ich glaub ich bestell jetzt mal die Teile, druck das Layout auf Papier
>und schau mir an ob überhaupt alle Teile so gequetscht passen.

Das bringt wenig bis nichts.

>Die Dioden von Hand zu löten macht mir Angst ...

Warum? Geh's einfach an. Mit etwas Übung wird das schon.

von R. R. (elec-lisper)


Lesenswert?

Kann mir jemand erklären, was IRF7309 in der Schaltung
um den L-Driver tut? So wie ich das seh, ist der N-MOSFET
doch immer zu, und der P-MOSFET auch?
Gehts da nur um die Dioden in den MOSFETs?

von Felix (Gast)


Lesenswert?

Robin R. schrieb:
> Kann mir jemand erklären, was IRF7309 in der Schaltung
> um den L-Driver tut? So wie ich das seh, ist der N-MOSFET
> doch immer zu, und der P-MOSFET auch?

Ohje, ich hatte hier Beitrag "Relais mit Mosfet ansteuern (Arduino)" 
gelesen, dass da zwei N-Kanal Mosfet's drin wären. Das stimmt ja gar 
nicht.

Eigentlich soll die Schaltung ein Low-Side Treiber sein, mit dem ich 
zwei größere Lasten (Relais) schalten kann. Auf dem Steckbrett hab ich 
das mit BS170 getestet und dachte nun: "Nimm einfach ein IC, das 2 
MOSFET enthält um Platz zu sparen". Und schon das falsche erwischt ...
Hat jemand einen Vorschlag für nen MOSFET der 500mA schalten kann, 
N-Kanal, 2 Stück in einem SMD-Gehäuse?

von Felix (Gast)


Lesenswert?

IRF7103 müsste doch geeignet sein um mit einem atmega ein Relais 
anzusteuern, das ca. 500mA braucht?

von Falk B. (falk)


Lesenswert?

Passt

von Falk B. (falk)


Lesenswert?

Aber auch bei dem sollte man Source an GND anschließen und Gate an den 
AVR ;-)

von R. R. (elec-lisper)


Lesenswert?

Falk B. schrieb:
> Aber auch bei dem sollte man Source an GND anschließen und Gate an den
> AVR ;-)

Also hab ich die Schaltung zu Recht nicht verstanden?

von Falk B. (falk)


Lesenswert?

@  Robin R. (elec-lisper)

>> Aber auch bei dem sollte man Source an GND anschließen und Gate an den
>> AVR ;-)

>Also hab ich die Schaltung zu Recht nicht verstanden?

Eine sehr vornehme, zurückhaltende Art, dem OP einen Fehler in seinem 
Schaltplan mitzuteilen ;-)

von R. R. (elec-lisper)


Lesenswert?

Falk B. schrieb:
> @  Robin R. (elec-lisper)
>
>>> Aber auch bei dem sollte man Source an GND anschließen und Gate an den
>>> AVR ;-)
>
>>Also hab ich die Schaltung zu Recht nicht verstanden?
>
> Eine sehr vornehme, zurückhaltende Art, dem OP einen Fehler in seinem
> Schaltplan mitzuteilen ;-)

Das war ja garnicht meine Absicht :-) Wenn ich etwas nicht verstehe,
dann neige ich meist wirklich dazu mein eigenes Wissen in Frage zu
stellen. Bei Dingen wie Elektronik, in denen ich nur wenige 
Hobbyerfahrungen
habe, ist das durchaus auch das richtige. Jedoch neige ich auch
in meinem Hauptberuf (Softwareentwickler) dazu den Fehler im
Verständnis bei mir zu suchen - was jedoch immer seltener zutrifft.

von Felix (Gast)


Angehängte Dateien:

Lesenswert?

Falk B. schrieb:
> Eine sehr vornehme, zurückhaltende Art, dem OP einen Fehler in seinem
> Schaltplan mitzuteilen ;-)

Auf jeden Fall ein sehr hilfreicher Hinweis. Und gleich zwei Fehler mit 
einem Satz zu erschlagen: Vorbildlich.

Ich hab's geändert, vielen Dank!

von Falk B. (falk)


Lesenswert?

@Felix (Gast)

>    Screenshot_from_2017-01-06_17-49-30.png

>Ich hab's geändert, vielen Dank!

Naja. Schaltplansymbole zeichnet man so, daß sie LOGISCH sinnvoll 
dargestellt werden und keine sinnlosen Kreuzungen entstehen. Man 
zeichnet sie im Allgemeinen NICHT so, wie das GEHÄUSE verdrahtet ist! 
Dann dafür gibt es das Package!

Also zeichne 2 ganz normale N-Kanal MOSFETs, welche als Gatter zu deinem 
IC gehören.

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.