میکروکنترلر STM32 چیست؟

از میان شرکت هایی که تولید کننده میکروکنترلر های ۳۲ بیتی هستند ؛ میکروکترلر های کمپانی ST  بیشترین محبوبیت را در صنعت دارد  که قیمت پایین و در حین حال امکانات بالا و منابع آموزشی کامل از مزایای آن هستند.

قبل از شروع مطالعه مطالب زیر ، می توانید ابتدا با مراجعه به لینک زیر با پردازنده ARM آشنا شوید.

میکروکنترلر ARM

فرق میکروکنترلر STM با دیگر میکروکنترلرهای ARM

تفاوت کتابخانه HAL نسبت به CMSIS

چکیده:

STM32 از جمله IC های بر اساس میکرو ۳۲ بیتی RISC ARM با هسته های Cortex-M7, Cortex-M4F, Cortex-M3, Cortex-M0+, and Cortex-M0 است. شرکت  STMicroelectronics مجوز خود را از شرکت  آرم هولدینگز دریافت کرد.  ST پیکربندی خود را بر اساس نیاز  برای هر طرح انتخاب می کند. ST اتصال لوازم جانبی خود را به هسته قبل از تبدیل طراحی به یک قالب سیلیکون انجام می دهد. جدول زیر خلاصه خانواده میکروکنترلر STM32 را نشان می دهد.
تصویر داخلی از میکرو STM32F103VGT6

مقدمه:

خانواده STM32 از میکروکنترلرهای ۳۲ بیتی بر اساس پردازنده ARM Cortex-M برای ارائه درجه جدیدی از آزادی به کاربران MCU طراحی شده است. این ارائه می تواند طیف ۳۲ بیتی محصول که ترکیبی از عملکرد بسیار بالا، قابلیت های زمان واقعی، پردازش سیگنال دیجیتال، توان کم، بهره برداری ولتاژ کم ، در حالی که حفظ یکپارچگی کامل و سهولت در توسعه در این مدل از میکروکنترلر وجود دارد.

محدوده بی نظیر و زیادی از دستگاه های STM32، بر اساس یک هسته صنعتی استاندارد و همراه با یک انتخاب گسترده ای از ابزار و نرم افزار، باعث می شود این خانواده از محصولات انتخابی ایده آل، برای پروژه های کوچک و یا برای تصمیم گیری پلت فرم کلی و پیچیده مورد استفاده قرار بگیرد.

عملکرد کلی میکروکنترلر STM32:

در تصویر بالا سیر تحول تولیدات شرکت ST را مشاهده می کنید که بر حسب نوع پردازنده فرکانس کارکرد میکرو در پردازنده های مختلف و همچنین DMIPS که مخفف کلمه (Dhrystone Million Instruction Per Second ) به معنی پردازنده با هر کلاک چه تعداد دستور را می تواند اجرا کند را نشان می دهد. که در جدیدترین سری ارائه شده توسط شرکت ST به نام STM32H7 با فرکانس کاری ۴۰۰ مگا هرتز و DMIPS برابر با ۸۵۶ در حالت High Performance را پشتیبانی می کند.

در این دسته بندی شامل سه بخش :

۱- High Performance

۲- Mainstream

۳- Ultra-Low-Power

که سری های STM32F2 ، STM32F4 ، STM32F7 و STM32H7 در دسته بندی اول و همچنین سری های STM32F0 ، STM32F1 و  STM32F3 در دسته بندی دوم و سری های STM32L0 ، STM32L1 و STM32L3 در دسته سوم قرار می گیرند.

در لینک زیر لیست کامل میکروکنترلر STM به همراه نوع بسته بندی ، هسته، فرکانس کاری و حافظه فلش از اولین مدل تولید تا سال ۲۰۱۷ آمده است.

لیست و مشخصات کامل STM

بررسی مشخصات مدل های مختلف میکروکنترلر STM32 :

