Hallo, ich habe seit Anfang der Woche meine erste eigene Platine (Layout kann ich später noch anhängen falls es nötig ist) mit einem STM32F429 in Betrieb. Ich verwende ein STM32F4 Discovery Board um meine Platine über SWD zu programmieren. Leider sind die SWD Leitungen auf der Platine vom Pinheader bis zum µC etwas lang (~10cm) geraten. Ich habe nun das Problem, dass die Programmierung teilweise fehlschlägt, je nachdem was für ein Kabel ich zur Verbindung benutze. Dabei scheint hauptsächlich die Organisation der Adern ausschlaggebend zu sein (Flachbandkabel vs. einzelne Adern), wobei Flachbandkabel etwas besser funktionieren. Alle getesteten Kabel waren maximal 15cm lang und ein extra kurzes 5cm Kabel, welches ich mir gebaut habe, funktioniert auch nicht wirklich zuverlässig. Ich wollte mir das Ganze dann mit einem Oszilloskop anschauen und habe bemerkt, dass alles Funktioniert wenn ich den Tastkopf an den SWCLK Pin anschließe. Testweise habe ich also mal einen bedrahteten 22pF Kondensator zwischen GND und SWCLK geklemmt und auch dann funktioniert alles. Ich bin jetzt also kurz davor den Kondensator fest einzulöten, um die recht steilen Flanken vom SWCLK Signal etwas zu entschärfen. Ist dies eine akzeptable Lösung? Sollte ich vorsorglich auch noch einen Kondensator an SWDIO anlöten? Oder lässt sich irgendwo softwareseitig die Flankensteilheit/Frequenz der SWD Signale einstellen?
Zusaetzliche Masseverbindungen helfen in so einem Fall haeufig.
Ja am besten wäre wohl ein Flachbandkabel und jede zweite Ader auf GND aber das kriege ich bei dem Pinout vom STM32F4 Discovery Board wohl nicht so einfach dran. Oder wie soll ich die zusätzlichen Masseverbindungen realisieren?
Gemessen ist auf SWCLK ein 2,7MHz Rechteck Signal mit 2,9ns Anstiegszeit. Im Datenblatt konnte ich allerdings keine Angaben dazu finden. Genauso wenig in der Software Möglichkeiten zur Anderung der Frequenz.
Hast du mal die GND beider Platinen (deiner und des Discovery) miteinander verbunden? Sieht wie ein Masseproblem aus.
Also mehr GND Verbindungen als die eine Leitung, die momentan da ist? Momentan sind verbunden NSRST, SWDIO, GND und SWCLK.
Bei Keil steht der SWCLK mit ST-Link auf 1MHz. Grüssle Thomas
Sebastian V. O. schrieb: > Also mehr GND Verbindungen als die eine Leitung, die momentan da > ist? > Momentan sind verbunden NSRST, SWDIO, GND und SWCLK. Hast du die auch mal durchgemessen? Speziell die GND-Leitung. Vielleicht gibt's da Kontaktprobleme? Zusätzlich braucht man eigentlich nix. Wenn die GND-Leitung von der SWD in Ordnung ist, sollte es eigentlich funktionieren. Und paar cm mehr oder weniger sollten auch nichts ausmachen (wenns nicht gerade paar Meter sind).
Also laut meinem (billigen) Multimeter sind die Verbindungen da. Oder wie sollte ich die Durchmessen?
Sebastian V. O. schrieb: > Also laut meinem (billigen) Multimeter sind die Verbindungen da. > Oder > wie sollte ich die Durchmessen? Ja, ich meinte eine ohmsche Durchgangsprüfung. Und zwar nicht, indem du die Strippen in die Hand nimmst und durchmißt, sondern im gesteckten Durchgang von Platine zu Platine messen. Kann ja auch mit einem Steckverbinder was faul sein oder ein Leiterzug, der zum Stecker führt ist ab oder irgend sowas. Also alles zusammenstecken und dann von Platine zu Platine den Durchgang messen.
Also ich bin mir ziemlich sicher, dass alle Pins eine Verbindung haben. Ich habe nach dem Widerstand kurz vorm Pinheader am Discovery Board bis an den Pin vom STM32F429 auf meiner Platine gemessen. Mein Multimeter hat überall ~0,5 Ohm angezeigt, was auch angezeigt wird wenn ich die Messspitzen direkt aneinander halte. Außerdem habe ich auf Kurzschlüsse zu benachbarten Pins geprüft aber nichts gefunden.
Sebastian V. O. schrieb: > Also ich bin mir ziemlich sicher, dass alle Pins eine Verbindung > haben. > Ich habe nach dem Widerstand kurz vorm Pinheader am Discovery Board bis > an den Pin vom STM32F429 auf meiner Platine gemessen. Mein Multimeter > hat überall ~0,5 Ohm angezeigt, was auch angezeigt wird wenn ich die > Messspitzen direkt aneinander halte. Außerdem habe ich auf Kurzschlüsse > zu benachbarten Pins geprüft aber nichts gefunden. Hm, dann wirds wohl doch kein GND-Problem sein, wie es erst aussah. Nächster Versuch: Kannst du die Datenrate (SWCLK) nicht noch runterschrauben? Geh nochmal auf die Suche, ob du da eine Möglichkeit findest. Da fällt mir gerade ein: Wie sieht es denn aus, wenn du die Verbindungen (Jumper) auf dem Discovery wieder durchschaltest und mal den 429 auf dem Discovery programmierst? Hast du da auch Probleme? Hast du überhaupt die Verbindungen zum internen 429 des Discovery getrennt, wenn du eine externe Platine programmierst?
Die beiden Jumper auf dem Discovery Board sind getrennt wenn ich den externen µC Programmieren möchte. Den internen kann ich auch ohne Probleme programmieren wenn die Jumper wieder drin sind. Ich habe aber das STM32F4 Discovery und nicht das STM32F429I Discovery. Der externe µC ist nur ein STM32F429 aber das sollte ja nicht das Problem sein. Einstellungen für die Geschwindigkeit finde ich weder im ST-LINK Utility noch in den Parametern für das ST-LINK_CLI Commandline Tool.
Okay, das mit den Jumpern ist schon so in Ordnung. Ich hab gerade mal den ST-Link aufgerufen, habe aber kein Board zum Anstecken hier. Allerdings sehe ich unter Target/Settings die Einstellung "Connection Settings" und dort kann man die "SWD Frequency" einstellen. Ich kann dir jetzt nicht sagen, was da stehen sollte, weil ich kein Board angesteckt habe. Aber du kannst ja mal versuchen, dort die Frequenz zu verringern. Sollte kein Problem sein, dann dauert nur das Programmieren entsprechend länger, aber das könnte die Ursache bei dir sein. Versuchs mal.
Also entweder bin ich blind oder bei mir steht davon nichts.
Ich hatte noch die 3.4.0 und zufällig ist das wohl ein neues Feature. Ich habe dann gerade auf die 3.5.0 geupdated und auch ein Firmware Update vom STLink auf dem STM32F4 Discovery durchgeführt. Komischerweise sind jetzt alle Verbindungsprobleme verschwunden. Die voreingestellte SWD Frequenz war 1,8 MHz. Aber selbst das Maximum mit 4 MHz scheint zuverlässig zu funktionieren. Keine Ahnung was da jetzt los war aber jetzt scheint alles zu gehen... Mit allen Kabeln wohlgemerkt...
Also wir haben bei uns im Betrieb mit Tag-connectors und 2MHz gearbeitet, ohne Probleme. Also J-Link, dann ein Adapterprint und ~20cm Kabel und am Schluss etwa 3cm Leiterbahnen (RST, SWDAT und SWCLK). Sind die Pins noch anderweitig verwendet?
Sebastian V. O. schrieb: > Keine Ahnung was da jetzt los war aber > jetzt scheint alles zu gehen... Mit allen Kabeln wohlgemerkt... Wer weiß... Kann ja sein, daß die Frequenz wirklich zu hoch war. Wenn du keine Möglichkeit hast, die Einstellung zu sehen und zu verändern, kann das schon sein. Vielleicht auch irgendein Treiberproblem vom ST-Link. Hauptsache es geht jetzt. Freut mich!
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.

