دیتا شیت فارسی میکروکنترلر 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  هم انجام داد.