Wie wählt man einen ARM Cortex M3 Mikrocontroller?


26

Aufgrund meiner hohen Anforderungen im Bereich von 36 bis 72 MHz, mit 16 kb + SRAM, 128 kb + Flash und Programmierbarkeit in C habe ich beschlossen, für meine Anwendung eine ARM Cortex M3-MCU zu verwenden.

Die Frage ist, nach welchen Kriterien die Nutzer die M3-Version auswählen, die sie verwenden möchten. Es gibt viele mögliche Anbieter wie TI, ST, NXP, Freescale usw.

Ein Hauptunterscheidungsmerkmal aus meiner Sicht wäre die einfache Programmierung. Idealerweise teste ich es auf einem Breakout / Development Board, gefolgt von der Implementierung auf meiner eigenen Platine.


11
Dies ist eine nützliche Frage, bitte schließen Sie sie nicht als primär meinungsbasiert .
Dzarda

2
Die Auswahl des Chipherstellers ist nur ein Teil des Problems. Haben Sie darüber nachgedacht, welche Entwicklungs-Toolchain Sie verwenden werden?
kkrambo

5
Ich würde sagen, dass die Bedeutung der Auswahl des uC-Chips in einer solchen Situation stark überbewertet wird. Alle Chips, die die Grundvoraussetzungen erfüllen, reichen aus. Wenn Sie sich an C oder C ++ halten und keine ausgefallenen Peripheriegeräte benötigen, können Sie diese sogar mit geringem Aufwand nachträglich einschalten. Ich würde meine Wahl auf den Umfang der Unterstützung stützen, die Sie von den Websites, Anbietern, (Benutzer-) Gruppen, Listen, Foren usw. erhalten können, auf die Sie einfachen Zugriff haben.
Wouter van Ooijen

5
"Es gibt ein Dutzend Hersteller des gleichen Kerns. Welche Art von Dingen sehen sich die Leute an, um ihnen bei der Auswahl einer zu helfen?" scheint mir eine gute Frage zu sein.
Scott Seidman

5
Es ist die Frage mit der höchsten Punktzahl in der Liste unserer 250 neuesten, mit drei Lieblingslabels. Bei diesen Statistiken könnten wir uns überlegen, warum, wenn dies OT ist. Ich denke, es ist ziemlich klar, dass das Poster "Leichtigkeit des Programmierens" als EIN Kriterium betrachtet, das er derzeit verwendet, und er bittet um mehr. Von vier Antworten gibt nur eine eine eindeutige Empfehlung für einen Controller ab, und die anderen diskutieren alle, nach welchen Kriterien sie eine Auswahl treffen. Ich habe eine kleine Bearbeitung vorgenommen, die die Frage themenbezogener machen sollte, aber vor der Bearbeitung schien mir das ziemlich klar zu sein.
Scott Seidman

Antworten:


19

Ich denke, @markt ist mit Sicherheit am richtigen Ort: Toolchain, Peripheriegeräte, Pakete, Devkits.

Ich werde ein paar hinzufügen und vielleicht ein paar ausziehen. Toolchain ist sicherlich wichtig, kann aber auch KOSTENLOS sein. Manchmal kann es teurer sein, ohne echten Support zu arbeiten, als Sie denken, und die Verwendung eines vernünftigen kommerziellen Pakets kann sich für eine bestimmte Situation durchaus lohnen. Manchmal ist es auch wichtig, eine gründliche Lizenzprüfung zu bestehen, und die Verwendung eines kostenlosen Tools mit einer restriktiven Lizenz kann Sie später beißen.

Eine gute CMSIS-Bibliothek zur Unterstützung des Mikrocontrollers ist für mich ein Muss. CMSIS - Software-Schnittstellenstandard für Cortex-Mikrocontroller - arm.com/products/processors/cortex-m/… - ist eine Hardware-Abstraktionsschicht für Mikrocontroller der Cortex-M-Serie. Wenn eine Bibliothek CMSIS-kompatibel ist, ist sie herstellerunabhängig und es ist einfacher, verschiedene Familien auszutauschen, und Sie müssen eine Umgebung nicht von Grund auf neu lernen, um die Bibliothek nutzen zu können. Einer der attraktiven Aspekte der ARM Cortex-Umgebung ist die Möglichkeit, die Plattform ohne viel Schweiß zu wechseln. Wenn Sie eine Plattform auswählen, die sich nicht in die CMSIS-Struktur einfügt, können Sie sich möglicherweise nicht so bequem fortbewegen.

