Forum: Mikrocontroller und Digitale Elektronik ATMega32 externen Reset abschalten


von Marko R. (marko_rocznik)


Lesenswert?

Sobald ich (per Relais) den Programmer an den ATMega32 abschließe zieht 
es den RESET-Pin (CLK-Leitung) für 30us auf low und resetten mir den uC.
Das will ich nicht, da es mir meinen Kalibrieraufbau so zerhagelt.

Das Datenblatt sagt nichts über die Abschaltmöglichkeit des externen 
Resets. Habe ich vielleicht was überlesen?

Viele Grüße!
 Marko

von Stefan F. (Gast)


Lesenswert?

Du kannst die Leitung unterbrechen, aber dann funktioniert der 
Programmieradapter nicht mehr.

Oder einen anderen Programmieradapter verwenden, der das nicht tut. Die 
USBASP Modelle tun es nach meinem Kenntnisstand nicht.

von Rath Geber (Gast)


Lesenswert?

Marko R. schrieb:
> den Programmer an den ATMega32 abschließe

Muss man das verstehen?

von c-hater (Gast)


Lesenswert?

Marko R. schrieb:

> Sobald ich (per Relais) den Programmer an den ATMega32 abschließe zieht
> es den RESET-Pin (CLK-Leitung) für 30us auf low und resetten mir den uC.

Dann taugt der Programmer nix und/oder deine Relaisschaltung.

> Das Datenblatt sagt nichts über die Abschaltmöglichkeit des externen
> Resets. Habe ich vielleicht was überlesen?

Nein, hast du nicht.

von Felix (Gast)


Lesenswert?

Wäre fatal, wenn das ginge.

Verbinde die Resetleitung doch einfach erst einige Sekunden nachdem der 
Programmer an die Versorgungsspannung angeschlossen wurde. Oder lasse 
den Programmer mit dem ATMega verbunden.

von Stefan F. (Gast)


Lesenswert?

c-hater schrieb:
> Dann taugt der Programmer nix u

Vorsicht, der gute alte Atmel ISP MkII macht das. Über den darfst du 
nicht meckern :-)

Felix schrieb:
> Verbinde die Resetleitung doch einfach erst einige Sekunden nachdem der
> Programmer an die Versorgungsspannung angeschlossen wurde.

Das geht nicht, dann erkennt der Programmieradpater den µC nicht und 
verweigert jedes folgende Kommando.

von Marko R. (marko_rocznik)


Lesenswert?

OK, vielleicht war ich mit meiner Frage doch etwas kurz angebunden.

Ich habe einen Messschaltung, welche während der Kalibrierung an digital 
einschaltbaren Widertständen hängt. Während der Kalibrierung will ich 
von allem galvanisch getrennt sein, daher schalte ich die Leitungen zum 
Programmer knall hart per Relais ab.

Da bei meiner Ansteuerung nun aber Pins knapp waren habe ich einfach 
verNORt um das Relais für die Programmerabschaltung anzusteuern. Nun 
habe ich eine Open-Messung implementiert zu der ich halt die Widerstände 
alle abschalte, was gleichzeitig den Programmer wieder anhängt. Das ist 
auch gar nicht schlimm, nur leider ist die CLK-Leitung des 
Programmerkabels entladen und im Moment wo diese zuschaltet wird fällt 
die Spannung für 30µs unter die Reset-Schwelle.

Die Hardware-Lösung sind 10k nach VDD, aber wenn es da eine Fuse gegeben 
hätte mit der ich den externen Reset abschalten kann wäre mir das lieber 
gewesen (braucht eh kein Mensch seit die Dinger alle eine interne 
Spannungsüberwachung haben).
Vielleicht lade ich die CLK-Leitung auch mit 100k einfach über die 
Schwellspannung vor. Schaue ich mir morgen an.

Viele Grüße!
 Marko

: Bearbeitet durch User
von Axel S. (a-za-z0-9)


Lesenswert?

Marko R. schrieb:
> OK, vielleicht war ich mit meiner Frage doch etwas kurz angebunden.

Ähhm. Ja.

> Ich habe einen Messschaltung, welche während der Kalibrierung an digital
> einschaltbaren Widertständen hängt. Während der Kalibrierung will ich
> von allem galvanisch getrennt sein, daher schalte ich die Leitungen zum
> Programmer knall hart per Relais ab.

Überzeugt mich nicht, aber meinetwegen.

> Da bei meiner Ansteuerung nun aber Pins knapp waren habe ich einfach
> verNORt um das Relais für die Programmerabschaltung anzusteuern.

Das verstehe ich nicht.

> habe ich eine Open-Messung implementiert zu der ich halt die Widerstände
> alle abschalte, was gleichzeitig den Programmer wieder anhängt.

Und das auch nicht.

> Das ist
> auch gar nicht schlimm, nur leider ist die CLK-Leitung des
> Programmerkabels entladen und im Moment wo diese zuschaltet wird

zu ge schaltet wird vielleicht?

> fällt die Spannung für 30µs unter die Reset-Schwelle.

Was hat CLK mit Reset zu tun?

