PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Mehrfachnutzung des Programmierports MOSI, MISO, SCK beiTiny



AVRMagician
23.04.2008, 00:19
Guten Abned liebe Forum-Gemeinde.

Wieder mal ne Elektronik neuling Frage.
Warscheinlich geht das so leicht das dass niemand bis jezt gefragt hat, nur ich kapiers nicht.
Ich hab gesucht und gesucht, aber nichts wirklich treffendes gefunden.
Ich möchte wissen ob ich an meinem Tiny 45 oder irgend einem anderen ATMEL controller die Ports MOSI, MISO, SCK mehrfach verwenden kann. Beispiel, habe zwei Motoren über PWM an meinem Tiny 45 gesteuert, über Transistoren. Alles leuft super, nur kann ich den CHIP so ncht mehr Programmieren da die Transistoren an den Ausgängen drannhängen. Muss ich dort tatsächlich steckverbindungen einbauen vor den Transistoren damit ich noch Flashen kann? Es könnte sein das man dies ja mit einer Diode am Ausgang irgendwie lösen kann, doch was für eine art Diode und gibt das dann keine andere Probleme? Vielen Dank für jeden hinweis. Wünsche einen schönen Abned
Gruss Mario

tobiastob
23.04.2008, 02:07
Hallo MagicMario,

soweit ich das überprüft habe und es mit den Eigenheiten des Tiny13 übereinstimmt (was abgesehen von möglichen Macken auch so sein dürfte), kannst du den MISO als Output nutzen - ich habs mit einem Transisor getestet - nicht aber den MOSI. SCK konnte ich als Input nutzen, sofern er nicht zeitweise direkt an GND lag.

Viele Grüße
dertob

AVRMagician
23.04.2008, 09:10
Hallo Tobias, Danke für deine rasche Antwort.

Für das flashen brauche ich ja alle drei MOSI, MISO, SCK. Zum verdeutlichen wie meine Schaltung aussieht habe ich ein Eagle Bild angehängt. Leider geht ohne eine spezielle Lösung so das flashen nicht mehr. Die LED am PB2 stört nicht, nur die Transistoren an PB0, PB1. Die kann ich auch nicht verlegen da PWM an den zwei Ausgängen liegt. Danke für weitere Inputs. Jedesmal Chip ausbauen oder Steckverbinder lösen vor den Transistoren kann ja auch keine Lösung sein. Oder muss man beim Tiny so arbeiten? Danke und Gruss Mario

tobiastob
23.04.2008, 10:28
Na gut, die Lösung für 2x PWM und ISP hab ich leider auch nicht. Aber ich hatte hier https://www.roboternetz.de/phpBB2/zeigebeitrag.php?t=39422 ein ähnliches Problem angesprochen, brauchte allerdings nur 1x PWM und 2x ADC.

Grußtob

AVRMagician
23.04.2008, 10:45
Danke Tob für den guten Link,
ja das bestätigt also meine Vermutung ... mist. Na ja dann wird mir wohl nichts anders übrig bleiben als 2 steckbare lötbrücken einzubauen, oder einen Spezialstecker der beim einstecken des Programmierkabels trennt.
Ich bedanke mich herzlich für die guten Auskünfte.

Grüsse MagicMario

tobiastob
23.04.2008, 11:01
Bitteschön.
ich denke auch, dass das in deinem Fall die sinnvollste Lösung ist. Ich hab es zeitweise auch verflucht, nur 6 zickige Pins zu haben. Beim nächsten Mal dürfen es vielleicht wieder ein paar mehr Pins sein :)

Grußdertoob

oberallgeier
23.04.2008, 11:15
... Warscheinlich geht das so leicht ... meinem Tiny 45 oder irgend einem anderen ATMEL controller die Ports MOSI, MISO, SCK mehrfach verwenden ...

Das Stichwort heißt ISP - In-System-Programming. Und Du hast recht, ich find selber nix darüber in RN-Wissen und so wenn ich da suche . . . .

Zur Sache:
Wenn Du ein ISP-Kabel mit Deiner Hardware verbindest, Steckerbelegung siehe z.B. (das ist RN-Standard, die meisten Kabel funktionieren so)
https://www.roboternetz.de/wissen/index.php/RN-Definitionen#ISP_-_Programmierstecker
dann kannst Du mit einem entsprechenden Kabel:
https://www.roboternetz.de/wissen/index.php/AVR-ISP_Programmierkabel
https://www.roboternetz.de/wissen/index.php/Programmer
Deinen µC programmieren - was immer auch an den MOSI/MISO/SCK-Pinnen dranhängt
http://www.mikrocontroller.net/articles/AVR-Tutorial:_Equipment#Der_ISP-Programmierer

Der Trick besteht darin, dass die Programmiersoftware, z.B. PonyProg etc, beim Programmieren (sprich flashen) den /RESET (sprich: not reset) auf GND zieht - dann funktionieren die genannten drei Pinne als Programmierschnittstelle - - WENN ! ! Du den Zielchip mit Spannung korrekt versorgt hast. usw. usf. Die Funktion der Pinne ist also unter diesen Umständen eine andere als sonst - Du kannst damit eben IM System programmieren (aufpassen auf die sonst angeschlossene Peripherie - da kann schon mal ein Servo loslegen oder so was - das sollte man berücksichtigen).

Viel Erfolg

Besserwessi
23.04.2008, 17:01
Im Prinzip kann man die CLK,MOSI,MISO Pins auch für andere Funktionen benutzen. Wenn man sie als Eingang benutzt muß ein Widerstand in Reihe, damit der Programmierer oder der Controller selbst kräftig genug ist um ein anderes Signal dort zu erzeugen. Wie groß die Widerstände mindestens sein müssen, hängt vom Programmierer ab. In der Regel reichen 2,2 K. Ähnliches gilt für die Last die an Ausgängen hängt, sie sollte nicht zu niederohmig sein. Je nach Programmierer und Vorwiderstand kann eine LED schon zu viel sein.

kelli
23.04.2008, 18:24
Ich stimme Besserwessi zu.
Ich denke, das dieses Problem vor allem am Programmer liegt, wenn er nicht genug leistung bringt, um zB eine angeschlossene LED auch noch zu treiben.
Ich habe dasselbe Problem bei meinem "einfachst-selbstbau-isp-Programmer"^^. Werd mir bald mal was neues bauen, das Umstecken nervt nämlich auf zeit.

Gruss kelli

Besserwessi
23.04.2008, 21:04
Zu viel Leistung sollte der Programmierer aber auch nicht haben. In der Regel sollte zur Strombegrenzung im Programmierer ein Widerstand von ca. 220-330 Ohm sein. Das schützt den Programmierer und die Schaltung, falls die eine Seite keine Versorgung hat, oder beide Seiten auf Ausgang stehen (z.B. weil reset nicht richtig kontakt hat).
Auch die Selbstbaubrogrammierer mit 74HC244 als Treiber sollen ausreichen. Wegen des Schutzwiderstandes sollten auch die kommerziellen Programmierer nicht mehr Strom liefern.

Bei LEDs muss man halt einen etwas größeren Vorwiderstand nehmen.