Hallo zusammen, diese Frage wurde das eine oder andere mal angesprochen, aber meiner Meinung nach nicht wirklich beantwortet. Ich möchte ein kleines Board designen, basierend auf einem SAMD21. Zur ersten Durchführung verschiedener Tests haben ich mir folgendes Board bestellt: https://wiki.protoneer.co.nz/NANO-ARM Nun zu meinem persönlichen Feind - Bootloader. Zuvor habe ich immer mit 8bitter gearbeitet, sodass das mein erstes Cortex Projekt ist. Nun zu meiner konkreten Frage, wie bekomm ich am elegantesten den Bootloader auf das uC? Ich habe leider nur sehr wenig Platz weswegen ich SWD bevorzugen würde. Dazu habe ich folgende Anleitung gefunden: https://learn.adafruit.com/proper-step-debugging-atsamd21-arduino-zero-m0/lets-go Sehe ich es richtig, dass es die Beste Lösung wäre, einen Atmel ICE JTAG Programmer zu nutzen und dann folgende Ports auf dem PCB zugänglich machen, und diese mit dem Programmer in Kombination mit Atmel Studio zu flashen? Vref / Vtarget - Logic voltage of the chip, in this case 3.3V GND to common ground SWDIO to SWDIO SWCLK to SWCLK Vielen Dank im Voraus
Daniel K. schrieb: > Ich habe leider nur sehr wenig Platz weswegen ich SWD > bevorzugen würde. ARM hat eine Standardschnittstelle vorgeschlagen, die aus einem 10poligen mini Steckverbinder besteht: Cortex Debug Connector (Seite2): http://infocenter.arm.com/help/topic/com.arm.doc.faqs/attached/13634/cortex_debug_connectors.pdf Adapter für 10polig auf 20polig gibt es hier: https://www.olimex.com/Products/ARM/JTAG/ARM-JTAG-20-10/ Damit hannst Du an jeder Standard JTAG Schnittstelle andocken. BTW: Reset mit aufzulegen hat sich imemr gelohnt :) Und: es ist nicht zwingend nötig den 10poligen zu verwenden, prinzipiell reicht irgendein 6poliger den due dann von hand umsetzt. ABER: Die Standardlösung ist halt am elegantesten zu bedienen (e.g. Segger jlink lite, ...). rgds
Daniel K. schrieb: > Sehe ich es richtig, dass es die Beste Lösung wäre, einen Atmel ICE JTAG > Programmer zu nutzen und dann folgende Ports auf dem PCB zugänglich > machen, und diese mit dem Programmer in Kombination mit Atmel Studio zu > flashen? Ja, SWD ist mit Sicherheit der sinnvollste Weg den Controller zu bespielen. Einen Bootloader benötigt man nicht zwingend. Bei der Art des Steckers bzw. dem Pin-Layout bin ich voll bei 6a66.
Ich weiss nicht, ob die Warnung auch auf SWD mit dem D21 zutrifft, für den D20 gibt es aber auf dem Blackmagic Debug Probe Gitter Kanal eine Bericht, der für den SAMD20 nicht ermutigend ist: https://gitter.im/blacksphere/blackmagic I've tried the BMP with the SAMD20 (pretty much the same chip sans USB and DMA) and the experience was terrible. ATSAMD needs a lot of special treatment e.g. if you lock it up due missing or messing up one of the many mandatory busy wait loops and I'm not convinced BMP will have the required work arounds built-in. A year ago I needed a heavily patched OpenOCD and lots of custom commands to work around the quirks. YMMV may wary of course.
:
Bearbeitet durch User
Uwe B. schrieb: > Ich weiss nicht, ob die Warnung auch auf SWD mit dem D21 zutrifft, für > den D20 gibt es aber auf dem Blackmagic Debug Probe Gitter Kanal eine > Bericht, der für den SAMD20 nicht ermutigend ist: > https://gitter.im/blacksphere/blackmagic Dann nimm etwas, was ordentlich unterstützt wird. Je näher Du an den Empfehlungen bleibst desto wahrscheinlicher ist es, dass es klappt. Beim Segger hätte ich da keine Bedenken. Und der Jlink EDU kostet weniger als die BlackmagicProbe. Alles was nicht mainstream ist kostet entweder Geld oder Zeit, rgds
Vielen Dank für eure Beiträge 6a66 schrieb: > Alles was nicht mainstream ist kostet entweder Geld oder Zeit, Also Zeit nehmen solche Projekte immer in Anspruch, und ich weiß natürlich nicht wie es euch geht, aber wenn man sich hinsetzt und solch ein Projekt plant und durchführt dann sollte immer die bestmögliche Lösung erziehlt werden. Und wenn das bedeutet dass man etwas mehr Zeit bei der Planung braucht, dann ist das so... Aber eure Beiträge machen mich definitiv nachdenklich ob man nicht doch auf einen 8bit AVR setzen sollte, wie z.B. ein AT32U4 - der hätte den Bootloader direkt an Board. Und verfügt ebenfalls über eine USB und eine UART Schnittstelle, was für mich besonders wichtig wäre.
Der SAMD21 besitzt einen ROM Bootloader, der aktiv ist, wenn noch kein gültiges Image auf dem Flash ist, oder wenn er anderweitig (z.B. per GPIO @ Startup) aktiviert worden ist. Damit kannst du auch ohne SWD deinen eigenen Bootloader aufspielen. http://ww1.microchip.com/downloads/en/AppNotes/Atmel-42366-SAM-BA-Bootloader-for-SAM-D21_ApplicationNote_AT07175.pdf Allerdings ist JTAG/SWD zum Debuggen immer sehr nützlich. Wenn Platz sollte man das also vorziehen. Die Probleme beim Debuggen und special Treatment kann ich nicht nachvollziehen. Das einzige Problem war bisher, dass im Auslieferungszustand Watchdog allways on enabled it, dass in die laufende Debug-Session hereinfuschen kann. Im Debug-Fall einfach als erstes die Konfigurationsregister (User Area) den Watchdog ausschalten + Power Cycle. Und dann ist der harmlos wie ein Kätzchen. Sogar die Wiederaufnahme einer unterbrochenen Verbindung geht hier (SAMD21J18 + IAR + Segger J Link) ohne Probleme durch Pausieren + Fortfahren.
Maxx schrieb: > Der SAMD21 besitzt einen ROM Bootloader Nein hat er nicht. Ich benutze einen Atmel ICE das geht super.
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.