۱- STM32F4

  سری STM32 F4 اولین گروه میکروکنترلرهای STM32 مبتنی بر هسته های ARM Cortex-M4F است. سری F4 همچنین اولین سری STM32 مجهز به پردازش سیگنال دیجیتال DSP و شناور دستورالعمل نقطه (floating point instruction) است. F4 از نظر تعداد پایه ها برتری زیادی نسبت به سری های F2 و F1 دارد و همچنین قبلیت هایی همچون سرعت پالس بالاتر ، ۶۴KB CCM static RAM همچنین I²S دوبلکس کامل، بهبود پالس زمان واقعی، و ADC های سریع تری را دارا می باشد. خلاصه مشخصاتبرای این سری می توان به موارد زیر اشاره کرد.

مشخصات:

۱-هسته

هسته ARM Cortex-M4F با ماکزیمم نرخ کلاک شامل ۸۴،۱۶۸ و ۱۸۰ مگاهرتز می باشد.

۲-حافظه

  • رم استاتیک (RAM Static) یا به اختصار SRAM در این مدل از میکروکنترلر به صورت کلی از بالا برابر ۱۹۲ کیلوبایت می باشد. ۶۴ کیلو بایت مریوط به حافظه متصل به هسته (CCM) است و ۴٫۸ کیلو بایت دیگر مربوط به Battery-Backed می باشد.
  • حافظه فلش برابر ۵۱۲/۱۰۲۴/۲۰۴۸ کیلو بایت ، ۳۰ کیلو بایت بوت سیستم، ۵۱۲ بایت یک بار قابل برنامه ریزی (OTP)، ۱۶ بایت دیگر تنظیمات را شامل می شود.
  • یک حافظه ۹۶ بیتی منحصر به فرد برای برنامه ریزی داخل هسته برای تنظیمات مخصوص کارخانه در نظر گرفته شده است.

۳- لوازم جانبی

  • لوازم جانبی گوناگونی در تمام بسته های این آی سی موجود هستند که شامل: USB 2.0 OTG از نوع FS و HS ، همچنین ۲ تا CAN 2.0 ، یک  SPI یا I²S دوپلکس کامل ، سه تا I²C ، چهار تا پورت سریال USART ، دو تا پورت سریال UART ، همچنین SDIO برای کارت های SD و MMC ، دوازده تایمر ۱۶ بیتی و دو تا تایمر ۳۲ بیتی ، ۲ تا تایمر واچ داگ (Watchdog) ، سنسور دما ، ۱۶ یا ۲۴ کانال برای ۳ نوع ADC ، دو تا DAC ، همچنین ۵۱ تا ۱۴۰ پایه ورودی  و خروجی (GPIO) ، شانزده تا DMA ، دارای بهبود کلاک زمان واقعی (RTC) ، مولد بررسی افزونگی چرخش (CRC ) ، مولد تولید شمارش تصادفی (RNG) می باشد.
  • مدل STM32F4x7 اضافه کردن MAC اترنت و رابط دوربین.
  • مدل STM32F41x / 43x اضافه کردن پردازنده رمزنگاری برای DES / TDE ها / AES، و یک پردازنده هش برای SHA-1 و MD5.
  • مدل STM32F4x9 اضافه کردن کنترل LCD-TFT.
  • اسیلاتورهای داخلی شامل (۱۶ مگاهرتز، ۳۲ کیلو هرتز)، اسیلاتور خارجی (۴-۲۶ مگاهرتز، و ۳۲٫۷۶۸  به ۱۰۰۰ کیلو هرتز).
  • انواع بسته بندی آی سی شامل: WLCSP64, LQFP64, LQFP100, LQFP144, LQFP176, UFBGA176 و …

 

محدوده ولتاژ عملیاتی از ۱٫۸ ولت تا ۳٫۶ ولت می باشد.
و…
 

 ۲- STM32F3

STM32-F3 سری دوم از میکروکنترلرهای STM32 مبتنی بر ARM هسته های Cortex-M4F است. F3 تقریبا پین به پین سازگار با سری STM32-F1 است.

مشخصات:

۱- هسته