> Die Hardware-Lösung sind 10k nach VDD

An Reset gehört so oder so ein Pullup.

> aber wenn es da eine Fuse gegeben
> hätte mit der ich den externen Reset abschalten kann

So eine Fuse haben viele AVR. Allerdings kann man sich nicht mehr per 
ISP mit dem AVR verbinden, wenn diese Fuse aktiviert ist.

> (braucht eh kein Mensch seit die Dinger alle eine interne
> Spannungsüberwachung haben).

Auch dieser Satz ergibt keinen Sinn. Reset dient durchaus auch für 
andere Zwecke als die Brownout-Überwachung. Z.B. eben ISP.


PS: Ich bin mir nicht sicher, welches Problem du mit deinem ATMega hast. 
Aber du hast ganz sicher ein Problem damit, dich so auszudrücken, daß 
andere dich verstehen.

: Bearbeitet durch User
von Wolfgang S. (Gast)


Lesenswert?

An den reset gehört ein Pullup und ein Kondensator (1nF - 10nF) je 
nachdem, was der Programmer noch mitmacht.

Dann ein Widerstand gegen + (10k - 1k) je nachdem, was der Programmer 
noch mitmacht.

von Wolfgang S. (Gast)


Lesenswert?

Ich glaube den Reset kann man mit einer Fuse abschalten, um das erneute 
Programmieren und Auslesen (durch Kunden) zu verhindern.

von Jim M. (turboj)


Lesenswert?

Wolfgang S. schrieb:
> An den reset gehört ein Pullup und ein Kondensator (1nF - 10nF) je
> nachdem, was der Programmer noch mitmacht.

Irks, damit kann man sich bei AVR das Debugging zerschießen, die machen 
je nach Modell DebugWire - und das läuft IIRC über die Reset Leitung. Da 
wäre ein Kondensator tödlich.

Marko R. schrieb:
> Während der Kalibrierung will ich
> von allem galvanisch getrennt sein, daher schalte ich die Leitungen zum
> Programmer knall hart per Relais ab.

Wäre es dann nicht besser die ISP Leitungen per Optokoppler o.ä. 
permanent aufzutrennen? ISP verhält sich da ähnlich zu SPI, dafür gibt 
es fertige Lösungen.

BTW: Einen Dragon kann man AFAIK relativ zuverlässig in die ewigen 
Jagtgründe befördern, wenn man ihm die Versorgung klaut wärend das 
Target noch Strom hat.

von holger (Gast)


Lesenswert?

>Ich glaube den Reset kann man mit einer Fuse abschalten, um das erneute
>Programmieren und Auslesen (durch Kunden) zu verhindern.

Beim ATmega32 mit Sicherheit nicht. Bevor man sowas postet sollte man 
mal das Datenblatt lesen.

von Marko R. (marko_rocznik)


Lesenswert?

Der Reset-Pin kann und sollte laut Datenblatt sehr wohl offen gelassen 
werden wenn man ihn zum Programmieren nutzt.

: Bearbeitet durch User
von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Marko R. schrieb:
> Reset-Pin kann und sollte laut Datenblatt sehr wohl offen gelassen werden
Dann muss man eben damit leben, dass er auf Störungen empfindlich 
reagiert.

> wenn man ihn zum Programmieren nutzt.
Draußen im Feld (also nach dem ständigen Umprogrammierung auf dem 
Labortisch) darf ein Resetpin nie unbeschaltet sein (und das "darf" ist 
hier natürlich eigentlich ein "muss"). Denn der interne "Pullup" ist 
EMV-technisch quasi nicht wirksam. Für bzw. eher gegen EMV braucht es 
einen Kondensator oder einen Pullup im 1k-Bereich. Frag deinen 
EMV-Spezi, ob er das grundlegend anders sieht.

von Amateur (Gast)


Lesenswert?

Jede Menge Prosa!
Wie wäre es mal mit ein paar Fakten, wie z.B. ein Schaltplan, oder 
zumindest eine Skizze.
Übrigens: Ist wirklich ausgeschlossen, dass Dein "Abschaltrelais" 
selber, nicht der Übeltäter ist? Die machen sehr oft reichlich Schmutz 
auf der Versorgungsleitung, an der ja auch Deine Reset-Logik rumhängt.

von Frank K. (fchk)


Lesenswert?

Marko R. schrieb:

> Ich habe einen Messschaltung, welche während der Kalibrierung an digital
> einschaltbaren Widertständen hängt. Während der Kalibrierung will ich
> von allem galvanisch getrennt sein, daher schalte ich die Leitungen zum
> Programmer knall hart per Relais ab.

Das ist Pfusch.

Ein ADuM1401 wäre die saubere Lösung:

https://www.analog.com/media/en/technical-documentation/data-sheets/ADuM1400_1401_1402.pdf

Dann darf der Programmer auch dauerhaft aktiviert sein, und Du hast 
diese Probleme nicht.

fchk

von Karl B. (gustav)


Angehängte Dateien:

Lesenswert?

Hi,

https://de.scribd.com/document/317989319/Atmel-2521-AVR-Hardware-Design-Considerations-ApplicationNote-AVR042

