مطالب ویژه بردهای توسعه ARM ARM سایر مطالب

برد Maple mini ARM 32-bit سازگار با محیط برنامه نویسی Arduino IDE

برد Maple mini ARM 32-bit سازگار با محیط برنامه نویسی Arduino IDE
به این نوشته رای دهید

 

برد Maple mini با میکروکنترلر ARM

پردازنده و میکروکنترلرهای ARM  توانایی پردازش بسیار قدرتمندی نسبت به میکروکنترلر AVR و PIC را دارد. همچنین میکروکنترلرهای ARM دارای تایمرهای دقیق مناسب کنترلر موتور و منابع سوییچینگ و Inverter ها و Interface های دیجیتال مانند I2C ،UART ،SPI ،I2S ،Ethernet و Irda ، اینتراپت های پیشرفته ، توانایی پرداژش سیگنال های دیجیتال DSP ، ماژول های کدینگ و بخش های مختلف رمزنگاری است. بدون شک این قابلیت های ARM برتری خود را با دیگر میکروکنترلرها ثابت می کنند. اما کار با رجیسترها و برنامه نویسی با ARM کار نسبتا دشواری است. ما در این بخش به برد توسعه Maple mini با میکروکنترلر ARM می پردازیم.قلب تپنده این برد Maple mini یک میروکنترلر STM32F103CBT6 ساخت شرکت ST-microelectronics است. مهمترین ویژگی برد Maple mini توانایی برنامه نویسی برای این برد در محیط توسعه Arduino IDE است. اگر تا به حال برای Arduino برنامه نوشته باشید حتما متوجه شده اید که برنامه نویسی در محیط Arduino IDE بسیار راحت است و زمان کمتری را نسبت به برنامه های توسعه دیگر برای برنامه نویسی می توان صرف کرد.

مشخصات فنی میکروکنترلر STM32F103CBT6 :

  • هسته پردازنده: ARM Cortex-M3 32-bit
  • فرکانس پردازنده: 72MHz
  • حافظه فلش: 120Kbyte
  • حافظه رم: 20Kbyte
  • ولتاژ کاری: 2 تا 3.6 ولت
  • فرکانس و کلاک ورودی: دارای ورودی کلاک کریستال اسیلاتور و اسیلاتور داخلی کالیبره شده 8MHz RC، دارای PLL برای افزایش یا کاهش فرکانس
  • 2 بلاک ADC تا 16 کانال با 1MSPS با دامنه اندازه گیری 0 تا 3.6 ولت و سنسور دمای برای افزایش دقت نمونه برداری
  • دارای 7 کانال DMA  ( Direct memory access ) برای GPIO و Timer و SPI و UART و I2C و ADC
  • 34 عدد GPIO دارای Interrupt
  • 7 عدد تایمر: 1 عدد تایمر 16 بیتی پیشرفته دارای PWM و encode Quadrature و سه عدد تایمر General Purpose
  • دارای مد Low power در حالت های Sleep و Standby و Stop
  • دارای پکیج LQFP48

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

بررسی سخت افزاری برد Maple mini :

اندازه برد Maple mini بر خلاف قابلیت هایی که دارد بسیار کوچک است (5.1×1.8cm) و نحوه قرار گیری پین های Maple mini مناسب bread board می باشد. روی برد توسعه Maple mini یک کریستال اسیلاتور 8MHz است که به ورودی کلاک میکروکنترلر متصل شده و با مدار داخلی PLL فرکانس 8MHz را به 72MHz برای فرکانس کلاک CPU تبدیل می کند. روی برد Maple mini یک رگولاتور 3.3 ولت برای تغذیه برد تعبیه شده که می توانید به پین Vin برد Maple mini یک تغذیه با ولتاژ حداکثر 12 ولت وصل کنید.

این مطلب را از دست ندهید  چرا باید از آردوینو استفاده کنیم

پین های GPIO :

این برد دارای 34 عدد پین ورودی-خروجی GPIO است.33 عدد از این پین ها دارای Interrupt خارجی هستند و فرکانس هر کدام از پین های GPIO به دلیل اینکه به Bus APB2 وصل شده می تواند تا 72MHz فرکانس داشته باشد.!!! توجه کنید که بعضی از پین های برد Maple mini حداکثر ولتاژ قابل تحمل آن ها تا 3.6 ولت می باشد.

