انتخاب بهترین برد آموزشی برای شروع کار با arm

سلام. بنده قبل با میکروهای AVR کار کردم و الان میخوام یادگیری ARM را شروع کنم ولی بردهای آموزشی بسیار متنوعی موجود است.

خواستم راهنمایی بفرمایید برای شروع چه بردی مناسب است، البته نمیخوام هم به خاطر ۲۰۰-۳۰۰ تومان اختلاف قیمت بردی تهیه کنم که بعد با کمی پیشرفت نیاز به تهیه مجدد یک برد جدید داشته باشم.

ممنون از راهنمایی شما

سلام

اگر تا الان با نرم‌افزار Arduino IDE کار کرده اید می توانید به سادگی میکروکنترلر های ARM را برنامه نویسی کنید.

نرم افزار:

اولین قدمی که باید بردارید نصب لایبراری STM32 بر روی Arduino IDE می باشد.

ابتدا روی گزینه Preferences کلیک کنید.

سپس بر روی گزینه زیر کلیک کنید.

در صفحه باز شده لینک زیر را کلیک کنید.

https://github.com/stm32duino/BoardManagerFiles/raw/main/package_stmicroelectronics_index.json

سپس تمامی موارد را تایید کنید.

به صفحه اول آردوینو برگردید و بر روی گزینه زیر کلیک کنید.

در صفحه باز شده STM را سرچ کنید و بر روی گزینه Install کلیک کنید.

صبر کنید تا فایل ها دانلود و نصب شود.

پس از نصب شدن در لیست برد های شما STM32 اضافه می شود و می توانید بر اساس مدل میکروکنترلر خود انتخاب کنید تا پروگرام انجام شود.

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

https://github.com/stm32duino/Arduino_Core_STM32

سخت افزار

برای استفاده از انواع میکرو کنترلر های STM پیشنهاد میکنم از ST-Link برای پروگرام کردن استفاده نمایید.
البته می توانید از USB-TTL نیز استفاده کنید اما دردسر های زیادی دارد و پروسه انجام این کار زیاد می باشد.

ST-Link انواع مختلفی دارد یک نمونه را در این لینک قرار داده ام ، تفاوتی بین مدل ها ندارد.

معروف ترین نوع STM32 نیز STM32F103C8T6 می باشد که به صورت ماژولی با اسم BluePill نیز شناخته می شود.

این میکروکنترلر به دلیل داشتن آموزش های زیاد و ریسورس های بالا بسیار مورد توجه است و به دلیل قیمت مناسبی که دارد از محبوبیت خاصی برخوردار است. برای افرادی که میخواهد با ARM شروع کنند این مدل را پیشنهاد میکنم

لینک STM32f103C8T6 ، البته توجه داشته باشید مدل های متفاوتی از این محصول وجود دارد اما میکروکنترلر اصلی تمامی این موارد یکی می باشد و کارایی که دارند یکی می باشد.

راه اندازی میکرو کنترلر

پس از انجام تمامی موارد بالا ابتدا با نصب درایور ST-Link و نصب برنامه STM32CubeProgrammer بر روی سیستم خود آماده استفاده از این میکروکنترلر هستید.

لینک دانلود درایور ST-Link (برای دانلود نیاز دارید در سایت ST.com ثبت نام کنید)

لینک دانلود STM32CubeProgrammer (برای دانلود نیاز دارید در سایت ST.com ثبت نام کنید)

با انتخاب تنظیمات زیر و زدن دکمه آپلود می توانید برد را پروگرام کنید.

برای نمونه کافی است نمونه کد Blink را باز کنید و در ابتدای کد دستور زیر را وارد کنید.

#define LED_BUILTIN PC13

این دستور تعریف میکند که LED بر روی پایه PC13 قرار دارد.

 

نکته

گاهی امکان دارد ST-Link میکروکنترلر شما را شناسایی نکند این به دلیل قدیمی بودن فریور ST-Link می باشد و برای آپدیت کردن فریمور کافی است برنام STM32CubeProgrammer را باز کنید و بر روی گزینه Firamware Upgrade کلیک کنید و در صفحه باز شده حالا ST-Link را وصل کنید و بر روی گزینه Open In Update Mode بزنید و در بخش پایین ورژن پروگرامر شما و ورژنی که میخواهد آپدیت شود را نمایش داده می شود.

نرم‌افزار فریمور آپدیت را می توانید از این لینک نیز دانلود کنید.

 

امیدوارم سؤال شما را پاسخ داده باشم

 

1 پسندیده

ARM Cortex سری m همه شون خوبن. نکته جدید این پردازنده ها اینه که شما میتونید الگوریتم های هوش مصنوعی (یادگیری عمیق و ... ) تنسورفلو رو با کمی تغییرات توی مدل شبکه به TFLite تبدیل کنید که قابل پیاده سازی توی میکروکنترلر با منابع محدود بشه. چیزی که بهش tinyml میگن.

پیشنهاد من کیت دیسکاوری STM32F746G به دلیل کانکتورهای زیاد و پردازنده قویتر ARM Cortex M7 هست. چیزی که به احتمال زیاد شما رو بی نیاز میکنه از خرید میکروکنترلر دیگه ای از ARM تا سال ها.

اگر برای پروژه های کوچکتری میخواید، Arduino nano 33 BLE Sense هم گزینه مناسبیه که پردازنده ش بر اساس معماری m4f هست و یک سری سنسور با مصرف انرژی بسیار کم در روی بورد قرار گرفته. 

1 پسندیده

با سلام خدمت شما دوست عزیز 

برای شروع کار با میکروکنترلرهای ARM می‌تونید از بردهای توسعه آنها استفاده کنید. 
سه تا برد توسعه مهم برای ARM ها برای شما قابل استفاده است:

1- Blue-Pill:
میکروی این برد STM 32f103 هستش. طراحی این برد مینیمال هست و هیچ امکانات و سوکت های جانبی خاصی نیز ندارد. برای پروگرام کردن این برد باید یک پروگرامر ST-Link-V2 استفاده کنید. جهت پروگرام نیز می‌توانید از نرم‌افزار Arduino IDE  بهره بگیرید.
برای کسی که می‌خواهد تازه شروع کند، این برد پیشنهاد نمی‌شود.
نمونه موجود آن در سایت: https://thecaferobot.com/store/stm32f103c8t6-arm-board

2-Discovery: 
این بردهای توسعه همه ی امکانات و اتصال مورد نیاز را برای کاربر فراهم می‌کند. در ضمن بر روی برد نیز پروگرامر قرار داده و شما نیازی تهیه پروگرامر ندارید.
مدل های مختلف آن امکانات مختلفی را برای شما فراهم می‌کند. 
برای نمونه یک مدل داری نمایشگر با میکروی STM32F429I در سایت موجود می‌باشد: 
https://thecaferobot.com/store/32f429idiscovery-discovery-kit-for-stm32-stm32f429zi
این برد به علت امکانات کامل برای کسانی می‌خواهند تازه شروع و ادامه دهند، گزینه مناسبی می‌باشد. 

3-Nucleo:  
این برد ها هم مثل بردهای Discovery دارای پروگرامر می‌باشد. در ضمن بر روی این برد پایه های مناسب جهت اتصال شیلدهای آردوینو Uno هم وجود دارد که این خود یک مزیت محسوب می‌شود. 
رنج قیمتی آن تقریبا در همان رنج Discovery است. 
یک نمونه آن Nucleo f446re است: https://www.esys.ir/Product_Detail.aspx?Type=1&Id=1739 
این برد ها هم برای شروع کار کامل و مناسب می‌باشند. 

 

اگه بخوام یه جمع‌بندی بکنم با توجه به اینکه مدل ها و تنوع بردهای Discovery بیشتره و در ایران هم بیشتر از این ماژول ها موجوده، پیشنهاد بنده اینه که میتونید با یکی از مدل های Discovery شروع کنید. و گزینه بعدی انتخابتان هم می‌تواند بردهای Nucleo باشد.