هسته ARM Cortex-M4F با ماکزیمم نرخ کلاک شامل ۷۲ مگاهرتز می باشد.

۲- حافظه

  • رم استاتیک (RAM Static) یا به اختصار SRAM در این مدل از میکروکنترلر به صورت کلی و با سخت افزار Parity check شامل ۱۶ / ۲۴ / ۳۲ / ۴۰ کیلو بایت می باشد. ۸ کیلو بایت مریوط به حافظه متصل به هسته (CCM) است و ۱۲۸ بایت دیگر مربوط به Battery-Backed می باشد.
  • حافظه فلش برابر ۶۴/۱۲۸/۲۵۶کیلو بایت ، ۸ کیلو بایت بوت سیستم و دیگر تنظیمات و ۹۶ بیت هم حافظه منحصر به فرد برای برنامه ریزی داخل هسته برای تنظیمات مخصوص کارخانه در نظر گرفته شده است.

۳- لوازم جانبی

  • اسیلاتورهای داخلی شامل (۸ مگاهرتز، ۴۰ کیلو هرتز)، اسیلاتور خارجی (۱ تا ۳۲ مگاهرتز، ۳۲٫۷۶۸ به ۱۰۰۰ کیلو هرتز).
  • انواع بسته بندی آی سی شامل:  LQFP48، LQFP64، LQFP100، UFBGA100.
  • محدوده ولتاژ عملیاتی ۲ تا ۳٫۶ ولت می باشد.
از ویژگی های بارز برای این سری سرعت بالای خواندن ADC،  از نوع ۱۲ بیتی، و نمونه گبری به طور همزمان (مولتی پلکسر به بیش از ۳۰ کانال)،قابل توجه است، چهار همسان ساز، ۸ مگاهرتز پهنای باند عملیاتی با تمام پین ها در معرض فعالیت به علاوه PGA داخلی (برنامه ریزی برای به دست آوردن آرایه) می باشد. همچنین طیف وسیعی از مدارهای آنالوگ سیگنال مانند فیلتر باند گذر، فیلترهای Anti-alias، تقویت کننده (آمپی فایر ها)، انتگرالی / دیفرانسیلی و … می باشد. همچنین می توان به عنوان یک شکل موج (سینوسی، مثلث، نویز و غیره) قابلیت  تمام دستگاه های آنالوگ را به طور کاملا مستقل و یا متصل می تواند تقریبا همه چیز که برای یک سیستم اندازه گیری و سنسور واسط پیشرفته در یک چیپ مورد نیاز است را در خود داشته باشد.
چهار ADC موجود در این مدل از میکروکنترلر می تواند به طور همزمان نمونه ساخت یک طیف گسترده ای از تجهیزات کنترلی آنالوگ به صورت کاملا دقیق را برای کاربر امکان پذیر کند. همچنین ممکن است با استفاده از یک زمانبندی سخت افزار برای آرایه مالتی پلکسر، اجازه می دهد دقت زمان بندی خوب که نمونه برداری بیش از ۴ کانال مستقل از پردازنده اصلی را نمونه گیری و تسهیم کند. این روش می تواند از منابع گوناگون و از جمله تایمرها ساخته و در مقیاس کنترلی اجازه برای فواصل نمونه برداری نامنظم که در آن مورد نیاز است را فراهم کند.
و…
 

 ۳- STM32F2

STM32-F2 سری دوم از میکروکنترلرهای STM32 مبتنی بر ARM هسته های Cortex-M3 است. F2 تقریبا پین به پین سازگار با سری STM32-F4 است.

مشخصات:

۴- STM32F1

STM32-F1 اولین سری از گروه میکروکنترلرها STM32 بر اساس هسته ای ARM Cortex-M3 است . در سری F1 در طول زمان با افزایش سرعت CPU، اندازه حافظه داخلی، انواع مختلف لوازم جانبی تکامل یافته است. که پنج خط مشخص در F1 وجود دارد: اتصال مخصوص (STM32F105 / 107)، عملکرد مناسب (STM32F103)، دسترسی خوب به پورت های USB نوع (STM32F102)، دسترسی مناسب (STM32F101)، قیمت مناسب نسبت به عملکرد (STM32F100).

مشخصات:

۵- STM32F0

STM32 F0 سری گروه اول از تراشه های ARM قشر M0 در خانواده STM32 هستند.

مشخصات:

برای آشنایی بیشتر از این سری از میکروکنترلر می توانید به لینک زیر مراجعه کنید.

۶-STM32F7

STM32F7 سری اول از تراشه های قدرتمند ARM قشر M7 هستند که قدرت پردازش بسیار بالایی را نسبت به نمونه های دیگر شرکت ST دارند.
 

مشخصات:

۷- STM32H7

 سری STM32H7 از MCUs هسته ARM Cortex-M7 و عملکرد بسیار بالا برخوردار است. در واقع بهترین میکرویی است که شرکت ST توانسته تا بحال روانه بازار کند.
از بارزترین مشخصات این سری از میکروکنترلر های STM32 می تواند به حافظه فلش ۲ مگا بایتی و ماکزیمم کلاک ۴۰۰ مگا هرتزی آن اشاره کرد که در سال ۲۰۱۷  در دسترس عموم قرار گرفته است.

 ۸- مشخصات دیگر میکروهای STM32 :

 ۱- STM32L4 که از سال ۲۰۱۵ در حال تولید است و ماکزیمم کلاک آن برابر ۸۰ مگا هرتز و دارای معماری Cortex-M4F می باشد.
۲- STM32L2 که از سال ۲۰۱۰ با اندازه تکنولوژی ساخت ۱۳۰ نانو متر در حال تولید است و ماکزیمم کلاک آن برابر ۳۲ مگا هرتز و دارای معماری Cortex-M3 می باشد.
۳- STM32L0 که از سال ۲۰۱۴ در حال تولید است و ماکزیمم کلاک آن برابر ۳۲ مگا هرتز و دارای معماری +Cortex-M0 می باشد.
۴- STM32W و STM32J

بردهای توسعه دهنده STM32:

۱- بردهای دیسکاوری (Discovery) STM32 :

شرکت ST میکروالکترونیک یک راه سریع و آسان برای مهندسانی که بخواهند پروژه های مختلف را اجرا و برای ارزیابی تراشه میکروکنترلر داشته باشند ، ساخته شده است. این برد بسیار ازران بوده و به راحتی در بازار در دسترس است. در واقع یک برد آموزشی برای آشنایی و سهولت در استفاده از میکروکنترلر STM32 است.
هر برد دیسکاوری شامل یک پروگرمر ST-LINK برای برنامه نویسی و اشکال زدایی (Debugging) از طریق یک پورت USB در خود می باشد. ولتاژ مورد استفاده برای هر برد ۵ ولت از طریق کابل USB می باشد و یا یک منبع تغذیه خارجی ۵ ولتی ارائه شده است که آنها را می توان به عنوان منابع توان خروجی ۳ یا ۵ ولتی استفاده کرد (در حال حاضر باید کمتر از ۱۰۰ میلی آمپر باشد). تمام بردها دیسکاوری همچنین شامل یک تنظیم کننده ولتاژ، کلید ریست، کلید کاربر (روشن و خاموش کردن)، چندین LED، هدر SWD در بالای برد و ردیف های پین هدر در پایین برد وجود دارد.
از جمله امکانات این برد می توان به موارد زیر اشاره کرد:
  • مجهز به پروگرامر و دیباگر st-link مونتاژ شده روی برد
  • دو عدد چیپ ST MEMS
  • شتاب سنج ، میکروفون دیجیتال و ژیروسکوپ
  • یک مبدل دیجیتال به آنالوگ صدا همراه با تقویت کننده کلاس D که به کمک میکروفون دیجیتال می توانید اقدام به ثبت و پردازش صدا کنید. تغذیه برد نیز ۵ ولت است که در خروجی علاوه بر۵ ولت ولتاژ ۳ ولت نیز به منظور توسعه و استفاده از برد در مدارات مختلف درنظر گرفته شده است.
  • ال ای دی ، کلیدهای مورد نیاز
  • پایه های ورودی و خروجی
  • و …
  • microcontroller featuring 32-bit ARM Cortex-M4F core, 1 MB Flash, 192 KB RAM in an LQFP100 package
  • On-board ST-LINK/V2 with selection mode switch to use the kit as a standalone ST-LINK/V2 (with SWD connector for programming and debugging)
  • Board power supply: through USB bus or from an external 5 V supply voltage
  • External application power supply: 3 V and 5 V
  • LIS302DL or LIS3DSH ST MEMS 3-axis accelerometer
  • MP45DT02, ST MEMS audio sensor, omni-directional digital microphone
  • CS43L22, audio DAC with integrated class D speaker driver
  • Eight LEDs:
  • LD1 (red/green) for USB communication
  • LD2 (red) for 3.3 V power on
  • Four user LEDs, LD3 (orange), LD4 (green), LD5 (red) and LD6 (blue)
  • ۲ USB OTG LEDs LD7 (green) VBus and LD8 (red) over-current
  • Two push buttons (user and reset)
  • USB OTG FS with micro-AB connector
  • Extension header for all LQFP100 I/Os for quick connection to prototyping board and easy probing