ADC مبدل آنالوگ به دیجیتال:

Maple mini می تواند تا 9 عدد از پین های روی برد را به analogInput اختصاص دهد. این پین ها که پین های ADC هستند، می تواند با توجه به طراحی برد Maple mini قابلیت تبدیل ولتاژ 0 تا 3.3 ولت را دارند.این برد به صورتی طراحی شده که analog ground و digital ground به طور مجزا به میکروکنترلر وصل شده تا مقدار ADC خوانده شده مقدار دقیقی باشد. در صورتی که ولتاژ ورودی بیش از 3.3 ولت باشد ممکن است به میکروکنترلر صدمه بزند. فرکانس نمونه برداری ADC این برد 1MHz و resolution نمونه برداری میکرو کنترلر STM32F103CBT6 دوازده بیتی است که مناسب پردازش سیگنال دیجیتال می باشد.

پین های PWM :

یکی از مهمترین پارامترهای انتخاب یک میکروکنترلر برای کاربرد های کنترل موتور و مدارات سوییچینگ ، داشتن یک PWM و تایمر مناسب است. پین های PWM برد Maple mini که روی برد نشان داده شده 16 بیتی هستند.

پورت USB :

یکی از قابلیت های مهم دیگر میکرو کنترلر STM32F103CBT6 روی برد Maple mini داشتن پورت USB است. سرعت پورت 12Mb/s USB است. از طریق پورت micro-USB که روی برد Maple mine قرار گرقته می توانید برد را پروگرام کنید و از این طریق به شما این امکان را می دهد تا اطلاعات را به کامپیوتر منتقل کنید درست مانند بردهای آردوینو UNO با دستور ()Serial.print. پورت USB این برد می تواند تنها در حالت USB Peripheral کار کند که تنها مشکل آن، این است که با این پورت USB نمی نوان یک حافظه فلش را خواند چون برای خواندن و ارتباط با وسایل جانبی دارای USB باید Mode یو اس بی در حالت Host USB باشد.

دیگر پورت های ارتباط دیجیتال:

برد Maple mini دارای 3 عدد USART یا UART و 2 عدد SPI و 2 عدد رابط I2C است. رابط USART در مدهای LIN ، IrDa و modem control کار می کند. سرعت تبادل اطلاعات این رابط در حدود 4.5Mb/s است. رابط ارتباطی SPI می تواند کارت های SD یا MMC را از این طریق به برد توسعه Maple mini متصل کنید تا 18Mb/s سرعت تبادل دیتا دارد و اندازه Frame دیتای این رابط می تواند 8 یا 16 بیتی باشد. رابط دیجیتال I2C می تواند تا 400 کیلوهرتز فرکانس کلاک SCL تولید کند. این رابط در مد های PMBus و SMBus که بیشتر در خانه های هوشمند مورد استفاده قرار می گیرد، می تواند کار کند.

این مطلب را از دست ندهید  راه اندازی ماژول GY-521 با استفاده از آردوینو

پین های تغذیه برد:

میکروکتترلر ARM می تواند حداکثر ولتاژ 3.6 ولت را تحمل کند. اما این برد با داشتن یک رگولاتور خطی 3.3 ولت می تواند از طریق پین Vin قرار گرفته روی برد تا ولتاژ 12 ولت را تحمل کند.

در شکل زیر شماتیک برد Maple mini را مشاهده می کنید.

شماتیک برد maple mini

بررسی محیط نرم افزاری و توسعه Maple mini

برد Maple mini بهترین و ارزان ترین برد با میکروکنترلر ARM هست که می توانید برای توسعه و پروگرام کردن آن از نرم افزار Arduino IDE استفاده نمایید. اگر تا به حال با بردهای آرذوینو کار کرده باشید حتما به این مورد دقت کرده اید که این محیط برنامه نویسی بسیار آسان و انعطاف پذیر است. کتابخانه های Arduino IDE بسیار گسترده است. اغلب دستورها و توابع برنامه نویسی این برد مانند دستورها و توابع بردهای Arduino است. یکی از مهمترین قابلیت های میکروکنترلرهای ARM پشتیبانی از برنامه های RTOS است که با این قابلیت می توانید چندین Function را به صورت همزمان در این میکروکنترلر اجرا نمایید که به این کار Multi-threading گفته می شود توانایی اجرا کردن برنامه ها به صورت Multi-threading به دلیل داشتن حافظه رم بالا و تایمر SysTick در این میکروکنترلرهاست.این نوع برنامه نویسی Multi-threading در بستر FreeRTOS Kernel در برنامه Arduino IDE امکان پذیر است. برای برنامه نویسی و پروگرام کردن Maple mini نیاز است که کدها و برنامه های این برد را در نرم افزار Arduino IDE وارد کنید تا بتوانید در این محیط برای Maple mini برنامه نویسی کنید.

