Forum: Mikrocontroller und Digitale Elektronik entprellter Taster an SCK - AVR Studio redet von short circuit


von Alex (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,
ich rätsel gerade ein bisschen herum - ich habe auf einer bereits 
geätzten platine wohl einen fehler gemacht, den ich nicht ganz 
nachvollziehen kann:
Am SCK eingang des Mega16 habe ich einen entprellten Taster 
angeschlossen. Wenn ich nun mit AVR Studio und meinem ISP mkII 
programmieren will, bekomme ich einen error "SCK line appears to be 
short circuited".

Falls das nun an den entprellkomponenten gegen masse liegt, wüsste ich 
gerne, wie ich ohne größeren aufwand abhilfe schaffen kann, ohne die 
funktion des aufbaus großartig zu beinträchtigen? Oder ist der Aufbau so 
indisukutabel und einfach nicht zulässig?

Ausschnitt im Anhang.

Beste grüße

Alex

von Uwe .. (uwegw)


Lesenswert?

Indiskutabel und einfach nicht zulässig. Mit deinem Kondensator 
versuchst du ja, schnelle Pegelwechsel zu unterdrücken. Und eben diese 
treten beim Programmieren nun mal regelmäßig auf, wenn SCK mit etlichen 
kHZ getaktet wird.

Schmeiß den Kondensator raus und mach die Entprellung per Software. Und 
wenn du die Taster gegen GND schaltest und den internen Pullup 
aktivierst, kannst du auch auf dem Widerstand verzichten. Da die Platine 
aber schon fertig ist, musst du den Widerstand behalten, weil ein AVR 
keine internen Pulldowns hat.

von Achim M. (minifloat)


Lesenswert?

Der 330n-Kondensator bildet Wechselstrommäßig einen Widerstand, der bei 
den üblichen Frequenzen, die am SCK anliegen gegen 0Ω geht.

1. Lösungsansatz: einen Widerstand in die Leitung von Taster zu SCK rein 
werfen, vllt. so 100k. Oder einen Jumper, der dann fürs brennen 
abgezogen werden muss.

2. Lösungsansatz: per Software entprellen und interne Pullups nutzen. 
Der Taster schaltet dann gegen Ground.

mfg mf

von Bernhard R. (barnyhh)


Lesenswert?

Alex schrieb:
> Oder ist der Aufbau so
> indisukutabel und einfach nicht zulässig?

Ja.

Mach die Entprell-Kondensatoren raus und entprelle in Software!

Du hast jetzt (auf die harte Art) folgendes gelernt:
Man mißbraucht nie nie nie die Programmierpins für irgendetwas anderes 
(andere Pins benutzt man auch möglichst nur für genau einen Zweck).

Bernhard

von Stefan B. (stefan) Benutzerseite


Lesenswert?

Jumper in die Leitung SCK zum Tastermimik setzen oder einen 
Serienwiderstand (=> ATmel Appnote Hardware Considerations). Jumper 
ziehen, wenn ISP programmiert wird.

Ich würde an deiner Stelle auch den Einbau des Tasters S5 prüfen, ob der 
Taster wirklich offen ist oder durch einen Fehler die 5VFUSED an SCK 
anliegen,

von Uwe .. (uwegw)


Lesenswert?

Bernhard R. schrieb:
> Man mißbraucht nie nie nie die Programmierpins für irgendetwas anderes
Das würde ich nicht komplett so sehen. Für Eingangssignal (wie hier) 
sollten die Pins nur im Notfall eingesetzt werden. Aber bei Ausgängen 
ist es unkritisch, wenn nichts kritisches dort angeschlossen ist (z.B. 
ein Motortreiber wäre ne blöde Idee). Ich nehme die ISP-Pins gerne für 
Status-LEDs. Da stört es nicht weiter, wenn sie kurz mal etwas blinken.

von Alex (Gast)


Angehängte Dateien:

Lesenswert?

in ordung. kacke. jetzt muss ich die ganze hand wieder umbauen. ich 
"dachte", die programmierpins könnten normal verwendet werden, sofern 
über sck bzw reset nicht signalisiert ist, dass sie gerade zur 
programmierung verwendet werden. :/
zum beweis, dass es wirklich auf die harte art war, hier mal das, was 
ich jetzt wieder auffriemeln muss:

dankesehr.

von Stefan B. (stefan) Benutzerseite


Lesenswert?

Kann das Ding sich noch nicht selbst aufpfriemeln :-)
SCNR

von Alex (Gast)


Lesenswert?

noch nicht, ich kanns ja nicht programmieren ^^

von Alex (Gast)


Lesenswert?

ich werde das mit den serienwiderständen probieren. 100k ist ok?
ich habe intern keine pulls gesetzt und weiß nicht, wie viel dann bei 
tasterdruck effektiv am eingang anliegt.

von Simon K. (simon) Benutzerseite


Lesenswert?

Bernhard R. schrieb:
> Alex schrieb:
>> Oder ist der Aufbau so
>> indisukutabel und einfach nicht zulässig?
> Du hast jetzt (auf die harte Art) folgendes gelernt:
> Man mißbraucht nie nie nie die Programmierpins für irgendetwas anderes
> (andere Pins benutzt man auch möglichst nur für genau einen Zweck).

Das ist Quatsch und trifft höchstens für Anfänger zu. Wenn man weiß, was 
man tut ist das kein Problem. Anders könnte man ja bei den meisten AVRs 
gar nicht das SPI Hardware Interface benutzen.

von Peter D. (peda)


Lesenswert?

Bernhard R. schrieb:
> Man mißbraucht nie nie nie die Programmierpins für irgendetwas anderes
> (andere Pins benutzt man auch möglichst nur für genau einen Zweck).

Das ist Quatsch.
Wie soll das z.B. beim ATtiny25 gehen, dann hättest Du ja nur 2 IO-Pins 
verfügbar, statt 6.

Löte die 300nF Kondis raus, machen Entprellen in SW und gut is.


Peter

von Alex (Gast)


Lesenswert?

die 100k in reihe waren (bisher) eine gute lösung. hand ist jetzt 
programmierbar. ich bin ja mal gespannt! ^^

von Simon K. (simon) Benutzerseite


Lesenswert?

100k ist zu hoch. Nimm 10k.
Trotzdem ist die Lösung, die Kondensatoren rauszunehmen bisher die 
Beste.

von Achim M. (minifloat)


Lesenswert?

Simon K. schrieb:
> 100k ist zu hoch. Nimm 10k.

Guckst du zu den 33k, die am Kondensator hängen. Ich denke bei den 
Tastern kommt es nicht auf Geschwindigkeit an und die Portpins haben 
einen doch recht großen Eingangswiderstand.

mfg mf

von Simon K. (simon) Benutzerseite


Lesenswert?

Jo K. schrieb:
> Simon K. schrieb:
>> 100k ist zu hoch. Nimm 10k.
>
> Guckst du zu den 33k, die am Kondensator hängen.

Hm, was sollte ich da sehen?

> Ich denke bei den
> Tastern kommt es nicht auf Geschwindigkeit an und die Portpins haben
> einen doch recht großen Eingangswiderstand.

Es ist aber ganz einfach störfester. Ist jetzt auch mehr eine 
Bauchentscheidung bei mir gewesen ;-)

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.