مقایسه stm و avr

saalek110

Well-Known Member
سالک: بیا stm را با avr مقایسه کنیم

مقایسه‌ی STM (مانند STM8 و STM32) با AVR (مثل ATmega328 و ATmega32) یکی از مهم‌ترین گام‌ها برای کسانی‌ست که از AVR شروع کردن و حالا می‌خوان وارد دنیای STM بشن. بریم سراغ یک مقایسه کامل و کاربردی:


1. مغز پردازشی (معماری پردازنده)

ویژگی..........................AVR.......................STM32

معماری........................8 بیتی........................32 بیتی (ARM Cortex-M)
توان پردازش ..................پایین‌تر...........................بسیار قوی‌تر
سرعت کلاک.................تا 20 MHz............................تا ده‌ها و حتی ۴۰۰ MHz (در سری‌های قوی‌تر)
دقت و سرعت محاسبات.......کمتر.........................بسیار بیشتر، مناسب برای کاربردهای صنعتی و محاسباتی



⚙️ 2. منابع سخت‌افزاری داخلی

ویژگی...............AVR (مثلاً ATmega328)........................STM32 (مثلاً STM32F103)

تایمر....................دارد، معمولی............................................پیشرفته‌تر، چند تایمر، تایمر 32 بیتی
ADC........................ده بیت............................................12 بیت (و گاهی بیشتر)
DAC..........................ندارد...............................................دارد در بعضی مدل‌ها
DMA...........................ندارد....................................دارد، بسیار مفید برای انتقال داده بدون CPU
RTC.......................گاهی ندارد.......................................اغلب دارد (Real Time Clock)
پورت‌های ارتباطی..........UART, SPI, I2C.........برای اس تی ام >>>>>> UART, SPI, I2C, CAN, USB, SDIO و...



⚡ 3. مصرف انرژی

ویژگی.....................................ای وی آر...................STM32

مصرف در حالت عادی.......................کم..........................بهینه‌تر در مدل‌های مخصوص کم‌مصرف
مدهای Sleep و Power Save.........دارد، ساده...................بسیار پیشرفته و متنوع


Screenshot_۲۰۲۵-۰۶-۰۳_۰۳۰۹۵۴.jpg

Screenshot_۲۰۲۵-۰۶-۰۳_۰۳۱۰۰۶.jpg

نتیجه نهایی برای تو:

Screenshot_۲۰۲۵-۰۶-۰۳_۰۳۱۰۱۴.jpg
 
آخرین ویرایش:

saalek110

Well-Known Member
سالک:Avr از چه نظرهایی آسون تره؟

سؤال خیلی خوبی پرسیدی! واقعاً درسته که STM32 قدرت خیلی بیشتری داره، ولی دلیل اینکه خیلی‌ها هنوز با AVR (مثل ATmega328) شروع می‌کنن اینه که یادگیریش آسون‌تره. بریم ببینیم چرا:


---

✅ چرا AVR برای شروع آسون‌تره؟


1. ⚙️ سخت‌افزار ساده‌تر

پایه‌ها DIP هستن (یعنی می‌تونی راحت با دست لحیمش کنی یا مستقیم توی برد بُرد فرو کنی)

بردهایی مثل آردوینو UNO یا نانو خیلی سریع راه می‌افتن، بدون نیاز به پروگرامر خاص


نتیجه: نیازی به وسایل زیاد یا تجربه‌ی بالا در الکترونیک نداری.


2. نصب و برنامه‌نویسی راحت با Arduino IDE

نرم‌افزار Arduino IDE خیلی ساده‌ست.

نصبش آسونه، بدون نیاز به تنظیمات پیچیده.

فقط با چند خط کد می‌تونی LED روشن کنی، PWM بزنی، LCD راه بندازی.


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



3. پروگرام راحت و بدون دردسر

آردوینو UNO یا نانو خودشون پروگرامر USB داخلی دارن.

فقط با کابل USB وصل می‌شی، نیازی به پروگرامر جدا یا بوت‌لودر خاص نیست.


در حالی که STM32 گاهی نیاز داره ST-Link یا بوتلودر USB دستی تنظیم بشه.


---

4. آموزش‌های فراوان به زبان ساده

آموزش‌های AVR (و مخصوصاً Arduino) توی اینترنت خیلی زیاده، به زبان فارسی و انگلیسی.