روش راه اندازی محیط برنامه نویسی برد Maple mini در نرم افزار Arduino IDE :

برنامه نویسی آردوینو چشمک زن

  • ابتدا نرم افزار Arduino IDE را دانلود کنید.
  • در قسمت Tools->Board->BoardManager برد Arduino Zero را نصب کنید.(نصب کردن این برد Instruction Set های پردازنده ARM Cortex-M3 را نصب می کند.)
  • این فایل Zip را دانلود نمایید آن را Unzip کنید و پوشه Arduino_STM32-master را در محل My documents\arduino\hardware کپی کنید.
  • درایور (Driver) USB برد Maple mini را در پوشه Arduino_STM32-master نصب کنید. برای نصب درایورهای مورد نیاز این برد تنها نیاز است فایل install_drivers.bat و install_STM_COM_drivers.bat را اجرا کنید.
  • بعد از انجام مراحل قبل نرم افزار Arduino IDE را ببندید و دوباره باز کنید و در قسمت Tools>Board برد Maple mini را انتخاب نمایید.
  • Port مربوط به برد را انتخاب کنید تا بتوانید برد را پروگرام کنید.
این مطلب را از دست ندهید  تاریخچه پردازنده ARM

بیشتر دستورات نرم افزاری Maple mini مانند دستورات برد Arduino است.(در صورتی که می خواهید آردوینو را بیاموزید اینجا کلیک نمایید.) برای مثال اگر بخواهید مقدار یک سیگنال آنالوگ را دریافت کنید یا از یک پین برد Maple mini به عنوان پین PWM استفاده کنید می توانید در ابتدا از تابع ()pinMode نوع عملکرد پین مورد نظر را انتخاب نمایید. برای مثال اگر پخواهیم پین PortB1 را به عنوان PWM استفاده نماییم دستور pinMode(PB1, PWM) را در برنامه اضاف می کنیم. در اینجا می بینیم که آرگومان اول نام پین است که LED روی پرد به این پین متصل شده و همچنین آرگومان دوم نوع عملکرد پین را تعریف می کند. این نوع عملکرد پین می تواند Input ، Output ، Open drain و PWM و … باشد. برای مقدار دهی به پین PWM از دستور (PB1,0x0F0F)pwmWrite استفاده می کنیم. همان طور که در قسمت بالا گفته شد PWM این برد 16 بیتی است در نتیجه می توانید به مقدار Duty Cycle این تابع مقدار 0 تا 65535  اختصاص دهید.

حرف آخر:

با تمام این جزئیاتی که در رابطه با برد Maple mini گفته شد، این برد آرم سازگار با محیط برنامه نویسی Arduino IDE کار را برای توسعه و برنامه نویسی برای میکروکنترلرهای ARM بسیار آسان می کنند. در عین حال این برد سرعت و قابلیت های بسیار زیادی را نسبت به بزد Arduino Uno دارد. برد توسعه Maple mini برای پروگرام شدن نیازی به پروگرامرهای ST-link یا uLink ندارد و به راحتی از طریق پورت USB پروگرام می شود. سرعت پردازشی این برد بسیار بالا است و ماژول های جانبی بسیار زیادی مانند UART Timer و SPI و … دارد. قیمت این برد نسبت به کارایی اش بسیار ارزان قیمت است. برد Maple mini می تواند در بسیاری از پروژه های IoT ، اتوماسیون و هوشمند سازی و کارهای تحقیقاتی کاربرد داشته باشد.

آیا می خواهید یک برد Maple mini داسته باشید؟ اینجا کلیک کنید.

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

مازیار قنبری نژاد

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