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