Hey liebe Foren-Mitglieder, ich hoffe die Wall of Text schreckt euch nicht ab :-(. Dieses Forum hier hat mich inspiriert, mich dem Thema Mikroelektronik zu widmen und an der Entwicklung eines eigenen PCBs zu versuchen. Es handelt sich um das PCB in den Anhängen. 45x40mm groß, bestückt mit 2 CR2032 Knopfzellen für die Stromversorgung des STM32L051C8T6TR an Bord. Aufgabe des Boards ist den analogen Magnetsensor auszulesen, falls kein Magnetfeld erkannt ist, dann den Beschleunigungssensor für ca. eine Sekunde zu beobachten und bei Erfüllung gewisser Bedingungen mittels des Buzzers und PWM zu piepsen. Zwischen zwei dieser Durchläufe liegen Standby-Mode-Zeiten von rund 15 Sekunden, sodass die Batterien einige Jahre halten dürften. Die 5 bestellten PCBs sind von JLCPCB gefertigt und assembled worden, inkl. flying-probe-test, sodass diese in Ordnung sein sollten. Mein Problem: Der µC wird nicht von meinem China-Clon ST-Link-v2 (Amazon 5er-Set von AZDelivery - aktualisiert via ST-Link-Upgrade auf Firmware V2J37S7) erkannt - stattdessen bietet mir STM32CubeIDE den error log: STMicroelectronics ST-LINK GDB server. Version 5.8.0 Copyright (c) 2020, STMicroelectronics. All rights reserved. Starting server with the following options: Persistent Mode : Disabled Logging Level : 1 Listen Port Number : 61234 Status Refresh Delay : 15s Verbose Mode : Disabled SWD Debug : Enabled Target no device found Error in initializing ST-LINK device. Reason: No device found on target. Das Kompilieren davor läuft ohne Probleme. Bevor ich die Community kontaktiere, habe ich natürlich schon eigene Recherchen unternommen: - Ich habe mehrere der ST-Links getestet - Ich habe diverse Einstellungen im STMCubeProgrammer versucht, um einen Full Chip Erase zu veranlassen - erfolglos - z.B. das Reset behaviour geändert, die SWD-Geschwindigkeit reduziert, etc. Konkrete Fragen an die Community: - Meine Verkabelung zwischen PCB und STLink ist ca. 18cm lang - ist das vlt. zu lang? - Der µC gehört ja zur L0-Serie - gibt es möglicherweise einen Low Power Mode, der SWD deaktiviert? Falls ja, wie kann dieser deaktiviert werden? - DRC und Design Guideline Checks in EasyEDA hat das PCB bestanden - gibt es vielleicht dennoch einen Konstruktionsfehler, der euch bei einer schnellen Durchsicht auffällt? - Im Internet habe ich z.B. einen "Boot0 auf HIGH ziehen"-Trick gefunden - wie ist dafür die richtige Reihenfolge, und welche Einstellungen braucht es dafür im STMProgrammer? Ich danke euch schon jetzt für die Zeit, die Ihr in diesen Beitrag investiert - ich komme wirklich nicht weiter... Herzlichen Dank und viele Grüße Robin Ulrich
Was soll der 10K Widerstand an SWDIO, das könnte eine potentielle Problemstelle sein. Ansonsten war es äußerst unglücklich den Piezo direkt mit einem µC Pin anzusteuern. PS: ein externer Pullup mit Filterkondensator am NRST ist auch kein Luxus.
:
Bearbeitet durch User
Kevin M. schrieb: > Was soll der 10K Widerstand an SWDIO 10K geht sicher nicht, das reicht für null Datenrate. Ja, was soll der Widerstand dort?
Autsch - diese Erkenntnis tut ordentlich weh! :-( In anderen Designs hatte ich da einen 22 Ohm Schutz-Widerstand gesehen - da ist mir in der Schematik wohl ein krasser Fehler unterlaufen... So schnell setzt man 45€ in den Sand, oder fällt euch bei so nem kleinen Board spontan ein Weg ein, um ihn rauszuoperieren oder zu überbrücken?
Sofern du einen Lötkolben hast ist das keine Minute Arbeit. Wenn du keinen hast kauf dir einen den wirst du noch öfter brauchen. Robin U. schrieb: > In anderen Designs hatte ich da einen 22 Ohm Schutz-Widerstand gesehen Wo ist dann der Sinn an SWDIO einen zu machen und an die anderen nicht? Und wie gesagt bete mal das dein Piezo deinen Controller nicht grillt.
:
Bearbeitet durch User
Robin U. schrieb: > So schnell setzt man 45€ in den Sand, oder fällt euch bei so nem kleinen > Board spontan ein Weg ein, um ihn rauszuoperieren oder zu überbrücken? Häh? Wo soll da das Problem sein? R5 liegt doch förmlich auf dem Präsentierteller. Da ein kleines Stück Draht drüberlöten schafft man fast mit verbundenen Augen.
Im übrigen bringen anständige Schutzdioden gegen ESD mehr als 22 Ohm und um gegen permanente Überspannung zu schützen ist das eh zu wenig und auch nicht wirklich sinnvoll.
Kevin M. schrieb: > Wo ist dann der Sinn an SWDIO einen zu machen und an die anderen nicht? Vermutlich ist SWDIO ein Open-Drain-Treiber auf beiden Seiten. Wenn man das nicht weiss und "Angst" hat dass es da einen Buskonflikt gibt würde man da einen "Angstwiderstand" vorsehen. Ansonsten sind die 22 Ohm vielleicht ganz gut gegen eventuelles Leitungsklingeln.
@arduinolover Den Tipp zu einem Filterkondensator an NRST habe ich erst nach dem bestellen gelesen - das leuchtet mir ein :-). Bezüglich des externen Pull-ups allerdings: https://datasheet.lcsc.com/lcsc/2106040205_STMicroelectronics-STM32L051C8T6TR_C2802165.pdf Bezüglich des Datenblattes (S. 83 - Kapitel 6.3.14) gibt es einen internen Pull-up? In welcher Größe würdest du dann den zusätzlichen externen Widerstand wählen? Oder braucht es diesen nicht unbedingt? Und wie würdest du den Piezo ansteuern? Auch da ist mir definitiv aus Leichtfertigkeit heraus ein Fehler unterlaufen. Laut Datenblatt des Piezos (https://datasheet.lcsc.com/lcsc/1912112237_FUET-FMB12A03-3V_C417388.pdf - Seite 2) liegt die maximale Stromaufnahme bei 30mA, während der STM32 hingegen siehe S. 49 des Datenblattes unter "Output current sunk by any I/O and control pin except FTf pins" nur 16mA verträgt. Besteht hier für ein künftiges Design die Möglichkeit drei Pins mittels PWM zusammenzuziehen, um die Leistungsaufnahme des Piezos zu ermöglichen? Oder gibt es dann Probleme die drei PWM-Signale simultan laufen zu lassen? Danke für jede fachliche Einschätzung, wirklich!
beo bachta schrieb: > Vermutlich ist SWDIO ein Open-Drain-Treiber auf beiden Seiten. > Wenn man das nicht weiss und "Angst" hat dass es da einen > Buskonflikt gibt würde man da einen "Angstwiderstand" vorsehen. > Ansonsten sind die 22 Ohm vielleicht ganz gut gegen eventuelles > Leitungsklingeln. Warum den Vermutungen posten? SWD ist Input/Push/Pull, das Umschalten erfolgt definiert, laengere Contention wird man nur schwer zusammenbekommen. Und an NRST an STM32 empfiehlt STM nur einen 100 n Kondensator nach Masse, keinen PullUp. Den Kondensator sehe ich im Design nicht!
Den Überbrückungsdraht werde ich später mal versuchen - mir geht es lediglich um die räumliche Nähe zum µC, nicht dass ich da etwas "locker löte". Einen Lötkolben habe ich jedenfalls. Woher der 22 Ohm Widerstand kommt, weiß ich nicht. Der Summe an Beiträgen entnehme ich jedenfalls, dass es diesen nicht braucht, richtig? @arduinolover Sind denn stattdessen Schutzdioden standardmäßig Teil deiner Designs?
Uwe Bonnes schrieb: > Und an NRST an STM32 empfiehlt STM nur einen 100 n Kondensator nach > Masse, keinen PullUp. Den Kondensator sehe ich im Design nicht! Stimmt, Figure 27 auf S. 84 unter https://datasheet.lcsc.com/lcsc/2106040205_STMicroelectronics-STM32L051C8T6TR_C2802165.pdf zeigt es - das habe ich auch gekonnt überlesen :-(.
Hallo, R5 ablöten und durch einen 0 OHM Widerstand ersetzen. Oder Pins mit Lötzinn überbrücken. Dann müsste es gehen. Ciao
Ich vermute die 22Ohm kommen von hier: https://usermanual.wiki/Document/usermanualdiscoveryf4.487732588/html Ich hab auf meiner Custom PCB 22Ohm Widerstände gelegt, weil ein Pinheader als Übergabepunkt zum ST-LINKV2 genutzt wird und somit die Pins etwas geschützt sind. Aufpassen musste ich nur auf die BOOT Pins, danach konnte ich ohne Probleme meine PCB Debuggen und flashen.
Robin U. schrieb: > Bezüglich des Datenblattes (S. 83 - Kapitel 6.3.14) gibt es einen > internen Pull-up? In welcher Größe würdest du dann den zusätzlichen > externen Widerstand wählen? Oder braucht es diesen nicht unbedingt? Den Konsnesator sollte man machen, der Pullup ist nicht zwingend allerdings ist der im STM recht hochohmig. Ich hatte schonmal Probleme mit einer etwas längeren NRST Leitung daher mache ich immer noch 10K dabei. Das kostet kaum Platz und noch weniger Geld und ist robust, mag sein das es Menschen gibt die das anders sehen ich habe gerne zuverlässige Hardware. Robin U. schrieb: > Und wie würdest du den Piezo ansteuern? Ich würde mal sagen das einfachste wäre ein N-Kanal Mosfet. Da kommt jetzt gleich noch jemand und will dir einen Bipolartransistor andrehen, ein FET ist imho aber an der Stelle die sinnvollere Wahl, weil man sich keine Gedanken um Basiswiderstände und dergleichen machen muss und die Anssteuerung nicht permanent Strom braucht (und ja ich weiß es ist nicht viel Strom den der Bipolartransistor braucht). Ein Pulldown von 10k am Gate des FETs ist dennoch sinnvoll, wenn du kein undefiniertes Verhalten haben möchtest wenn der µC im Reset ist.
Danke für die Einschätzung :-). Sind denn die im Originalpost beschriebenen ca. 18cm Kabellänge der SWD-Breadboard-Kabel grundsätzlich schon eher als lang anzusehen? Kevin M. schrieb: > und die Anssteuerung nicht permanent Strom braucht Die Ansteuerung an sich braucht zwar keinen Strom, aber gibt es bei einem Mosfet nicht Kriechströme? Der MOSFET mit diesem Datenblatt (https://datasheet.lcsc.com/lcsc/1810151612_Changjiang-Electronics-Tech-CJ-2N7002_C8545.pdf) hier ist bei JLCPCB ein Basic Part, gibt jedoch für eine Versorgungsspannung von 60V als "Zero Gate Voltage Drain Current" den Wert 80nA an. Für meine Versorgungsspannung ist das Modell aber nicht ausgelegt - die Gate-Threshold Voltage (also die Spannung ab der das Gate die Verbindung zwischen Source und Drain schließt) liegt bei min. 1 und max. 2,5V. Die hat meine CR2032 ab der Mitte der Kapazität jedoch nicht mehr. Und dieser (auch ein Basic Part) MOSFET hat zwar eine Gate-Threshold-Voltage von min. 0,65V und max. 1,45V, aber dann gleich wieder eine Zero Gate Voltage Drain Current von 1µA, bei 55°C Temp. sogar 5µA. [EDIT: Datenblatt-Link vergessen] https://datasheet.lcsc.com/szlcsc/Alpha-Omega-Semicon-AOS-AO3400A_C20917.pdf Daher explizit nochmal die Frage: Sieht jemand die Möglichkeit, mehrere PWMs zusammenzulegen und damit den Piezo anzusteuern? Insgesamt verträgt der µC ja rund 100mA Leistungsaufnahme, und große andere Verbraucher gibt es ja schließlich nicht. Die beiden Sensoren liegen zusammen im einstelligen mA-Bereich.
:
Bearbeitet durch User
Robin U. schrieb: > Die Ansteuerung an sich braucht zwar keinen Strom, aber gibt es bei > einem Mosfet nicht Kriechströme? die gibt es bei jedem Bauteil, denkst du der STM hat keine? Du brauchst halt ein logic Level FET und musst etwas auf die Kriechströme achten. Ggf. muss man halt über die standard Parts von JLC hinaus gehen, so ist das eben wenn man was spezielles braucht. Robin U. schrieb: > Daher explizit nochmal die Frage: > Sieht jemand die Möglichkeit, mehrere PWMs zusammenzulegen und damit den > Piezo anzusteuern? Insgesamt verträgt der µC ja rund 100mA > Leistungsaufnahme, und große andere Verbraucher gibt es ja schließlich > nicht. Die beiden Sensoren liegen zusammen im einstelligen mA-Bereich. Was würde das bringen? Die Pulsbelastung der Pins bleibt doch die gleiche, der Piezo ist keine Indultivität. Du kannst mehrere Pins in open drain schalten und parallel hängen, aber auch da ist die Stromaufteilung glückssache.
Robin U. schrieb: > Sind denn die im Originalpost beschriebenen ca. 18cm Kabellänge der > SWD-Breadboard-Kabel grundsätzlich schon eher als lang anzusehen? Ja, denn die Kommunikation findet mit mehreren MHz statt. Ich nutze 20cm Dupont Kabel. Mit 40cm hatte ich mal Probleme.
Ich hatte den Thread in der Zwischenzeit vergessen, wollte aber für eventuell unglücklich suchende noch das Problem und die Lösung hinterlassen: Die Kommunikation mittels der 20cm Jumper-Kabel war nicht das Problem - tatsächlich war der ST-Link China-Klon von AZ-Delivery das Problem. Ich hatte von einem weiteren Projekt ein STM32-Nucleo-Board rumliegen, habe die beiden Jumper an der Stelle ST-Link/CN2 entfernt und dann mein Custom-PCB mit der Lotbrücke über den falsch gesetzten Widerstand direkt an CN4 angeschlossen. Wer billig kauft, scheint es wohl nie zu lernen... Mit dem ST-Link auf dem Nucleo läuft's aber problemlos :-) Danke nochmal für die hilfreichen Infos in diesem Thread. Habe die neue Version ohne den sinnlos-Widerstand, mit NRST-Kondensator und MOSFET für den Buzzer geplant - bestellen fällt dank Chip-Krise allerdings erstmal flach... PS: Bis jetzt läuft der Buzzer auch direkt auf dem GPIO-Pin ohne Probleme und ohne den STM32 zu zerlegen. Reine Buzzer-Zeit waren schon gute 5 Minuten, natürlich Intervall-weise :-).
Robin U. schrieb: > tatsächlich war der ST-Link China-Klon von AZ-Delivery das Problem Traurig. Die Produkte sollten wenigstens funktionieren.
Robin U. schrieb: > Die Kommunikation mittels der 20cm Jumper-Kabel war nicht das Problem - > tatsächlich war der ST-Link China-Klon von AZ-Delivery das Problem. Ich Vielleicht das: Beitrag "STLink-Klone nächste Generation Verschlimmbesserung"
A. B. schrieb: > Vielleicht das: > Beitrag "STLink-Klone nächste Generation Verschlimmbesserung" Danke für den Hinweis - das schaue ich mir nochmal an, bevor ich Sie unter lautem Fluchen im Wertstoffhof in die Tonne werfe...
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.