Forum: Mikrocontroller und Digitale Elektronik ATTiny 85 - 4 I/Os trotz Quarz - HV Programmer


von X. Y. (elektro_henkler)


Angehängte Dateien:

Lesenswert?

Moin, seit Tagen bin ich Fasziniert von dem ATTiny 85, nun habe ich aber 
das Problem, das ich gerne den Reset Pin mit benutzen möchte. Meine 
Frage: Ich habe den Programmer USBTiny ISP, wenn ich den Reset Pin 
beschalte wie im oben gezeigten Bild (nur Beispiel  Bild) kann ich dann 
den Programmer als HV benutzen und den Reset Pin als weiteren I/O 
benutzen? Falls die Frage kommt, ja ich benötige den Quarz.

Danke im vorraus

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Angehängte Dateien:

Lesenswert?

Leider kann ich dir deine Frage zum USBTiny ISP nicht beantworten, dir 
aber vorschlagen, einen Quarzoszillator zu benutzen, der dann nur einen 
Pin am Tiny benötigt (Pin 2 als Clkin). Der angehängte Plan zeigt, wie 
dann noch 4 I/O übrig bleiben.

: Bearbeitet durch User
von X. Y. (elektro_henkler)


Lesenswert?

Matthias Sch. schrieb:
> Leider kann ich dir deine Frage zum USBTiny ISP nicht beantworten, dir
> aber vorschlagen, einen Quarzoszillator zu benutzen, der dann nur einen
> Pin am Tiny benötigt (Pin 2 als Clkin). Der angehängte Plan zeigt, wie
> dann noch 4 I/O übrig bleiben.

Würde eher beim Quarz bleiben da ich erst 20 Stück gekauft habe.

von Christian K. (the_kirsch)


Lesenswert?

Dieser Programmer unterstützt kein HV
https://learn.adafruit.com/usbtinyisp


Da musst du dir einen anderen zulegen

von knödel (Gast)


Lesenswert?

K. M. H. schrieb:
> Frage: Ich habe den Programmer USBTiny ISP, wenn ich den Reset Pin
> beschalte wie im oben gezeigten Bild (nur Beispiel  Bild) kann ich dann
> den Programmer als HV benutzen und den Reset Pin als weiteren I/O

Nein, HV geht nicht denn auf irgendeiner Webseite, die den USBTiny ISP 
verkauft steht:
"Using this programmer and avrdude you can program any in-circuit 
"serial" programmable chip that avrdude supports (which is nearly all of 
them). It does not do JTAG or High Voltage programming"

von X. Y. (elektro_henkler)


Lesenswert?

Deswegen wollte ich ja den Reset Pin Modifizieren wie im Bild. Sonst ist 
doch da kein Unterschied, oder irre ich mich?

von knödel (Gast)


Lesenswert?

Um den RESET als relativ normalen I/O zu nutzen mußt du das in den Fuses 
einstellen. Danach geht ISP nicht mehr, da die RESET Funktion des Pins 
außer Betrieb ist.

Was soll die Modifikation des RESET Pins nach deiner Zeichnung daran 
ändern auch in Bezug auf die HV-Programmer Fähigkeiten des USBTiny ISP? 
Erläutere das bitte ein wenig mehr.

von X. Y. (elektro_henkler)


Lesenswert?

http://m.instructables.com/id/AVR-Attiny-fusebit-doctor-HVSP/?ALLSTEPS


Könnte ich nicht sonst bei neu programmierung das vorher benutzen?

von X. Y. (elektro_henkler)


Lesenswert?

knödel schrieb:
> Um den RESET als relativ normalen I/O zu nutzen mußt du das in den Fuses
> einstellen. Danach geht ISP nicht mehr, da die RESET Funktion des Pins
> außer Betrieb ist.
>
> Was soll die Modifikation des RESET Pins nach deiner Zeichnung daran
> ändern auch in Bezug auf die HV-Programmer Fähigkeiten des USBTiny ISP?
> Erläutere das bitte ein wenig mehr.

