دیتا شیت فارسی میکروکنترلر STM32F103
ویژگی ها:
1:هسته:
هسته مرکزی با استفاده از هسته CORTEX-M3 برای واحدCPU که با سرعت حداکثر 72 مگا هرتز با کارایی 1.25MIPS
بر هر کلاک
توضیح:ظاهرا با رجوع به منابع امکان اور کلاک کردن تا بیش از 100 مگا هرتز هم امکان پذیر است که ممکن است دما بدنه تا حد زیادی بالا رود و در کل حداکثر فرکانس تایید شده 72 مگاهرتز است و بیش از این ممکن است صدماتی را به هسته وارد کند.
کارایی دسترسی CPU به حافظه FLASH یا RAM بدون تاخیر(تاخیر بسیار پایین در حد نانو ثانیه)
ضرب دوره ای همراه با تقسیم سخت افزاری در CPU (برای محاسبات ضربی و تقسیمی)
2:حافظه ها:
یک حافظه FLASH با ظرفیت 64 یا 128 کیلو بیتی مثلا STM32F103VBT6 دارای 128 کیلو بیت حافظه است و نمونه STM32F103RBT6 دارای 64 کیلو بیت حافظه FLASH می باشد.
یک حافظه SRAM با سرعت بالا و با حجم یکسان در تمامی مدل ها معادل 20 کیلو بیت
3:مدیریت کلاک , ریست و تغذیه خودکار:
ولتاژ تغذیه بین 2.0 تا 3.6 ولت که ولتاژ VDD برابر است با ولتاژ I/O ها – در ضمن با کاهش ولتاژ و کمتر شدن آن از 2 ولت و همچنین با افزایش ولتاژ تا بیش از 3.6 ولت واحد مدیریت تغذیه میکروکنترلر را خاموش خواهد کرد همچنین حداکثر مقدار ولتاژ بر روی پایه VDD 5 ولت و حداقل آن -0.3 ولت است.
دارای واحد های فرعی مدیریت حافظه مانند PVD ( PROGRAMABLE VOLTAG DETECTOR) دتکتور ولتاژ قابل برنامه ریزی برای تغییر دادن ولتاژ خاموش کننده میکروکنترلر
امکان اتصال کریستال کوارتز بین 4 تا 16 مگاهرتز
دارای اسیلاتور 8 مگاهرتزی داخلی کالیبره شده توسط کارخانه سازنده
اسیلاتور فرکانس پایین 40 کیلو هرتزی RC ایجاد کننده کلاک مستقل برای تایمر سگ نگهبان
یک PLL برای ایجاد کلاک سیستم CPU با استفاده از کلاک اصلی اسیلاتور مورد استفاده
یک اسیلاتور RTC و کالیبره شده 32 کیلوهرتزی به همراه یک پایه سخت افزاری باتری پشتیبان از پیش تعیین شده
4:مصرف توان پایین:
دارای مد های SLEEP , STOP & STANBY با OPTION های مختلف برای موقعیت های متفاوت
یک باتری پشتبان برای پشتیبانی از رجیستر RTC در زمان نبود VDD برای نگه داشتن TIME یا DATE
5:مبدل های آنالوگ به دیجیتال:
ADC 2*12BIT با تایم تاخیر 1 میکرو ثانیه و تا 6 کانال – میکروکنترلر STM32F103VBT6 دارای 6 کانال ADC است.
رنج ولتاژ قابل تبدیل از 0 تا 3.6 ولت
قابلیت DUAL-SAMPLE یعنی گرفتن 2 نمونه در هر کلاک و همچنین توانایی نگه داشتن در یک بازه زمانی (HOLD)
سنسور دمای داخلی برای اندازه گیری دمای محیط یا دمای بنده میکروکنترلر
6-DMA :
7 کانال های DMA برای عدم اشغال شدن CPU حین کار کردن یکی از واحد های سخت افزاری تایمر ها , مبدل های آنالوگ به دیجیتال , SPIs , I2Cs , USARTs
7-تا 80 پین ورودی و خروجی :
37/51/80 ورودی خروجی در مدل های مختلف – STM32F103VBT6 دارای 80 I/Os است.
قابل استفاده 16 بین از تمام I/O ها برای اینتراپت
آزادی اتصال ولتاژ تا 5 ولت به هر I/O های مخصوص
9-واحد دیباگینگ:
دیباگ از طریق پورت سریال UART و دارای اینترفیس JTAG
10-7 عدد تایمر :
3 تایمر 16 بیتی همه منظوره هر کدام تا چهار OC/PWM یا شمارنده پالس یا ورودی انکودر
تایمر 16 بیتی برای راه اندازی موتور همراه با سیستم ترمز سریع موتور (FAST STOP)
2 سگ نگهبان (WATCH DOG) مستقل از CPU و دیگر قسمت ها
یک تایمر 24 بیتی downcounter به منظور system tick
11-تا 9 اینترفیس ارتباطی:
2 عدد باس I2C
3 عدد USART با پشتیبانی از ISO 7816 برای اتصال به کارت تلفن یا سیم کارت – قابلیت ir DA برای انتقال دیتا از طریق امواج مادون قرمز – ایجاد سیگنال های دیکو و انکود برای مودم های تلفنی
2 عدد SPI با سرعت 18 مگا بیت بر ثانیه
اینترفیس CAN ورژن 2.0B ACTIVE
یک اینترفیس USB FAST SPEED برای استفاده به صورت DEVICE
12-واحد محاسبات CRC با 96 بیت منحصر به فرد و بسته بندی به صورت ECOPAC – سازگار با محیط زیست
توصیف STM32F103 :
STM32F103 میکروکنترلر هایی با کارایی بالا می باشند که بر پایه سیستم CORTEX-M3 با ساختار RISK و حداکثر سرعت 72 مگا هرتز به همراه حافظه های بلادرنگ پرسرعت SRAM و FLASH با حجم به ترتیب تا 20 و 128 کیلو بیت می باشد.
همه سری ها دارای 2 عدد ADC 12 بیتی , 3 تایمر همه منظوره به همراه یک تایمر جداگانه PWM هستند و تمام مدل های استاندارد و پیشرفته حداکثر دارای 2 اینترفیس I2C و SPI – 3 عددUSART و یک USB OTG و یک CAN می باشند.
ولتاژ تغذیه استاندارد بین 2.0 تا 3.6 ولت است که با این ولتاژ در هر دو بازه -40 تا +85 سانتی گراد و -40 تا +105 سانتی گراد قابلیت ادامه وظیفه دارد همچنین مد POWER SAVING به ما اجازه طراحی یک سیستم کم مصرف کاربردی را می دهد.
خانواده STM32F103XXX به صورت 6 پکیج مختلف عرضه می شود که تعداد پین ها از حداقل 36 و تا 100 پین ادامه دارد و پکیج هایی به شکل LQFP & LFBGA قابل دسترس است.
با وجود این ویژگی ها میکروکنترلر های STM32F103 را می توان در موقعیت های بسیار وسیعی استفاده کرد که تعداد از آن ها را معرفی میکنیم:
1:راه انداز کاربردی موتور های DC و یا AC – مناسب برای مناطق پر نویز و صنعتی
2:کاربرد های پزشکی و تجهیزات دستی (پرتابل)
3:پیرامون سیستم های بازی(فرضا دسته های بیسیم کنسول ها) و مناسب برای پلت فرم GPS
4:کاربرد های صنعتی شامل : ساخت PLC , اینورتور های 3 فاز , چاپگر ها , اسکنر ها
5:کاربرد های عمومی: سیستم های هشدار دهنده , سیستم های محلی مخابره ویدئو و HIGH VOLTAG های AC
مقایسه مدل های مختلف خانواده STM32F103:
توضیحات تکمیلی:
CRC (cyclic redundancy check) calculation unitCRC (cyclic redundancy check) calculation unit
این ویژگی یک تکنیک است برای کاهش خطا اطلاعات ارسالی که اطلاعات ازسالی از FLASH را دوباره مقایسه میکند (VERIFY)
بدین صورت این معنی را می دهد که این ویژگی کمک می کند که SIGNTRUE یک نرم افزار را حین اجرا مقایسه کند و از صحت آن با خبر شود.
Embedded SRAM
یک حافظه با دسترسی تصادفی است که سرعت دسترسی CPU به آن صفر است(تاخیز زمانی بسیار کم است)
External interrupt/event controller
همان وقفه سخت افزاری است که شروع یا پایان یک حادثه را به ما گرازش می دهد , فرضا برای مدارات تشخیص عبور از صفر مشخص میکند که چه زمانی صفر عبور کرده است.
Clocks and startup
زمانی که میکروکنترلر ریستارت شود CPU به صورت دیفالت از کلاک داخلی 8 مگا هرتز استفاده می کند.
همچنین اگر در یک لحظه مشکلی برای اسیلاتور کریستالی خارجی با فرکانس 4 تا 16 مگا هرتز بیفتد میکروکنترلر به صورت اتوماتیک اسیلاتور خارجی را بر روی اسیلاتور داخلی سویچ می کند تا از وقفه حین کار جلوگیری شود.
Boot modes
هنگام شروع START-UP از طریق پین های BOOT0 و BOOT1 میکروکنترلر دستور میگیرد که از کدام یکی از DEVICE های موجود بوت شود که 3 نوع بوت وجود دارد:
1:بوت از USER FLASH
2:بوت از SYSTEM MEMORY
3:بوت از رویMEMORY SRAM
که SYSTEM MEMORY همان IN-SYSTEM-PROGRAMMIN است که با استفاده از USART1 میتوان بر روی FLASH برنامه را قرار داد
توضیح:این سیستم مشابه SAM-BA در میکروکنترلر های ATMEL و FLASH MAGIC در میکروکنترلر های NXP است.
Power supply schemes
ولتاژ VDD بایستی بین 2 تا 3.6 ولت باشد که این ولتاژ برای رگولاتور داخلی و پین های I\O استفاده خواهد شد.
برای استفاده از ADC بایستی ولتاژ تغذیه بیش از 2.4 ولت باشد
ولتاژ باتری پشتیبان RTC بابید می بایست بین 1.8 تا 3.6 ولت باشد تا هماره از رجیستر RTC در هنگام نبود تغذیه محافظت شود توجه داشته باشید که جریان قابل نگه داری باطری رابطه مستقیمی با میزان سر وپا نگه داشتن رجیستر RTC دارد بدین معنی که هر چقدر جریان باطری بیشتر باشد به تبع رجیستر RTC در تایم بیشتری محافظت خواهد شد ولی به طور معمول از یک باطری سکه یا یک باطری نیکل-کادیوم استفاده می شود.
داحد PVD (PROGRAMABLE VOLTAGE DETECTOR) یک سیستم مانیتورینگ و کنترل ولتاژ VDD است که خود به خود در هنگام ریست شدن میکروکنترلر شروع به کار میکند و در صورتی که ولتاژ VDD کمتر یا بیشتر از محدوده ولتاژ تعیین شده PVD باشد می تواند یک پیغام هشدار به CPU بفرستد که میتوان با برنامه ریزی این قسمت هنگام دریافت هشدار میکرو رو را ریست کرد (یا به کلی میکروکنترلر را خاموش کرد)
Voltage regulator
یک رگولاتور داخلی در نظر گرفته شده که وظیفه تامین ولتاژ کل در مد های مختلف تغذیه را به عهده دارد این رگولار همیشه بعد از هر بار ریست روشن خواهد شد و فقط در مد STANDBY خاموش می شود
Low-power modes
مد خواب: در این مد همه سیستم ها در حالت عادی به کار خود ادامه می دهند و فقط CPU خاموش است ولی به محض آن که یک اینتراپت خارجی دریافت شود CPU دوباره روشن می شود و به پردازش سیگنال ها می پردازد.
مد ایست: در این مد اکثر قسمت ها خاموش هستن و تمام قسمت های که با ولتاژ 1.8 ولت کار میکنند خاموش می شوند , PLL وکلیه واحد های مربوط به تولید کلاک از کار می افتند , رگولاتور ولتاژ هم می تواند روشن یا در کم مصرف ترین حالت تنظیم شود.
مد آماده به کار:در این مد از یک سری راه کار هایی استفاده می شود که کمترین توان مصرفی در عین حالی که قسمت هایی هنوز کار می کنند را برای ما ایجاد کند.
میکروکنترلر فقط در حالتی از مد آماده به کار خارج می شود که : میکروکنترلر ریست شود , یک پالس بالارونده بر روی پایه WAKEUP میکروکنترلر ایجاد شود یا این که RTC هنگام ایجاد زنگ هشدار دهنده باشد.
DMA
7 کانال DMA وجود دارد که برای استفاده های عمومی در نظر گرفته شده اند
توصیح در مورد DMA : DMA یک واحد سخت افزاری است که عملا واحد CPU را برای انتقال اطلاعات از سد راه بر میدارد فرض بگیرید که یک سری دیتا از USART وارد میکروکنترلر می شود و باید بر روی FLASH ذخیره شود که اگر بنا باشد هر بیت این اطلاعات وارد CPU این عمل باعث کاهش سرعت خواهد شد بدین صورت DMA سرعت انتقال و نگه داری اطلاعات را افزایش زیادی می دهد.
DMA ها میتوانند به 3 صورت مموری به مموری , از خارج به مموری و از مموری به خارج تنظیم شوند که هر 3 حالت آن در میکروکنترلر های STM32F103 قابل استفاده هستند.
RTC (real-time clock) and backup registers
رجیستر پشتیبانی(BACKUP REGISTER) از 10 رجیستر 16 بیتی تشکیل می شود و وقتی که VDD ولتاژی را ارئه ندهد 20 بایت از آن رجیستر برای ذخیره اطلاعات RTC مورد استفاده قرار میگیرد.
این 20 بایت شامل زمان , تاریخ و آلارم می باشد.
Timers and watchdogs
به طور معمول هر نوع از میکروکنترلر های STM32F103 شامل 3 تایمر همه منظوره , 2 تایمر سگ نگه بان و یک تایمر SYSTICK
مقایسه تایمر ها:
تایمر1: این تایمر می تواند برای راه اندازی موتور های 3 فاز به صورت PWM 6 کاناله مورد استفاده قرار بگیرد
توضیح:برای ساخت اینورتر های 1 فاز به 3 فاز نیاز به 6 ماسفت یا IGBT است که این میکروکنترلر می تواند هر 6 سیگنال مورد نیاز هر کدام را جداگانه تامین و پردازش کند.
البته این تایمر هم می تواند یک تایمر با مصارف عمومی باشد و همچنین چهار کانال مستقل نیز میتوانند برای مصارف زیر مورد استفاده بگیرد:
1:ورودی کپچر
2:خروجی کپچر
3:تولید کننده PWM به صورت لبه پایین رونده یا مد هم تراز مرکزی
4:مد تک پالسی
General-purpose timers (TIMx)
آن ها حداکثر 3 تایمر قابل همزمان سازی , همه کاره و بلادرنگ هستند که می توانند به صورت شمارنده پایین رونده یا بالارونده مورد استفاده قرار بگیرد
4 عدد از این تایمر ها می توانند به صورت مستقل برای کاربرد های دیگر مانند PWM , ورودی خروجی کپچر یا خروجی مقایسه کننده مورد استفاده قرار بگیرند , کانتر ها می توانند در هنگام استفاده از واحد DEBUG غیر قابل پاسخ گویی باشند(بلا استفاده بمانند)
در ضمن تمامی تایمر ها با مصارف عمومی می توانند به صورت PWM پیکره بندی شوند.
Independent watchdog
تایمر نگه بان بصورت یک کانتر 16 بیتی پایین رونده عمل می کند و دارای 8 بیت تقسیم گر (PRESCALER) است که میتوان با استفاده از این بیت ها تایم های مختلف را برای اجرا سگ نگه بان استفاده کرد
این تایمر کاملا مستقل عمل می کند و حتی کلاک خود را از یک اسیلاتور RC 40 کیلوهرتزی داخلی میگیرد و در هنگام مد های ایست و آماده به کار نیز کلاک مورد نیاز سگ نگه بان را تامین می کند.
این تایمر هنگام کار با قسمت DEBUG می تواند بلا استفاده باشد.
Window watchdog
این تایمر هم یک سگ نگه بان است با این تفاوت که کلاک خود را از کلاک سیستم CPU میگیرد و در اصل در مد های ایست و آماده نمیتواند کار کند.
این تایمر هنگام کار با قسمت DEBUG می تواند بلا استفاده باشد.
سخت افزار STM32F103 :
برای شروع کار با STM32F103 نیاز به یک سری زیر ساخت هایی خواهید داشت که موارد توصیه شده توسط STmicrocontrtoller را به عرض شما می رسانیم.
شماتیک تغذیه :
در میکروکنترلر STM32F103 حدودا بین 6 تا 10 پین مختلف برای تغذیه شامل VSS و VDD قرار داده شده است که بایستی تمام آن ها به جریان وصل بشوند , توصیه ST این است که به هر پین تغیه VDD یک خازن سرامیکی حدودا 100 نانو فاراد وصل شود که عملا باید هر کدام از این خازن ها در نزدیکترین فاصله پین های تغذیه قرار بگیرد همچنین باید یک خازن الکترولیت یا تانتالیوم با ظرفیت بیش از 4.7 میکروفاراد با تغذیه میکرو کنترلر موازی کرد.(استفاده از خازن تانتالیوم بهتر است)
برای استفاده از RTC نیاز به یک باتری دارید که البته در صورت عدم استفاده از RTC می توانید پین VBAT را آزاد بگذارید.
یک خازن حدودا 10 میکرو فاراد نیز توصیه شده به پین های تغذیه مبدل آنالوگ به دیجیتال متصل شود.
می توان تغذیه مبدل آنالوگ به دیجیتال را مستقیما به VDD متصل نمود:
اسیلاتور خارجی:
برای اتصال یک کریستال کوارتز خارجی نیاز به 2 خازن سرامیکی با ظرفیت پیشنهاد شده 30 پیکو فاراد توسط ST است که گذاشتن خازن را الزامی میکند ولی میتوان از ظرفیت ها دیگر خازن های سرامیکی(عدسی) فرضا بین 15 الی 33 پیکو فاراد استفاده کرد(به دلیل آن که خازن ها تلورانس زیادی دارند و در بعضی از وقت ها می تواند تا 50% هم تلورانس داشته باشد) برای مقدار فرکانس رزونانس هم , کریستال 8 مگا هرتز کوارتز پیشنهاد شده در ضمن در صورت استفاده از کریستال های 3 پایه نیازی به استفاده از خازن نیست.
کریستال خارجی RTC :
برای ایجاد کلاک RTC نیاز به یک اسیلاتور خارجی است که بایستی از یک کریستال RTC (کریستال ساعت) 32.768 کیلوهرتزی استفاده کرد , شماتیک پیشنهاد شده :
مقدار پیشنهاد شده خازن های سرامیکی بین 5 تا 15 پیکو فاراد است که می توان از مقادیر نزدیک مثلا 20 پیکو فاراد هم استفاده کرد.
توصیه شده حتما از خازن های سرامیکی با کیفیت بالا و تلورانس پایین استفاده شود تا دقت RTC افزایش یابد.
مدار ریست خارجی:
برای این که هر بار که میکروکنترلر روشن می شود یک بار ریست شود نیاز به یک خازن و مقاومت پول آپ می باشد که خوشبختانه مقاومت بالاکش در پین NRST قرار داده شده و فقط نیاز به یک خازن 100 نانو فاراد است ولی می توان از یک مقاومت بالا کش خارجی نیز استفاده کرد و در صورت نیاز یک میکرو سویچ برای ریست اختیاری را می توان قرار داد
پکیج های مختلف خانواده STM32F103 :
پکیج های مختلفی ارئه شده که به معرفی برخی از آن ها می پردازیم:
میکروکنترلر STM32F103C8T6 با پکیج LQFP-48PIN :
میکروکنترلر STM32F103RBT6 با پکیج LQFP64 :
میکروکنترلر STM32F103VBT6 با پکیج LQFP100 :
با توجه به این نکات یک شماتیک نمونه قرار می دهیم که فایل اصلی آن در ضمیمه قابل دسترس است:
توضیحات:
کلید S1 در شماتیک برای موارد راه اندازی بوت لودر مورد استفاده قرار میگیرد که به راحتی می توانید با استفاده از نرم افزار FLASH LOEADER که توسط ST بصورت رایگان در اخیار همگان قرار داده , از طریق پورت USART1 حافظه FLASH میکروکنترلر را برنامه ریزی کنید البته می توان از همین طریق DEBUGING هم انجام داد.