Für mich sind günstige und praktische Entwicklungsboards ein Muss, aber dies kann genauso wichtig sein wie einige andere Dinge (ich denke, die STM32-Serie hat erstaunliche Entwicklungsboards). Wenn die Familie über sehr praktische und billige Entwickler-Boards verfügt, werden Sie bei Bedarf eher Hilfe von einer größeren Anwenderbasis erhalten. Außerdem sind diese Chips in der Regel in SMT-Gehäusen. Wenn Sie unweigerlich einen Chip oder einen Port auf einem Chip oder einen Port auf einem Chip in die Luft jagen, ist das Ersetzen des Chips eine PITA, die eine SMD-Nacharbeit erfordert. Wenn Sie zwei oder drei Boards zu einem Preis von jeweils 10 bis 15 US-Dollar kaufen und diese ersetzen können, werden Sie nicht einmal daran denken, diese SMD-Überarbeitung durchzuführen!

Denken Sie an "Extras". Möglicherweise benötigen Sie etwas, das über das hinausgeht, was als "Peripheriegerät" bezeichnet wird. Möglicherweise haben Sie hohe Bluetooth-Anforderungen und entscheiden sich für Nordic Semiconductor, um diese Art von Unterstützung zu erhalten. Sie könnten einige andere Dinge in Betracht ziehen, z. B. wie einfach das Booten ist usw.

Dokumentation denken. Ich war ein bisschen weniger beeindruckt, wie schwierig es sein kann, einige der STM-Dokumentationen durchzuarbeiten.


+1 Stimme voll und ganz zu. Letztes Jahr habe ich mit ARM Cortex-M3 / M4 mit STM32 angefangen. Ich hatte fast ein STM32F207-Design fertiggestellt, als wir auf STM32F407 umgestiegen sind, basierend auf Preis / Verfügbarkeit. Es war ein Anlaufpunkt für Hardware, und Softwareänderungen waren trivial. Die Dokumentation und die Komplexität machten das Lernen etwas schmerzhaft, aber das Design ist solide und die Mühe wert. Ich benutze den GCC-Compiler (kostenlos) zum Schreiben von Testcode und die auf die Codegröße beschränkte kostenlose Testversion von Keil zum Schreiben / Testen von Beispieltreibern. Unser Programmierer hat eine Lizenz für den vollständigen Keil-Compiler. Beide scheinen solide zu sein.
Bis zum

1
@NickHalden, "ARM" lizenziert den ARM-Kern an Chiphersteller, die sie verpacken und Peripheriegeräte hinzufügen. CMSIS - Software-Schnittstellenstandard für Cortex-Mikrocontroller - arm.com/products/processors/cortex-m/… - ist eine Hardware-Abstraktionsschicht für Mikrocontroller der Cortex-M-Serie. Wenn eine Bibliothek CMSIS-kompatibel ist, ist sie herstellerunabhängig und es ist einfacher, verschiedene Familien auszutauschen, und Sie müssen eine Umgebung nicht von Grund auf neu lernen, um die Bibliothek nutzen zu können.
Scott Seidman

1
@YoungMoney Suchen Sie sich das günstigste aus, mit dem Sie mindestens die doppelte Menge an Ressourcen erhalten, die Sie Ihrer Meinung nach benötigen.
Markt

1
Entwickeln Sie sich groß, nur um zu verhindern, dass Dinge hängen bleiben. Wenn Sie die benötigten Ressourcen gut im Griff haben, reduzieren Sie diese.
Scott Seidman

1
Kostenlose Toolchains sind in einem professionellen Kontext wichtig, nicht aus Kostengründen, sondern aus Gründen der Zugriffssicherheit. Verwenden Sie eine gesperrte Toolchain, und Ihre Fähigkeit, das Projekt zu warten, wird durch Lizenzen beeinträchtigt, die ablaufen oder für Ihren Reiselaptop nicht verfügbar sind oder Mitarbeiter, Dongles, die verloren gehen können, Lizenzserver, die nach einigen Jahren vom Netz getrennt werden können usw. Die meisten eingebetteten Designs haben eine Lebensdauer, die weit über die für ihre Entwicklung verwendeten Desktop-Hardware- und Betriebssystemversionen hinausgeht und die das Original wiederherstellen kann Werkzeuge in der Zukunft ist wichtig!
Chris Stratton

14
  1. Suchen Sie nach kostenloser Toolchain, RTOS und kostengünstiger JTAG / SWD-Unterstützung.
  2. Überlegen Sie, mit welchen Paketen Sie arbeiten können / wollen - wenn DIP ein Muss ist, schließen Sie Siliziumanbieter aus, die keine DIP-Pakete anbieten.
  3. Schauen Sie sich an, welche Peripheriegeräte angeboten werden und was Sie wahrscheinlich wollen / brauchen.
  4. Suchen Sie nach Schnäppchen - vergleichen Sie Äpfel mit Äpfeln auf einer oder mehreren Websites der großen Elektronikhersteller.

Bedenken Sie bei Ihrem Wunsch nach Entwickler-Boards, was dort erhältlich ist.

