Reset Deaktivieren

Gast #1261263
Lesenswert?

Hallo,

ich bin auf der Suche nach einer Möglichkeit einen Software Reset auf 
jeden fall zu vermeiden als gar nicht zuzulassen
ich arbeite mit einem ATMega16 und möchte auch bei diesem softwaremässig 
einen Reset deaktivieren.

Hoffe auf baldige Antwort

MfG
#1261271
Lesenswert?

Hallo,

Cweho9ag schrieb:
> ich bin auf der Suche nach einer Möglichkeit einen Software Reset auf
> jeden fall zu vermeiden als gar nicht zuzulassen
Was ist für Diche in Software-Reset?
Sowas gibt es nicht beim AVR.

> ich arbeite mit einem ATMega16 und möchte auch bei diesem softwaremässig
> einen Reset deaktivieren.
Was denn nun? Softwaremäßig den Hardware-Reset abfangen? Geht so nicht.

Gruß aus Berlin
Michael
#1261274
Lesenswert?

Cweho9ag schrieb:
> Hallo,
>
> ich bin auf der Suche nach einer Möglichkeit einen Software Reset auf
> jeden fall zu vermeiden als gar nicht zuzulassen
> ich arbeite mit einem ATMega16 und möchte auch bei diesem softwaremässig
> einen Reset deaktivieren.

?
Was willst du da deaktivieren.
Per Software kann man einen echten Reset sowieso nur über den Watchdog 
ausführen. Verwend den Watchdog einfach nicht, und nichts wird 
passieren.
Und hardwaremässig: bau einfach keinen Taster an den Resetpin und 
niemand kann dann einen Reset machen.
Gast #1261280
Lesenswert?

Philipp Burch schrieb:
> Abgesehen vom Watchdog gibt's da keine Software-Resets. Allerdings kommt
> es vor, dass der Controller bei einem Fehler (Überlaufen des PC oder
> Aufruf eines unbehandelten Interrupts) wieder an den Anfang des
> Speichers springt, was in etwa einem Reset entspricht.

Naja, das ist ein Überlauf. Mit einem Reset hat das garnix zu tun, denn 
die Spezial-Register und so weiter werden nicht zurückgesetzt.
#1261285
Lesenswert?

Kann es sein, dass du einen Programmfehler kaschieren willst.

So nach dem Muster:
  Mein Programm löst ständig einen Reset aus.
  Also verbiete ich den Reset ganz einfach -> Problem gelöst


Das ist der falsche Weg. In der Programmierung reicht es nicht die 
Symptome zu bekämpfen. Man muss den Ursachen auf den Grund gehen und 
dort den Hebel ansetzen. Alles andere ist Pfusch übelster Sorte.
#1261293
Lesenswert?

Cweho9ag schrieb:
> Den Watchdog deaktiviert habe ich mittlerweile sofern dieser Quelcode
> dafür stimmt zum deaktivieren:
>
> ;*************
> ;Watch-Dog Ausschalten
>
> in r16, WDTCR
> ori r16, (1<<WDTOE)|(1<<WDE)
> out WDTCR, r16
> ;Turn off WDT
> ldi r16, (0<<WDE)
> out WDTCR, r16
> ;*************

Wenn ich mich recht erinnere, ist der Watchdog bei AVR-Prozessoren 
standardmässig per Fuse sowieso abgeschaltet. Wenn du also an dieser 
Fuse nie gespielt hast, dann ist der WDT sowieso nie aktiv. Und wenn ich 
den permanent abschalten wollte, dann würd ich als erstes an der Fuse 
abschalten.
Gast #1261324
Lesenswert?

1. Der jenige der um 14:29 geschrieben hat war nicht ich

2. Am STK500 funktioniert es einwandfrei, der gesamte ablauf des 
programms für unseren Roboter zu linienverfolgung samt ausweichmodus.
nur auf der gefertigten platine mit motortreiber usw. funktioniert es 
nicht mehr da bekommt der µC beinahe jedesmal wenn er ein hinderniss 
erkennt, stehenbleibt und wieder vorwärtsfahren will einen Reset und 
weis dann eben nicht mehr das er im Zeitgesteuerten ausweichmodus sich 
befindet

