Hallo, ich versuche jetzt schon seit einiger Zeit eine Schaltung zu entwerfen, um den avrisp mkII galvanisch von der Zielschaltung zu trennen. Dabei bin ich auf folgende Schwierigkeiten getroffen: - der isp prüft, ob die Zielschaltung Strom hat, indem der High Pegel des Reset Kanals getestet wird und versucht sie dann auf low zu ziehen. Das habe ich folgendermaßen realisiert (siehe Anhang, Reseteingang am Mikrocontroller beschaltet wie üblich) - bei den benötigten 3 anderen Leitungen (MISO, MOSI, SCK) hingegen kriege ich meiner Meinung nach Probleme, wenn andere Geräte am SPI hängen. Wenn ich Optokoppler oder Übertrager einsetze, werden die Potentiale der Leitungen von diesen immer auf das Eingangslevel, das vom ISP kommt, gezogen, eine Kommunikation des uC mit dem Gerät ist dann nicht mehr möglich. Abhilfe würde hier ein Tristate schaffen, der aktiviert wird, wenn der Programmiervorgang startet, aber ich habe keine Möglichkeit gefunden, dieses Event irgendwie abzugreifen. Als Lösungen sehe ich hier, den Programmer immer nur einzustecken, wenn programmiert werden soll (unpraktisch, dann könnte ich immer auch auf Batteriebetrieb wechseln um das Isolationsproblem zu umgehen) oder halt keine anderen SPI Geräte einzusetzen. Ist mein Gedankengang hier überhaupt richtig, hat jemand schonmal soetwas gemacht?
bobberjahn schrieb: > - der isp prüft, ob die Zielschaltung Strom hat, indem der High Pegel > des Reset Kanals getestet wird und versucht sie dann auf low zu ziehen. > Das habe ich folgendermaßen realisiert Nimm C und R ´raus und schalte die LED des Optokopplers mit 1k nach Vcc. bobberjahn schrieb: > bei den benötigten 3 anderen Leitungen (MISO, MOSI, SCK) hingegen > kriege ich meiner Meinung nach Probleme, wenn andere Geräte am SPI > hängen. Wenn ich Optokoppler oder Übertrager einsetze, werden die > Potentiale der Leitungen von diesen immer auf das Eingangslevel, das vom > ISP kommt, gezogen, eine Kommunikation des uC mit dem Gerät ist dann > nicht mehr möglich. Optokoppler sind ausgangsseitig hochohmig, wenn sie nicht angesteuert werden. bobberjahn schrieb: > Ist mein Gedankengang hier überhaupt richtig, Eher nicht. Die von Dir verwendeten Optokoppler sind viel zu langsam und bidirektionale Interfaces, wie PDI, funktionieren damit gar nicht. Schau Dir mal optische oder magnetische High-Speed Koppler an, die Du so verschaltest, dass alle Interface-Formen, die der mkII beherrscht, auch damit abgedekt werden. bobberjahn schrieb: > Abhilfe würde hier ein Tristate schaffen, der > aktiviert wird, wenn der Programmiervorgang startet, aber ich habe keine > Möglichkeit gefunden, dieses Event irgendwie abzugreifen. Der RESET-Pin des MkII ist dieses Event. Ist er LOW, dann müssen die Treiber durchgeschaltet werden, ist er HIGH, dann müssen sie hochohmig sein.
>Als Lösungen sehe ich hier, den Programmer immer nur einzustecken, wenn >programmiert werden soll (unpraktisch, ... Wie oft programmierst du deinen µC? Warum soll der Programmer ständig eingesteckt bleiben? Wenn ich per SPI angesprochenen Baugruppen verwende, habe ich die per Flachbandkabel an die ISP-Buchse angeschlossen. Nach dem Programmieren wird halt umgesteckt.
Ich würde eine Box (oder nur LP) mit Schaltern dazwischen bauen, um die entprechenden Leitungen für die Programmier-/Testphase abzuschalten bzw. umzuschalten.
@ bobberjahn (Gast) >ich versuche jetzt schon seit einiger Zeit eine Schaltung zu entwerfen, >um den avrisp mkII galvanisch von der Zielschaltung zu trennen. Warum? 99% der Schaltungen brauchen das nicht. Zerschossene ISP-Adapter haben meist andere Ursachen. >- der isp prüft, ob die Zielschaltung Strom hat, indem der High Pegel >des Reset Kanals getestet wird und versucht sie dann auf low zu ziehen. >Das habe ich folgendermaßen realisiert (siehe Anhang, Reseteingang am >Mikrocontroller beschaltet wie üblich) Funktioniert nur bedingt. Du täuschst nur ein Rücklesen des Signals vor. OK, zum Austricksen des Programmers reicht es. Aber auch hier ist der Optokopplerausgang eher schwach, ein (Open Drain) Treiber in Form einen kleinen FETs wäre sinnvoll. >- bei den benötigten 3 anderen Leitungen (MISO, MOSI, SCK) hingegen >kriege ich meiner Meinung nach Probleme, wenn andere Geräte am SPI >hängen. Nö, du brauchst halt echte Treiber hinter den Optokopplern. 74HC125 z.B. >nicht mehr möglich. Abhilfe würde hier ein Tristate schaffen, der >aktiviert wird, wenn der Programmiervorgang startet, Genau. > aber ich habe keine >Möglichkeit gefunden, dieses Event irgendwie abzugreifen. Kann man über ein retriggerbares Monoflop an SCK erreichen. Solange SCK wackelt, sind die Treiber aktiv. Ist es für ein paar Sekunden ruhig, werden die Treiber dekativiert. Oder über das Reset, das ist ja während der gesamten Programmierung auf LOW, IIRC. >Als Lösungen sehe ich hier, den Programmer immer nur einzustecken, wenn >programmiert werden soll (unpraktisch, dann könnte ich immer auch auf >Batteriebetrieb wechseln um das Isolationsproblem zu umgehen) Was für ein Isolationsproblem hast du denn? Motorsteuerung auf Netzpotential? MFG Falk
Danke, das sind schonmal hilfreiche Tipps. Falk Brunner schrieb: > Was für ein Isolationsproblem hast du denn? Motorsteuerung auf > Netzpotential? Bei bestimmten Einsatzzwecken bin ich kein Fan von externen Netzteilen und möchte daher mal Kondensatornetzteile ausprobieren. Und das Risiko mir dann wegen der fehlenden galvanischen Trennung über den Programmer den PC zu zerschießen will ich nicht eingehen.
> und möchte daher mal Kondensatornetzteile ausprobieren. Und das Risiko > mir dann wegen der fehlenden galvanischen Trennung über den Programmer > den PC zu zerschießen will ich nicht eingehen. Geht das überhaupt? Ist da nicht eher der Programmer futsch und bei falschen Strom schaltet Windows die USB-Schnittstelle aus. Hab ich schon ein paar mal gehabt. Wieder aktiviert und gut war.
@ bobberjahn (Gast) >> Was für ein Isolationsproblem hast du denn? Motorsteuerung auf >> Netzpotential? >Bei bestimmten Einsatzzwecken bin ich kein Fan von externen Netzteilen >und möchte daher mal Kondensatornetzteile ausprobieren. Dann sollte man sein Testobjekt sowieso über einen Trenntrafo betreiben. > Und das Risiko >mir dann wegen der fehlenden galvanischen Trennung über den Programmer >den PC zu zerschießen will ich nicht eingehen. Je nach Netzteilaufbau gibt es zwei Fälle. A) Masse=N, nix passiert B) Mass=L, satter Kurzschluß über deinen Programmer und PC, Sicherung fliegt.
Falk Brunner schrieb: > Je nach Netzteilaufbau gibt es zwei Fälle. > > A) Masse=N, nix passiert > B) Mass=L, satter Kurzschluß über deinen Programmer und PC, Sicherung > fliegt. Verstehe ich nicht. Wenn ich es so aufbaue, wie zB hier http://www.mikrocontroller.net/articles/Controller_an_230V#Versorgung_.C3.BCber_Vorwiderstand.2FKondensator gezeigt, ist es doch verpolungssicher.
@ bobberjahn (Gast) >> A) Masse=N, nix passiert >> B) Mass=L, satter Kurzschluß über deinen Programmer und PC, Sicherung >> fliegt. >Verstehe ich nicht. Wenn ich es so aufbaue, wie zB hier >http://www.mikrocontroller.net/articles/Controller... >gezeigt, ist es doch verpolungssicher. Nö. Nicht aus Sicht des angeschlossenen ISP-Programers. Zeichne mal eine Masseverbindung vom GND im Schaltplan zu GND von PC, welcher mit PE der hausinstallation verbunden ist. Und dann schließ dein Kondensatornetzteil mal so und mal so an die Steckdose an. Bitte nur gedanklich, denn sonst knallt es wirklich.
Gut, diese permanent vorhandene Potentialdifferenz hatte ich durch die gewollte galvanische Trennung ausgeblendet ;) Aber um das zu Trennen bin ich ja dabei die Schaltung zu entwerfen, um die dieser Thread geht. Funktionieren müsste es also so wie oben beschrieben, vorrausgesetzt eine korrekte Isolation der beiden Seiten der Trennungsschaltung ist vorhanden.
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.