ATtiny keine Pins mehr frei

#7775360
Lesenswert?

Hallo, bei einer bestehenden Schaltung möchte ich nach dem Einschalten den Zustand von 3 DIP-Switches einlesen und entsprechend Parameter setzen für den späteren Programmlauf. Leider sind keine Pins mehr frei. MCU Wechsel scheidet aus.

An 3 Pins hängen aktuell 3 LED und die Programmierschnittstelle. Könnte die Schaltung im Anhang so funktionieren :

  1. Beim Einschalten alle 3 Pins als Input.
  2. DIP Schalter einlesen.
  3. Pins als Ausgang schalten.
  4. Normales Programm abarbeiten

Zum Programmieren alle DIP Schalter offen.

Gruß

Angehängte Dateien:
#7775371
Lesenswert?

Dirk F. schrieb:

bei einer bestehenden Schaltung möchte ich nach dem Einschalten den Zustand von 3 DIP-Switches einlesen und entsprechend Parameter setzen für den späteren Programmlauf.

DIP-Schalter mit Widerständen analog kodieren und per ADC einlesen.

Beitrag "Re: Arduino Nano, Drehpotentiometer mit Rasten und Endanschlag"

Geht bei 3 Schaltern auch ohne OPV. Siehe Anhang. Die Spannungen sind nichtlinear, das kann man aber rausrechnen.

Angehängte Dateien:
#7775375
Lesenswert?

Dirk F. schrieb:

An 3 Pins hängen aktuell 3 LED und die Programmierschnittstelle. Könnte die Schaltung im Anhang so funktionieren :

Der Trick funktioniert nur, wenn die Flußspannung der LEDs bei 3V und höher liegt. Denn die Pull-Widerstände müssen halbwegs sauber LOW erreichen. D sollte man eher 3x10k nehmen.

Zum Programmieren alle DIP Schalter offen.

Brauchst du nicht, 1K kann ein normaler Programmieradapter treiben.

Ergänzung. Man kann es mit meiner Analogmethode auch mit einem Pin an den LEDs machen! Man muss nur die Widerstände so wählen, daß bei allen Codes die minimale Spannung hoch gehung ist, daß die LEDs nicht anfangen Strom zu ziehen.

Umin > VCC-Uf_min

#7775379
Lesenswert?

Probiere es aus, ist doch schnell gemacht. Die Frage ist ob die 100kOhm als Pulldown nicht zu groß sind, um den Eingang auf LOW zu ziehen. Besser wäre es für Deinen Fall, wenn der ATiny intern PullDown könnte, das mußt Du halt selber raus finden - ich kenne den ATiny nicht und habe mit dem auch noch nichts gemacht. Die zweite Frage ist, welchen Einfluß ein geschlossener Switch auf Programmiervorgang hätte. Notfalls muß man halt alle Switches während des Programmierens öffnen.

#7775381
Lesenswert?

Dirk F. schrieb:

Zum Programmieren alle DIP Schalter offen.

Wenn Du R14 - R16 auf 47 kOhm erhöhst, kannst Du Dir das sparen. Vielmehr kommt es auf R11 - R13 nebst zugehöriger LEDs an, da diese die Programmierung und das Einlesen der Schalter stören könnten. Eine Alternative wäre, den Tiny85 bei 3,3 V zu betreiben und programmieren. Dann stören die Durchlassspannungen der LEDs je nach Farbe nicht. Typische Schwelle für '0' oder '1' Signale liegt bei etwa VCC/2, siehe Datenblatt.

#7775394
Lesenswert?

Hans schrieb:

Die zweite Frage ist, welchen Einfluß ein geschlossener Switch auf Programmiervorgang hätte. Notfalls muß man halt alle Switches während des Programmierens öffnen.

Die Treiberleistung sowohl des Programmieradapters als auch des ATtiny85 ist ausreichend, um ein paar kΩ zu treiben, ohne dass sich die Pegel störend verschieben (wie Falk schon vor dir schrieb).

(Firma: Gast) #7775395
Lesenswert?

Dirk F. schrieb:

Von der analogen Schaltung möchte ich vorerst Abstand nehmen.

Die Ansage geht eigentlich schlecht mit

Dirk F. schrieb:

Leider sind keine Pins mehr frei.

zusammen.

Dazu: Mit Bootloader oder HVSP kann man den Reset Pin ohne Probleme mit verwenden. Selbst ohne den Reset Pin umzukonfigurieren, lässt sich der ADC bis zur Resetschwelle nutzen.

#7775486
Lesenswert?

Dirk F. schrieb:

deine unbekannten LEDs samt Vorwiderständen

D1 Vf= 3V D2 Vf=2V D3 Vf=2V

Für den Analogeingang musst du an PB2 ran, dort muss die LED mit der größten Flußspannung (3V) ran. Das kann man tauschen.

R11 8K2 R12 3K9 R13 3K9

So viel? Also nur schwache Signal-LEDs. Egal, das Gesagte gilt trotzdem.

Angehängte Dateien:
#7775512
Lesenswert?

mein Vorschlag nimm einen 8bit Latch. Der liest z.B. 8 bits ein (8 Dipschalter) und kann Sie auch wenn gewünscht zwischenspeichern. Wenn man diesen jetzt aktiviert gibt er die 8 Schalterstellungen (oder auch nur 3) an deinen Port oder einzelne Pins aus. Du ließt die Daten ein und schaltest den Latch wieder aus und kannst deinen I/Os wieder für andere Sachen verwenden. z.B. 74HC573

#7775518
Lesenswert?

Habe die Sache mal durchgerechnet. (für Digitallösung) LED rot (2V) 3K9 Vorwiderstand. 1 K Pull-Down über Switch

Pins Spannung bei geschlossenen Switch: U = (5V-2V) *1K / (3K9 + 1K) = 0,61V

Laut Datenblatt wir LOW sicher erkannt bei Max. = 0,3 x 5V = 1,5V

Die grüne LED ist noch unkritischer.....

Sollte also sicher funktionieren.

Angehängte Dateien:
#7775544
Lesenswert?

da ich noch keine 3bit Latch entdeckt habe, habe ich eben einen 8bit Latch vorgeschlagen man kann davon auch nur 3bits benutzen.

Vielleicht fehlt im ja wieder mal ein Pin und dann ist es nicht verkehrt sich mal damit beschäftigt zu haben einen Latch parallel zu schalten und einfach 8 weitere Ein oder Ausgänge parat zu haben.

Als ich mit den AVRs angefangen habe hatte ich da auch so einen kleinen ATTiny26 dort sollten viele ADC Kanäle genutzt werden und ein 8bit LCD angesteuert werden da war so ein Latch sehr nützlich.

#7775874
Lesenswert?

Falk B. schrieb:

Das müssen sie JETZT schon nicht! 1k an 5V macht 5mA, das können gescheite Programmieradapter problemlos treiben!

Gescheite Hardwerker sehen aber zu, daß bei abgeschalteten LEDs nicht 15 mA sinnlos verbraten werden, zumal die Vorwiderstände der LEDs eher auf Batteriebetrieb deuten!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Klaus H. schrieb:

Das frage ich mich auch dauernd. Die sind einfach frei ...

Die mußten vielleicht aus Platzmangel abgekniffen werden und liegen jetzt in der Ersatzteilkiste oder auch ein Geheimprojekt ;-)

#7775938
Lesenswert?

Mi N. schrieb:

Gescheite Hardwerker sehen aber zu, daß bei abgeschalteten LEDs nicht 15 mA sinnlos verbraten werden, zumal die Vorwiderstände der LEDs eher auf Batteriebetrieb deuten!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

JAAAAAAAAAA! HAST JA RECHT!!!!!!!

:-) Darum auch meine Empfehlung mit EINEM Analogpin und relativ hochohmigen Widerständen.

Beitrag "Re: ATtiny keine Pins mehr frei"

Macht minimal 6k gegen Masse und 830uA.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren