Basierend auf meinen groben Anforderungen, im Bereich von 36 bis 72 MHz zu sein, über 16 kb+ SRAM, 128 kb+ Flash zu verfügen und in C programmierbar zu sein, habe ich mich entschieden, dass ich für meine Anwendung eine ARM Cortex M3 MCU verwenden möchte.
Die Frage ist, nach welchen Kriterien wird die M3-Version ausgewählt? Es gibt viele mögliche Anbieter wie TI, ST, NXP, Freescale usw. usw.
Ein Hauptunterscheidungsmerkmal aus meiner Sicht wäre die einfache Programmierung. Idealerweise teste ich es auf einem Breakout-/Entwicklungsboard, gefolgt von der Implementierung in meiner eigenen Leiterplatte.
Ich denke, @markt ist auf jeden Fall am richtigen Ort: Toolchain, Peripherie, Pakete, Devkits.
Ich werde ein paar hinzufügen und vielleicht ein paar entfernen. Toolchain ist sicherlich wichtig, aber KOSTENLOS kann es sein oder auch nicht. Manchmal kann das Arbeiten ohne echte Unterstützung teurer sein, als Sie denken, und die Verwendung eines vernünftigen kommerziellen Pakets kann sich in einer bestimmten Situation durchaus lohnen. Manchmal ist es auch wichtig, eine gründliche Lizenzprüfung bestehen zu können, 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 – Cortex Microcontroller Software Interface Standard – 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 theoretisch herstellerunabhängig, und es ist einfacher, verschiedene Familien auszutauschen, und Sie müssen eine Umgebung nicht von Grund auf neu erlernen, um die Bibliothek verwenden zu können. Einer der attraktiven Aspekte der ARM-Cortex-Umgebung ist die Möglichkeit, Plattformen ohne viel Schweiß zu wechseln. Wenn Sie sich für eine Plattform entscheiden, die sich nicht in die CMSIS-Struktur einkauft, können Sie sich möglicherweise nicht so bequem bewegen.
Für mich sind billige und praktische Entwicklungsboards ein Muss, aber dies kann oder muss nicht so wichtig sein wie einige andere Dinge (ich denke, die STM32-Serie hat erstaunliche Entwicklungsboards). Wenn die Familie über sehr praktische und billige Entwicklungsboards verfügt, ist es wahrscheinlicher, dass Sie Hilfe von einer größeren Benutzerbasis finden, wenn Sie sie benötigen. Außerdem befinden sich diese Chips in der Regel in SMT-Gehäusen. Wenn Sie unweigerlich einen Chip oder einen Port auf einem Chip oder ein Bit auf einem Port auf einem Chip sprengen, ist das Ersetzen des Chips eine PITA, die eine SMD-Nacharbeit erfordert. Wenn Sie zwei oder drei Platinen für jeweils 10 bis 15 US-Dollar kaufen und sie ersetzen können, wenn Sie sie kaputt machen, werden Sie nicht einmal daran denken, diese SMD-Nachbearbeitung durchzuführen!
Denken Sie an „Extras“. Möglicherweise benötigen Sie etwas, das über das hinausgeht, was als "Peripheriegerät" gilt. Vielleicht haben Sie zum Beispiel große Bluetooth-Anforderungen und entscheiden sich vielleicht 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.
Denken Sie an Dokumentation. Ich war etwas weniger als beeindruckt davon, wie schwer es sein kann, sich durch einige der STM-Dokumentationen zu wühlen.
Angesichts Ihres Wunsches nach Entwicklungsboards sollten Sie überlegen, was dort verfügbar ist.
Wenn Sie von einer anderen Plattform (PIC, Atmel usw.) herüberkommen, akzeptieren Sie, dass es beim Wechsel zu ARM in vielen Bereichen eine faire Lernkurve geben wird , aber es lohnt sich wirklich.
Wenn Sie keine starke Präferenz haben (z. B. Preis, Größe, Leistung und was andere aufgeführt haben), würde ich überlegen, wer Sie unterstützt. Wenn der Hersteller Ihre Fragen nicht beantwortet, könnte dies ein Problem sein. Oder haben sie einen lokalen Händler mit einem FAE (Field Application Engineer), den Sie fragen können? Das ist besonders wichtig für kleine Betriebe und Bastler.
Einige Teile sind möglicherweise nicht in kleinen Mengen verfügbar. Beispielsweise richten sich diejenigen, die DRAM im selben Paket haben, an große Käufer (> 10.000 Einheiten).
Wahrscheinlich entspricht STM32L151VBT6 Ihren Anforderungen. Selbst wir haben es in unserem Unternehmen verwendet, es hat moderate Kosten und ist gut in Bezug auf den Stromverbrauch. 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
Temperaturbereich -40 °C bis 85 °C/105 °C
0,3 μA Standby-Modus (3 Wakeup-Pins)
0,9 μA Standby-Modus + RTC
0,57 μA Stoppmodus (16 Wecklinien)
1,2 μA Stoppmodus + RTC
9 μA Low-Power-Run-Modus
214 μA/MHz Run-Modus
10 nA extrem niedriger E/A-Leckstrom
< 8 μs Aufwachzeit
Kern: ARM®Cortex™-M3 32-Bit-CPU
Von 32 kHz bis 32 MHz max
33,3 DMIPS-Spitze (Dhrystone 2.1)
Speicherschutzeinheit
Reset- und Versorgungsmanagement
Ultrasicheres, stromsparendes BOR (Brownout-Reset) mit 5 wählbaren Schwellenwerten
Ultra-Low-Power-POR/PDR
Programmierbarer Spannungsdetektor (PVD)
Taktquellen
1 bis 24 MHz Quarzoszillator
32-kHz-Oszillator für RTC mit Kalibrierung
High Speed Interner 16 MHz werkseitig getrimmter RC (+/- 1 %)
Interner Low-Power-37-kHz-RC
Internes 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
Debug für serielle Kabel unterstützt
JTAG und Trace werden unterstützt
Bis zu 83 schnelle I/Os (73 I/Os 5V tolerant), alle abbildbar auf 16 externe Interrupt-Vektoren
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 der Kontrasteinstellung
Blinkmodus unterstützen
Aufwärtswandler an Bord
Umfangreiche analoge Peripherie (bis zu 1,8 V)
12-Bit-ADC 1 Msps bis zu 24 Kanäle
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 (interne 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 Erfassungskanäle, die Berührungstasten, lineare und rotierende Berührungssensoren unterstützen CRC-Berechnungseinheit, eindeutige 96-Bit-ID
Dzarda
krambo
Wouter van Ooijen
Benutzer20088
Benutzer20088
trosley
Rev
Scott Seidmann
Scott Seidmann
Nick Alexejew
Scott Seidmann