09. Arduino für die Produktion!! Keine Verbindung zum Ziel möglich! Wie man die Verbindung wiederherstellt.
Teilen
Wir haben einen Testschaltkreis zusammengebaut, um die ordnungsgemäße Funktion unserer ARM-Entwicklungsboards zu testen. Während des Tests stießen wir auf ein Problem, das uns die Gelegenheit gibt zu zeigen, wie wir das Problem gelöst haben.
Die Schaltung funktioniert, indem sie für jeden Pin einzeln eine LED ein- und ausschaltet, sodass wir feststellen können, ob ein Pin funktioniert oder nicht. Dies lässt uns wissen, ob es Brücken zwischen Pins auf dem Mikrocontroller gibt oder ob es kalte Lötstellen gibt.
Die Schaltung funktioniert wie erwartet, aber das Problem ist, dass die eigentlichen Programmierpins (SWDIO und SWCLK) ebenfalls auf die LEDs ausgegeben werden, obwohl sie keine LEDs haben. Die Funktionalität dieser Pins kann man immer durch Programmieren des Chips sicherstellen. Wie bekommt man also diese beiden Pins aus dieser Funktion heraus, damit man den Chip wieder neu programmieren kann?
Da diese Pins als digitale Ausgabe und nicht als SWDIO und SWCLK zum Programmieren programmiert wurden, gibt es für das STM32 ST-Link-Dienstprogramm keine Möglichkeit, sich tatsächlich mit dem Chip zu verbinden, um mit ihm zu kommunizieren. Das Einzige, was man erhalten kann, ist Spannung an der Schaltung, aber keine Kommunikation kann stattfinden.
Wenn Sie versuchen, sich mit dem Mikrocontroller zu verbinden, erhalten Sie die Fehlermeldung „Cannot connect to target“ (Ziel kann nicht verbunden werden), und die Empfehlungen in der Fehlermeldung sind im Allgemeinen nicht sehr hilfreich.
Zuerst müssen wir den Reset-Pin finden. Auf diesem Entwicklungsboard befindet sich der Reset-Pin an Pin 7. Wir lokalisieren also Pin 7 und stecken ein Ende eines 500-Ohm-Widerstands auf den Pin und ziehen ihn auf Masse, um den Chip in den Reset-Modus zu versetzen.
Als Nächstes gehen wir zum ST-Link-Dienstprogramm und wählen „Full chip erase“ (Dynamit-Taste). Beachten Sie, dass es nichts tun wird, aber es wird hängen bleiben. Jetzt entfernen wir den Widerstand und sehen, dass der vollständige Chip-Erase erfolgreich verläuft.
Wenn wir jetzt auf „Connect to Target“ klicken, wird die Verbindung perfekt hergestellt und wir können es wieder programmieren, und es wird erfolgreich programmiert.
[[TUTORIALMENU(tutorial-arm" frameborder="0" allowfullscreen>