3. Beschaltung des Reset: Dauerthaft auf +5V über Pullup
SPannungsversogungn über einen LM7805 glaube ich ist des, dieser hat 
auch Stützkondensatoren für kurze spannungseinrbüche
#1261327
Lesenswert?

Cweho9ag schrieb:

> Also das past scho so mit dem Reset abfangen

Na offensichtlich nicht. Wenn du in dein Programm keinen Reset 
hineinprogrammiert hast und das Programm fehlerfrei ist, kann auch 
keiner auftreten. Hineinprogrammieren kann man auf einem AVR keinen 
echten Reset (und wenn wäre es ein Leichtes die Programmierung zu 
ändern). Wenn du in die Verlegenheit kommst, einen Reset abfangen zu 
müssen, kann das daher nur bedeuten, dass dein Programm eben nicht 
fehlerfrei ist (wenn wir mal eine fehlerfreie Hardware voraussetzen)

qed

Dann allerdings solltest du über den Reset froh sein, denn der sorgt 
immerhin, dass der µC wieder auf die Füsse fällt.
Persönliche Seite #1261330
Lesenswert?

Cweho9ag schrieb:

> 1. Der jenige der um 14:29 geschrieben hat war nicht ich

Jaja ;-)  - dann meld' Dich an, dann passiert so etwas nicht.

> 2. Am STK500 funktioniert es einwandfrei, der gesamte ablauf des
> programms für unseren Roboter zu linienverfolgung samt ausweichmodus.
> nur auf der gefertigten platine mit motortreiber usw. funktioniert es
> nicht mehr da bekommt der µC beinahe jedesmal wenn er ein hinderniss
> erkennt, stehenbleibt und wieder vorwärtsfahren will einen Reset und
> weis dann eben nicht mehr das er im Zeitgesteuerten ausweichmodus sich
> befindet

EMV-Problem. Schaltplan & Layout posten.

> 3. Beschaltung des Reset: Dauerthaft auf +5V über Pullup

Evtl. noch 100nF gegen GND.
#1261331
Lesenswert?

Cweho9ag schrieb:

> nicht mehr da bekommt der µC beinahe jedesmal wenn er ein hinderniss
> erkennt, stehenbleibt und wieder vorwärtsfahren will

wenn also die Motoren einschalten.

Da würd ich doch glatt mal vermuten, dass dir die Motoren eine Menge 
Schmutz auf die Versorgungsspannung einkoppeln.

Oder natürlich, ihr habt da einen Programmfehler beim Wiederanfahren.
#1261335
Lesenswert?

Olli R. schrieb:
> Cweho9ag schrieb:
>
>> 1. Der jenige der um 14:29 geschrieben hat war nicht ich
>
> Jaja ;-)  - dann meld' Dich an, dann passiert so etwas nicht.
>
>> 2. Am STK500 funktioniert es einwandfrei, der gesamte ablauf des
>> programms für unseren Roboter zu linienverfolgung samt ausweichmodus.
>> nur auf der gefertigten platine mit motortreiber usw. funktioniert es
>> nicht mehr da bekommt der µC beinahe jedesmal wenn er ein hinderniss
>> erkennt, stehenbleibt und wieder vorwärtsfahren will einen Reset und
>> weis dann eben nicht mehr das er im Zeitgesteuerten ausweichmodus sich
>> befindet
>
> EMV-Problem. Schaltplan & Layout posten.
>
>> 3. Beschaltung des Reset: Dauerthaft auf +5V über Pullup
>
> Evtl. noch 100nF gegen GND.

ANgemeldet grade eben genau deswegen

ja ist eh über 10k angeschlossen nicht über den internen PullUp

Layout ansich ist kein wirkliches vorhanden, bzw dort sind auch nicht 
alle Leiterbahnen vorhanden da einiges über Drahtbrücken gemacht wurde.
#1261341
Lesenswert?

Karl heinz Buchegger schrieb:
> Cweho9ag schrieb:
>
>> nicht mehr da bekommt der µC beinahe jedesmal wenn er ein hinderniss
>> erkennt, stehenbleibt und wieder vorwärtsfahren will
>
> wenn also die Motoren einschalten.
>
> Da würd ich doch glatt mal vermuten, dass dir die Motoren eine Menge
> Schmutz auf die Versorgungsspannung einkoppeln.
>
> Oder natürlich, ihr habt da einen Programmfehler beim Wiederanfahren.

