Hallo! _Vorgabe_ ATTiny 85, PB5 als I/O-Eingang deklarieren (ohne pull-up) und Zustand abfragen, PB5 hat den "!RESET" als Zusatzfunktion _Folgendes Problem_ DDRB &= ~(1<<PB5); while(PINB & (1<<PB5)); // Soll, high auf PB5 in Schleife // wird nicht abgefragt // while() wird übersprungen Wenn low (Gnd) auf PB5 liegt, arbeitet uC nicht mehr - Ausgang flackert. _Frage_ Kann es sein, dass die Funktion "!RESET" innerhalb des C-Programm deaktiviert werden muss? Im Datenblatt habe ich nichts konkretes gefunden.
Man kann über die Fuses die RESET-Funktionalität (RSTDSBL oder so ähnlich) deaktivieren und PB5 wie einen I/O-Pin benutzen. ISP (also weitere Programmierung) ist dann aber nicht mehr möglich. Also entweder anders coden, einen Controller mit mehr PINs verwenden oder High Voltage Programming nutzen.
__Son´s B. schrieb: > Im Datenblatt habe ich nichts konkretes gefunden. Datenblatt: 10.3.1 Alternate Functions of Port B • RESET: External Reset input is active low and enabled by unprogramming (“1”) the RSTDISBL Fuse. Pullup is activated and output driver and digital input are deactivated when the pin is used as the RESETpin.
__Son´s B. schrieb: > Im Datenblatt habe ich nichts konkretes gefunden. Das kann ich mir nur schwer vorstellen. Bereits auf der dritten Seite im Datenblatt steht: Reset input. A low level on this pin for longer than the minimum pulse length will generate a reset, even if the clock is not running and provided the reset pin has not been disabled. The minimum pulse length is given in Table 21-4 on page 165. Shorter pulses are not guaranteed to generate a reset. The reset pin can also be used as a (weak) I/O pin. In Kapitel 10. I/O Ports, genauer bei 10.3.1 stehen dann auch weitere Details.
Glen schrieb: > Man kann über die Fuses die RESET-Funktionalität (RSTDSBL oder so > ähnlich) deaktivieren und PB5 wie einen I/O-Pin benutzen. > > ISP (also weitere Programmierung) ist dann aber nicht mehr möglich. Also > entweder anders coden, einen Controller mit mehr PINs verwenden oder > High Voltage Programming nutzen. Ich ging davon aus, dass die I/O-Deklaration "DDRB &= ~(1<<PB5)" automatisch die Zusatzfunktion !RESET deaktiviert. Kann die RESET-Funktion innerhalb des C-Quellcode deaktiviert werden? Stefan R. schrieb: > In Kapitel 10. I/O Ports, genauer bei 10.3.1 stehen dann auch weitere > Details. Leider fehlt die Erfahrung, um Text korrekt zu interpretieren.
__Son´s B. schrieb: > Stefan R. schrieb: >> In Kapitel 10. I/O Ports, genauer bei 10.3.1 stehen dann auch weitere >> Details. > Leider fehlt die Erfahrung, um Text korrekt zu interpretieren. Richie schrieb: > Datenblatt: 10.3.1 Alternate Functions of Port B > • RESET: External Reset input is active low and enabled by unprogramming > (“1”) the RSTDISBL Fuse. Pullup is > activated and output driver and digital input are deactivated when the > pin is used as the RESETpin. Was kannst du daran nicht interpretieren?
__Son´s B. schrieb: > Kann die RESET-Funktion innerhalb des C-Quellcode deaktiviert werden? Nein, das kann nur ein Setzen der RSTDISBL Fuse. Wenn deine Firmware 100% korrekt läuft, bist du fertig - ansonsten hast du dich ausgesperrt und kannst den Tiny nur noch mit HV Programmierung wieder verwenden. Nix für Anfänger. Nimm einen Tiny, bei dem diese Änderung nicht nötig ist - sprich, einen, der auch ohne Klimmzüge genügend Portpins hat.
:
Bearbeitet durch User
Matthias S. schrieb: > __Son´s B. schrieb: >> Kann die RESET-Funktion innerhalb des C-Quellcode deaktiviert werden? > Nein, das kann nur ein Setzen der RSTDISBL Fuse Danke für die eindeutige Aussage! Verhält sich jeder !RESET-Pin an ATMEL-uC so eingeschränkt? Matthias S. schrieb: > Wenn deine Firmware > 100% korrekt läuft, bist du fertig - ansonsten hast du dich ausgesperrt > und kannst den Tiny nur noch mit HV Programmierung wieder verwenden. > > Nix für Anfänger. Nimm einen Tiny, bei dem diese Änderung nicht nötig > ist - sprich, einen, der auch ohne Klimmzüge genügend Portpins hat. Schade, wollte bewusst ein kleinen uC
__Son´s B. schrieb: > Schade, wollte bewusst ein kleinen uC Ja, aber eben keinen zu kleinen. Die Tinys haben die gleiche Rechenleistung wie die grösseren, aber eben nur beschränkte Zahl an Ports. Wenn die Portpins nicht reichen kann man entweder einen Portexpander hinzunehmen oder für nen Euro den nächstgrösseren MC nehmen. Portexpander bedeutet mehr Aufwand für die Peripherie,also besser den Tiny24/44 oder z.B. den recht neuen Tiny20 nehmen, alle im 14-pin Gehäuse.
:
Bearbeitet durch User
Matthias S. schrieb: >,also besser den > Tiny24/44 oder z.B. den recht neuen Tiny20 nehmen, alle im 14-pin > Gehäuse. Habe noch ein paar ATTiny84 in der Schublade. 14pin reichen sicher!
Man kann den Resetpin PB5 mit dem ADC auslesen. Man darf allerdings nicht unter die Resetschwelle gehen. Z.B. den Pin auf 4,5V absenken, läßt sich mit dem ADC gut auswerten.
Peter D. schrieb: > Man kann den Resetpin PB5 mit dem ADC auslesen. > Man darf allerdings nicht unter die Resetschwelle gehen. > Z.B. den Pin auf 4,5V absenken, läßt sich mit dem ADC gut auswerten. Gute Idee! Finde die Lösung aber etwas ~unsauber~ Kann der /RESET-Pin auch als Funktion innerhalb einer Steuerung eingesetzt werden? Bsp: Solang /RESET gesetzt (Gnd), ist der uC in Ruhezustand (Ausgänge low). Auch über Std und Tage. Oder steht der nur für die ISP sinnvoll zur Verfügung?
__Son´s B. schrieb: > Peter D. schrieb: >> Man kann den Resetpin PB5 mit dem ADC auslesen. >> Man darf allerdings nicht unter die Resetschwelle gehen. >> Z.B. den Pin auf 4,5V absenken, läßt sich mit dem ADC gut auswerten. > Gute Idee! > Finde die Lösung aber etwas ~unsauber~ Ist es auch. Aber wer mal Pedas Code gesehen hat, dem graut vor nichts mehr. > > Kann der /RESET-Pin auch als Funktion innerhalb einer Steuerung > eingesetzt werden? Was soll das heißen? > Bsp: Solang /RESET gesetzt (Gnd), ist der uC in Ruhezustand (Ausgänge > low). Auch über Std und Tage. Ja > Oder steht der nur für die ISP sinnvoll zur Verfügung? Der Reset ist erstmal der Reset. Das ist seine Funktion. Was für dich sinnvoll ist, weiß ich nicht.
__Son´s B. schrieb: > ist der uC in Ruhezustand (Ausgänge > low). Nicht ganz richtig. Im Resetzustand sind die Pins eines AVR im Allgemeinen im hochohmigen Eingangszustand ohne Pullup. __Son´s B. schrieb: >>,also besser den >> Tiny24/44 oder z.B. den recht neuen Tiny20 nehmen, alle im 14-pin >> Gehäuse. > Habe noch ein paar ATTiny84 in der Schublade. 14pin reichen sicher! Umso besser. Der Tiny84 ist ja aus der Tiny24 Familie der dickste.
__Son´s B. schrieb: > Peter D. schrieb: >> Man kann den Resetpin PB5 mit dem ADC auslesen. >> Man darf allerdings nicht unter die Resetschwelle gehen. >> Z.B. den Pin auf 4,5V absenken, läßt sich mit dem ADC gut auswerten. > Gute Idee! > Finde die Lösung aber etwas ~unsauber~ Beachtet man die Spezifikationen im Datenblatt ist so etwas nicht unsauber und mal was anderes als nur 0 8 15 Lösungen.
Matthias S. schrieb: > __Son´s B. schrieb: >> ist der uC in Ruhezustand (Ausgänge low). > > Nicht ganz richtig. Im Resetzustand sind die Pins eines AVR im > Allgemeinen im hochohmigen Eingangszustand ohne Pullup. Habe jetzt einige Versuche mit /RESET als "Notaus" durchgespielt -> Ausgänge nicht zufriedenstellend auf 0V bekommen, ohne das der Ausgang im Betrieb belastet wird. Daher wird beim ATTiny85, der Gedanke "Notaus durch PB5 oder /RESET" hier abgeschlossen!
__Son´s B. schrieb: > Habe jetzt einige Versuche mit /RESET als "Notaus" durchgespielt -> > Ausgänge nicht zufriedenstellend auf 0V bekommen Steht doch eindeutig im Datenblatt, Reset setzt die Pins auf Eingang und das ist eben nicht Ausgang low. Nicht umsonst sieht man für MOS-Lasten einen Pulldown vor.
Man könnte noch einen Bootloader benutzen, dann wäre der Resetpin frei und es wird kein spezieller Programmierer benötigt. Die fehlende Notausfunktion könnte man noch mit einem Stromstoßschalter realisieren.
Holger L. schrieb: > Die fehlende Notausfunktion könnte man noch mit einem Stromstoßschalter > realisieren. Lach! Not-Aus muß auch bei Ausfall von Steuerspannungen funktionieren. Das zeige mir mal bei einem Stromstoßrelais!
Route 6. schrieb: > Lach! > Not-Aus muß auch bei Ausfall von Steuerspannungen funktionieren. Das > zeige mir mal bei einem Stromstoßrelais! Er wollte diesen "Notaus" mit dem Resetpin realisieren, da wäre das selbe Problem entstanden. Dachte da auch weniger an ein Relais.
Holger L. schrieb: > Er wollte diesen "Notaus" mit dem Resetpin realisieren, ... Es gibt natürlich unterschiedliche Wege - Geschmackssache - IO/PB5 oder /RESET sind keine! ____________________________________________________________________ Ich möchte mich für alle konstruktiven Infos/Vorschläge bedanken!!! ____________________________________________________________________
:
Bearbeitet durch User
Für Notaus sind aber auch alle anderen IOs am Attiny85 tabu! Der Attiny ist nicht für eine sicherheitsrelevante Anlage einzusetzen. Eine Stop Funktion kann man einplanen, bei der auch nicht weiter etwas passieren kann, wenn diese auch wirklich nicht stoppt
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.