Hallo, Kann ich anstatt der Programmierpins MISO,MOSI, SCK etc. im fertigen Programm (Endumgebung) die normalen Port Pins verwenden? Wenn ich dieses Port als Eingang verwende, dann könnte ich es mir vorstellen. Was passiert aber wenn ich im Fertigen Programm den Port als Ausgang setzen will. Kann ich mich da Aussperren (Port als Ausgang -> Programmierung?). Oder greift in dem Fall das DDR nicht? Wenn es möglich ist, muss ich schaltungstechnisch was mit einbauen, wenn ich die Pins in der Entwicklung doppelt belege? Danke für Eure Antworten! gruß Matthias
Du kannst dich dank der fuses vom µC aussperren lasse. Meist kann man den pin fürs Reset nicht als aus und eingang bennutzen. Zumindest nicht bei einem Tiny13. Wenn man den µC von ISP abschaltet, dann kann man den reset als ein/ausgang benutzen.
Also grundsätzlich kannst du die Pinne anderweitig nutzen. ABER.......... (Jetzt kommen die Einschränkungen) Du mußt drauf achten das sich Programmer und Schaltung nicht in die Wolle bekommen. Also als Eingang direkt an irgendeinem anderen Chip gibt beim Programieren Ärger weil eben Zwei Pegel aufeinandertreffen. Irgendwas gibt dann den Geist auf. Als Ausgang ist das kein Problem solange die anhängige Schaltung mit den Pegelsprüngen des Programmers zurecht kommt und diese nicht zu sehr verfälscht. Also Relais zb. sollte man vorher evtl. deaktivieren Der nächste Punkt ist der Reset-Pin. Einige Wenige Modelle haben ihn Exclusiv ohne weitere Funktion. Den kannste nicht weiterverwenden. Bei den Meisten kann er andere Funktionen erfüllen aber dafür muß er dann abgeschaltet werden wie Alexander schon sagte. Dh. du trägst bei den Fuses das ISP aus. Der Haken ist aber das du den Controller danach nicht mehr per ISP programieren kannst. Das geht dann nur noch per Hochvoltprogramierung und erfordert ein anderes Interface.
Oder du "erfindest" einen neuen ISP-Stecker. Eine 5-polige DIN Buchse z.b. Die gibt es ja mit Schaltkontakten wenn man den Stecker reinsteckt. Du nimmst dann eine mit Wechselkontakten und beim reinstecken werden die Pins (MISO, MOSI, SCK) einfach von der Schaltung freigeschaltet. So brauchst du dir keine Gedanken machen, ob der Dongle beim Programmieren überlebt oder sich beim Programmieren evtl Schaltungsteile aktivieren und andere Menschen gefährden. Stell dir man vor, der NOT-Aus ist gedrückt, die Klappe ist offen und somit ein Endschalter betätigt. Das sind zwei Sicherheitseinrichtungen, die grade verhindern sollen, das nichts passiert. Ein Arbeiter reinigt jetzt grade eine Maschine. Du klemmst dein Laptop an und willst eine neue Firmware einspielen. Und ein Prägestemplen quetscht dem Arbeiter die Hand ab. Das erklärst du der BG wie das passieren konnte!
Vielen Dank für eure Antworten. Das mit dem DIN Stecker ist ne gute Idee. So eine Art Umschalter/Schalter hatte ich schon im Sinn. Aber ich werd wahrscheinlich auf einen größerern Chip wechseln, da habe ich dann Genug Pins :-)
Kann man nicht einfach das Emulatotrmode-Bit anklicken und das Programm dann mit dem Emulator reinbrennen? Der benötigt nämlich nur den Reset-Pin zum datentransfer. MISO, MOSI und SCK werden da nicht benötigt.
Wenn Du den Reset-Pin erst einmal deaktivierst und als DebugWire benutzt, kannst Du nicht mehr über ISP an den Chip ´ran, dann nur noch per HV-programming und den Resetpin per Fuse wieder aktivieren. Viel Spaß beim Auslöten...
Wird Deine Schaltung eine Serielle-Kommunikation haben? Wenn ja könntest Du das Update evtl. darüber einspielen.
Hmm wie wäre es mit einem Multiplexer? z.B. den 74HC 258? Kostet ned viel und kann 4 Pins mit einem Bit umschalten - also z.B. wenn beim ISP Stecker ein Pin übrig ist, diesen an den Select-Eingang schalten und im Programmierkabel eine Brücke von Vcc auf den Pin (so vom Prinzip her). Wenn der ISP eingesteckt ist, werden somit die Pins von ihrer sonstigen Aufgabe befreit und dienen jetzt nur noch zum programmieren...
Hi, erstmal Grundsaetzlich kannst du die I/O's ganz normal benutzen. Ein direktes Aussperren gibt es nicht. Atmel hat ein schoenes Appnote dafuer gemacht, wenn ich mich Recht erinnere kommen Serienwiderstaende von 1k in Mosi, Miso, Sck. Der Programmer wird zwischen µC und den Serienwiderstaenden verbunden. Der Programmer aktiviert Reset und im Reset Zustand sind die I/O's des Mikrocontroller auf Input gestellt. Befinden sich keine SPI Bausteine mit Chipselect an dem ISP Bus sollte man die externe Beschaltung trennen. Es ist nicht zwingend notwendig die externe Hardware zutrennen, aber es zuberuecktigen das eventuelle Transistoren, Mosfet's, Led's, Relais usw. beim programmieren versehentlich aktiviert werden. Sollten SPI Bausteine mit Chipselect Pin sich am ISP Bus befinden kann man ohne Probleme den µC programmieren. Die externe Hardware wird nicht beeinflusst, weil diese nur ueber CS aktiviert werden. Beim Mega128 liegt ISP auf Uart0, deshalb wird meistens ein 4052/4053 benutzt um den ISP vom Pegelwandler (Uart) zutrennen. Um nicht extra Jumper / Schalter setzen zumuessen um den µC zuprogrammieren legt man meistens einem vom Logikinput (o. Enable) des 4052/4053 mit auf Reset. Der 4052/4053 schaltet somit den Signalweg nur auf den ISP wenn Reset aktiv ist. Gruß, Dirk sowas macht man auch beim Mega128 z.B. , weil der ISP auf Uart0 liegt. Ganz einfach ein 4052/4053 nehmen und nach der Wahrheitstabelle die Logik beschalten. Der Enable Pin vom 4052/4053 wird mit auf Reset geschal
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.