AUs diesem Grund haben wir auch mittlerweile eigene Spannungsversorgung 
für den ATMega16, CNY70 Sensoren und LEDs die weiter über eine LM7005 
beschaltet sind
und die Motoren hängen an einer anderen Spannungsversorgung.
Das einzige verbundene ist die Masse

Das diese nicht wirklich trennbar ist da uns auch die Zeit dafür fehlt 
da wir diese Diplomarbeit in 2 1/2 wochen abgeben müssen
#1261343
Lesenswert?

Christoph W. schrieb:

> Layout ansich ist kein wirkliches vorhanden, bzw dort sind auch nicht
> alle Leiterbahnen vorhanden da einiges über Drahtbrücken gemacht wurde.

Na dann wirds Zeit mal einen Schaltplan zu zeichnen.
Besonderes Augenmerk: Welche Kondensatoren habt ihr wo verteilt. Bei den 
Kondensatoren ist dann auch noch interessant: Wo sind sie physisch 
angeordnet. Jedes DigitialIC freut sich über 100nF, die möglichst dicht 
an den Pins der Versorgungsspannung angeordnet sind.
#1261401
Lesenswert?

Christoph W. schrieb:
> Ja das ist eben das board nur da ist eben nicht alles oben da einiges
> noch mit drahtbrücken gemacht wurde, wie zb der US-Sensor SRF05 das Echo
> und Trigger ist mittels Draht dazu gegeben

Der Sensor ist es ganz sicher nicht (ausser du hast bei der Auswertung 
einen Fehler).

Normalerweise würd ich sagen: trete das Board in die Tonne.
Deine Kondensatoren sind, nun ja, suboptimal angeordnet.

OK. Erst mal müsst ihr aussortieren ob es ein Hardware oder ein Software 
Problem ist. Da am STK anscheinend noch alles so einigermassen 
funktionierte, wirds wohl die Hardware sein. Aber man weiß nie so recht.

Robi ganz einfach programmieren:
  Am Programmanfang eine LED einschalten.
  Sekunde warten
  LED ausschalten

  Dann immer wieder:
    Stehen bleiben
    los fahren

Wie ist das, wenn er fäht? Brennt die LED oder nicht. Wenn sie brennt, 
dann ist das Pgm angestürzt (bei einem simplen Motor einschalten, kann 
man in der Programmierung gar nicht soviel falsch machen, dass der µC 
abstürzen würde).
Wenn dabei der µC resettet, dann liegt zu 95% ein Hardware Problem vor.
Persönliche Seite #1261406
Lesenswert?

A. K. schrieb:
> Gleiches Problem bei der Masse vom Quarz. Auch die wickelt sich komplett
> um die Platine bis sie die GND Pins vom Controller erreicht.
>
> M.a.W: Layout wegwerfen, nochmal machen.

Abgabe in 2 1/2 Wochen?

Aber im Ernst. Gibt es Eurer AG niemanden, dem Ihr beizeiten mal ein 
paar Layout-Tipps haettet entlocken koennen? Einzalkaempfen kommt auch 
spaeter im Job nicht so gut an.

Es gibt auch Appnotes von Atmel zur=m Thema Versorgung etc, z.B.

http://www.atmel.com/dyn/resources/prod_documents/doc2521.pdf
http://www.atmel.com/dyn/resources/prod_documents/doc1619.pdf
#1261416
Lesenswert?

Olli R. schrieb:
> A. K. schrieb:
>> Gleiches Problem bei der Masse vom Quarz. Auch die wickelt sich komplett
>> um die Platine bis sie die GND Pins vom Controller erreicht.
>>
>> M.a.W: Layout wegwerfen, nochmal machen.
>
> Abgabe in 2 1/2 Wochen?

Ist zu machen.
Wenn sie die Platine jetzt mit Drahtbrücken und direkt gelöteten Kondis 
hinkriegen, können sie morgen schon eine neue Platine haben, die

