PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : ISP-Kommunikationsprobleme



masterchief
26.08.2014, 16:57
Hallo zusammen :)

Ich bin gerade dabei, meinen Roboter zu bauen und habe mir dazu vor einiger Zeit das Atmel Evaluations-Board (V 2.0.1) gekauft. Nun wollte ich die Programmierung sozusagen "auslagern" und das Board nur noch als ISP-Dongle benutzen. Dazu habe ich auf eine zweite Platine eine IDE-Buchse aufgelötet und wollte die benötigten Pins (Masse, +5V, MISO, MOSI, SCK und Reset) mit meinem Steckbrett verbinden. Auf diesem befindet sich der Atmega32 samt Kondensatoren und dem Quarz. Die Schaltung ist dieser nachempfunden: http://rn-wissen.de/wiki/index.php/Datei:800px-Avrtutorial_grundschaltung_mitquarz.gif

Der einzige Unterschied ist, dass ich den Reset-Pin direkt am Atmega angeschlossen habe, da sich der Pull-Up Widerstand ja schon auf dem Board befindet.

Wenn ich nun die benötigten Anschlüsse direkt aus der IC-Fassung abgreife und auf das Steckbrett führe, funktioniert alles. Das Programm selbst läuft und die Verbindung mit Ponyprog funktioniert auch. Sobald ich aber die Anschlüsse über das Flachbandkabel und die zweite Platine laufen lasse, geht zwar das Programm, jedoch bringt Ponyprog keine Verbindung mehr zustande. Das komsiche ist, dies passiert sogar wenn ich nur den Masse- und den 5V-Anschluss über die Platine laufen lasse.

Nach langer Sucherei habe ich jetzt vielleicht das Problem gefunden: Meine Vermutung ist, dass ich mit der EMV Probleme habe. Dies wär mir auch logisch, wenn dies für die Signalkabel gelten würde, warum sollte dies aber auch die Masse bzw. den 5V Anschluss so stark beeinflussen, dass die Kommunikation scheitert?
Ich habe die Platine selbst nachgemessen und habe keine Fehler entdecken können (macht aus Sinn, ansonsten würde das Programm auf dem Atmega nicht laufen).

Wär super wenn ihr mir hier ein bisschen weiterhelfen könnt :D

Mfg

Besserwessi
26.08.2014, 17:43
Für eine Signalübertragung braucht man auch immer die Masse mit dazu - das Signal ist ja die Differenz von der Signalleitung zur Masse. Masse und VCC von den Signalleitungen getrennt zu legen ist eine ganz schlechte Lösung, weil die große Schleife viele Störungen einfangen kann und auch aussenden kann. Die wichtigste Leitung ist die Masse - deshalb nutzt man z.B. beim 10 poligen ISP Stecker auch mehrere Leitungen für die Masse. Im Flachbandkabel hat man nicht umsonst oft jede 2. Leitung mit Masse oder VCC. Die VCC Leitung kann zum Teil die Funktion der Masse als Rückleitung übernehmen, wenn die Leitungen über Kondensatoren HF-mäßig gekoppelt sind.

Beim ISP Signal sollen die Leitungen nicht zu lang sein - so aber etwa 50 cm kann es ggf. schon Probleme geben. Das ist halt kein Signalpegel, der für lange Leitungen gedacht ist. Je mach Programmer geht es ggf. auch mal noch mit 2 m gut, muss es aber nicht.

masterchief
26.08.2014, 17:59
Danke für die schnelle Antwort!

Das heißt, generell bin ich mit meiner Vermutung, dass es sich um irgendwelche Störungen handelt richtig.
Das Problem ist leider, dass von der Board-Seite her nur drei Pins mit Masse belegt sind, und nicht jede 2. Leitung. Würde hier eine Serienterminierung (wie hier beschrieben: http://www.mikrocontroller.net/articles/Wellenwiderstand )helfen?

Von der Leitungslänge selbst habe ich ca. 20cm lange Kabel zur Übertragung vom Board zum Steckbrett, und mit den eingeätzten Leitungen auf dem Board schätze ich mal auf eine gesamte Leitungslänge von ca. 40cm. Über Flachband ca. 70cm, das wird wahrscheinlich das Problem sein.

Dann werde ich einfach das Board selbst weiter zum flashen benutzen und die externen Schaltungen nur zum Ausführen des Codes benutzen (und auf keinen Fall mehr die Signale von Masse trennen *gg*).

Noch eine andere Frage: Ich möchte mit dem ganzen mehrere Servos antreiben, und muss dazu natürlich einige Signalleitungen über das Flachbandkabel schicken. Ich kann aber leider nicht in jeder 2. Leitung eine Masse legen, da die Belegung ja schon vom Board vorgegeben ist. Hilft hier die Terminierung? Oder ist es bei einem 50Hz Signal nicht so tragisch?

shedepe
27.08.2014, 23:23
Stell doch einfach die ISP Frequenz niedriger. Das sollte schon einiges ausmachen.