Ich dachte das das Protokoll das gleiche sei, nur das der Reset Pin 12 V 
bekommt

von knödel (Gast)


Lesenswert?

K. M. H. schrieb:
> http://m.instructables.com/id/AVR-Attiny-fusebit-doctor-HVSP/?ALLSTEPS
>
>
> Könnte ich nicht sonst bei neu programmierung das vorher benutzen?

Das Ding kenne ich nicht. Nach Beschreibung ist es möglich damit die 
Fabrikeinstellung der Fuses wieder herzustellen und damit SPI wieder zu 
ermöglichen. Aber das Teil verwendet dafür auch die HV Programmierung.

HV-Programmierung und SPI sind unterschiedliche Protokolle und 
unterscheiden sich nicht nur durch die Spannung am PB5.

von Bernd K. (prof7bit)


Lesenswert?

Wie wärs Du nimmst stattdessen einen kleinen Bootloader? Es gibt auch 
welche für ATTiny. Wenn der Bootloader erstmal drauf ist und 
funktioniert kannst Du die RSTDISBL Fuse guten Gewissens setzen.

: Bearbeitet durch User
von Uwe K. (ukhl)


Lesenswert?

K. M. H. schrieb:
> http://m.instructables.com/id/AVR-Attiny-fusebit-doctor-HVSP/?ALLSTEPS
>
>
> Könnte ich nicht sonst bei neu programmierung das vorher benutzen?

Das ist eine gute Idee. Normal mit ISP programmieren und bei bedarf die 
FUSES resetten.

Damit:
http://www.simpleavr.com/avr/hvsp-fuse-resetter
sollte es auch gehen.

Denke daran, das der RESET als Ausgang nur sehr wenig Strom liefert.

von knödel (Gast)


Lesenswert?

knödel schrieb:
> K. M. H. schrieb:
> Fabrikeinstellung der Fuses wieder herzustellen und damit SPI wieder zu
>
> HV-Programmierung und SPI sind unterschiedliche Protokolle und