* grundsätzlich in der Bahnführung besser ist
* alle die Teile beinhaltet, die jetzt fliegend verdrahtet wurden
#1261417
Lesenswert?

Hallo,

dem 7805 fehlenden die 100n an Ein- und Ausgang. Die Leiterbahnführung 
für GND und +5V sieht mir sehr ungünstig aus, dem AVR fehlen die je 100n 
dicht am IC. Die Versammlung der 1µ unten dürfte recht wirkungslos sein.
Ströme des Leistungskreises (GND!) dürfen nicht über die Leitungen des 
AVR fließen, Treffpunkt sollte der Anschluß an der Platine sein, von 
dort zum Leistungsteil und zum Spannungsregler. Ein größerer Elko dort 
wäre auch sinnvoll.

Gruß aus Berlin
Michael
Persönliche Seite #1261424
Lesenswert?

Karl heinz Buchegger schrieb:

> Ist zu machen.
> Wenn sie die Platine jetzt mit Drahtbrücken und direkt gelöteten Kondis
> hinkriegen, können sie morgen schon eine neue Platine haben, die

OK, ich komm' aus der Experimentalphysik, ich musste damit dann noch ein 
paar Wochen messen und dann auswerten, "nur" fuer Hardwaregebastel 
(alleine) haett's da kein Diplom gegeben.
#1261447
Lesenswert?

Ja naja problem ist die ganze Diplomarbeit  wurde aufgeteilt und somit 
hat jetzt z.b. einer platine usw. gemacht und ich jetzt die 
programmierung übernommen.
Da nun auf dem STK500 alles funktioniert und der ablauf auch nicht 
gestört wird, und aber auf der platine das gnaze teilweise nicht 
wirklich funktioniert schliesse ich eben hart auf die hardware
Persönliche Seite #1261449
Lesenswert?

Christoph W. schrieb:

> Da nun auf dem STK500 alles funktioniert und der ablauf auch nicht
> gestört wird, und aber auf der platine das gnaze teilweise nicht
> wirklich funktioniert schliesse ich eben hart auf die hardware nur mein
> Kollege interessiert sich dafür anscheinend recht wenig.
> Und Problem ist halt wie zeige ich nun vor das es softwaremässig
> funktioniert?

Gib halt die Schaltung auf dem STK500 ab.
Persönliche Seite #1261460
Lesenswert?

Christoph W. schrieb:

> Da nun auf dem STK500 alles funktioniert und der ablauf auch nicht
> gestört wird, und aber auf der platine das gnaze teilweise nicht
> wirklich funktioniert schliesse ich eben hart auf die hardware

Die Hardware ist also von Deinem Kollegen, die Software von Dir.

Klar, da kann man gut den schwarzen Peter hin- und herschieben. Ohne 
jetzt die Software gesehen zu haben, wuerde ich sagen, es liegt an der 
Hardware. Wenn Dein Kollege das nicht glaubt, schick ihn mal hierher, da 
wird er dann eingenordet.
#1261466
Lesenswert?

Olli R. schrieb:

> Die Hardware ist also von Deinem Kollegen, die Software von Dir.
> Klar, da kann man gut den schwarzen Peter hin- und herschieben.

Nicht ganz, denn mit dem STK500 funktioniert es ja.

Da Reset hier offenbar überhaupt nicht verwendet wird, kann man den auch 
direkt an Vcc hängen. Eine Fehlerquelle weniger. Dann noch die Massen 
nachdrahten, auch die zwischen den GNDs vom Controller, noch Kerkos 
zwischen die Versorgungspaare löten und die Chancen stehen besser.
Persönliche Seite #1261478
Lesenswert?

A. K. schrieb:
> Olli R. schrieb:
>
>> Das mit dem "STK500 abgeben" war wirklich ernst gemeint. Dass es aus
>> derselben Versorgung wie Eure Platine laufen kann, sollte Dir klar sein.
>
> Genau das ist mit dem STK500 etwas haarig, denn der hat einen
> Brückengleichrichter am Stromeingang. Muss man dran denken.

Was ist daran haarig, wenn ich Gleichspannung auf einen 
Brueckengleichrichter lege, vom leichten Drop mal abgesehen? Ausserdem 
kann man auch dahinter einspeisen.
Persönliche Seite #1261488
Lesenswert?