Jim M. schrieb:
> ISP verhält sich da ähnlich zu SPI,

Hi,
wenn ich das LCD mit Portadapter und SPI betreibe, flitzen beim 
ISP-Proggen kryptische Zeichen über das Display, und Programmieren 
fails.
Muss dann die Verbindung zum Display abtrennen.

ciao
gustav

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Karl B. schrieb:
> wenn ich das LCD mit Portadapter und SPI betreibe, flitzen beim
> ISP-Proggen kryptische Zeichen über das Display

Dann hast du das Slave Select des Displays irgendwie vergurkt. Ggf. muss 
man dort einen Pullup dran hängen, damit es während der Programmieren 
(wenn der Controller im Reset ist) nicht floatet und dann versehentlich 
das Display selektiert.

Beim TE verstehe ich nicht, warum er am Reset-Pin nicht einfach Pullup 
und Abblock-C dranhängt. Dann kann das Relais schalten, wie es will, die 
paar zusätzlichen pF für die zugeschaltete Leitung machen nichts aus.

von Peter D. (peda)


Lesenswert?

Hi gustav,

es gehört sich nicht, fremde Threads zu kapern.
Beim ATmega32 liegen ADCs und JTAG nicht auf einem Port und das war auch 
nicht das Thema.
Mache bitte einen neuen Thread auf.

von Axel S. (a-za-z0-9)


Lesenswert?

Marko R. schrieb:
> Der Reset-Pin kann und sollte laut Datenblatt sehr wohl offen gelassen
> werden wenn man ihn zum Programmieren nutzt.

Ein Pullup von 10K an Reset ist nie verkehrt. Und er behindert auch 
nicht das Debuggen mit debugWire oder JTAG. Ganz im Gegensatz zu dem 
weiter oben "empfohlenen" Kondensator von Reset nach GND. Der sollte im 
Normalfall auch nicht nötig sein. Es gibt ja POR und BOD.

Ich schrieb weiter oben, viele AVR hätten eine Fuse um den externen 
Reset abzuschalten. Der ATMega32 hat die nicht. Das entsprechende 
Fuse-Bit wird da für das OCD verwendet.

von Marko R. (marko_rocznik)


Lesenswert?

Ein PullUp konnte das Problem nicht lösen (weder 10k noch 1k). Bei den 
Transienten hat mich das auch nicht gewundert.

Das Vorladen der CLK/RESET-Leitung hat es aber gebracht und ist die 
Lösung. Die Leitung sieht im Schaltmoment jetzt absolut sauber aus.
War auch sehr einfach umzusetzen, da das Relais ein Wechsler war.

Viele Grüße!
 Marko

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Axel S. schrieb:
> Und er behindert auch nicht das Debuggen mit debugWire oder JTAG.

JTAG interessiert sich nicht für /RESET *), und debugWIRE hat der 
ATmega32 nicht.

*) nSRST braucht man nur, wenn die Firmware das JTD-Bit beim Start 
aktiviert und damit die JTAG-Schnittstelle außer Betrieb nimmt.

von Amateur (Gast)


Lesenswert?

Was um alles in der Welt verstehst Du unter "vorladen"?

von Stefan F. (Gast)


Lesenswert?

Wenn ich einen ISP Anschluss und einen externen Reset Kondensator 
brauche (nicht dass das oft vorkäme), mache ich das so:
1
           47kΩ      z.B. 10µF
2
3
 VDD o----[===]---+---||----| GND
4
                  |
5
                 |~|
6
                 |_| 4,7kΩ
7
                  |
8
 ISP Reset o------+-------------> Zum µC Reset Eingang

Auf diese Weise kann der Programmieradapter die Kontrolle über den Pin 
übernehmen, falls angeschlossen.

Das eigentliche Problem des TO (Marko) ist damit aber wahrscheinlich 
nicht gelöst. Er braucht einen Programmieradapter, der das Target nicht 
automatisch beim anstecken resetted.

von Marko R. (marko_rocznik)


Lesenswert?

Genau so ist es.

Wir können die Diskussion hie aber schließen, die ursprüngliche Frage 
nach der Abschaltbarkeit der Reset-Funktion ist ja geklärt.

Viele Grüße!
 Marko

Stefanus F. schrieb:
> Wenn ich einen ISP Anschluss und einen externen Reset Kondensator
> brauche (nicht dass das oft vorkäme), mache ich das so:
>
1
> 
2
>            47kΩ      z.B. 10µF
3
> 
4
>  VDD o----[===]---+---||----| GND
5
>                   |
6
>                  |~|
7
>                  |_| 4,7kΩ
8
>                   |
9
>  ISP Reset o------+-------------> Zum µC Reset Eingang
10
>
>
> Auf diese Weise kann der Programmieradapter die Kontrolle über den Pin
> übernehmen, falls angeschlossen.
>
> Das eigentliche Problem des TO (Marko) ist damit aber wahrscheinlich
> nicht gelöst. Er braucht einen Programmieradapter, der das Target nicht
> automatisch beim anstecken resetted.

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.