Ich habe mit dem ATMega etwas entwickelt und möchte meinen Horizont erweitern. Ich habe ein paar Chips der Cortex M4-Serie und möchte ein ARM-Äquivalent zum Breadboarduino machen
Ich habe vor, entweder mein eigenes Board zu ätzen oder ein Breakout-Board für den ARM und den Rest zu verwenden. Eine Referenz oder ein Schema der Mindestkomponenten wäre sehr willkommen.
Gibt es gute Ressourcen zum Bestimmen der mindestens erforderlichen Komponenten zum Betreiben und idealerweise zum Programmieren eines ARM-Chips?
AKTUALISIEREN:
Für alternative Hardwarevorschläge bin ich offen. Unten ist der Chip, mit dem ich gerade versuche zu arbeiten:
Dies hängt wirklich von den Chips ab, die Sie verwenden - Sie haben nicht angegeben, welchen Sie erhalten haben. Normalerweise benötigen Sie mindestens einen Kristall, Entkopplungskappen und eine Reset-Logik. Die Programmierschnittstelle könnte eine einfache JTAG-Schnittstelle sein.
All dies sollte aber im Datenblatt der Chips stehen.
Update (für den STM32F407):
Schauen Sie sich die folgenden Seiten im Datenblatt an
Sie benötigen weder eine Reset-Schaltung (sie ist integriert – siehe Seite 23) noch einen Oszillator (der integrierte 16-MHz-Oszillator wird beim Start ausgewählt, siehe Seite 22). Die Verwendung eines LQFP144-Breakout-Boards (wie das von futurlec (siehe unten auf der Seite) könnte also wirklich ausreichen.
Sie können sich auch den Schaltplan des STM32F4DISCOVERY-Boards ansehen (siehe dessen Benutzerhandbuch , Seite 33). Was Sie dort sehen, ist die Grundschaltung - und sie enthält sogar die externen Kristalle.
Sind Sie sicher, dass Sie dies für einen Cortex-M4 tun möchten? Es ist ein großer Sprung von AVR, und ich sehe nicht, wie Sie alle Funktionen nutzen würden, die es bietet. Zunächst einmal wird ein Cortex-M4 normalerweise in einem großen Gehäuse geliefert, normalerweise mehr als 80 Pins für die Einstiegsteile, und 200+ ist keine Ausnahme, denken Sie an QFP oder BGA. Werden Sie ein Breakout-Board mit zwei Reihen von 40 Pins zum Steckbrett machen?
Der Cortex-M4 ist auch für Hochgeschwindigkeit ausgelegt: typischerweise 120 MHz bis 200+ MHz. OK, Sie müssen Ihre Leiterplatte möglicherweise nicht für diese Geschwindigkeiten entwerfen, wenn Sie eine On-Chip-PLL verwenden. Aber was ist mit den Peripheriegeräten wie USB oder Ethernet?
Natürlich können Sie es mit niedrigeren Geschwindigkeiten ausführen und einen Großteil der On-Chip-Funktionalität weglassen, aber ich frage mich, was der Nutzen eines Cortex-M4 für den Anfang ist. Ich denke, ein Cortex-M3 oder sogar -M0 ist für den Anfang besser geeignet. Ich möchte Sie nicht entmutigen, ich möchte realistisch bleiben.
Wenn Sie mit dem Cortex-M4 weitermachen möchten, können Sie mit minimaler externer Hardware auskommen. Der NXP LPC407x hat zum Beispiel einen internen RC-Oszillator, der beim Zurücksetzen der Standardoszillator ist, sodass Sie nicht einmal einen Quarz benötigen. Eine Reset-Schaltung und eine ordnungsgemäße Entkopplung der Stromversorgung sind alles, was Sie brauchen, um es zum Laufen zu bringen.
Für einen Cortex-M0 kann der NXP LPC111x einen Blick wert sein. Zugegeben, es ist nicht mit viel Speicher ausgestattet, aber es ist in einem DIL-28-Paket erhältlich , was für ARMs eine Seltenheit ist. Alternativ können Sie ein Entwicklungsboard wie das LPCXpresso verwenden .
wobei die rechte Hälfte die Anwendungsplatine ist, die vom LPC-Link getrennt werden kann. Wie Sie sehen, ist für die Anwendung kaum externe Hardware erforderlich. Und wenn Sie einen Satz Header darauf löten, können Sie es auf ein Steckbrett stecken.
Wie Steven sagt, ist es ein ziemlich großer Sprung von einem 8-Bit-Mikro zu ARM, also erwarten Sie einiges an Lern-/Zeitaufwand auf dem Weg.
Ich würde mich auch nicht für den M4 für Ihren ersten ARM entscheiden, einfach weil es noch nicht allzu lange auf dem Markt ist und es weniger Support/Infos dafür gibt. Ich denke, ein M3 oder M0 ist eine bessere Wahl und wird viel sein, um damit zurechtzukommen.
Sie können sicherlich Ihr eigenes Board erstellen, aber es wäre vielleicht besser, sich zuerst ein kleines / billiges Entwicklerboard zu schnappen. In Bezug auf die Entwicklung gibt es viele Optionen, von kostenlos (Eclipse + GCC + OpenOCD) bis teuer (Keil, Rowley usw.). Persönlich verwende ich die Raisonance Ride7 IDE und Tools mit den ARM M3/M4s der STM32-Serie, die etwas billiger sind als Keil/Rowely, aber gut genug.
Schauen Sie sich eines der einfachen Entwicklungsboards von jemandem wie ST, Olimex usw. an. Dieses Entwicklungsboard hat ungefähr den einfachsten Schaltplan , den ich für einen STM32 Cortex-M3 finden konnte.
Der Arduino Due sollte ziemlich bald erscheinen:
Chip ist ein SAM3X8 Cortex-M3 von Atmel. Das Warten könnte sich lohnen, wenn Sie bereits mit Boards im Arduino-Stil und der Dokumentation im Atmel-Stil vertraut sind. Und da es Open Source sein wird, um die Arduino-Anforderungen zu erfüllen, könnten Sie es natürlich mit einem Steckbrett duinoen.
Ich würde Ihnen empfehlen, Mbed zu überprüfen, es ist ein Cortex-m3-Gerät mit ein paar netten Peripheriegeräten, nxp bietet einen Compiler und viele Bibliotheken und Community-Bibliotheken, eine wirklich einfache Möglichkeit, es zu programmieren, und es ist bereits in einem Paket enthalten, das auf einem Steckbrett verwendet werden kann. Ich denke, es wäre der einfachste Weg, von AVR auf ARM umzusteigen.
Viele der ST-Teile können, zumindest wenn sie keinen USB-Transceiver verwenden, mit ihrem internen Hochgeschwindigkeitsoszillator betrieben werden.
Das bedeutet im Grunde, dass Ihre "Schaltung" aus Bypass-Kappen und einigen Widerständen für Dinge wie den Reset und als Terminierung an der SWD-Schnittstelle besteht.
Die Evaluierungsboards von ST für 8-10 US-Dollar programmieren Teile, die Sie über den SWD-Bus auf Ihr eigenes Board stecken. Es gibt auch Open-Source-Tools für sie, sodass Sie die Programmieroperation direkt in Ihr Makefile einfügen können.
Wenn Sie sich für etwas im 48er PQFP entscheiden, wird das Leben bei Ihrem ersten Boardversuch wahrscheinlich einfacher. Sie können diese ohne Vergrößerung zusammenbauen (halten Sie einfach ein feines Geflecht bereit, um die oder zwei Brücken zu befestigen, die Sie wahrscheinlich pro Seite erstellen werden), aber es wäre hilfreich, eine Lupe zur Verfügung zu haben, um Ihre Arbeit zu überprüfen.
stevenvh
stevenvh
ZnArK
Wouter van Ooijen
stevenvh