A. K. schrieb:
> Da ist hier schon mancher drüber gestolpert. Wie ich schrieb, man mus
> den mit auf der Rechnung haben. Gehen tut es schon.

Ich sehe auch in Christophs Schaltung eine Diode als Verpolungsschutz. 
Von daher ist das Jacke wie Hose. Wenn er sie denn verbaut hat, die 
liegt ausserhalb des Boards unten links in der Ecke rum.
#1261541
Lesenswert?

So da die Zeit für uns in der Schule langsam knapp wird, wird das ganze 
Hardwaretechnisch umzubauen usw schwierig...

wir probieren jetzt das gnaze wieder mit der provisorischen platine 
fahrbereit zu machen die eben mit drahtbrücken noch aufgebaut ist und 
probieren das ganze eher über einen Festwertspeicher zu versuchen. D.h. 
ist er gerade im Auswiechmodus und es passiert ein reset soll er 
weiterhin den Bogen um das Objekt herum fahren.

Werde nach ein paar Tests wieder berichten
Persönliche Seite #1261546
Lesenswert?

Christoph W. schrieb:

> So da die Zeit für uns in der Schule langsam knapp wird, wird das ganze
> Hardwaretechnisch umzubauen usw schwierig...

Ich dachte, es ist eine Diplomarbeit?

> wir probieren jetzt das gnaze wieder mit der provisorischen platine
> fahrbereit zu machen die eben mit drahtbrücken noch aufgebaut ist und
> probieren das ganze eher über einen Festwertspeicher zu versuchen. D.h.
> ist er gerade im Auswiechmodus und es passiert ein reset soll er
> weiterhin den Bogen um das Objekt herum fahren.

Hm, Pfusch durch Pfusch kompensieren, naja.
Persönliche Seite #1261563
Lesenswert?

Christoph W. schrieb:

> Ja nur diese Diplomarbeit haben wir in der Schule.

Ich dachte immer, der Begriff "Diplom-" waere einer Hochschulausbildung 
vorbehalten. Na, egal.

> Und sofern der Pfusch funktioniert ist die Matura gerettet ^^
>
> Wirklich nen gute idee ists nicht aber so kann ich zumindestens auf eine
> bestandene Matura hoffen

Wenn es dabei "nur" um ein Werk fuer's Abi geht, kann man das wohl so 
durchgehen lassen, ja. Bei einer Diplomarbeit (an der Uni) wuerde Dir 
das ein sachkundiger Pruefer um die Ohren hauen :-)

Viel Erfolg.
#1261582
Lesenswert?

Peter Dannegger schrieb:
> Einige Tips:
>
> - setze alle unbenutzten Pins auf Input mit Pullup
> - setze einen BADISR_vect Handler auf
> - ermittle die Resetquelle
> - enable Brownout-Reset
> - Fuse auf längste Resetzeit
> - Quarzoszillator auf Full-Swing.
> - benutze keinen Watchdog (Fuse nicht setzen, nach Poweron WDRF-Bit
> löschen, danach Watchdog disablen).
>
>
>
> Peter

Ich weis nicht wie sehr du dich mit assembler und AVR-Studio auskennst 
aber ich wäre dir da sehr verbunden, wenn du mir sagst wie man des alles 
eigentlich im programm macht

klar z.b.
Pullup:
ldi r16,0b00001111
out PortC, r16

Nun wären jetzt zb für die oberen 4 Bit als eingang gesetzt
Persönliche Seite #1262205
Lesenswert?

Tom schrieb:

> Genau, beim Abi kann man natürlich rumpfuschen. Man lernt schliesslich
> für die Schule und nicht fürs Leben.

Aber noch nicht fuer den Beruf. Bei den meisten Menschen kommt dann noch 
eine Ausbildung.

Bei Schulprojekten hat man oft nur begrenzte Unterstuetzung durch den 
nicht immer hinreichend fachkompetenten Lehrer, von daher ist es doch 
schon schoen, wenn es nachher wenigstens laeuft.

Schoen, schoen.

Sonst nichts zu tun, als "meine" Threads auszugraben?

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren