Forum: Mikrocontroller und Digitale Elektronik ISP-Pins als I/O nutzen


von brausemann (Gast)


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.

von Wolfgang H. (frickelkram)


Lesenswert?

Ja, kannst Du. So lange Du die Pins nur als Ausgänge verwendest. Wenn Du 
sie als Eingänge verwenden möchtest geht das auch, Du musst Dir nur ein 
paar Gedanken mehr machen ... :-)
Ich habe das auch schon so gemacht und das flackern ist doch nett, es 
zeigt Dir an das die Programmierung läuft ...

von brausemann (Gast)


Lesenswert?

Warum ist es nicht egal, ob es ein Eingang oder Ausgang ist? In beiden 
Fällen liegt ein Widerstand gegen Spannung. Oder meinst du die 
Programmierung?

von Michael M. (technikus)


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

von Bastler (Gast)


Lesenswert?

Ich hatte die Datenleiteingen von einem LCD dran.
Sah lustig aus während des flashens,lauter hüpfende Zeichen...

Probleme hatte ich damit aber nie.

von brausemann (Gast)


Lesenswert?

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

von Peter D. (peda)


Lesenswert?

Taster sind kein Problem.
LEDs besser nicht, da geht der Programmer in die Knie, der müßte ja den 
LED-Strom zusätzlich aufbringen.

von Wolfgang H. (frickelkram)


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 ...

von Michael M. (technikus)


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

von Sascha (Gast)


Lesenswert?

Man könnte auch einfach das IC sockeln und je eine Platine zum 
Programmieren und Arbeiten nehmen und nach dem Programmieren umstecken 
=)

von Tobias (Gast)


Lesenswert?

Sascha schrieb:
> Man könnte auch einfach das IC sockeln und je eine Platine zum
> Programmieren und Arbeiten nehmen und nach dem Programmieren umstecken
> =)

Ja. Dann kann man sich auch gleich den IN SYSTEM Prgrammer (ISP) 
sparen... Praktisch! :P

von brausemann (Gast)


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!?

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.