Hallo zusammen!
Habe die ATMega8 Schaltung von
http://www.mikrocontroller.net/articles/AVR-Tutorial:_Equipment
nachgebaut und bei PIN1 (PC6 Reset) anstatt 47nF 100nF eingebaut. Stellt
das ein Problem dar? Warum ist für diesen Port eine andere Kapazität
notwendig?
Vielen Dank für Antworten und Gruss,
Sam
Nö, ist ok.
Ist kein anderer Port. Dabei geht es nur darum eine Verzögerung zu
erreichen wenn du die Versorgungsspannung anschaltest. Kann man auch
ganz weglassen den Kondensator.
Gruß Matthias
holger schrieb:>>anstatt 47nF 100nF eingebaut. Stellt>>das ein Problem dar?>> Wenn dein ISP Prommer damit klar kommt: No Problem.
Cool, die raschen Antworten!
Hat die grössere Kapazität eine höhere Stromspitze zur Folge?
100 nF (der gleiche C-Typ, wie der von U+ nach Gnd) kommt
bei mir auch dahin. Ob der RESET nun 2, 5, 10, oder 20 ms
dauert, ist doch fast immer sch...egal.
Die STK500 hat damit auch kein Problem.
Sam schrieb:> holger schrieb:>>>anstatt 47nF 100nF eingebaut. Stellt>>>das ein Problem dar?>>>> Wenn dein ISP Prommer damit klar kommt: No Problem.>> Cool, die raschen Antworten!>> Hat die grössere Kapazität eine höhere Stromspitze zur Folge?
Nö.
es hat zur Folge, dass im Normalfall die Spannung am Reset Pin langsam
ansteigt. Langsamer Ansteigen bedeutet aber auch, dass der Schwellwert
langsamer erreicht wird -> der µC wird nach dem Anlegen der
Versorgungsspannung ein wenig länger im Reset gehalten.
Das 'blöde' daran ist nur: der Programmer versucht den µC erst mal beim
Neuprogrammieren in den Reset zu schicken, indem er den Pin auf Low
zieht. Das dauert dann natürlich auch ein wenig länger als normal. Wenn
der Programmer es eilig hat, dann kann diese Verzögerung dann auch schon
zu lang sein und der Programmer meldet, dass er keinen Kontakt mit dem
µC kriegt.
Stone schrieb:> Nö, ist ok.> Ist kein anderer Port. Dabei geht es nur darum eine Verzögerung zu> erreichen wenn du die Versorgungsspannung anschaltest. Kann man auch> ganz weglassen den Kondensator.
OK ist es und weglassen kann man ihn auch. Aber zur Verzögerung dient er
nicht. Das ist Controllersteinzeit. Dazu ist der Kondensator auch viel
zu klein. Sowas kann der AVR mit anderen Mitteln besser.
Der Kondensator dient mit dem Widerstand als Tiefpass, um Störungen
wegzufiltern, die er sich im Betrieb einfangen kann.
mfg.
Thomas Eckmann schrieb:> OK ist es und weglassen kann man ihn auch. Aber zur Verzögerung dient er> nicht. Das ist Controllersteinzeit. Dazu ist der Kondensator auch viel> zu klein. Sowas kann der AVR mit anderen Mitteln besser.>> Der Kondensator dient mit dem Widerstand als Tiefpass, um Störungen> wegzufiltern, die er sich im Betrieb einfangen kann.>> mfg.
Ok. Danke für die guten Antworten!
Dann ist es nicht mehr ein so guter Tiefpass?
Gruss, Sam
um den µC länger im Reset zu halten bräuchte man da schon ein paar µF.
Der Widerstand ist dazu da das die Resetleitung zuverläßig runtergezogen
werden kann sonst verursacht man wenn der Progger die Leitung
runterzieht einen Kurzschluß und killt evtl. den Progger(dessen
Transistor) wenn er keine Strombegrenzung hat. Der Kondensator kann
kurze negativ Impulse abfangen so das es zu keinem unerwünschten Reset
kommt.
Atmel empfiehlt einmal >4,7kOhm (bei STK500) und dann ließt man in
anderen Unterlagen auch wiedermal >10kOhm gerade bei debugWire wird
darauf hingewiesen, denke da handelt es sich um die kleinen Progger wie
den Dragon oder AVRISP Mouse die eine nicht so starke Auslegung haben.
Im DOC1619 wird noch von 4,7nF Kerko gesprochen im DOC2521 heißt es nur
das einer empfohlen wird außer bei debugWire hier darf keiner rein.
Ich verwende dort immer die üblichen 100nF Kerkos.
Thomas O. schrieb:> um den µC länger im Reset zu halten bräuchte man da schon ein paar µF.
Dann rechne doch mal.
Ein RC-Glied aus 10k und 100nF hat eine Zeitkonstante von 1ms.
Genug Zeit für einen Spannungsregler sich zu stabilisieren bzw. für
einen Schwingkreis sich ein zu schwingen. Genau das war auch eine der
Absichten in aelteren CPU Schaltungen, wenn man keinen Reset Controller
hatte. 10k und 47n (100n) war eine absolut uebliche Beschaltung.
Auch wenn das an sich bei AVR nicht notwendig ist, weil man in den Fußes
eine Verzögerung einstellen kann, das ist genau das was passiert.
Das man den C verbaut um Stoerspitzen zu filtern ist schon OK, aber
einen Programm er kümmert das nicht, wenn er Reset zieht.
> Der Widerstand ist dazu da das die Resetleitung zuverläßig runtergezogen> werden kann sonst verursacht man wenn der Progger die Leitung> runterzieht einen Kurzschluss
Niemand sagt, dass die Alternative darin besteht, den Pin direkt mit Vcc
zu verbinden.
Atmel hat dem Pin schon einen Pullup spendiert. Mit rund 30k ist der
allerdings ein wenig gross geraten.
Thomas O. schrieb:>, denke da handelt es sich um die kleinen Progger wie> den Dragon oder AVRISP Mouse die eine nicht so starke Auslegung haben.
Auch hier wieder:
Rechne doch mal nach, über wieviel Strom wir hier reden. Was soll denn
das für ein Ausgangs transistor sein, der es nicht schafft, gegen einen
4k7 Pullup zu arbeiten?
Thomas O. schrieb:> Atmel empfiehlt einmal >4,7kOhm (bei STK500) und dann ließt man in> anderen Unterlagen auch wiedermal >10kOhm gerade bei debugWire wird> darauf hingewiesen, denke da handelt es sich um die kleinen Progger wie> den Dragon oder AVRISP Mouse die eine nicht so starke Auslegung haben.
Das hat nichts mit Auslegung zu tun, sondern damit, daß bei DebugWire
die gesamte Datenübertragung über den RESET-Pin erfolgt. Deshalb sind da
natürlich die Anforderung etwas anders, als wenn der Programmer ihn
einfach nur dauerhaft auf low ziehen muß.
Ich habe schon Schaltungen gesehen ohne Pullup am Reset direkt an VCC
und auch genug Fragen zu geschrotteten Programmern die die Resetleitung
nicht mehr runterziehen konnten.
Ich zitiere einfach mal die Schriften des Herstellers
The reset line has an internal pull-up resistor, but if the environment
is noisy it can be insufficient and reset can therefore occur
sporadically. Refer to datasheet for value of pull-up resistor on
specific devices.
Alleine deswegen kommt er bei mir generell in die Schaltung
This pull-up resistor makes sure that reset does not go low unintended.
The pull-up resistor can in theory be of any size, but if the AVR should
be
programmed from e.g. STK500/AVRISP the pull-up should not be so strong
that the programmer cannot activate RESET by draw the RESET line low.
The recommended pull-up resistor is 4.7kOhm or larger when using STK500
for programming. For debugWIRE to function properly, the pull-up must
not be smaller than 10kOhm.
1mSek Verzögerung ist jetzt aber kaum der Rede wert wenn man schon
64mSek per Fuses verzögern kann. Außerdem bin ich der Meinung das auch
die sehr früheren AVRs ala 8515/8535 das schon über die Fuses konnten.
Kann ich leider im AVR Studio nicht mehr nachprüfen.
bei 4,7kOhm sind knapp etwas über 1mA zu treiben. Mir fällt da auch kein
Transistor ein der das nicht schaffen sollte aber wieso ist die
Empfehlung von Atmel dann so hoch und nicht 1kOhm?