Πίνακας περιεχομένων:

Το απίστευτο STM32 L4 !: 12 βήματα
Το απίστευτο STM32 L4 !: 12 βήματα

Βίντεο: Το απίστευτο STM32 L4 !: 12 βήματα

Βίντεο: Το απίστευτο STM32 L4 !: 12 βήματα
Βίντεο: Лейла Акароглу: Бумага побеждает пластик? Как переосмыслить экологический фольклор 2024, Ιούλιος
Anonim
Image
Image
STM32F746G ΑΝΑΚΑΛΥΗ
STM32F746G ΑΝΑΚΑΛΥΗ

Θέλω να ξεκινήσω αυτό το άρθρο εξηγώντας ότι αυτό το γράμμα L (του L4) σημαίνει Χαμηλή (ή, βασικά, Ultra Low Power). Έτσι, ξοδεύει λίγη ενέργεια και δείχνει γιατί αυτό το STM32 είναι απίστευτο! Ξοδεύει μικροαμπέρ και διαθέτει ένα σύστημα μέσα που μπορεί να προσδιορίσει τα έξοδα κάθε τμήματος τσιπ. Αυτό επιτρέπει μια πολύ αποτελεσματική διαχείριση της ενέργειας και με υψηλές επιδόσεις.

Μίλησα ήδη για αυτόν τον μικροελεγκτή στο βίντεο, "Ο ευκολότερος τρόπος προγραμματισμού ενός μικροελεγκτή!" Στο βίντεο, έδειξα πώς να προγραμματίσετε το STM32 L4 με MBED. Αλλά ενώ ερευνούσα περισσότερο γι 'αυτό, ανακάλυψα κάτι που ο κατασκευαστής STMicroelectronics δεν αποκαλύπτει. Υλοποίησε το Core Arduino στο τσιπ, το οποίο επιτρέπει τον προγραμματισμό μέσω του Arduino IDE.

Σε αυτήν την εικόνα, έχουμε δύο εκδόσεις του L4. Το STM32L432KC είναι πανομοιότυπο με το Arduino Nano και το STM32L476RG, τα οποία έχουν ισοδύναμα IO με το Arduino Uno. Έτσι, ενώ δουλεύω με δύο εκδόσεις αυτού του ισχυρού μικροελεγκτή, θα σας δείξω πώς να εγκαταστήσετε το Arduino Core στην οικογένεια STM32. Επίσης, θα εξηγήσω τα κύρια χαρακτηριστικά των κιτ STM32.

Βήμα 1: Πιάτα με πυρήνα Arduino

Έβαλα εδώ μια λίστα με την ποικιλομορφία. Ωστόσο, θα συνεργαστούμε με το STM32L432KC και το STM32L476RG.

STM32F0

  • Nucleo F030R8
  • Nucleo F091RC
  • 32F0308DISCOVERY

STM32F1

  • BluePill F103C8 (Βασική υποστήριξη, χωρίς USB)
  • MapleMini F103CB (Βασική υποστήριξη, χωρίς USB)
  • Nucleo F103RB
  • STM32VLDISCOVERY

STM32F2

Nucleo F207ZG

STM32F3

  • Nucleo F302R8
  • Nucleo F303K8
  • Nucleo F303RE

STM32F4

  • Nucleo F401RE
  • Nucleo F411RE
  • Nucleo F429ZI
  • Nucleo F446RE
  • STM32F407G-DISC1

STM32F7

STM32F746G-DISCOVERY

STM32L0

  • Nucleo L031K6
  • Nucleo L053R8
  • B-L072Z-LRWAN1

STM32L1

Nucleo L152RE

STM32L4

  • Nucleo L432KC
  • Nucleo L476RG
  • NUCLEO-L496ZG-P
  • NUCLEO-L496ZG-P
  • B-L475E-IOT01A

Βήμα 2: ΑΝΑΚΑΛΥΗ STM32F746G

Απλώς για να επεξηγήσω, παρουσιάζω τις λεπτομέρειες ενός STM32F746G DISCOVERY, το οποίο θεωρώ θηρίο. Έχω ήδη παραγγείλει αυτό το τσιπ και ελπίζω να το συζητήσω σύντομα.

Χαρακτηριστικά:

Μικροελεγκτής STM32F746NGH6 με 1 Mbytes μνήμης Flash και 340 Kbytes RAM σε πακέτο BGA216

  • Ενσωματωμένο ST-LINK / V2-1 που υποστηρίζει δυνατότητες επανα απαρίθμησης USB
  • Mbed-enabled (mbed.org)
  • Λειτουργίες USB: εικονική θύρα COM, μαζική αποθήκευση και θύρα εντοπισμού σφαλμάτων
  • Έγχρωμη LCD-TFT 4,3 ιντσών 480x272 με χωρητική οθόνη αφής
  • Υποδοχή κάμερας
  • Κωδικοποιητής ήχου SAI
  • Υποδοχή γραμμής εισόδου και εξόδου γραμμής ήχου
  • Στερεοφωνικές έξοδοι ηχείων
  • Δύο μικρόφωνα ST MEMS
  • Υποδοχή εισόδου SPDIF RCA
  • Δύο κουμπιά (χρήστη και επαναφορά)
  • 128-Mbit Quad-SPI Μνήμη flash
  • 128-Mbit SDRAM (προσβάσιμο στα 64 Mbits)
  • Υποδοχή για κάρτα microSD
  • Υποδοχή κοπέλας RF-EEPROM
  • USB OTG HS με υποδοχές Micro-AB
  • USB OTG FS με υποδοχές Micro-AB
  • Υποδοχή Ethernet συμβατό με IEEE-802.3-2002
  • Πέντε επιλογές τροφοδοσίας:

- ST LINK / V2-1

- Υποδοχή USB FS

- Υποδοχή USB HS

- VIN από το σύνδεσμο Arduino

- Εξωτερικά 5 V από το βύσμα

Τροφοδοσία εξόδου εξωτερικές εφαρμογές:

- 3,3 V ή 5 V

Υποδοχές Arduino Uno V3

Βήμα 3: Arduino Due X STM NUCLEO-L476RG

Arduino Due X STM NUCLEO-L476RG
Arduino Due X STM NUCLEO-L476RG

Εδώ είναι μια σύγκριση με το Arduino Due, το οποίο είναι ένα ARM Cortex-M3. Έχω χρησιμοποιήσει αυτό το μοντέλο σε βίντεο: Nema 23 Stepper Motor with Driver TB6600 with Arduino Due, and SpeedTest: Arduinos - ESP32 / 8266s - STM32, with STM NUCLEO -L476RG, which is a ARM Cortex -M4 Ultra Low Power, and is in η εικόνα στη δεξιά πλευρά.

Arduino Due:

Μικροελεγκτής: AT91SAM3X8E

Τάση λειτουργίας: 3.3V

Τάση εισόδου (συνιστάται): 7-12V

Τάση εισόδου (όρια): 6-16V

Digitalηφιακές ακίδες εισόδου / εξόδου: 54 (εκ των οποίων οι 12 παρέχουν έξοδο PWM)

Αναλογικές ακίδες εισόδου: 12

Αναλογικές ακίδες εξόδου: 2 (DAC)

Συνολικό ρεύμα εξόδου DC σε όλες τις γραμμές εισόδου / εξόδου: 130 mA

Ρεύμα DC για ακίδα 3.3V: 800 mA

Ρεύμα DC για ακίδα 5V: 800 mA

Μνήμη Flash: 512 KB όλα διαθέσιμα για τις εφαρμογές χρήστη

SRAM: 96 KB (δύο τράπεζες: 64KB και 32KB)

Ταχύτητα ρολογιού: 84 MHz

Μήκος: 101,52 mm

Πλάτος: 53,3 mm

Βάρος: 36 g

STM NUCLEO-L476RG:

STM32L476RGT6 σε πακέτο LQFP64

CPU ARM®32-bit Cortex®-M4

Προσαρμοζόμενος επιταχυντής σε πραγματικό χρόνο

(ART Accelerator) που επιτρέπει την εκτέλεση κατάστασης αναμονής 0 από τη μνήμη Flash

Μέγιστη συχνότητα CPU 80 MHz

VDD από 1,71 V έως 3,6 V

Φλας 1 MB

SRAM 128 KB

SPI (3)

I2C (3)

USART (3)

UART (2)

LPUART (1)

GPIO (51) με δυνατότητα εξωτερικής διακοπής

Χωρητική ανίχνευση με 12 κανάλια

12-bit ADC (3) με 16 κανάλια

