ISP-Pins als I/O nutzen

Gast #3236379
Lesenswert?

Kann man bedenkenlos die ISP-Pins SCK, MISO und MOSI als Tastereingang 
oder LED-Ausgang nehmen, wie hier im AVR-Tutorial beschrieben? Ich würde 
dann den ISP-Stecker direkt mit den AVR-Pins verbinden. Erst dahinter 
käme dann LED und 1kR gegen VCC im Ausgangsfall bzw. 10kR gegen VCC und 
Taster gegen GND im Eingangsfall.

Beim programmieren würden dann die LEDs herumflackern, das ist aber 
nicht schlimm.
#3236478
Lesenswert?

brausemann schrieb:
> Kann man bedenkenlos die ISP-Pins SCK, MISO und MOSI als Tastereingang
> oder LED-Ausgang nehmen, wie hier im AVR-Tutorial beschrieben? Ich würde
Ja, warum nicht? So lange der LED-Strom nicht zu groß für AVR/Programmer 
ist, kein Problem. Bei 1kOhm sollt es da keine Probleme geben.

> dann den ISP-Stecker direkt mit den AVR-Pins verbinden. Erst dahinter
> käme dann LED und 1kR gegen VCC im Ausgangsfall bzw. 10kR gegen VCC und
> Taster gegen GND im Eingangsfall.

Den Taster darf man dann natürlich während der Programmierung nicht 
gedrückt halten. Sonst geht die Programmierung nicht, logisch. Manche 
(Frickel-)Programmer sind auf SCK oder MISO nicht kurzschlußfest. Da 
könnte man im schlimmsten Fall den Programmer beschädigen. Aber wer 
drückt schon den Taster während der Programmierung?

> Beim programmieren würden dann die LEDs herumflackern, das ist aber
> nicht schlimm.
Ein Bekannter hatte sogar kleine Reedrelais dranhägen. Das hat recht 
nett gezirpt. Sowas sollte man natürlich eher vermeiden.

Servus
Michael
#3236635
Lesenswert?

brausemann schrieb:
> Warum schreibt dann Nutzer Wolfgang Heinemann, dass ich mir bei
> Eingängen mehr Gedanken machen muss?

Michael hat es schon erklärt. Du musst immer beachten das die Signale 
für das Programmieren in den vom Datenblatt angegeben Grenzen liegen.
Wenn am Ausgang ein 1K Widerstand als Last liegt ist das ok, der 
Programmieradapter sollte damit zurecht kommen. Wenn Du, wie beschrieben 
10k am Eingang als Pull-Up verwendest UND den Eingang während der 
Programmierung nicht nach Masse ziehst, ist das auch ok.
Auf diese Bedingungen musst Du während der Programmierung achten.

Eine LED am Ausgang "flackert" nur mit. Ein Magnetventil oder Relais 
machen wahrscheinlich auch kein Problem weil sie mechanisch viel zu 
langsam reagieren. Wenn Du aber z.B. einen Teil einer H-Brücke auf solch 
einen Pin legst kannst Du Dir durchaus etwas kaputt machen.

Ein Eingang ist aus meiner Sicht kritischer weil der nicht "Automatisch" 
Fehlerfrei ist. Es kann ja eben doch sein das ein Schalter versehentlich 
betätigt ist. Ich würde auf so einen Eingang dann eher Taster legen als 
Kippschalter.

Das war der Hintergrund meiner Aussage. Ich hoffe ich habe jetzt nicht 
noch mehr verwirrt ...
#3236748
Lesenswert?

Wolfgang Heinemann schrieb:
> Das war der Hintergrund meiner Aussage. Ich hoffe ich habe jetzt nicht
> noch mehr verwirrt ...

Wollen wir brausemann vollends verwirren? War hier nicht explizit 
gefragt, aber als Ergänzung: Wenn man den SPI-Bus, sprich MOSI, MISO, 
SCK während der Laufzeit verwendet, gibt es noch was zu beachten. Wenn 
da ein A/D-Wandler, EEPROM, ... dranhängt, kann sich der externe 
Baustein angesprochen fühlen und während der Programmierung 
dazwischenquatschen. Das passiert aber nur, wenn der /CS des externen 
Bausteins low (aktiv ist). Der /CS wird wohl auf einem GPIO des AVR 
hängen. Weil der AVR im Reset-Zustand ist, sind dessen GPIOs hochohmig. 
Es kommt also drauf an, ob der externe Baustein einen Pullup hat. Wenn 
nicht, dann kann man zu Sicherheit einen externen vorsehen. Dann 
herrschen auch während der Programmierung unkritische Bedingungen.

@ Peter Dannegger
brausemann hat für die LED 1kOhm vorgesehen. Also maximal 5 mA. Das 
sollte ein anständiger Programmer schon liefern. Das gute alte STK500 
hatte auch mit den Reedrelais meines Bekannten kein Problem!

Servus
Michael
Gast #3236902
Lesenswert?

okay, die Erklärungen waren glaube ich erstmal hilfreich. Wenn ich dann 
noch die LEDs nicht direkt ansteuere, sondern über Transistor, 
Treiberstufe oder Darlington-Array wird es wohl noch unkritischer.

Die Eingänge dürfen nicht betätigt sein, sonst fließt der 
Programmierstrom direkt gegen Masse.

Wenn ich aber mit einen Ausgang ein Darlingtonarray anspreche, fließt 
nur der Eingangsstrom des Arrays, und der Betriebsstrom für die LEDs 
kommt dann ja nicht aus der Programmierleitung, sondern durch 5V des 
ISP-Steckers. Wenn ich das jetzt richtig verstanden habe!?

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