Hallo,
ich möchte bei meinem Attiny den Reset als Ausgangspin nutzen. Am
Reset-Pin liegt ein hochohmiger Pull-Down.
Beeinflusst der Pull-Down-Widerstand am Reset die Programmierung des
Controllers in irgendeiner Weise? Atmel schreibt:
"A low level on this pin for longer than the minimum pulse length will
generate a reset"
D.h.: Solange der Controller im Dauer-Reset (wegen Pull-Down) ist, ist
der Controller jederzeit ansprechbar für mein Programmiergerät?
Danke für eine zweite Meinung!
Um den Pin als Ausgang zu verwenden, musst du eine Fuse umstellen. Von
da an ist es kein Reset Pin mehr. Und ohne Reset-Pin funktioniert die
ISP Schnittstelle nicht mehr!
Hallo,
das ist mein Ziel. Meine Frage ist komm ich mit der oben angezeigten
Teil-Schaltung überhaupt dazu, meine Fuses so zu ändern, dass der Reset
als Ausgang verwendbar ist? D.h. kann ich den Programmiermodus betreten?
at-user schrieb:> Meine Frage ist komm ich mit der oben angezeigten> Teil-Schaltung überhaupt dazu, meine Fuses so zu ändern, dass der Reset> als Ausgang verwendbar ist?
Denke schon, wenn der Programmieradapter einen PushPull Stufe für den
Reset hat...
Aber nur einmal.
Danach nur noch über einen Bootloader, oder per HVS Programmer.
Dann ja, wenn der Programmer den Reset über einen Push-Pull bedient.
Was hindert dich daran, einfach mal den 10k einzulöten und versuchen,
ein Programm drauf zu spielen?
Klar geht das, der Widerstand darf nur nicht zu klein sein. Der "Atmel
ISP MkII" läuft jedenfalls noch mit 220 Ohm Lastwiderstand. Davon bist
du ja mit "hochohmig" sehr weit entfernt. Wird schon klappen.
at-user schrieb:> Meine Frage ist komm ich mit der oben angezeigten> Teil-Schaltung überhaupt dazu, meine Fuses so zu ändern, dass der Reset> als Ausgang verwendbar ist? D.h. kann ich den Programmiermodus betreten?
Nur dann, wenn der Programmer Reset aktiv auf H zieht. Das tun wohl die
meisten, obwohl es nicht zwingend ist. Sobald du Reset per Fuse
abgeschaltet hast und der Chip durch einen Reset-Zyklus gegangen ist,
ist es sowieso egal.
at-user schrieb:>> Was hindert dich daran, einfach mal den 10k einzulöten und versuchen,>> ein Programm drauf zu spielen?>> Es existiert bisher nur der Schaltplan.
[...] den Flash / die DeviceNo auszulesen?
>den Flash / die DeviceNo auszulesen?
Vom gesamten Gerät. Bauteile sind noch nicht bestellt.
Eine zusätzliche Frage hätte ich noch in Bezug auf DEBUG:
Reicht es beim attiny zum Debuggen aus die DWEN-Fuse zu aktivieren oder
muss ich auch den Reset Pin wieder aktivieren zum Debuggen per Atmel
Studio?
Ich bin mir unsicher ob ich mit abgeschaltetem Reset Pin überhaupt noch
mit DebugWire debuggen kann.
Ich denke ich hab die Antwort selbst gefunden:
https://www.avrfreaks.net/forum/affect-rstdisbl-fuse-isp-programming
"As soon as that fuse is set you cannot not do either ISP nor
debugWire".
D.h. wenn RSTDISBL = TRUE, kann ich DebugWire komplett vergessen
solange ich nicht wieder RSTDISBL = FALSE setze.
>Der Debug Wire wird durch eine Fuse aktiviert. Ohne Reset Pin kannst du
aber keine Fuses mehr einstellen.
Ich hab in die Richtung gedacht, dass ich doch beim RSTDISBL = TRUE auch
DWEN = TRUE setzen könnte und somit mir den Debugmode noch frei halten
könnte. Da hab ich falsch gedacht.
at-user schrieb:>>Der Debug Wire wird durch eine Fuse aktiviert. Ohne Reset Pin> kannst du aber keine Fuses mehr einstellen.> Ich hab in die Richtung gedacht, dass ich doch beim> RSTDISBL = TRUE auch DWEN = TRUE setzen könnte und somit> mir den Debugmode noch frei halten könnte.
Vermutlich stimmt das sogar. Aber: Dir fehlt dann die Möglichkeit, aus
dem Debug Modus wieder heraus zu kommen. Der Mikrocontroller wird so
ohne Debugger nicht lauffähig sein.
Ist es zwingend notwendig, ausgerechnet den RESET-Pin als Ausgang zu
verwenden? Nach der Umstellung kannst Du den ATTiny nämlich nicht mehr
neu programmieren, d.h. Dein Programm muss bis dahin 100%ig
funktionieren.
Jeder erneute Test-Lauf wird dazu führen, dass Du den ATTiny danach
wegwerfen musst. Außer, Du hast einen Bootloader drauf, der auch 100%ig
funktioniert. Oder Du hast einen HV-Programmer, mit dem Du wieder den
Ausgangszustand hinbekommst.
Ich würde erstmal schauen, dass ich ich die Funktionalität ohne
Umprogrammierung des RESET-Pins hinbekomme. Zeige doch mal Deinen
Schaltplan.
Abgesehen davon, dass das Debuggen bei abgeschalteter Reset-Fuse nicht
mehr geht: Was willst Du mit einem Debug-Modus, wenn Du den ATTiny
anschließend sowieso nicht mehr neu programmieren kannst? Jedesmal einen
neuen ATTiny zu nehmen, wenn man wieder einen Fehler im Debugger
gefunden hat, kann ziemlich teuer werden...
>Oder Du hast einen HV-Programmer, mit dem Du wieder den Ausgangszustand
hinbekommst.
Das ist zurzeit der Plan: Programmieren per HVSP statt ISP.
>Jeder erneute Test-Lauf wird dazu führen, dass Du den ATTiny danach wegwerfen
musst.
Ein HV-Programmer ala Dragon kann über HVSP-Schnittstelle statt ISP mir
das neue Flash-File auf den Controller spielen.
>Dein Programm muss bis dahin 100%ig funktionieren.
Geplant ist das gesamte Programm vorher auf einen größeren Controller zu
schreiben / zu testen und dann zu portieren.
Danke für die Hinweise.
Frank M. schrieb:> Ich würde erstmal schauen, dass ich ich die Funktionalität ohne> Umprogrammierung des RESET-Pins hinbekomme.
In gewissen Grenzen kann man den ResetPin als Analog Input nutzen.
Ohne Änderung der Fuses
>In gewissen Grenzen kann man den ResetPin als Analog Input nutzen.http://www.technoblogy.com/show?LSE
"As is well known you can reprogram the internal fuses to reclaim the
reset pin as an extra I/O pin. What is less well-known is that you can
actually use the reset pin in a limited way on the ATtiny85 without
having to reprogram the fuses, provide you avoid taking it below about
2.5V which will reset the chip."
Ist mir leider zu unsicher.
Atmel schreibt:
>"The reset pin can also be used as a (weak) I/O pin."
Ist das "Weak" bezogen auf den Strom den der Reset-Pin treiben kann?
>Ist das "Weak" bezogen auf den Strom den der Reset-Pin treiben kann?
Ich kann mit dem Reset-Pin nicht mal 1mA treiben. Hab ich mir gedacht.
Als Ausgang also Nutzlos.
Hallo,
ich lese gerade folgendes von Atmel in Bezug auf debugWire:
"All external reset sources or other active drivers on the RESET line
must be disconnected, since they may interfere with the correct
operation of the interface" (Quelle: AVR Dragon User Guide)
Hab ich das richtig verstanden, dass bei einer theoretischen Nutzung von
debugWire eine Ausgangsbeschaltung ("Active Drivers") am Reset-Pin den
debugWire nicht benutzbar macht?
Der Pin kann drei Funktionen haben, die sich gegenseitig ausschließen:
1) I/O Pin
2) Reset Pin
3) Debug Wire
Über Fuses wird umgeschaltet. Wenn der Pin als I/O Pin konfiguriert ist,
kannst du ihn gar nicht mehr auf Debug Wire umschalten, weil die ISP
Schnittstelle schon blockiert ist (denn die benötigt den Reset Pin).
Wenn du ihn anders herum als Debug Wire eingestellt hast, läuft der µC
nicht ohne Debugger und der Pin ist kein I/O Pin.
"All external reset sources or other active drivers on the RESET line
must be disconnected" bedeutet, dass der Debugger das einzige Gerät sein
darf, dass diese Leitung von außen ansteuert.
> Hab ich das richtig verstanden, dass bei einer theoretischen> Nutzung von debugWire eine Ausgangsbeschaltung ("Active Drivers")> am Reset-Pin den debugWire nicht benutzbar macht?
"eine Ausgangsbeschaltung" kann viel bedeuten, keine Ahnung, was du
damit meinst.
>dass der Debugger das einzige Gerät sein darf, dass diese Leitung von außen
ansteuert.
Okay, verstanden. D.h. es darf kein Taster o.ä. angeschlossen sein der
den Pegel verändern kann.
>"eine Ausgangsbeschaltung" kann viel bedeuten, keine Ahnung, was du damit meinst.
Ich meinte damit z.B. eine Push-Pull-Stufe aber die kann ja die
Reset-Leitung nicht von aussen ansteuern. Hat sich geklärt.
at-user schrieb:>>dass der Debugger das einzige Gerät sein darf, dass diese Leitung von außen> ansteuert.>> Okay, verstanden. D.h. es darf kein Taster o.ä. angeschlossen sein der> den Pegel verändern kann.
Doch, darf er. Die Verwendung als Reset und für debugWire schließt sich
nicht grundsätzlich aus. Man darf Reset halt während einer
Debug-Sitzung nicht auf GND ziehen (ob mit einem Taster oder einem
open-collector Treiber, ist egal). Aber das sollte selbstverständlich
sein.
DebugWire erlaubt an Reset einen Pullup von 10K oder größer, sowie
jegliche weitere hochohmige (und niederkapazitive) Beschaltung.
Explizit nicht erlaubt ist der oft anzutreffende Kondensator nach GND.