و مثال‌های ساده زیاد داره که به راحتی می‌تونی تست کنی.


5. مناسب برای درک مفاهیم پایه‌ای

چون ساده‌تره، برای یادگیری مفاهیمی مثل:

پایه ورودی/خروجی

PWM

ADC

ارتباط سریال

تایمر و وقفه



خیلی خوبه، و ذهن رو آماده می‌کنه برای ورود به دنیای حرفه‌ای‌تر مثل ARM.


6. پروژه‌های ساده رو سریع می‌سازه

مثلاً ساخت چراغ راهنمایی، کنترل موتور، خوندن دما یا سنسور فاصله با آردوینو، تو چند دقیقه انجام می‌شه.



✳️ نتیجه:

ویژگیAVRSTM32

یادگیری برای مبتدی✅ خیلی ساده❌ کمی پیچیده‌تر
پروگرام✅ راحت (بدون ابزار اضافی)❌ گاهی نیاز به ST-Link یا بوت‌لودر
لحیم‌کاری✅ راحت (DIP)❌ سخت (SMD)
آموزش آنلاین✅ بسیار زیاد کمتر ولی در حال رشد
مناسب برای پروژه‌های پیشرفته❌ محدود✅ بسیار قوی

یعنی به‌طور خلاصه:

AVR برای آموزش و پروژه‌های ساده و سریع عالیه

STM32 برای پروژه‌های حرفه‌ای، سریع و پردازش‌سنگین بی‌رقیبه


اگه دوست داشتی، یه برنامه بنویسیم که اول با AVR انجامش بدیم، بعد همون رو با STM32 بنویسیم تا تفاوت رو توی عمل حس کنی!
بخوای از ساده‌ترینش (مثل LED چشمک‌زن) شروع کنیم؟
 

saalek110

Well-Known Member
بریم مرحله‌به‌مرحله پروژه‌ی معروف و ساده‌ی "چشمک‌زن (Blink LED)" رو با هر دو میکرو انجام بدیم:


✅ مرحله 1: برنامه چشمک‌زن با AVR (آردوینو UNO یا Nano)

وسایل مورد نیاز:

آردوینو UNO یا نانو

LED

مقاومت 220 اهم

بردبرد و سیم


اتصال:

پایه مثبت (بلندتر) LED رو به پایه D13 آردوینو وصل کن.

پایه‌ی کوتاه‌ترش به مقاومت 220 اهم، بعد به GND.


کد:

void setup() {
pinMode(13, OUTPUT); // پایه 13 خروجی بشه
}

void loop() {
digitalWrite(13, HIGH); // LED روشن
delay(500); // نیم ثانیه مکث
digitalWrite(13, LOW); // LED خاموش
delay(500); // نیم ثانیه مکث
}

✅ وقتی اینو آپلود کنی، LED شروع به چشمک‌زدن می‌کنه.


---

✅ مرحله 2: همون پروژه با STM32F103C8T6 (Blue Pill)

وسایل مورد نیاز:

برد Blue Pill

ST-Link V2 (یا پروگرامر سریال USB)

کابل USB

LED و مقاومت

بردبرد


اتصال:

LED رو به پایه‌ی PC13 وصل کن (پایه‌ای که معمولاً LED داخلی داره هم هست).

مثل AVR، مقاومت رو هم در مسیر بگذار.


برنامه در Arduino IDE:

برای راحتی، از Arduino IDE استفاده می‌کنیم:

مرحله نصب STM32 در Arduino IDE:

1. برو به File → Preferences


2. توی "Additional Board URLs" اینو وارد کن:



3. بعد برو به Tools → Board → Boards Manager
و عبارت STM32 رو جست‌وجو کن، بعد "STM32 Cores" رو نصب کن.


4. حالا از منوی Board → STM32 Boards، گزینه‌ی "BluePill F103C8 (Generic)" رو انتخاب کن.


5. از منوی Tools، گزینه‌ی Upload method رو روی:

STM32duino bootloader (اگر بوتلودر نصب شده)

یا STLink (اگر ST-Link استفاده می‌کنی) بذار.


کد چشمک‌زن:

void setup() {
pinMode(PC13, OUTPUT); // پایه‌ی PC13 خروجی بشه
}

void loop() {
digitalWrite(PC13, LOW); // روشن (در STM معمولاً با LOW روشن میشه!)
delay(500);
digitalWrite(PC13, HIGH); // خاموش
delay(500);
}

