İçindekiler:

İnanılmaz STM32 L4!: 12 Adım
İnanılmaz STM32 L4!: 12 Adım

Video: İnanılmaz STM32 L4!: 12 Adım

Video: İnanılmaz STM32 L4!: 12 Adım
Video: The Internet of Things by James Whittaker of Microsoft 2024, Temmuz
Anonim
Image
Image
STM32F746G KEŞFİ
STM32F746G KEŞFİ

Bu makaleye, bu L harfinin (L4'ün) Düşük (veya temel olarak Ultra Düşük Güç) anlamına geldiğini açıklayarak başlamak istiyorum. Böylece çok az enerji harcar ve bu STM32'nin neden inanılmaz olduğunu gösterir! Mikroamper harcar ve içinde her çip parçasının maliyetini belirleyebilen bir sisteme sahiptir. Bu, çok verimli bir enerji yönetimine ve yüksek performansa izin verir.

Videoda bu mikrodenetleyiciden bahsetmiştim, “Mikrodenetleyici programlamanın en kolay yolu!” Videoda STM32 L4'ün MBED ile nasıl programlandığını gösterdim. Ancak bu konuda daha fazla araştırma yaparken, STMicroelectronics üreticisinin açıklamadığı bir şey keşfettim. Arduino IDE üzerinden programlamayı sağlayan çipte Core Arduino'yu uyguladı.

Bu resimde, L4'ün iki versiyonuna sahibiz. STM32L432KC, Arduino Uno'ya eşdeğer IO'lara sahip Arduino Nano ve STM32L476RG ile aynıdır. Bu yüzden, bu güçlü mikrodenetleyicinin iki versiyonu ile çalışırken, size Arduino Core'u STM32 ailesinde nasıl kuracağınızı göstereceğim. Ayrıca STM32 Kitlerinin temel özelliklerini de anlatacağım.

Adım 1: Çekirdek Arduino ile Plakalar

Buraya çeşitlilik hakkında bir liste koydum. Ancak STM32L432KC ve STM32L476RG ile çalışacağız.

STM32F0

  • çekirdek F030R8
  • çekirdek F091RC
  • 32F0308KEŞİF

STM32F1

  • BluePill F103C8 (Temel destek, USB yok)
  • MapleMini F103CB (Temel destek, USB yok)
  • çekirdek F103RB
  • STM32VLKEŞİF

STM32F2

çekirdek F207ZG

STM32F3

  • çekirdek F302R8
  • Nükleer F303K8
  • Nükleer F303RE

STM32F4

  • çekirdek F401RE
  • çekirdek F411RE
  • çekirdek F429ZI
  • çekirdek F446RE
  • STM32F407G-DISC1

STM32F7

STM32F746G-KEŞFİ

STM32L0

  • Çekirdek L031K6
  • Çekirdek L053R8
  • B-L072Z-LRWAN1

STM32L1

çekirdek L152RE

STM32L4

  • çekirdek L432KC
  • çekirdek L476RG
  • NÜKLEO-L496ZG-P
  • NÜKLEO-L496ZG-P
  • B-L475E-IOT01A

2. Adım: STM32F746G KEŞFİ

Sadece örneklemek için, canavar olduğunu düşündüğüm bir STM32F746G KEŞİF'in ayrıntılarını gösteriyorum. Bu çipi zaten sipariş ettim ve yakında bunun hakkında konuşmayı umuyorum.

Özellikler:

BGA216 paketinde 1 Mbyte Flash belleğe ve 340 Kbyte RAM'e sahip STM32F746NGH6 mikrodenetleyici

  • USB yeniden numaralandırma özelliklerini destekleyen yerleşik ST-LINK / V2-1
  • Mbed özellikli (mbed.org)
  • USB işlevleri: sanal COM bağlantı noktası, yığın depolama ve hata ayıklama bağlantı noktası
  • Kapasitif dokunmatik ekranlı 4,3 inç 480x272 renkli LCD-TFT
  • Kamera konektörü
  • SAI ses codec'i
  • Ses giriş ve çıkış jakı
  • Stereo hoparlör çıkışları
  • İki adet ST MEMS mikrofon
  • SPDIF RCA giriş konektörü
  • İki buton (kullanıcı ve sıfırlama)
  • 128 Mbit Dörtlü SPI Flash bellek
  • 128 Mbit SDRAM (64 Mbit erişilebilir)
  • microSD kart için konektör
  • RF-EEPROM ek kart konektörü
  • Micro-AB konektörlü USB OTG HS
  • Mikro-AB konektörlü USB OTG FS
  • IEEE-802.3-2002 ile uyumlu Ethernet konektörü
  • Beş güç kaynağı seçeneği:

- ST BAĞLANTISI / V2-1

- USB FS konektörü

- USB HS konektörü

- Arduino konektöründen VIN

- Konektörden harici 5 V

Güç kaynağı çıkışı harici uygulamalar:

- 3,3 V veya 5 V

Arduino Uno V3 konektörleri

Adım 3: Arduino Due X STM NUCLEO-L476RG

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

İşte bir ARM Cortex-M3 olan Arduino Due ile bir karşılaştırma. Bu modeli videolarda kullanmıştım: Nema 23 Step Motor with Driver TB6600 ile Arduino Due ve SpeedTest: Arduinos - ESP32 / 8266s - STM32, ARM Cortex-M4 Ultra Low Power olan STM NUCLEO-L476RG ile sağ taraftaki resim.

Arduino Ödeneği:

Mikrodenetleyici: AT91SAM3X8E

Çalışma Gerilimi: 3.3V

Giriş Voltajı (önerilen): 7-12V

Giriş Voltajı (sınırlar): 6-16V

Dijital I/O Pinleri: 54 (12 tanesi PWM çıkışı sağlar)

Analog Giriş Pinleri: 12

Analog Çıkış Pinleri: 2 (DAC)

Tüm G/Ç hatlarında Toplam DC Çıkış Akımı: 130 mA

3.3V Pin için DC Akımı: 800 mA

5V Pin için DC Akımı: 800 mA

Flash Bellek: 512 KB tümü kullanıcı uygulamaları için kullanılabilir

SRAM: 96 KB (iki banka: 64KB ve 32KB)

Saat Hızı: 84 MHz

Uzunluk: 101,52 mm

Genişlik: 53,3 mm

Ağırlık: 36 gr

STM NÜKLEO-L476RG:

LQFP64 paketinde STM32L476RGT6

ARM®32-bit Cortex®-M4 CPU

Uyarlanabilir gerçek zamanlı hızlandırıcı

(ART Accelerator ™) Flash bellekten 0-bekleme durumu yürütülmesine izin verir

80 MHz maksimum CPU frekansı

1,71 V ila 3,6 V arası VDD

1 MB Flaş

128 KB SRAM

SPI (3)

I2C (3)

USART (3)

UART (2)

LPUART (1)

Harici kesme özelliğine sahip GPIO (51)

12 kanallı kapasitif algılama

16 kanallı 12 bit ADC (3)

2 kanallı 12 bit DAC

FPU veya Kayan Nokta Birimi

* Burada STM NUCLEO-L476RG'nin bu ayrı FPU'sunu vurguluyorum, yani çip inanılmaz bir hızla trigonometrik hesaplamalar yapıyor. Bu, bunu yapmak için genetik bir işlemciye ihtiyaç duyan Arduino Due'dan farklıdır.

Adım 4: Kurutaş

kuru taş
kuru taş
kuru taş
kuru taş

Dhrystone, 1984 yılında Reinhold P. Weicker tarafından geliştirilen ve (tamsayılı) sistem programlamayı temsil etmesi amaçlanan sentetik bir bilgisayar kıyaslama programıdır. Dhrystone, genel işlemci performansının (CPU) temsilcisi oldu. "Dhrystone" adı, Whetstone adlı farklı bir kıyaslama algoritmasında bir kelime oyunudur. Bu, bazı genel işlemlerden alınan bir önlemdir.

Bu program, Arduino'daki bu mikrodenetleyicilerin içinde bir şeyler derlemek için burada. Ve biri Dhrystone ile diğeri SpeedTest videosundan yaptığım iki testin sonucu şu şekilde:

Arduino Ödeneği: 37,00 ABD Doları

Dhrystone Benchmark, Sürüm 2.1 (Dil: C)

Yürütme başlar, Dhrystone üzerinden 300.000 çalışır

infaz biter

Dhrystone'dan bir geçiş için mikrosaniye: 10.70

Saniyedeki Dhrystones: 93, 431,43

VAX MIPS derecesi = 53.18 DMIPS

Koşu testi Fernandok

Toplam süre: 2,458 ms

  • FPU'su yok
  • Arduino üzerinde Dhrystone yazılımı

www.saanlima.com/download/dhry21a.zip

STM NUCLEO-L476RG: 23,00 ABD Doları

Dhrystone Benchmark, Sürüm 2.1 (Dil: C)

Yürütme başlar, Dhrystone üzerinden 300.000 çalışır

Yürütme biter

Dhrystone'dan bir geçiş için mikrosaniye: 9.63

Saniyedeki Dhrystones: 103, 794.59

VAX MIPS derecesi = 59.07 DMIPS

Koşu testi Fernandok

Toplam Süre: 869 ms 2.8x DAHA HIZLI

  • 40Mbit/s'ye kadar PI, USART 10Mbit/s
  • 2x DMA (14 kanal)
  • ART Hızlandırıcı ile 80 MHz / 100 DMIPS'ye kadar

Adım 5: STM32L432KC X Arduino Nano

STM32L432KC X Arduino Nano
STM32L432KC X Arduino Nano

Soldaki kart, STMicroelectronics'in sağdaki resimde aynı Arduino Nano pin çıkışını yerleştirdiği STM32L432KC'dir.

Adım 6: STM32L432KC

STM32L432KC
STM32L432KC

Ultra düşük güçlü Arm® Cortex®-M4 32-bit

MCU + FPU, 100DMIPS, 256KB'ye kadar Flash, 64KB SRAM, USB FS, analog, ses

26 IO'ya kadar daha hızlı, 5V'a daha toleranslı

  • Donanım takvimi, alarmlar ve kalibrasyon ile RTC
  • 3 kapasitif algılama kanalına kadar
  • 11x Zamanlayıcılar: 1x16-bit gelişmiş motor kontrolü

1x 32-bit ve 2x 16-bit genel amaçlı, 2x 16-bit temel, 2x düşük güçlü 16-bit zamanlayıcı (Stop modunda mevcuttur), 2x watchdog, SysTick zamanlayıcı

Hafıza:

- 256 KB'ye kadar Flash, tescilli kod okuma koruması

- Donanım eşlik kontrolü ile 16 KB dahil 64 KB SRAM

- Dörtlü SPI bellek arayüzü

Zengin analog çevre birimleri (bağımsız besleme)

- 1x 12-bit ADC 5 Msps, donanım aşırı örnekleme ile 16 bite kadar, 200 μA / Msps

- 2 kanal 12 bit DAC çıkışı, düşük güç tüketimi

- Dahili PGA'lı 1x operasyonel amplifikatör

- Ultra düşük güç arayüzlerine kıyasla 2 kat

- 1x UPS (seri ses arabirimi)

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

- 3 adet USART (ISO 7816, LIN, IrDA, modem)

- 1x LPUART (2 uyandırmayı durdur)

- 2x SPI (ve 1x SPI Dörtlü)

- CAN (2.0B aktif)

- Tek kablolu protokol ana SWPMI I / F

- IRIM (kızılötesi arayüz)

  • 14 kanallı DMA denetleyicisi
  • Rastgele numara üreticisi

Adım 7: STM32L4 Kartları için Core Arduino'yu Kurun

STM32L4 Kartları için Core Arduino'yu Kurun
STM32L4 Kartları için Core Arduino'yu Kurun
  1. kaydeden ST-Link programını kurun
  2. Json Adresi
  3. Kurullar: Kart Yöneticisi
  4. Kütüphaneler: Kütüphane Yöneticisi

Adım 8: ST-Link'i Kurun - Kayıt Yapan Program

ST-Link'i Kurun - Kayıt Yapan Program
ST-Link'i Kurun - Kayıt Yapan Program

Dosyayı https://www.st.com/en/development-tools/stsw-link0… adresinden indirin. Sadece cihazı kaydedin, indirin ve kurun.

9. Adım: Json'a Adres Verin

Adres Json
Adres Json

Özelliklerde aşağıdaki adresi ekleyin:

github.com/stm32duino/BoardManagerFiles/ra…

Adım 10: Kurullar: Yönetim Kurulu Yöneticisi

Kurullar: Yönetim Kurulu Müdürü
Kurullar: Yönetim Kurulu Müdürü

Arduino Board Manager'da yaklaşık 40MB olan STM32 Core'u kurun.

Adım 11: Kitaplıklar: Kitaplık Yöneticisi

Kütüphaneler: Kütüphane Yöneticisi
Kütüphaneler: Kütüphane Yöneticisi

Son olarak kütüphaneleri kurun.

Bazılarını benim yüklediğim birkaç örneği olan STM32duino.com grubunu şahsen beğendim. Ayrıca çok sevdiğim bir FreeRTOS indirdim. Hızlı ve güvenilir buldum. Ayrıca LRWAN'ı kurdum (ancak henüz test etmedim). İyi olup olmadığını yakında söyleyeceğim.

Adım 12: PDF'yi İndirin

PDF

Önerilen: