Tiny13 an ISP Reset ADC-Schalter möglich ?

Gast #2853576
Lesenswert?

Hallo,
ich habe einen Tiny13 für ein kleines Projekt und benötige nun noch 
einen zusätzlichen Schalteingang.
Gibt es eine Möglichkeit den RESET-Pin PB5 sowohl für den ISP als auch 
als Eingang zu nutzen ?
Also kann ich im Tiny13 selbst die Funktion des PINs umschalten ?
Im Datenblatt finde ich dazu nichts was mir weiterhelfen würde.
Ich wollte das ganze dann via ADC0 so realisieren:


VCC
 |
 |      +---[5k]----+
 +----*/            +----PB5
        +---[10k]---+
                    |
SPI-RESET-----------+

Es reicht mir den Schalterzustand alle fünf Sekunden abzufragen.
Danke.
#2853581
Lesenswert?

Nein.
Die Funktion des Reset wird per Fuse bestimmt. Wenn du Reset abschaltst 
und als normalen  IO Port nimmst, dann kannst du ihn nur noch HV 
Programmieren. ISP nicht mehr. Und natürlich das ganze per ISP auch 
NICHT mehr Rückgängig machen.
Wenn du sowas machen willst, kauf dir einen AVR DRAGON. Damit entwickle 
ich Tiny85er ebenfalls ohne Reset. Das geht sehr gut und im Handling 
merkt man keinen Unterschied zu ISP.

gruß cyblord
Gast #2853605
Lesenswert?

Schade, habe ich befürchtet.
Aktuell habe ich einen digitalen Eingang der via Taster einen externen 
Zählvorgang umsetzt.
An den anderen PINs hängen Potentiometer.
Wenn ich nun obige Schaltung an den Tasterpin hänge und dann alle 10ms 
auf ADC-Änderung prüfe, kann ich damit einen zusätzlichen Eingang 
realisieren ?
Z.B.:
1
uint8_t checkswitch()
2
{
3
 if(uADCWerte[5] < 128)
4
  return 0;
5
 return1;
6
}

Nur wie kann ich dann noch sicher den Taster abfragen ?
Danke.
Gast #2853641
Lesenswert?

Ferdi schrieb:
> Der PB5, auch als RESET gefused ist mit dem ADC verbunden und meßbar.
> Bei der ext. Beschaltung muß man halt aufpassen, daß man dadurch keinen
> Reset auslöst.

OK,
dann sollte folgendes mit obigen Code also funktionieren oder ?


VCC
 |
 |      +---[5k]----+
 +----*/            +-+-[5k]--PB5
        +---[15k]---+ |
                      |
SPI-RESET-------------+

Danke.
Gast #2853650
Lesenswert?

Ich meine: Nein

Du mußt einen Spannungsteiler von VCC nach GND aufbauen um mit dem ADC 
sinnvoll zu messen. Dabei mußt du natürlich beachten, daß zuviel GND 
einen Reset auslöst. Wie gesagt: ausprobieren, Datenblatt und 
Spnnungsteiler bestimmen.
#2853662
Lesenswert?

So einen Pfusch würd ich nicht machen. Schon jetzt schwören viele auf 
einen externen PullUp für den Reset, obwohl es der interne wohl meistens 
tut. Aber hier noch einen Taster abzufragen verschärft das Problem. Am 
Ende hat man spontane Resets unter bestimmten Bedingungen die man so 
vielleicht gar nicht reproduzieren kann. Das macht nur Ärger.
Nimm entweder einen größeren Controller (Tiny24/44/84) oder kauf dir für 
nen Fuffi den Dragon.

gruß cyblord
Gast #2853675
Lesenswert?

@cyblord: Als einzig konstruktives in deinem Beitrag entnehme ich den 
Hinweis auf unerklärbare Resets. Ausprobiert hast du das aber noch 
nicht, oder? und verläßt dich auf die Schwüre der ext. Pullup 
Fetischisten.
#2853678
Lesenswert?

Ferdi schrieb:
> @cyblord: Als einzig konstruktives in deinem Beitrag entnehme ich den
> Hinweis auf unerklärbare Resets. Ausprobiert hast du das aber noch
> nicht, oder? und verläßt dich auf die Schwüre der ext. Pullup
> Fetischisten.

Ich muss nicht alles ausprobieren um zu wissen dass es Pfusch ist. Dabei 
spielt es keine Rolle obs funktioniert. Man wird es schon irgendwie zu 
laufen bekommen, daran zweifel ich nicht.

gruß cyblord
Gast #2853733
Lesenswert?

OK,
also wenn das mit dem ISP-Reset so heikel ist kann ich dann das mit 
einem oder allen anderen analogen Inputs machen:

   VCC
    |
    |
[Schalter]
    |
 +--+--+
 |     |
 1k   2,5k-+-2,5k--GND
 |         |
 +--+------+
    |
    +-------ADC-Pin
    |
    |
[Poti-1k]
    |
    |
   GND

Also bei Schalter 1k und Poti = 0Ohm
hätte ich dann Uadc = Uvcc = 5V
Poti = 1k =>  Uadc = 2,5V
Bei Schalter auf Spannungsteiler
Poti=0   Uadc =  Uvcc/2 = 2,5V
Poti=1k Uadc = 0V

Also wenn der ADC 128-255 hat ist der Schalter auf 1k und von 0-128 auf 
dem Spannungsteiler.
Oder stehe ich gerade wieder mal voll auf'm Schlauch und sehe den Wald 
vor lauter Bäumen nicht ?
Danke.
Gast #2853785
Lesenswert?

Hast Du mal an einen analogen Multiplexer gedacht? Bei den meist 
mittelprächtigen Auflösungen der Wandler dürfte ein einfacher sogar 
ausreichen.
3 Potentiometer umkonfigurieren in 1 A/D-Eingang und 2 Digitalausgänge 
reicht für 4 umschaltbare Analogeingänge.
Gast #2853826
Lesenswert?

Grober Vorschlag:

Nach Datenblatt (Reset Input Threshold Voltage Diagramm) sollte die 
Spannung bei Vcc=5V am PB5 nicht unter 3V fallen um nicht einen Reset 
auszulösen.

Also Spannungsteiler mit 10k und 43k Widerständen.

Vcc -- 10k -- PB5 -- 43k -- GND

Den 10k mit Schalter überbrückbar machen.

Schalter geschlossen: 5V messen (Adc Wert = 1023)
Schalter offen: ca 4V messen (Adc Wert ca 820)

Abfrage im Programm: Adcwert kleiner 1000 dann ist Schalter offen.

Risiko : Schalter muß bei SPI Programmierung offen sein. Könnte ein 
Wechsler sein, der PB5 auf Vcc (10k überbrückt) oder auf SPI Leitung 
schaltet.

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