منبع: www.st.com

مشخصات بالا می تواند با توجه به نوع برد تغییر کند که از جمله بردهای ساخته شده توسط شرکت ST میکروالکترونیک می تواند شامل:

۱- STM32F7GDISCOVERY
۲- STM32L476GDISCOVERY
۳- STM32F429IDISCOVERY
۴- STM32F401CDISCOVERY
۵- STM32F3DISCOVERY
۶- STM32VLDISCOVERY
۷- STM32L152CDISCOVERY
۸- STM32L100CDISCOVERY
۹- STM32F072BDISCOVERY 
۱۰-STM32F072BDISCOVERY
و…

آموزش تصویری بردهای دیسکاوری STM32

۲-بردهای STM32 NUCLEO :

 تمام بردها Nucleo توسط شرکت ST میکروالکترونیک حمایت و توسعه داده شده است و دارای یک پروگرمر ST-LINK / V2-1 به همراه دیباگر SWD، پورت COM مجازی، حافظه بالا و … می باشد. این برد آموزشی کلیه امکانات لازم را برای شروع کار مبتدیان را دارد و می تواند با توجه به امکانات و مشخصات برد به آسانی در پروژه های مختلف اعم از دانشجویی و کارهای صنعتی استفاده گردد.
از جمله امکانات این برد می توان به موارد زیر اشاره کرد:

– Two types of extension resources:

– ST Zio connector including: support for Arduino Uno V3 connectivity (A0 to A5, D0 to D15) and additional signals exposing a wide range of peripherals

– ST morpho extension pin header footprints for full access to all STM32 I/Os