12-bit DAC με 2 κανάλια

FPU ή μονάδα πλωτού σημείου

* Επισημαίνω εδώ αυτά τα διαφορετικά FPU του STM NUCLEO-L476RG, πράγμα που σημαίνει ότι το τσιπ κάνει τριγωνομετρικούς υπολογισμούς με εκπληκτική ταχύτητα. Αυτό είναι σε αντίθεση με το Arduino Due, το οποίο χρειάζεται έναν γενετικό επεξεργαστή για να το κάνει αυτό.

Βήμα 4: Dhrystone

Dhrystone
Dhrystone
Dhrystone
Dhrystone

Το Dhrystone είναι ένα συνθετικό πρόγραμμα αναφοράς υπολογιστών που αναπτύχθηκε το 1984 από τον Reinhold P. Weicker, το οποίο προορίζεται να είναι αντιπροσωπευτικό του (ακέραιου) προγραμματισμού συστήματος. Ο Dhrystone έγινε εκπρόσωπος της συνολικής απόδοσης του επεξεργαστή (CPU). Το όνομα "Dhrystone" είναι λογοπαίγνιο σε διαφορετικό αλγόριθμο αναφοράς που ονομάζεται Whetstone. Αυτό είναι ένα μέτρο που λαμβάνεται από ορισμένες γενικές πράξεις.

Αυτό το πρόγραμμα είναι εδώ για να συγκεντρώσει κάτι μέσα σε αυτούς τους μικροελεγκτές στο Arduino. Και το αποτέλεσμα δύο δοκιμών που έκανα, ένα με Dhrystone και ένα άλλο από το βίντεο SpeedTest, είναι το εξής:

Λήξη Arduino: 37,00 $

Σημείο αναφοράς Dhrystone, έκδοση 2.1 (Γλώσσα: C)

Η εκτέλεση ξεκινά, 300.000 περνάει μέσω του Dhrystone

Η εκτέλεση τελειώνει

Μικροδευτερόλεπτα για μία διαδρομή μέσω Dhrystone: 10.70

Dhrystones ανά δευτερόλεπτο: 93, 431,43

Βαθμολογία VAX MIPS = 53,18 DMIPS

Δοκιμή εκτέλεσης Fernandok

Συνολικός χρόνος: 2, 458 ms

  • Δεν διαθέτει FPU
  • Λογισμικό Dhrystone στο Arduino

www.saanlima.com/download/dhry21a.zip

STM NUCLEO-L476RG: 23,00 δολάρια ΗΠΑ

Σημείο αναφοράς Dhrystone, έκδοση 2.1 (Γλώσσα: C)

Ξεκινά η εκτέλεση, 300.000 τρέχει μέσω Dhrystone

Η εκτέλεση τελειώνει

Μικροδευτερόλεπτα για μία διαδρομή μέσω Dhrystone: 9,63

Dhrystones ανά δευτερόλεπτο: 103, 794,59

Βαθμολογία VAX MIPS = 59,07 DMIPS

Δοκιμή εκτέλεσης Fernandok

Συνολικός χρόνος: 869 ms 2,8x Γρηγορότερα

  • PI έως 40Mbit / s, USART 10Mbit / s
  • 2x DMA (14 κανάλια)
  • Έως 80 MHz / 100 DMIPS με επιταχυντή ART

Βήμα 5: STM32L432KC X Arduino Nano

STM32L432KC X Arduino Nano
STM32L432KC X Arduino Nano

Ο αριστερός πίνακας είναι ο STM32L432KC, στον οποίο η STMicroelectronics τοποθέτησε το ίδιο pinout Arduino Nano στην εικόνα στα δεξιά.

Βήμα 6: STM32L432KC

STM32L432KC
STM32L432KC

Εξαιρετικά χαμηλής ισχύος Arm® Cortex®-M4 32-bit

MCU + FPU, 100DMIPS, Flash έως 256KB, 64KB SRAM, USB FS, αναλογικό, ήχος

Έως και 26 IO πιο γρήγορα, πιο ανεκτικά στα 5V

  • RTC με ημερολόγιο HW, συναγερμούς και βαθμονόμηση
  • Έως 3 κανάλια χωρητικής ανίχνευσης
  • Χρονοδιακόπτες 11x: Προηγμένος έλεγχος κινητήρα 1x16-bit

