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?
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?
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...
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.
@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. ...
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!
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.