Serienwiderstand zwischen 2 ATMega8

Hero_123

Mitglied
17 Sep 2010
154
3
18
Sprachen
ANSI C
Hallo!
Ich habe 2 ATMega8 mit gemeinsamer Spannungsversorgung und möchte einen Ausgang eines ATMega8 nutzen um beim anderen einen externen Interrupt (PD2/PD3) auszulösen (auslösendes Signal würde nur einen Zyklus anstehen) - sollte ich dafür einen Serienwiderstand vorsehen? Ich denke nicht.

Die "AVR042 Hardware Desgin Consideration" äußern sich nicht dazu, außer dass man bei einem Taster für den RESET Eingang einen 330 Ohm Widerstand vorsehen sollte.

Ich habe bei meinen Tastern/Schaltern (für die Input-Ports) auch keine Widerstände vorgesehen, allerdings sind die Taster per RC-Glied entprellt...

mfg

Hero_123
 

Janiiix3

Aktives Mitglied
28 Sep 2013
1.323
10
38
Hannover
Sprachen
ANSI C, C#
Klar, was sollte dich davon abhalten?!
 

LotadaC

Sehr aktives Mitglied
22 Jan 2009
3.363
61
48
Marwitz
Sprachen
BascomAVR, Assembler
Für so einen Serienwiderstand gibt es zwei mögliche Gründe.
  1. Als Bestandteil eines Tiefpasses, um Signale die eine bestimmte Grenzfrequenz (die eben durch den Widerstand und eine Kapazität festgelegt wird) überschreiten wegzufiltern.
  2. Zur Strombegrenzung.
(1.) würde zB zur Hardware-Entprellung verwendet werden, wenn nicht in Software entprellt werden soll oder kann. (Der Tiefpaß wirkt sich auch auf die Reaktionszeit des Signales aus).
(2.) kann Kurzschlüsse verhindern, zB wenn beide Controller unterschiedliche (harte) Pegel auf die Leitung legen könnten. Über den Daumen könntet Du 5V als maximale Differenz und 20mA als maximal zulässigen Strom annehmen. Mit einem 330R wärst Du also auf der sicheren Seite.
Grundsätzlich brauchst Du also keinen Serienwiderstand.

P.S.: wo steht das mit dem 330R am Reset? In Revision "F" hab ich nix gefunden. Empfohlen wird in stark rauschenden Umgebungen ein externer Pullup, und ggf 'ne externe Diode gegen Vcc (da wegen HighVoltageProgramming keine interne vorhanden ist). Kommt aber auch drauf an, was layouttechnisch am Reset ist - wenn der Pin komplett unbeschaltet ist, hält sich die Wirkung als Antenne in Grenzen, reicht der interne Pullup. Wenn aber am Reset 'ne lange offene Leitung hängt (zB für einen externen Programmer), und rundrum viel starkes Rauschen, triggert der Reset vielleicht, weil der interne Pullup zu schwach gegen das Rauschen ist...
 

Dirk

Administrator
Teammitglied
28 Jan 2007
4.290
141
63
Mittelhessen, Giessen
Sprachen
ANSI C, C++, C#, Java, Kotlin, Pascal, Assembler, PHP
Wenn aber am Reset 'ne lange offene Leitung hängt (zB für einen externen Programmer), und rundrum viel starkes Rauschen, triggert der Reset vielleicht, weil der interne Pullup zu schwach gegen das Rauschen ist...
Der 330R vom Taster zum Reset-Pin in der AN ist eventuell zum Schutz vom Programmer gedacht, manche Programmer reagieren vielleicht empflindlich darauf, wenn der Reset-Taster gedrückt ist und "EnterProgrammingMode" gesendet wird.

Ansonsten würde ich auch sagen, einen Serienwiderstand in die Signalleitung einfügen, wenn man den Strom begrenzen möchte
  • wenn die Gefar besteht, beide Pins als Ausgang zu schalten oder
  • wenn zusätzlich externe Hardware (zB. Programmer) an dem einen Eingangspin hängt (->entkoppeln)
 

Hero_123

Mitglied
17 Sep 2010
154
3
18
Sprachen
ANSI C
Hallo LotadaC, hallo Dirk

Vielen Dank für Eure Hilfe!

Zu dem ATMEL Dokument: es ist die Version "Atmel-2521R-AVR_Hardware_Design_Considerations_AVR042_Application Note-09/2016", und auf Seite 6 steht:

"3.1. External RESET Switch
If an external switch is connected to the RESET pin, it is important to add a series resistance. Whenever
the switch is pressed, it will short the capacitor and the current (I) through the switch can have high peak
values. This causes the switch to bounce and generate steep spikes in 2ms - 10ms (t) periods until the
capacitor is discharged. The PCB tracks and the switch metal introduces a small inductance (L) and the
high current through these tracks can generate high voltages up to VL = L * dI/dt."


Zum Dokument - Doc Rev 2521R ; Date 09/2016 ...

mfg

Hero_123
 

Dirk