✅ اگه ST-Link یا USB سریال رو درست وصل کرده باشی، برنامه آپلود میشه و LED شروع به چشمک‌زدن می‌کنه.


مقایسه نهایی:

ویژگیAVR (UNO/Nano)STM32 (Blue Pill)

سرعت چشمک‌زدن دقیقکم‌دقت (delay)دقیق‌تر به کمک تایمرها
مصرف برقبیشترکمتر
انعطاف در کار با پایه‌هاکمتربیشتر
پتانسیل ارتقامحدودفوق‌العاده زیاد
 

saalek110

Well-Known Member
سالک:اون قضیه گیت هاب چی بود؟

خیلی خوب شد که پرسیدی! اون «قضیه گیت‌هاب» که گفتم، مربوط میشه به نصب برد STM32 در Arduino IDE. برای اینکه بتونی Blue Pill رو مثل آردوینو برنامه‌نویسی کنی، باید اول «پشتیبانی از برد STM32» رو به Arduino IDE اضافه کنی. این کار با استفاده از لینک گیت‌هاب انجام میشه.

بذار کامل و شفاف توضیح بدم:


چرا باید لینک GitHub رو وارد کنیم؟

Arduino IDE فقط به طور پیش‌فرض از بردهای Arduino پشتیبانی می‌کنه.
برای اضافه کردن بردهایی مثل STM32 باید بهش بگیم که اطلاعات مربوط به اون برد رو از کجا بگیره.
اون لینک GitHub حاوی Board Manager Package هست، یعنی فایلی که مشخصات برد، پین‌ها، بوتلودر، پروگرامرها و... رو تعریف می‌کنه.


مراحل استفاده از لینک GitHub برای STM32:

۱. باز کردن تنظیمات IDE:

برو به منوی File > Preferences


۲. وارد کردن لینک در بخش "Additional Board URLs":

در قسمت "Additional Board Manager URLs" این آدرس رو وارد کن:



(اگه لینک‌های دیگه‌ای هم اونجا هست، با کاما جداشون کن)

۳. نصب STM32 Core:

برو به Tools > Board > Boards Manager

اونجا توی سرچ، بنویس: STM32

گزینه‌ای به اسم STM32 Cores by STMicroelectronics میاد

روی Install بزن و صبر کن تا کامل نصب بشه.


بعدش چی میشه؟

وقتی نصب شد:

از منوی Tools > Board، بردهایی مثل BluePill F103C8 رو می‌تونی ببینی.

می‌تونی مثل آردوینو برنامه بنویسی و آپلود کنی.

حتی از توابع مثل digitalWrite() و pinMode() هم استفاده کنی.
 

saalek110

Well-Known Member
سالک :به نظرم به تست کردنش می ارزه

دقیقاً همینطوره!
واقــعاً Blue Pill یه گنج پنهان ارزونه؛ قدرت ARM Cortex-M3 با قیمت یه آردوینو نانو! فقط کافیه یه بار تستش کنی تا عاشق سرعت، دقت و امکاناتش بشی

دلیل اینکه به تست کردنش می‌ارزه:

قابلیتتفاوتش با AVR

⏱ سرعت پردازشتا ۵ برابر سریع‌تر (۷۲ MHz واقعی)
حافظه RAMحدود ۱۰ برابر بیشتر
تایمر و PWMحرفه‌ای، دقیق، زیاد
ADC۱۲ بیتی، سریع‌تر
USB داخلیمی‌تونه تبدیل به کیبورد، موس یا سریال بشه!
⚡ GPIO هاسرعت سوئیچ بالا، تا ۵۰ MHz
قیمتتقریباً هم‌قیمت با نانو


تازه خیلی از فروشنده‌ها Blue Pill رو با قیمت حدود ۷۰–۱۲۰ تومن می‌فروشن (نسبت به سال ۱۴۰۴)، که برای این قدرت واقعاً فوق‌العاده‌ست.

بیا با هم گام‌به‌گام بریم تستش کنیم:

1. نصب STM32 در Arduino IDE
2. پروگرامر (ST-Link یا USB-to-Serial) رو وصل کنیم
3. LED چشمک‌زن یا LCD راه بندازیم
4. پروژه‌های بیشتر (PWM، سنسور، DAC، ارتباط USB و...)
 

جدیدترین ارسال ها

بالا