1x 32-bit και 2x 16-bit γενικής χρήσης, 2x 16-bit βασικά, 2x χρονοδιακόπτες 16-bit χαμηλής ισχύος (διαθέσιμος στη λειτουργία διακοπής), 2x φύλακες, χρονόμετρο SysTick

Μνήμη:

- Έως 256 KB Flash, ιδιόκτητη προστασία ανάγνωσης κώδικα

- 64 KB SRAM συμπεριλαμβανομένων 16 KB με έλεγχο ισοτιμίας υλικού

- Τετραπλή διασύνδεση μνήμης SPI

Πλούσια αναλογικά περιφερειακά (ανεξάρτητη παροχή)

- 1x 12-bit ADC 5 Msps, έως 16 bits με υπερμετρήσεις υλικού, 200 μA / Msps

- 2 κανάλια εξόδου DAC 12 bit, χαμηλή κατανάλωση ενέργειας

- 1x λειτουργικός ενισχυτής με ενσωματωμένο PGA

- 2 φορές σε σύγκριση με τις διεπαφές εξαιρετικά χαμηλής ισχύος

- 1x UPS (σειριακή διασύνδεση ήχου)

- 2x I2C FM + (1 Mbit / s), SMBus / PMBus

- 3x USART (ISO 7816, LIN, IrDA, μόντεμ)

- 1x LPUART (Διακοπή 2 ξυπνήστε)

- 2x SPI (και 1x SPI Quad)

CAN (2.0B ενεργό)

- Κύριο πρωτόκολλο ενσύρματου SWPMI I / F

- IRTIM (υπέρυθρη διεπαφή)

  • Ελεγκτής DMA 14 καναλιών
  • Γεννήτρια τυχαίων αριθμών

Βήμα 7: Εγκαταστήστε το Core Arduino για κάρτες STM32L4

Εγκαταστήστε το Core Arduino για κάρτες STM32L4
Εγκαταστήστε το Core Arduino για κάρτες STM32L4
  1. Εγκαταστήστε το πρόγραμμα ST-Link που καταγράφει
  2. Διεύθυνση Json
  3. Πίνακες: Card Manager
  4. Βιβλιοθήκες: Διαχειριστής βιβλιοθηκών

Βήμα 8: Εγκαταστήστε το ST -Link - Πρόγραμμα που καταγράφει

Εγκατάσταση ST -Link - Πρόγραμμα που καταγράφει
Εγκατάσταση ST -Link - Πρόγραμμα που καταγράφει

Κατεβάστε το αρχείο στη διεύθυνση https://www.st.com/en/development-tools/stsw-link0…. Απλώς εγγραφείτε, κατεβάστε και εγκαταστήστε τη συσκευή.

Βήμα 9: Διεύθυνση Json

Διεύθυνση Json
Διεύθυνση Json

Στα ακίνητα, συμπεριλάβετε την ακόλουθη διεύθυνση:

github.com/stm32duino/BoardManagerFiles/ra…

Βήμα 10: Πίνακες: Διευθυντής Διοικητικού Συμβουλίου

Διοικητικά Συμβούλια: Διευθυντής Διοικητικού Συμβουλίου
Διοικητικά Συμβούλια: Διευθυντής Διοικητικού Συμβουλίου

Στο Arduino Board Manager, εγκαταστήστε τον πυρήνα STM32, ο οποίος είναι περίπου 40MB.

Βήμα 11: Βιβλιοθήκες: Διαχειριστής βιβλιοθηκών

Βιβλιοθήκες: Διαχειριστής βιβλιοθηκών
Βιβλιοθήκες: Διαχειριστής βιβλιοθηκών

Τέλος, εγκαταστήστε τις βιβλιοθήκες.

Προσωπικά μου άρεσε η ομάδα STM32duino.com, η οποία έχει αρκετά παραδείγματα, μερικά από τα οποία εγκατέστησα. Κατέβασα επίσης ένα FreeRTOS, το οποίο μου άρεσε πολύ. Το βρήκα γρήγορο και αξιόπιστο. Εγκατέστησα επίσης (αλλά δεν έχω δοκιμάσει ακόμα) LRWAN. Θα σας πω σύντομα αν είναι καλό ή όχι.

Βήμα 12: Λήψη PDF

PDF

Συνιστάται: