در این پست از سایت اِمیک, یک پست آموزشی با عنوان آشنایی با میکروکنترلر STM32F103C8T6 قرار داده شده است. میکروکنترلرها یکی از اجزای اصلی سیستمهای الکترونیکی مدرن هستند. در ابزارهای هوشمند، تجهیزات صنعتی، دستگاههای پزشکی و حتی پروژههای آموزشی، تقریباً همیشه میکروکنترلری در پسزمینه فعالیت دارد.
در بین برندها و خانوادههای مختلف، میکروکنترلرهای STM32 از شرکت STMicroelectronics به دلیل قدرت پردازش بالا، امکانات زیاد و قیمت مناسب، محبوبیت ویژهای در میان مهندسان پیدا کردهاند.
یکی از معروفترین مدلهای این خانواده، STM32F103C8T6 است. در این پست آموزشی، به صورت کامل با مشخصات، قابلیت ها و ویژگیهای اصلی این میکروکنترلر آشنا میشویم.

معرفی میکروکنترلر STM32F103C8T6
STM32F103C8T6 یک میکروکنترلر ۳۲ بیتی بر پایهی هستهی ARM Cortex-M3 است که در خانوادهی STM32F1 (سری Performance Line) قرار دارد.
این تراشه تا ۷۲ مگاهرتز فرکانس کاری را پشتیبانی میکند و با توان مصرفی پایین، در پروژههای قابل حمل و تغذیه شده با باتری نیز کاربرد دارد.
ولتاژ کاری آن بین ۲ تا ۳٫۶ ولت است و معمولاً با ۳٫۳ ولت تغذیه میشود. این مدل در پکیج LQFP-48 عرضه میشود و دارای ۴۸ پایه است که حدود ۳۷ پایه آن قابل تنظیم بهعنوان ورودی یا خروجی (GPIO) هستند.
حافظهها و ساختار ذخیره سازی
STM32F103C8T6 از نظر حافظه نسبت به قیمتش عملکرد خوبی دارد:
- Flash Memory (حافظه فلش):
۶۴ کیلوبایت حافظهی برنامهپذیر برای ذخیرهی کد اصلی, این حافظه غیرفرار است و پس از خاموش شدن دستگاه، دادهها را حفظ میکند. - SRAM:
دارای ۲۰ کیلوبایت حافظهی RAM برای نگهداری موقت دادهها و متغیرها در هنگام اجرای برنامه. - Bootloader داخلی:
این میکروکنترلر دارای بوت لودر از پیش نصب شده در ROM است و میتواند از طریق USART، USB یا CAN پروگرام شود.
پایهها و ورودی/خروجیها (GPIO)
این تراشه دارای پایههای چندمنظوره (Multipurpose Pins) است که بسته به تنظیمات نرمافزاری میتوانند عملکردهای متفاوتی داشته باشند.
انواع حالتهای پایهها شامل:
- ورودی دیجیتال با Pull-up یا Pull-down داخلی
- خروجی دیجیتال (Push-Pull یا Open-Drain)
- عملکرد جایگزین (Alternate Function) برای واحدهای ارتباطی مانند SPI یا USART
- ورودی آنالوگ برای ADC
هر پایه قابلیت جریان دهی تا حدود ۲۰ میلی آمپر را دارد و میتواند در کاربردهای منطقی و کنترلی مورد استفاده قرار گیرد.
مبدل آنالوگ به دیجیتال (ADC)
STM32F103C8T6 دارای دو واحد ADC با دقت ۱۲ بیت است که در مجموع ۱۶ کانال ورودی آنالوگ را پشتیبانی میکنند.
ویژگیهای مهم ADC:
- نرخ نمونه برداری تا ۱ مگا نمونه بر ثانیه (1Msps)
- قابلیت Scan Mode برای خواندن چندین ورودی پشت سرهم
- پشتیبانی از DMA برای انتقال داده بدون دخالت CPU
- کانال داخلی برای اندازهگیری دمای تراشه و ولتاژ مرجع داخلی (Vrefint)
این امکانات باعث میشود این میکروکنترلر برای کار با سنسورهای آنالوگ بسیار مناسب باشد.
تایمرها و واحد زمان سنجی
در این میکروکنترلر مجموعهای از تایمرهای دقیق و متنوع وجود دارد که برای کنترل زمان، تولید PWM و شمارش پالسها استفاده میشوند:
- ۳ تایمر عمومی ۱۶ بیتی برای شمارش یا تولید سیگنال PWM
- ۱ تایمر ۳۲ بیتی برای کاربردهایی با دقت زمانی بالا
- ۲ تایمر پیشرفته (Advanced Timers) مخصوص کنترل موتور
- واچ داگ (Watchdog Timers) برای جلوگیری از هنگ کردن سیستم
- RTC (Real-Time Clock) برای نگهداری زمان واقعی با کریستال ۳۲٫۷۶۸kHz
این مجموعه تایمرها باعث میشود بتوان از STM32F103C8T6 در کاربردهایی مانند کنترل سرعت موتور، تولید پالس، اندازهگیری زمان و ایجاد وقفههای دقیق استفاده کرد.
واحدهای ارتباطی
STM32F103C8T6 مجموعهی کاملی از رابطهای ارتباطی را درون خود دارد و میتواند با انواع سنسورها و ماژولها ارتباط برقرار کند.
- USART / UART (سه واحد):
برای ارتباط سریال با سرعت تا ۴٫۵ مگابیت بر ثانیه.
(مناسب برای ماژولهایی مانند GPS، بلوتوث، GSM و کامپیوتر) - SPI (دو واحد):
برای ارتباط پرسرعت با حافظهها، نمایشگرها و مبدلها تا ۱۸ مگابیت بر ثانیه. - I²C (دو واحد):
برای سنسورهایی که از پروتکل I2C استفاده میکنند، با سرعت تا ۴۰۰kHz. - CAN Bus (یک واحد):
جهت کاربردهای صنعتی و خودرویی (پشتیبانی از CAN 2.0A/B). - USB 2.0 Full Speed Device:
پشتیبانی از اتصال به رایانه به صورت دستگاه USB (مثل پورت سریال مجازی). - رابط برنامه نویسی و دیباگ (JTAG / SWD):
برای پروگرام و اشکال زدایی از طریق ابزارهایی مانند ST-Link V2.
منابع کلاک (Clock Sources)
منابع تولید فرکانس در این میکروکنترلر بسیار متنوعاند و به کاربر اجازه میدهند بین دقت بالا و مصرف توان پایین یکی را انتخاب کند.
- HSI (High-Speed Internal): نوسان ساز داخلی ۸MHz
- HSE (High-Speed External): کریستال خارجی تا ۲۵MHz
- LSI (Low-Speed Internal): نوسان ساز داخلی ۴۰kHz برای واچ داگ
- LSE (Low-Speed External): کریستال خارجی ۳۲٫۷۶۸kHz برای RTC
- PLL: برای افزایش فرکانس کاری تا ۷۲MHz
این ساختار انعطافپذیر به طراحان اجازه میدهد بین کارایی و مصرف انرژی تعادل برقرار کنند.
واحد دسترسی مستقیم به حافظه (DMA)
STM32F103C8T6 دارای ۷ کانال DMA است که به واحدهای جانبی (مثل ADC، USART یا SPI) اجازه میدهد دادهها را بدون دخالت CPU منتقل کنند.
استفاده از DMA باعث افزایش سرعت سیستم و کاهش بار پردازنده در عملیات سنگین میشود.
مصرف توان و حالتهای کم مصرف (Low Power Modes)
برای صرفه جویی در انرژی، این تراشه از چند حالت کاری مختلف پشتیبانی میکند:
| حالت کاری | توضیح | جریان مصرفی تقریبی |
|---|---|---|
| Run Mode | اجرای کامل برنامه در ۷۲MHz | حدود ۳۰–۴۰mA |
| Sleep Mode | توقف CPU، فعال بودن پریفرال ها | چند ده µA |
| Stop Mode | توقف بیشتر بخش ها | حدود ۲µA |
| Standby Mode | کمترین مصرف، تنها RTC فعال | کمتر از ۱µA |
به لطف این حالتها، میتوان از STM32F103C8T6 در سیستمهای با تغذیه از باتری و در طولانی مدت استفاده کرد.
ویژگیهای حفاظتی و نظارتی
برای افزایش پایداری و امنیت سیستم، امکانات حفاظتی مختلفی در این میکروکنترلر تعبیه شده است:
- Watchdog Timer برای جلوگیری از هنگ کردن برنامه
- Brown-Out Reset برای مقابله با افت ولتاژ تغذیه
- Memory Protection برای جلوگیری از دسترسی غیرمجاز به حافظه
- Reset کنترل شده از چند منبع (نرمافزاری، خارجی، توان ورودی)
مشخصات فیزیکی و شرایط کاری
- نوع پکیج: LQFP-48
- ولتاژ کاری: ۲٫۰ تا ۳٫۶ ولت
- محدوده دمای کاری: ۴۰- تا ۸۵+ درجه سانتیگراد
- فرکانس کاری: تا ۷۲ مگاهرتز
- مقاومت بالا در برابر تداخلات الکترومغناطیسی (EMC) و تخلیه الکترواستاتیکی (ESD)
جمع بندی و نتیجه گیری
میکروکنترلر STM32F103C8T6 ترکیبی از قدرت پردازشی بالا، امکانات متنوع و قیمت مناسب را ارائه میدهد.
با پشتیبانی از هستهی ARM Cortex-M3، واحدهای ارتباطی گوناگون، تایمرهای پیشرفته، مبدلهای دقیق ADC و حالتهای کممصرف،
این تراشه یکی از بهترین گزینهها برای ورود به دنیای میکروکنترلرهای ۳۲ بیتی است.
اگر تا امروز با میکروکنترلرهای AVR یا PIC کار کردهاید و میخواهید قدم بعدی را به سمت معماریهای پیشرفتهتر بردارید،
STM32F103C8T6 انتخابی هوشمندانه و کاربردی است.
جدول خلاصه مشخصات کلیدی STM32F103C8T6
| ویژگی | مقدار / توضیح |
|---|---|
| هسته پردازنده | ARM Cortex-M3 (۳۲ بیتی) |
| فرکانس کاری | تا ۷۲ مگاهرتز |
| حافظه فلش (Flash) | ۶۴ کیلوبایت |
| حافظه RAM (SRAM) | ۲۰ کیلوبایت |
| تعداد پایهها | ۴۸ پایه (LQFP-48) |
| تعداد پایههای GPIO | حدود ۳۷ پایه قابل استفاده |
| واحد ADC | دو مبدل ۱۲ بیتی با مجموع ۱۶ کانال |
| تایمرها | ۳ تایمر عمومی + ۱ تایمر ۳۲ بیتی + تایمرهای پیشرفته |
| واحدهای ارتباطی | USART ×3، SPI ×2، I²C ×2، CAN ×1، USB 2.0 FS |
| واحد DMA | ۷ کانال DMA مستقل |
| منابع کلاک | HSI، HSE، LSI، LSE، PLL (تا ۷۲MHz) |
| ولتاژ کاری | ۲ تا ۳٫۶ ولت (معمولاً ۳٫۳V) |
| محدوده دمای کاری | ۴۰- تا ۸۵+ درجه سانتیگراد |
| توان مصرفی در حالت Sleep | در حد چند میکروآمپر |
| قابلیتهای حفاظتی | Watchdog، Brown-Out Reset، Memory Protection |
| رابط برنامه نویسی | JTAG / SWD |
| کاربردهای رایج | کنترل موتور، دادهبرداری، IoT، سیستمهای صنعتی |
نظر یادتون نره…




