Forum: Mikrocontroller und Digitale Elektronik ISP als Ausgang?


von Günther (Gast)


Lesenswert?

Kann ich die ISP-Ports gefahrlos als Ausgänge programmieren?
Ich habe hier gelesen das sowas für Reset ungünstig wäre, wenn man den
AVR mal mit einer fehlerhaften Software bespielt.
Wie steht es da mit MISO, MOSI und SCK?

von Chris (Gast)


Lesenswert?

Wenn du das Datenblatt gelesen hättest, wüsstest du, dass das überhaupt
gar kein Problem darstellen würde, wenn es denn ginge.

Wie willst du denn diese drei Pins als Ausgang programmieren? Das ginge
höchstens software-mäßig (über DDRx). Die Software auf dem Chip läuft im
Programmiermodus natürlich nicht, also spielt das keine Rolle. Über die
Fuse-Bits kannst du diese Ports aber auch nicht als Ausgang
definieren.

Also wie willst du diese Pins auf "Ausgang" programmieren? Bzw. was
genau meinst du damit?

von ...HanneS... (Gast)


Lesenswert?

Du solltest aber deine an den ISP-Pins hängende Peripherie so gestalten,
das das "Geklappere" beim ISP-Programmieren nix Ungewolltes auslöst
(z.B. beide Zweige einer H-Brücke aktiviert und damit einen Kurzschluss
provoziert.

Guten Rutsch...

von Günther (Gast)


Lesenswert?

Hätte ich ins Datenblatt geschaut, hätte ich gesehen, das beim Mega32
die Pins MOSI,MISO und SCK auch mit PB5, PB6, PB7 bezeichnet sind. Und
/RESET nur mit /RESET. Bei anderen ist /RESET auch z.B. PA5.
Da hätte mir der Gedanke kommen können, das bem Mega32 Reset auch nur
Reset ist und nix anderes. Aber wenn ich da I/O-Pins mal grob
überschlage und mit der Angabe im Datenblatt vergleiche, würden mir 3
fehlen, wenn ich ISP nicht nutzen darf.
Ich bitte es mir als Anfänger zu verzeihen, das ich den Wiederspruch
zwischen "kein Problem darstellen würde, wenn es denn ginge." und
"Das ginge höchstens software-mäßig" nicht verstehe. Softwaremäßig
reicht doch oder nicht?
Ich habe mich in meiner Frage ja auch extra auf das Problem mit Reset
als Ausgang bezogen ;)

@HanneS, das wäre nicht das Problem. Ich denke da an Sachen wie ISP
abziehen und ein Stecker mit 3 LEDs aufstecken.

von ...HanneS... (Gast)


Lesenswert?

@Günther:

ISP-Stecker an und 3 LEDs dran...
Hmmm... Sowas hast du noch in der Lernphase, in der der AVR noch keine
sinnvolle Arbeit verrichten muss. Wenn es aber um eine ernsthafte
Anwendung geht, dann ist da knallharte Peripherie dran und keine
steckbaren LEDs.

Also:

Wenn der (ISP-) Pin im Normalbetrieb als Eingang genutzt wird, dann
sollte die Peripherie relativ hochohmig angeschlossen sein, damit die
ISP-Pegel nicht verfälscht werden.

Wenn der (ISP-) Pin als Ausgang verwendet wird, dann ist darauf zu
achten, dass die ISP-Signale an der Peripherie keinen Unfug auslösen.
Es könnte schädlich sein, wenn an einer Maschine während des
Softwareupdates Motoren anlaufen oder Relais klappern würden. Wenn da
ein paar (low-current-) LEDs flackern, dann stört das eher weniger.
Trotzdem sollte die Last sehr gering sein, damit die ISP-Signale ihre
Pegel halten können.

So hatte ich das gemeint.

Stell dir eine Schaltung mit Tiny12 oder Tiny15 vor. Da gibt es (im
ISP-fähigen Zustand) nur 5 I/O-Pins, 3 davon werden vom ISP benutzt. Da
muss man sich schon überlegen, was man an welchen Pin anschließt.
Braucht man (beim Tiny15) auch noch ADC, dann bleibt nicht mehr viel
Spielraum. Da muss man schon darauf achten, dass sich Schaltung und
ISP-Programmirerbarkeit nicht gegenseitig stören.

...

von Günther (Gast)


Lesenswert?

Das mit den LEDs aufstecken war ja nur ein Beispiel. Angesehen davon das
ich ja noch in den Anfängen stehe ;)

Als Eingänge hab ich die auch schon in Betracht gezogen und dabei keine
Bedenken gehabt.
Für meine Anwendungen bietet es sich da immer an, die 3 Pins als
Tastereingänge zu benutzen. Die sind wärend des Programmierens idr
nicht betätigt.
Oder ein 6poligen ISP-Anschluss auf der Platine vorsehen und die drei
dann zur Konfiguration mit Jumpern nutzen. Einer liegt ja direkt neben
Massepin und die anderen beiden bekommen eine extra Stiftleiste dazu
gelötet (ich müsste erst nachschauen, wer wo ist)
Dann kann während des Programmieres kein Jumper aufgesteckt sein.
Als Ausgänge dachte ich an Status-LEDs oder eine Verbindung zu einer
anderen Platine um dort was zu steuern. Wenn diese Verbindung steckbar
wäre, wäre es zwar nicht professionel, aber Anwendungssicher.

Wenn ich echt mal in die Lage kommen sollte, mit den drei Pins was
sicherheitsrelevants schalten zu wollen, werd ich aber dran denken was
da dran hängt und welche Auswirkungen das Programmieren haben könnte.

Danke für deine Hilfe und ein frohes neues noch!

von ...HanneS... (Gast)


Lesenswert?

Jou Günther, Frohes und Xundes noch...

Tastereingänge sind gut. Kein normaler Mensch kommt auf die Idee,
während des Programmupdates Taster zu betätigen...

...

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.