Wenn Sie von einer anderen Plattform kommen über sind (PIC, Atmel, etc.) akzeptieren , dass es wird in der Umstellung auf ARM eine faire Lernkurve in vielen Bereichen sein, aber es ist gut und wirklich lohnt.


Ja - kostenlose Toolchains sind wichtiger für die Sicherheit des zukünftigen / alternativen Computers / alternativen Technikerzugriffs auf die Toolchain als für die Kosten. Für Cortex-Teile sind die Toolchains ziemlich universell. Sie können sie daher mit einem einfach zu bearbeitenden SWD-Schnittstellengerät programmieren, das verfügbar oder neu erstellbar ist und von Ihrem aktuellen (und zukünftigen) Betriebssystem aus gesteuert werden kann Wahl.
Chris Stratton

5

Wenn Sie keine ausgeprägte Präferenz haben (z. B. Preis, Größe, Leistung und was andere aufführen), würde ich überlegen, wer Sie unterstützt. Wenn der Hersteller Ihre Fragen nicht beantwortet, liegt möglicherweise ein Problem vor. Oder haben sie einen lokalen Händler mit einem FAE (Field Applciation Engineer), den Sie fragen können? Das ist besonders wichtig für kleine Unternehmen und Hobbisten.

Einige Teile sind möglicherweise nicht in kleinen Mengen verfügbar. Zum Beispiel richten sich diejenigen, die DRAM im selben Paket haben, an große Käufer (> 10.000 Einheiten).


2

Wahrscheinlich passt STM32L151VBT6 zu Ihrer Anforderung. Sogar wir haben es in unserer Firma verwendet, es hat moderate Kosten und ist in Bezug auf den Stromverbrauch gut. Außerdem erhalten Sie die meisten Designressourcen auf http://www.st.com .

Hauptmerkmale der STM32L151VB-MCU sind:

Ultra-Low-Power-Plattform 1,65 V bis 3,6 V Netzteil

-40 ° C bis 85 ° C / 105 ° C Temperaturbereich

0,3 μA Standby-Modus (3 Wakeup-Pins)

0,9 μA Standby-Modus + RTC

0,57 μA Stop-Modus (16 Weckleitungen)

1,2 μA Stoppmodus + RTC

9 μA Low-Power-Run-Modus

214 μA / MHz Run-Modus

10 nA Ultra-Low-I / O-Leckage

<8 μs Aufwachzeit

Kern: ARM®Cortex ™ -M3 32-Bit-CPU

Von 32 kHz bis 32 MHz max

33,3 DMIPS-Peak (Dhrystone 2.1)

Speicherschutzgerät

Reset und Supply Management

Extrem sicheres BOR mit geringem Stromverbrauch (Brownout-Reset) mit 5 wählbaren Schwellenwerten

Ultra-Low-Power-POR / PDR

Programmierbarer Spannungsdetektor (PVD)

Clock-Quellen

1 bis 24 MHz Quarzoszillator

32 kHz Oszillator für RTC mit Kalibrierung

Werkseitig abgeglichener interner 16-MHz-Hochgeschwindigkeits-RC (+/- 1%)

Interner Low Power 37 kHz RC

Interne Multispeed Low Power 65 kHz bis 4,2 MHz

PLL für CPU-Takt und USB (48 MHz)

Vorprogrammierter Bootloader

USART unterstützt

Entwicklungsunterstützung

Serial Wire Debug wird unterstützt

JTAG und Trace unterstützt

Bis zu 83 schnelle E / As (73 E / As, 5 V tolerant), alle auf 16 externe Interrupt-Vektoren abbildbar

Erinnerungen:

Bis zu 128 KB Flash mit ECC

Bis zu 16 KB RAM

Bis zu 4 KB echtes EEPROM mit ECC

80 Byte Sicherungsregister

LCD-Treiber für bis zu 8x40 Segmente

Unterstützung kontrast einstellung

Unterstützung blinkender modus

Hochsetzsteller an Bord

Umfangreiche analoge Peripheriegeräte (bis zu 1,8 V)

12-Bit-ADC 1 Msps bis zu 24 Kanälen

12-Bit-DAC 2-Kanäle mit Ausgangspuffern

2x Ultra-Low-Power-Komparatoren (Fenstermodus und Weckfunktion)

DMA-Controller 7x Kanäle

8x Kommunikationsschnittstelle für Peripheriegeräte

1x USB 2.0 (interner 48 MHz PLL)

3x USART (ISO 7816, IrDA)

2x SPI 16 Mbit / s

2x I2C (SMBus / PMBus)

10x Timer: 6x 16-Bit mit bis zu 4 IC / OC / PWM-Kanälen, 2x 16-Bit-Basis-Timer, 2x Watchdog-Timer (unabhängig und Fenster)

Bis zu 20 kapazitive Sensorkanäle für Touchkey-, lineare und rotative Berührungssensoren CRC-Berechnungseinheit, eindeutige 96-Bit-ID

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.