Hallo, dies ist meine erster Beitrag hier =) Sorry, wenn die Frage doof ist, aber kann ich bei einem ATtiny85 den Reset-Pin erst ganz normal für ISP beschalten und dann nach dem Programmieren den Pullup-Widerstand rauslöten, um ihn als normalen Ausgang zu benutzen? Liebe Grüße, Meike
Jain. Du kannst in den Fuses den Pin umstellen. Aber danach funktioniert der ISP nicht mehr. Du musst also wissen was du tust und in welcher Reihenfolge :)
Grundsätzlich schon. Es ist aber nicht zu empfehlen. Man muss wissen das PB5 deutlich weniger Strom liefert. Und bei Programmieren hat man nur einen Versuch, weil ISP danach nicht mehr möglich ist. Das Testen kann sehr Zeitaufwändig werden. Besser ist es einen größeren Kontroller zu nehmen. Solltest Du dich trotzdem entscheiden, den Pin PB5 als IO-Pin zu verwenden, benötigst Du den Pull-Up am RESET nicht. Der Pull-Up wird nur gebraucht um nicht ungewollt einen Reset auszulösen. Für das Programmieren wird er nicht benötigt.
Meike schrieb: > um ihn als normalen Ausgang zu benutzen? Wie schon geschrieben, ist der Pin als Ausgang etwas schwach auf der Brust. Eigentlich ist der dafür gar nicht zu gebrauchen, sondern taugt nur als Eingang. Ein Taster lässt sich aber auch abfragen, ohne den Reset zu deaktivieren. Wenn der Taster über einen Spannungsteiler angeschlossen ist und bei Betätigung ein bißchen am Pin wackelt, lässt sich das mit dem ADC abfragen. Per ADC ist der Reset-Pin immer einlesbar, auch wenn er Reset ist. Damit sparst du dir das Deaktivieren und Aussperren. Vielleicht lässt sich die Schaltung ja entsprechend abändern.
Hallo und danke Euch! Wieviel Strom schafft der PB5 denn als Ausgang? Ich werde da echt nicht schlau aus der ganzen Doku... :( Liebe Grüße, Meike
Ist z.B. in Kapitel 22.6 "Pin driver strength" ablesbar: statt +/-20mA kann PB5 ca. +1.5/-3mA. Ahoi, Martin
Wenn überhaupt, sollte man PB5 höchstens als Eingang benutzen. Ansonsten kann es Probleme geben, wenn im serial HV-Programming Mode das STK500 gegen den Ausgang auf Low ankämpfen muß. PB5 läßt sich außerdem als analog Eingang abfragen, ohne das ISP deaktivieren zu müssen.
>PB5 läßt sich außerdem als analog Eingang abfragen, ohne das ISP >deaktivieren zu müssen. Ist ja interessant! Hast du da ein Beispiel? Wie verhindert man da einen RESET? Viele Grüße
eggi schrieb: > Wie verhindert man da einen RESET? Indem man über der High-Schwelle bleibt. Z.B. ein Taster mit Spannungsteiler zieht PB5 von 5,0V auf 4,5V.
Hmm so in der Art dachte ich mir das....hast du das schon real gemacht(ist das zuverlässig?)? Gibt es irgendein Referenzprojekt im Netz (Link)? Viele Grüße
eggi schrieb: > hast du das schon real > gemacht(ist das zuverlässig?)? Ja. Als Spannungsteiler habe ich 10k+1k genommen. Lt. Datenblatt dürfen 0,9*VCC nicht unterschritten werden.
Man kann auch Vcc über eine Diode anschliessen und diese Diode mit einem Taster überbrückbar machen. Den Spannungsanstieg kann man dann mit der Bandgap-Messung mit dem ADC detektieren.
Vielen Dank, das wusste ich noch nicht! Das ist (gerade für die 8-Pin Atmel) ein toller Tipp - 1 Pin mehr nutzbar!! Viele Grüße und frohe Ostern
Mein grosses V. schrieb: > Man kann auch Vcc über eine Diode anschliessen und diese Diode mit > einem > Taster überbrückbar machen. Den Spannungsanstieg kann man dann mit der > Bandgap-Messung mit dem ADC detektieren. Und der Strom zerschießt dann die Diode ? One-Wire-Shot...
Hey super, dann muss ich nur meine Schaltung noch ein bisschen anpassen und alles wird funktionieren! Ich hätte noch eine Frage, wo hier schon so viele "Profis" antworten: Aus vielen AD-Wandlungen muss ich viele Daten zwischengespeichert und auswerten. Das bisherige Variablenarray sieht folgendermaßen aus: uint16_t temp_i16[1024][3]; Bei einer 16-Bit-Interger Variable bleibt dann einfach zuviel Speicher ungenutzt. Eine uint10_t Variable wäre mir am liebsten =) Gibt es sowas?
Meike schrieb: > Das bisherige Variablenarray sieht folgendermaßen aus: > uint16_t temp_i16[1024][3]; Das Array ist 6KB lang. Du wirst also einen Atmega1284 nehmen müssen. Dann haben sich die Probleme mit deinen I/Os auch gleich erledigt. Meike schrieb: > Eine uint10_t Variable wäre mir am liebsten =) > > Gibt es sowas? Nein.
Meike schrieb: > Aus vielen AD-Wandlungen muss ich viele Daten zwischengespeichert und > auswerten. Mal überlegen, ob man bestimmte Berechnungen gleich nach der ADC-Wandlung durchführen kann. Meike schrieb: > Eine uint10_t Variable wäre mir am liebsten =) Prüfe mal wohlwollend, ob auch 8Bit-ADC reichen.
Meike schrieb: > Das bisherige Variablenarray sieht folgendermaßen aus: > uint16_t temp_i16[1024][3]; Dann sagt Dir der Compiler 1200% RAM Auslastung. Büsschen viel oder?
Mein grosses V. schrieb: > Ein Taster lässt sich aber auch abfragen, ohne den Reset zu > deaktivieren. > > Wenn der Taster über einen Spannungsteiler angeschlossen ist und bei > Betätigung ein bißchen am Pin wackelt, lässt sich das mit dem ADC > abfragen. Per ADC ist der Reset-Pin immer einlesbar, auch wenn er Reset > ist. Damit sparst du dir das Deaktivieren und Aussperren. Meinst du so wie im Anhang?
TBI schrieb: > Meinst du so wie im Anhang? Ja. Aber mit kleineren Widerständen. Peter D. schrieb: > Als Spannungsteiler habe ich 10k+1k genommen. Stellt sich aber die Frage, ob alle Programmer den 1K runterziehen können. Aber so gewaltig ist das auch wieder nicht. Atmel-Programmer können das. DebugWire funktioniert damit allerdings nicht.
:
Bearbeitet durch User
Mein grosses V. schrieb: > Ja. Aber mit kleineren Widerständen. Ich bin von dem allseits üblichen 10k gegen VCC ausgegangen und von da aus auf den 0,5V Spannungsabfall gegen GND. Warum kleinere Widerstände?
Ich hatte mal eine Schaltung mit LED's und 90 Ohm Vorwiderständen. Sogar die konnte der ATmel Programmer mit ansteuern. Was mich angenehm überrascht hat. Die Idee, den Reset Pin analog abzufragen, finde ich sehr interessant. Ich habe nämlich noch eine Menge dieser 8 Beiner in der Bastelkiste und oft fehlte mir nur ein Pin. Jetzt nicht mehr. Danke!
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.