Ver***mt, statt SPI sollte es jeweils ISP heißen :(

von Bernd K. (prof7bit)


Lesenswert?

knödel schrieb:
> Ver***mt, statt SPI sollte es jeweils ISP heißen :(

Das ist verzeihlich denn ISP Kommunikation läuft über SPI.

von X. Y. (elektro_henkler)


Lesenswert?

Bernd K. schrieb:
> Wie wärs Du nimmst stattdessen einen kleinen Bootloader? Es gibt auch
> welche für ATTiny. Wenn der Bootloader erstmal drauf ist und
> funktioniert kannst Du die RSTDISBL Fuse guten Gewissens setzen.

Wie funktioniert das dann? Kenn ich nur vom Arduino

von Christian K. (the_kirsch)


Lesenswert?

Der Controller wird dann über die Serielle Schnittstelle programmiert, 
dann reicht ein einfacher USB-UART-Wandler.

Der Boodloader startet am Anfang nach einem (PowerOn)-Reset, wartet kurz 
ob sich was an der seriellen Schnittstelle tut, und wenn nicht, startet 
er das eigentliche Programm.

Der Bootloader kann sich aber nicht selbst überschreiben oder die Fuse 
ändern.

: Bearbeitet durch User
von Uwe K. (ukhl)


Lesenswert?

Eine alternative ist natürlich auch der ATtiny84A. Dann muss man sich 
nicht so Quälen. Soviel größer ist er nicht. Das sind dann 9 Pins plus 
Quarz.

+ kein HVP notwendig
+ kein Bootloader notwendig
+ ISP bleibt möglich

- Etwas größer (14 PIN statt 8 PIN)
- Etwas teuer. Wenn der ATtiny44A genügt, kostet er auch nur 1,- EUR

von Thomas E. (thomase)


Lesenswert?

K. M. H. schrieb:
> und den Reset Pin als weiteren I/O benutzen?
Was soll denn da ran?

Einen oder auch mehrere Taster, selbst einen Drehgeber mit Taster, 
kannst du mit ein paar Widerständen mit dem AD-Wandler am Reset-Pin 
abfragen, ohne ihn als solchen abzuschalten. Als Ausgangsport ist er 
ohnehin nur bedingt nutzbar, da die Ausgangstreiber bescheiden sind. 
Also nicht so wie bei den anderen Ports.

mfg.

von X. Y. (elektro_henkler)


Lesenswert?

Thomas Eckmann schrieb:
> K. M. H. schrieb:
>> und den Reset Pin als weiteren I/O benutzen?
> Was soll denn da ran?
>
> Einen oder auch mehrere Taster, selbst einen Drehgeber mit Taster,
> kannst du mit ein paar Widerständen mit dem AD-Wandler am Reset-Pin
> abfragen, ohne ihn als solchen abzuschalten. Als Ausgangsport ist er
> ohnehin nur bedingt nutzbar, da die Ausgangstreiber bescheiden sind.
> Also nicht so wie bei den anderen Ports.
>
> mfg.

Ich möchte den als schaltregler einsetzen, nur mir fehlt noch nen 
Freigabe Signal. also quasi ein binär Signal

von X. Y. (elektro_henkler)


Lesenswert?

Uwe K. schrieb:
> Eine alternative ist natürlich auch der ATtiny84A. Dann muss man sich
> nicht so Quälen. Soviel größer ist er nicht. Das sind dann 9 Pins plus
> Quarz.
>
> + kein HVP notwendig
> + kein Bootloader notwendig
> + ISP bleibt möglich
>
> - Etwas größer (14 PIN statt 8 PIN)
> - Etwas teuer. Wenn der ATtiny44A genügt, kostet er auch nur 1,- EUR

Würde gern beim 85 bleiben. ich programmiere das ding ja eigentlich nur 
einmal, sei denn ich hab nen Firmware Update

von Thomas E. (thomase)


Lesenswert?

K. M. H. schrieb:
> Ich möchte den als schaltregler einsetzen, nur mir fehlt noch nen
> Freigabe Signal. also quasi ein binär Signal

Also Eingang. Dazu brauchst du nur einen Widerstand, der mit dem 
internen Pullup vom Reset einen Spannungsteiler bildet und den Pegel ein 
bisschen runterzieht.

mfg.

von X. Y. (elektro_henkler)


Lesenswert?

Thomas Eckmann schrieb:
> K. M. H. schrieb:
>> Ich möchte den als schaltregler einsetzen, nur mir fehlt noch nen
>> Freigabe Signal. also quasi ein binär Signal
>
> Also Eingang. Dazu brauchst du nur einen Widerstand, der mit dem
> internen Pullup vom Reset einen Spannungsteiler bildet und den Pegel ein
> bisschen runterzieht.
>
> mfg.

Und das Werte ich als analog Eingang aus? Muss ich dazu noch was 
spezielles beachten bzw umstellen im uC? Was würdet ihr empfehlen 
welchen Widerstand? Bzw wie weit darf ich den hochziehen bzw runter. 
Weil ich dachte reset hätte gnd also 0v und bei 5v resetet er

von Peter D. (peda)


Lesenswert?

Man kann den Reset auch ohne ISP-Disable als Eingang benutzen, er ist 
immer mit dem ADC auslesbar.
Man muß nur einen Spannungsteiler davor setzen, damit der 
Reset-Highlevel nicht unterschritten wird.

von X. Y. (elektro_henkler)


Lesenswert?

Peter Dannegger schrieb:
> Man kann den Reset auch ohne ISP-Disable als Eingang benutzen, er ist
> immer mit dem ADC auslesbar.
> Man muß nur einen Spannungsteiler davor setzen, damit der
> Reset-Highlevel nicht unterschritten wird.

Wo finde ich die Angabe dazu im Datenblatt. nach was muss ich suchen

von Peter D. (peda)


Lesenswert?

K. M. H. schrieb:
> Wo finde ich die Angabe dazu im Datenblatt.

Table 21-1. DC Characteristics
0.9VCC

von X. Y. (elektro_henkler)


Lesenswert?

Peter Dannegger schrieb:
> K. M. H. schrieb:
>> Wo finde ich die Angabe dazu im Datenblatt.
>
> Table 21-1. DC Characteristics
> 0.9VCC

Danke werde es nachher testen.

von Martin S. (led_martin)


Lesenswert?

Da ist die Seite 165 interessant: RESET Pin Threshold Voltage (Max. 0,9 
* VCC), und die Seite 161: Reset Pull-up Resistor (Min. 30kOhm, max. 
60kOhm). Der RESET-Pin liegt normalerweise auf VCC, Reset wird durch 
runterziegen auf GND ausgelöst. Der ADC muß also mit VCC als Referenz 
betrieben werden, um Spannungen in der Nähe von VCC messen zu können. Du 
darfst den Pegel also nicht mehr als 10% runterziehen, zur Sicherheit 
merklich weniger. Sich nicht nur auf den internen Pull-Up zu stützen, 
und deshalb einen externen Spannungsteiler anzubauen ist vermutlich 
sinnvoll.

Mit freundlichen Grüßen - Martin

von X. Y. (elektro_henkler)


Lesenswert?

Und wie ziehe ich dann sicher die Spannung runter? Hab da gerade keine 
richtige idee, wenn ich mit nem 5 v Signal ankomme, das komische, zz ist 
mein reset nicht beschaltet und der uC arbeitet trotzdem

von Martin S. (led_martin)


Lesenswert?

K. M. H. schrieb:
> das komische, zz ist
> mein reset nicht beschaltet und der uC arbeitet trotzdem

Das bewirkt der, im ATtiny eingebaute, Pull-Up, der zieht den 
unbeschalteten Reset-Pin auf VCC, was bei Dir wohl 5V sind. Für Dein 5V 
Signal, das sich wohl zwischen 0V und 5V bewegt, brauchst Du nur einen 
Sapnnungsteiler an dem Reset-Pin. z.B. 150kOhm von Deinem Signal zum 
Reset-Pin, und 10kOhm vom Reset-Pin zu VCC. Ist Dein Signal 5V, misst 
der ADC auch 5V, ist Dein Signal 0V, sinds am Reset-Pin ca. 4,7V. Dieser 
Unterschied ist für den ADC messbar, löst aber keinen Reset aus.

Mit freundlichen Grüßen - Martin

von Thomas E. (thomase)


Lesenswert?

K. M. H. schrieb:
> Und wie ziehe ich dann sicher die Spannung runter? Hab da gerade keine
> richtige idee, wenn ich mit nem 5 v Signal ankomme, das komische, zz ist
> mein reset nicht beschaltet und der uC arbeitet trotzdem

Der Reset ist intern mit einem Pullup beschaltet. Früher, als noch alles 
besser war, hat man den aussen angeklemmt.

Über einen Widerstand ~20-40K, musst du ein bisschen probieren, 
schliesst du den Ausgang des Bautsteins davor an. Führt dieser H, liegen 
am Reset-Pin Vcc an. Bei L entsprechend des Spannungsteilers etwas 
weniger. Das kannst du mit dem ADC messen.

Triggerst du den ADC mit Timer0, der ja wahrscheinlich ohnehin läuft, 
kannst du, je nach Interrupt-Quelle, in der ISR des Timers den ADC 
auslesen. Kostet 0 Rechenzeit extra. Ausser dem Auslesen des ADC. Aber 
den Port müssste man ja auch abfragen. Referenz ist Vcc.

mfg.

von X. Y. (elektro_henkler)


Lesenswert?

Ja der timer wird für meine pwm genommen, werde es gleich ma testen

von X. Y. (elektro_henkler)


Lesenswert?

Also mit 3,3V läuft er auch noch, komisch. Ohne irgendwelche 
Widerstände, aber analog Kanal muss ich erst Coden

: Bearbeitet durch User
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.