– ARM® mbed -enabled (see http://mbed.org)

– On-board ST-LINK/V2-1 debugger/programmer with SWD connector:

– Selection-mode switch to use the kit as a standalone ST-LINK/V2-1

– USB re-enumeration capability. Three different interfaces supported on USB: virtual COM port, mass storage, debug port

– Flexible board power supply:

– ۵ V from ST-LINK/V2-1 USB VBUS

– External power sources: 3.3 V and 7 – 12 V on ST Zio or ST morpho connectors, 5 V on ST morpho connector

– USB OTG or full-speed device with Micro-AB connector (depending on STM32 support)

– IEEE-802.3-2002 compliant Ethernet connector (depending on STM32 support)

– Three user LEDs

– Two push-buttons: USER and RESET

– LSE crystal

– ۳۲٫۷۶۸ KHz crystal oscillator

– Comprehensive free software HAL library including a variety of software examples

– Support of wide choice of Integrated Development Environments (IDEs) including IAR , Keil® , GCC-based IDEs, ARM® mbed

منبع: www.st.com

آموزش تصویری بردهای STM32 NUCLEO

ابزار توسعه:

 طراحی:

 STM32CubeMX، توسط شرکت ST، در یک بسته نرم افزار رایگان برای ویندوز، Mac OS X و لینوکس طراحی شده است که یک نرم افزار ابزار پیکربندی گرافیکی است که اجازه می دهد تا تولید کد دهی اولیه C با استفاده از رابط گرافیکی را میسر می کند. این نسخه برای اولین بار در فوریه ۲۰۱۴ با پشتیبانی جانبی برای هر تراشه STM32 روانه بازار شده است. در ژانویه ۲۰۱۵، ابزار پشتیبانی از تمام سری STM32، آن را می توان جز منبع قابل استفاده که به طور مستقیم  پر طرفدارترین IDE آرم Cortex-M که یک IDE رایگان را در اختیار کاربر قرار می دهد را داشته باشد. کد منبع تولید شده توسط STM32CubeMX را می توان به نرم افزار های پشتیبان میکروکنترلر ARM شامل IAR و KEIL اضافه کرد.
 
برای کسب اطلاعات بیشتر در مورد نرم افزار STM32 Cube MX به لینک زیر مراجعه کنید:

دیباگ:

STM-STUDIO، توسط شرکت ST، یک بسته نرم افزار رایگان برای ویندوز برای رفع اشکال (دیباگ) و تشخیص برنامه های کاربردی STM32 که توسط کد نویس نوشته می شود ساخته شده است. در حالی که میکرو در حال اجرا است  ، با خواندن و نمایش متغیرهای خود در همان زمان قابل تشخیص و شناسایی است. STM-STUDIO متصل به هرمیکرو  STM32 با استفاده از هر نوع پروگرمر ST-LINK از طریق JTAG و یا پروتکل های دیباگ SWD می تواند داده ها را دیباگ کند. اطلاعات اشکال زدایی شده  از طریق  برنامه ELF فایل اجرایی انجام می پذیرد. 


فلش کد از طریق USB:

STM32 ST-LINK ، توسط شرکت ST، یک بسته نرم افزار رایگان برای ویندوز به انجام برنامه ریزی در سیستم از میکروکنترلرها STM32 با استفاده از ST-LINK / V2 و دستگاه رابط مبتنی بر USB از طریق JTAG و یا پروتکل  SWD را فراهم کرده است. این نرم افزار می تواند کدهای با پسوند bin. و hex. را در داخل میکروهای STM پروگرم کند.

برنامه نویسی فلش از طریق USART:

همه میکروکنترلرها STM32 یک بوت لودر ROM’ed دارند که با استفاده از یک یا چند لوازم جانبی پشتیبانی از  بارگذاری یک فایل باینری به یک حافظه فلش  (بر حسب خانواده STM32) را بر عهده دارد. از آنجا که همه STM32 بارگذاری پشتیبانی خود از بوت لودر را از طریق اتصال USART به RS-232 یا یک USB به UART انجام می دهند. این روش نیاز به یک راه برای فعال کردن / غیر فعال کردن بوت شدن از طریق بوتلودر ROM’ed (به عنوان مثال چامپر/ سوئیچ / Button) می باشد.
stm32flash، یک برنامه منبع باز برای ویندوز و لینوکس برای انجام برنامه ریزی در سیستم برای فلش STM32 از طریق USART است.

 

کتابخانه های نرم افزاری STM32:

– استاندارد کتابخانه جاوا IDE STM32Java
– کتابخانه نرم افزار STM32 C++ / C
– کتابخانه محیطی استاندارد  (Standard peripheral library).
– 
RTOS
– کتابخانه USB Device.
– کتابخانه DSP.
– کتابخانه رمزنگاری (Encryption library).
– کتابخانه کنترل موتور.
– کتابخانه های صوتی.

 

خلاصه مشخصات میکروکنترلر های STM32 :

کپی برداری از مطالب موجود در این صفحه با ذکر منبع بلامانع است.

دیدگاهتان را بنویسید