Administrator
Teammitglied
28 Jan 2007
4.290
141
63
Mittelhessen, Giessen
Sprachen
ANSI C, C++, C#, Java, Kotlin, Pascal, Assembler, PHP
http://ww1.microchip.com/downloads/en/appnotes/atmel-2521-avr-hardware-design-considerations_applicationnote_avr042.pdf

Ja im oberen Bild sieht man, dass ein C (100nF) nach GND mit 4k7 Pullup-Widerstand angeschlossen ist. Beim Einschalten der Betriebsspannung ist C erst mal entladen und lädt sich dann langsam auf. Das Reset-Signal ist also noch einige Zeit auf Low-Pegel (nach ca. 5xRxC hat der Kondensator VCC Pegel).

Betätigt man die Taste, wird der Kondensator über den Taster kurzgeschlossen, es fließt für kurze Zeit ein hoher Strom. Der Widerstand vor dem Taster verhindert das.

Bei der Verbindung von Output- und Inputpin würde ich keinen Widerstand verwenden.
 

LotadaC

Sehr aktives Mitglied
22 Jan 2009
3.363
61
48
Marwitz
Sprachen
BascomAVR, Assembler
2521R ; Date 09/2016
Ah ok, in Revision F gab's das mit dem Taster noch nicht.
Da steht aber auch, daß man den zusätzlichen Kondensator i.a. nicht braucht.
Bei der Verbindung von Output- und Inputpin würde ich keinen Widerstand verwenden.
Klar, aber so ein zusätzlicher Widerstand würde den Controller vor "dämlichen Programmierfehlern"(*) schützen. Bei 'nem Mega8 verschmerzbar, aber bei teurerer oder schwer beschaffbarer Hardware...

(*) hat wahrscheinlich jeder mal irgendwie gemacht. Zwar kein programmieren, aber ich hab mal bei 'nem Abwärtswandler die 5V-Eingangsspannung auf "Enable" geschaltet. der hat dann auch brav die berechneten ca. 3,?V erzeugt (war als Konstantstromquelle für LEDs verschaltet). Dann wollte ich Spannung und Strom am Netzteil ablesen, bis 3V runtergedreht (geht der Strom hoch, klar) bis 5V hoch (geht der Strom runter, klar). Wenn man die Spannung noch weiter hoch dreht, sollte der Strom noch weiter runter gehen, oder? (der Regler kann 40V oder so am Eingang ab, das Netzteil geht nur bis 30V)

Bis etwa 6V hat's auch geklappt... :eek:
Mist... Schaltregler aus- und neuen eingelötet.
Den defekten als Mahnmal an die Wand gepinnt...
(neben die selbstgeätzte Leiterplatte, wo die Skalierung beim Drucken der Belichtungsfolie auf der X-Achse aufgrund eines Bugs bei Eagle nicht gepaßt hat. Fällt einem natürlich erst auf, nachdem man bereits einen Teil der Bauteile bestückt hat (von den gefühlten, vorher gebohrten 200 Löchern ganz zu schweigen :viking:))
 

Hero_123

Mitglied
17 Sep 2010
154
3
18
Sprachen
ANSI C
Hallo LotadaC, hallo Dirk

Vielen Dank für Eure Hilfe!

Also - ein Serienwiderstand zwischen Output- und Input Pin ist nicht zwingend nötig, aber
so ein zusätzlicher Widerstand würde den Controller vor "dämlichen Programmierfehlern" schützen.
=> so ein Widerstand ist ja wesentlich billiger als ein ATMega8 (naja, auch der kostet nicht die Welt), und da ich noch kein Adept bin und dämliche Programmierfehler keinesfalls auszuschliessen sind, werde ich einen vorsehen ;).

mfg

Hero_123
 

Über uns

  • Makerconnect ist ein Forum, welches wir ausschließlich für einen Gedankenaustausch und als Diskussionsplattform für Interessierte bereitstellen, welche sich privat, durch das Studium oder beruflich mit Mikrocontroller- und Kleinstrechnersystemen beschäftigen wollen oder müssen ;-)
  • Dirk
  • Du bist noch kein Mitglied in unserer freundlichen Community? Werde Teil von uns und registriere dich in unserem Forum.
  •  Registriere dich

User Menu

 Kaffeezeit

  • Wir arbeiten hart daran sicherzustellen, dass unser Forum permanent online und schnell erreichbar ist, unsere Forensoftware auf dem aktuellsten Stand ist und der Server regelmäßig gewartet wird. Auch die Themen Datensicherheit und Datenschutz sind uns wichtig und hier sind wir auch ständig aktiv. Alles in allem, sorgen wir uns darum, dass alles Drumherum stimmt :-)

    Dir gefällt das Forum und unsere Arbeit und du möchtest uns unterstützen? Unterstütze uns durch deine Premium-Mitgliedschaft!
    Wir freuen uns auch über eine Spende für unsere Kaffeekasse :-)
    Vielen Dank! :ciao:


     Spende uns! (Paypal)