2x Platine STM32-Pro => „Programmer” (unbestückt)
Artikelnummer: 22940
Beschreibung
2x Platine STM32-Pro => „Programmer” (unbestückt)
(2 Platinen pro Kaufeinheit wie auf den ersten zwei Fotos zu sehen, alle anderen Gegenstände dienen nur der Präsentation und gehören nicht zum Lieferumfang)
Alle Bilder im Großformat incl. Schaltplan sind in unserer Bildergalerie
(wie gewohnt - FR4-Industriequalität)
Artikel-Nr: 22940-...
Modellnummer: STM32-Pro_V1.0_Unbestückt-...
Artikelzustand: NEU (geliefert als einzelne Platinen)
Design: Jasinski (Modell aus unseren Entwürfen und nach unseren Qualitätsansprüchen angefertigt)
Platinenabmessungen (Länge x Breite x Dicke): ca. 81,2 x 73,5mm (±1mm) x 1,6mm
Platinenmaterial: Epoxyd FR4-Industriequalität - 1,6mm Dicke - durchkontaktiert
Kupferdicke: 35µm (Standard)
Oberflächenbehandlung (wahlweise, sofern verfügbar):
- HAL bleifrei (RoHS-konform, gute Lagerfähigkeit)
- ENIG - chemisch Gold (sehr plane Pads, gute Lagerfähigkeit, RoHS-konform)
Farbe der Lötstoppmaske: momentan verfügbare Farben werden angezeigt und können gewählt werden
Für Schnittstelle: STM32-SWD (wie man sie z.B. auf Nucleo-Boards vorfindet)
Bohrungsdurchmesser: ca. 0.9mm für die Buchsen-/Stiftleiste und 1.1mm für die Klemme in den Anschlusslaschen (die Bohrungen sind für Standard Stift- und Buchsenleisten geeignet und ausreichend groß dimensioniert)
Durchmesser der Befestigungsbohrungen: 3.4mm für M3 (mit 6.5mm armierter Kupferfläche für den Schraubkopf)
Positionsdruck: weiß
Die Platine ist dafür gedacht, sich einen verbesserten, robusten STM32-Programmer zu bauen – primär als „ST-Link 2V1”, den man auf Nucleoboards findet, was letztendlich auf den µController als Firmware aufgespielt wird, muss dann aber jeder selbst abwägen und entscheiden. Ich möchte kurz die Geschichte dazu skizzieren, wie es überhaupt zu dem Entwurf kam, denn es waren die Designfehler der Ingenieure, die mich dazu bewogen und gebracht haben, die Schaltung des ST-Links der Nucleoboards zu verbessern und so abzuändern, dass sie robust gegen mögliche Verdrahtungsfehler, die beim Prototypen so passieren können, wird. Bereits nach einigen Wochen instensiver Arbeit mit dem F411RE-Nucleoboard, gab es unbekannte Störungen bei Verbindungen mit der STM32Cube-IDE, die – wie sich später herausgestellt hatte – durch die Mini-USB-Buchse verursacht wurden und nach ein paar Monaten hat sie dann ganz versagt (irreversible Unterbrechung) und musste durch einen vollständigen Bypass aus Leitungen umgangen werden. Da ich auch die 3.3V-Spannungsversorgung für meine Targets zur Verfügung haben wollte, wurde diese direkt an der entsprechenden Stelle auf Nucleoboard angezapft – wie sich allerdings später herausstellte, kommt das auf vielen Nucleoboards verwendetete Spannungsreglerkonzept damit nur unzureichend klar, bei einer über 130µF angeschlossenen Kapazität an der Spannungsversorgung erkannte Nucleo es fälschlicherweise als Überlast und beantwortete das mit einer unendlichen Orgie des permantentes Ein- und Ausschaltens. Es musste also eine separater, guter 3.3V-Spannungsregler (LDL1117) auf einer Lochrasterplatine verwendet werden, um sich von dieser Problematik unabhängig zu machen – gleichzeitig wurden auch alle Programmierleitungen mit 220Ω-Schutzwiderständen ausgestattet, vor allem die der UART-Schnittstelle, da hier eine Verwechlungsgefahr relativ hoch ist. Auf dem Nucleoboard gibt es nur 22Ω-Widerstände (vermutlich als Terminierung gedacht) und die µController (ST-Link und Target) sind einfach so direkt miteinander verbunden (Rx auf Tx und umgekehrt) – hier kann man schon durch einen Programmierfehler einen Pin kaputtmachen, wenn die UART-Verbindung des ST-Links bereits aktiviert wurde und 5V auf Tx ausgibt (sie ist nach dem Einschalten nicht aktiv bis das erste Zeichen übertragen). Nach all den Änderungen war ich dann neugierig, ob man das alles komplett auf einer Leiterplatte aufgebaut und mit der entsprechenden Firmware geflasht zum Laufen bringen könnte – wie sich nach lange Recherche im Netz herausgestellt hat, war das Selbstflaschen in der Vergangenheit mit einer älteren STM32-Utility-Version und dem entsprechendem Bootloader problemlos möglich, also man konnte sich den ST-Link selbst neuzuflaschen, später hat man die Möglichkeit dann aus der Utilityanwendung entfernt. Wer unter diesen Stichworten im Netz sucht, wird an diese Information gelangen – bei Problemen diesbezüglich kann man mich aber auch kontaktieren, um mehr Info zu erhalten.
Zusammenfassend wurden im Vergleich zu der Nucleoschaltung folgende Dinge verbessert bzw. abgeändert:
- Verwendung einer robusten USB-Buchse vom Typ-B (die Mini-USB ist wohl die schlechteste Wahl für die Nucleos gewesen)
- explizite, getrennte, optional zuschaltbare 3.3V-Spannungsversorgung für Targets
- Verwendung von Schutzwiderständen an allen Datenleitungen, incl. USART – versehentliche Kurzschlüsse und Pinkonflikte sind das gefahrlos, auch die einwärts fließenden Injektionsströme bei fehlender Stromversorgung entweder beim Target oder dem ST-Link sind dann unter 5mA und somit harmlos (die zusätzlichen Parallelwiderstände kann man sich bei der Bestückung sparen, wenn eh immer 220Ω verwendet wird)
- die Möglichkeit einer doppelten Kontaktführung der Kontakte der Verbindungsbuchsen, um Wackelkontakte und Übergangswiderstände zu minimieren
- die Möglichkeit einer vollständigen Korrektur der Falschmessungen der Targetspannung durch den ADC des ST32F103CB im ST-Link (der Fehler liegt oft bei 30-50mV – der ST-Link zeigt z.B. 3,23V statt 3,27V)
- das Vorliegen von Spannungen wird gut sichtbar durch Leuchtdioden signalisiert, was beim Prototypen sehr hilfreich und wichtig ist
- die Reihenfolge der Programmierpins orientiert sich an der Reihenfolge im Nucleo – diese findet man auch immer auf unseren STM32-Platinen, was das Anschließen dieser vereinheitlicht und sehr leicht macht (das schließt den Programmieranschluss des F103 auch mit ein – die Schnittstelle ist außerdem gut zugänglich)
- viele zusätzliche Lötanschlüsse, u.a. für Masse, Spannungsversorgung, auf der Platine, was beim Prototypen immer hilfreich ist
- an wichtigsten Stellen Z-Dioden, die als Schutzdioden gegen Überspannungen oder generell auch als ESD-Schutz fungieren
- RESET und SWO sind auch explizit herausgeführt und funktionstüchtig – Reset braucht man, um Zugang auf die Programmierschnittstelle des Targets zu erhalten, wenn man bei dem die SWDIO und SWCLK Pins als normale IOs nutzt; SWO ist für Ausgabe von Informationen beim Debuggen gedacht (ich persönlich nutze für solche Vorgänge aber mittlerweile hauptsächlich die UART-Schnittstelle)
- Master-Clock-Output (MCO) mit dem 8MHz-Takt ist verfügbar und zugänglich
- vollständige, gute Beschriftung aller Lötpunkte bzw. Anschlüsse auf der Leiterplatte