Forum: Mikrocontroller und Digitale Elektronik Beschaltung Reset SAMD21


von Ing-Dom (Firma: OpenKNX) (sirsydom)



Lesenswert?

Hallo,

ich habe eine Schaltung mit einem SAMD21G18A-A µC.
Bei der Beschaltung des Reset Pins hab ich mich leider von sehr 
spartansichen Vorbildern lenken lassen und habe mich voll auf den 
internen Pull-Up verlassen und direkt einen Taster drangehängt der den 
Pin auf GND zieht.
Zum SWD-Interface hab ich die Leitung auch gezogen.

Die Strafe folgte sofort: der µC schaltet ein Relais, und sobald 
nennenswert Last geschaltet wird, resettet der µC nicht bei jedem aber 
bei einigen Schaltvorgängen. Ich verstehe schon warum, aber ich hab das 
völlig unterschätzt (ja das war dämlich).

Das Datenblatt der MCU 
(https://ww1.microchip.com/downloads/en/DeviceDoc/SAM-D21DA1-Family-Data-Sheet-DS40001882G.pdf) 
gibt ja durchaus Hinweise wie die Resetschaltung aufgebaut werden kann. 
Siehe Anhang.

Ich würde mich nun danach richten.
Was muss ich sonst noch ggf. beachten? Sollte die Schaltung möglichst 
nahe an den Pin oder möglichst nahe an den Taster/SWD-Header? Ich denke 
mal an den Pin, oder?

von Bauform B. (bauformb)


Lesenswert?

Dom S. schrieb:
> Sollte die Schaltung möglichst nahe an den Pin oder möglichst nahe
> an den Taster/SWD-Header? Ich denke mal an den Pin, oder?

Der kleine Kondensator muss so nahe wie möglich an den RESET-Pin, die 
Widerstände könnten eigentlich irgendwo hin, aber die Reset-Leitung soll 
ja insgesamt so kurz wie möglich sein. Die Kondensatoren an VDDCORE und 
VDDIN sind mindestens genauso kritisch und liegen direkt daneben, leider 
gerade verkehrt rum. Der andere Pin des Reset-Kondensators muss ja so 
kurz wie möglich an VDD. In diese Ecke vom Layout passen maximal 0603 
Kondensatoren und ich würde deshalb die Pins PA27 und PA28 auf GND legen 
(evt. offen lassen).

Die SWDIO- und SWCLK-Pins liegen ganz in der Nähe, also kann der 
Debug-Stecker so platziert werden, dass die Reset-Leitung auch hier 
möglichst kurz wird. Da der 330 Ohm dazwischen ist, ist das harmlos. Die 
SWD-Leitungen sollten auch kurz sein, aber in diesem Fall...

Aber USB auf dem gleichen Stecker? Macht man das so? Wird das 
funktionieren? USB ist doch auch ziemlich anspruchsvoll? Und du brauchst 
ein ziemlich chaotisches Adapterkabel, vor allem mit nur einem GND-Pin. 
Also ich würde das nicht mögen, der genormte SWD-Stecker ist doch 
wirklich schön klein.

Bleibt der Taster als Haupt-Störenfried. Das Reset-Signal auf dem 
Debug-Stecker braucht man wirklich, vielleicht kann man den Taster 
sparen? Auf meiner Platine würde ich den Taster per Hardware entprellen 
und so auch vom Reset entkoppeln. Aber ich habe auch Platz für soviel 
Bauteile...

> Was muss ich sonst noch ggf. beachten?

* Die 4 Abblock-Cs sollten 100n haben, nicht 1u, und natürlich direkt 
neben die Pins.
* Den 1k-Pull-Up an SWCLK nicht vergessen. SWCLK spielt auch mit Reset, 
dazu gibt es ein ganzes eigenes Kapitel.
* Die LED muss eine gelbe sein, nicht nur wegen der 3.3V. Einerseits ist 
es gut, wenn sie leuchtet, andererseits blinkt sie gelegentlich wegen 
Hard Fault oder so ;)

von Ing-Dom (Firma: OpenKNX) (sirsydom)



Lesenswert?

SWD und USB auf einem Stecker - ja, ungewöhnlich.
Beides sind aber nur Schnittstellen zur "Wartung" bzw Inbetriebnahme.
USB für die, die keinen Progger haben.
Ich versuche maximal Platz zu sparen, auch wenn bei diesem konkreten 
Gerät vielleicht noch was drauf geht, es sollen noch weitere ähnliche 
Geräte folgen, die nach dem selben Prinzip aufgebaut sind.

Und da ist 7x1 1,27 Pinheader und eine kleine Adapterplatine einfach 
sehr kompakt.

Den Reset-Taster könnte man sparen. Im Betrieb wird er nicht gebraucht. 
Und auf der Adapterplatine habe ich ebenfalls einen vorgesehen...
Der Taster ist aber uch direkt neben dem Headerpin, viel Strecke macht 
der nicht.

Das Foto ist die verhunzte V00.02, das Rendering der Arbeitsstand V00.03

Danke für den Hinweis mit 100n statt 1uF. Ist mehr nicht immer besser? 
:D
Pullup bei SWCLK hatte ich ebenfalls nicht auf dem Schirm. Das 
funktioniert bisher aber auch ohne, was natürlich nicht heißt dass es 
richtig ist.

Ich gebe zu, ich habe für diese Grundschaltung weniger das Datanblatt 
studiert als viel mehr ein fertiges Board mit dem SAMD21 kopiert 
(https://cdn-learn.adafruit.com/assets/assets/000/054/505/original/adafruit_products_schem.png?1527457190).

von Bauform B. (bauformb)


Lesenswert?

Dom S. schrieb:
> Den Reset-Taster könnte man sparen. Im Betrieb wird er nicht gebraucht.
> Und auf der Adapterplatine habe ich ebenfalls einen vorgesehen...

Das ist doch ideal, gerade wenn es klein werden soll. Jetzt sage ich 
auch nichts mehr gegen den gemischten Stecker, mit so einer schicken 
Adapterplatine.

> Pullup bei SWCLK hatte ich ebenfalls nicht auf dem Schirm. Das
> funktioniert bisher aber auch ohne, was natürlich nicht heißt dass es
> richtig ist.

Naja, zumindest dem Autor des Datenblatt scheint der Pullup sehr wichtig 
zu sein.

> Ich gebe zu, ich habe für diese Grundschaltung weniger das Datanblatt
> studiert als viel mehr ein fertiges Board mit dem SAMD21 kopiert
> 
(https://cdn-learn.adafruit.com/assets/assets/000/054/505/original/adafruit_products_schem.png?1527457190).

Nichts gegen ein gutes Vorbild, so klar sind Datenblätter ja auch nicht 
formuliert. Aber hier? Adafruit so: das Schaltbild war der erste Versuch 
unseres neuen Praktikanten, nicht übel, oder? Das wird für die 
Produktion schon noch ein wenig überarbeitet :)

von Ing-Dom (Firma: OpenKNX) (sirsydom)



Lesenswert?

Bauform B. schrieb:
> Das ist doch ideal, gerade wenn es klein werden soll. Jetzt sage ich
> auch nichts mehr gegen den gemischten Stecker, mit so einer schicken
> Adapterplatine.
ja, ich denke ich lasse den Taster weg. Bestückt hab ich ihn eh nicht...
ich sehe keinen Use-Case mehr (die Adapterplatine habe ich erst später 
eingeführt, vorher hatte ich 2 Pinheader für usb und swd)

Bauform B. schrieb:
>> Pullup bei SWCLK hatte ich ebenfalls nicht auf dem Schirm. Das
>> funktioniert bisher aber auch ohne, was natürlich nicht heißt dass es
>> richtig ist.
>
> Naja, zumindest dem Autor des Datenblatt scheint der Pullup sehr wichtig
> zu sein.
Ja, der kommt rein. Sollte kein Problem sein. die 3v3 liegen da auch 
grad günstig..

Wegen 100nF und 1µF und generell Abblock-Cs. Siehe Angang aus dem DB.


VDDCore ist ein 1µF, und wie ich sehe hängt der gar nicht an 3V3 sondern 
nur am Pin. Das muss ich auch noch mal ran...

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
Noch kein Account? Hier anmelden.