آموزش STM32آموزش های ARM

آموزش برنامه نویسی STM32 با پورت USB

سلام. آموزش برنامه نویسی STM32 با پورت USB را آماده کردیم.

آپلود کد روی STM32 با استفاده از USB

برد توسعه STM32 که دارای میکروکنترلر STM32F103C8 می باشد به لطف معماری ARM Cortex M3 محبوبیت فراوانی پیدا کرده است و از نظر سرعت عمل بالا از جایگاه ویژه ای برخوردار است. همچنین ، از آنجا که می توان با استفاده از Arduino IDE آن را به راحتی برنامه ریزی کرد ، برای بسیاری از علاقمندان و مهندسان بسیار محبوب است.

در آموزش های قبلی ما اصول اولیه برنامه نویسی روی STM32 و همچنین راه اندازی LCD کاراکتری با STM32 را آموختیم. در آموزش های قبلی ما برای برنامه نویسی روی این برد از یک برد FTDI به همراه تغییر جامپر روی برد STM 32 استفاده میکردیم. اگر دقت کنید روی برد STM32 یک درگاه میکرو USB قرار دارد اما غالبا بلا استفاده است. زیرا هنگامی که این برد را میخرید، یک بوت لودر آردوینو همراه آن نیست و در نتیجه هنگام اتصال برد از طریق USB توسط کامپیوتر شناخته نمیشود.

خداروشکر یک بوت لودر آزمایشی به نام Maple Boot وجود دارد که توسط LeafLabs ساخته شده است. این بوت لودر باعث میشود بتوانید به راحتی مانند برد های آردوینو، از طریق USB، کد برنامه خود را روی STM32 بارگذاری کنید.

توضیحات مدار

برای برنامه ریزی برد STM32 Blue Pill به طور مستقیم از طریق درگاه USB ، ابتدا باید لودر بوت Maple را به MCU فلش کنیم. برای این کار باید از یک برد FTDI استفاده کنیم. این برد مانند تصویر زیر به پین ​​Rx و Tx از STM32 وصل شده است.

آپلود کد روی میکروکنترلر STM32 با استفاده از USB

پین Vcc برد FTDI به پین ​​STM32 5V متصل شده است. GND به GND از STM32 وصل شده است. پین Rx و Tx از برد FTDI به ترتیب به پین ​​A9 و A10 STM32 متصل می شوند.

اطمینان حاصل کنید که جامپر بوت مانند تصویر زیر، در حالت Programming قرار دارد.

تغییر حالت عملی و برنامه نویسی در STM32

قطعات مورد نیاز آموزش

  1. STM32 – برد توسعه (BluePill) (STM32F103C8T6)
  2. پروگرامر FTDI
قطعات مورد نیاز را از فروشگاه قطعات آیرنکس تهیه کنید.

نصب بوت لودر Maple Boot روی برد STM32

پس از برقراری ارتباط فوق، برد FTDI را به رایانه خود متصل کرده و مراحل مربوط به فلش کردن بوت لودر را به STM32 دنبال کنید.

مرحله 1: ما باید باینری های برنامه boot loader (پرونده bin) را از گیت هاب بارگیری کنیم. نسخه های زیادی از این پرونده وجود دارد ، فایل bin برای برد Blue Pill، در فایل دانلودی زیر قرار داده شده است.

مرحله 2: در مرحله بعد باید نرم افزار لودر STM Flash را بارگیری و نصب کنیم تا پرونده .bin که در آن قرار گرفته است را به STM32 فلش کنیم. این نرم افزار نیز در فایل دانلودی زیر قرار داده شده است.

مرحله 3: مطمئن شوید که برد STM32 شما با وجود برد FTDI به رایانه متصل شده و سپس نرم افزار را راه اندازی کنید. نرم افزار به طور خودکار پورت COM متصل را تشخیص میدهد اما برای اطمینان به Device Manager بروید و صحت آن را بررسی کنید.

نصب بوت لودر Maple Boot روی برد STM32

اگر در مورد این مطلب سوالی دارید در قسمت نظرات بپرسید

مرحله 4: دوبار بر روی دکمه Next کلیک کنید و نرم افزار دوباره به طور خودکار جزئیات صفحه را تشخیص داده و مطابق شکل زیر نمایش می دهد. بردی که ما استفاده می کنیم STM32F1 با حافظه فلش 128K است.

آموزش نرم افزار لودر STM Flash

مرحله 5: در مرحله بعدی Download to device را انتخاب کرده و پرونده bin را که در مرحله 1 توضیح دادیم را انتخاب کرده و روی Next کلیک کنید.

آموزش استفاده از USB برای STM32

مرحله 6: نرم افزار برخی از پرونده های مورد نیاز را مطابق شکل زیر بارگیری می کند و سپس روند Flash را آغاز می کند.

چطور از USB برای STM32 استفاده کنیم

مرحله 7: پس از کامل شدن عملیات فلش کردن، صفحه زیر را مشاهده خواهیم کرد. روی Close کلیک کنید و از برنامه خارج شوید. ما برد STM32 را با موفقیت در بوت Arduino فلش کردیم. حال باید آردوینو IDE را آماده کنیم و درایورها را قبل از آپلود کد روی STM32 نصب کنیم.

آموزش کامل فلش کردن STM32

پیکربندی آردوینو و نصب درایور ها

مراحل زیر را برای بارگیری و تهیه Arduino IDE مورد استفاده با صفحه توسعه STM 32 دنبال کنید.

مرحله 1: اگر هنوز Arduino IDE را نصب نکرده اید آن را دانلود و نصب کنید : دانلود آردوینو

مرحله 2: بعد از نصب آردوینو IDE بسته های مورد نیاز برای برد STM32 را باز کرده و بارگیری کنید. برای این کار به File -> Preferences بروید.

مرحله 3: با کلیک بر روی Preferences ، پنجره زیر نشان داده میشود. در کادر پایین صفحه لینک زیر را قرار دهید.

http://dan.drown.org/stm32duino/package_STM32duino_index.json

سپس OK را فشار دهید.

آماده سازی آردوینو برای برنامه نویسی STM32

مرحله 4: حالا به Tools -> Boards -> Board Managerبروید. “STM32F1” را جستجو کرده و بسته ای را که ظاهر می شود نصب کنید.

مرحله 5: پس از نصب بسته ، به

C:\Program Files (x86)\Arduino\hardware\Arduino_STM32-master\drivers\win

در آنجا  install_drivers.bat و install_STM_COM_drivers.bat را پیدا میکنید.

مرحله 6: روی هر دو فایل .bat کلیک کرده و درایورها را نصب کنید. صفحه نمایش DOS را مطابق شکل زیر مشاهده کرد.

نصب فایل های استفاده از USB برای STM32

اکنون Arduino IDE برای برنامه نویسی STM32 Blue Pill برنامه توسعه آماده شده است و درایورها نیز نصب شده اند.

برنامه نویسی STM32 Blue Pill به طور مستقیم از طریق درگاه USB

برد FTDI و تمام اتصالات موجود را از STM32 خود جداکنید. فقط کافی است از پورت میکرو USB در برد STM32 استفاده کنید تا مطابق شکل زیر آن را به رایانه متصل کنید. اطمینان حاصل کنید که پین ​​جامپر حالت 0 (حالت عملیاتی) قرار گرفته است. پس از این ، دیگر نیازی نیست که برای بارگذاری و اجرای برنامه ها ، جامپر را تغییر دهیم.

برنامه نویسی STM32 Blue Pill به طور مستقیم از طریق درگاه USB

اکنون کامپیوتر شما باید بتوانید برد را شناسایی کنید. در صورت پیش آمدن نصب هرگونه درایور اضافی صبر کنید. سپس وارد قسمت Manager شوید و بررسی کنید که آیا برد STM32 شما مطابق شکل زیر شناسایی شده است. برای ما با نام Maple Mini به COM8 متصل شده است.

در مدیریت دستگاه سریال Maple را بررسی کنید

در نرم افزار آردوینو به Tools بروید و به پایین بروید تا Generic STM32F103C را مانند تصویر زیر پیدا کنید. سپس اطمینان حاصل کنید که نوع آن از نوع Flash 64k است ، سرعت CPU 72MHz است و روش بارگذاری را به STM32duino Bootloader تغییر دهید. همچنین درگاه COM صحیح را مطابق Device Manager خود انتخاب کنید.

Generic STM32F103C

بعد از انجام همه تغییرات ، گوشه سمت راست پایین Arduino IDE را بررسی کنید و باید متونی شبیه به زیر را مشاهده کنید. برد STM32 من به COM8 متصل است اما ممکن است مال شما متفاوت باشد.

چک کردن وضعیت STM 32 در Arduino

اکنون آردوینو IDE آماده برنامه ریزی برد های توسعه قرص آبی STM 32 است. بگذارید برنامه Sample Blink را از Arduino IDE در برد STM32 Blue Pill بارگذاری کنیم تا مطمئن شویم که همه چیز به درستی کار می کند. برنامه مثال را می توان مانند تصویر یافت :

برنامه چشمک زن Arduino IDE در STM32

در برنامه نمونه ای که باز می شود ، باید یک تغییر کوچک ایجاد کنیم. به طور پیش فرض این برنامه برای پین PB1 نوشته خواهد شد اما در صفحه ما LED در برد STM32 به PC13 وصل شده است بنابراین تمام PB1 را با PC13 جایگزین کنید. برنامه مثال کامل که اصلاح شده است را نیز می توانید در پایین همین صفحه دریافت کنید.

کد درون عملکرد Loop در زیر نشان داده شده است. همانطور که مشخص است پین PC13 برای 1 ثانیه روشن است و برای 1 ثانیه خاموش. و این عملکرد به صورت پی در پی تکرار میشود.

  digitalWrite(PC13, HIGH);   // روشن کردن ال ای دی
  delay(1000);              // تاخیر 1 ثانیه
  digitalWrite(PC13, LOW);    // خاموش کردن ال ای دی
  delay(1000);              // تاخیر 1 ثانیه

دکمه بارگذاری را در نرم افزار Arduino فشار دهید. اگر همه چیز را صحیح انجام داده باشید، نباید خطایی دریافت کنید و عملیات بارگذاری باید به طور صحیح پیش برود.

اگر برنامه با موفقیت بارگذاری شد ، باید همانطور که در فیلم زیر نشان داده شده است، چراغ سبز روی برد STM 32 باید هر 1 ثانیه چشمک بزند. اکنون میتوانید از برد STM32 مانند برد های دیگر آردوینو استفاده کنید.

کد کامل :

void setup() {
  pinMode(PC13, OUTPUT); // تعریف پین به عنوان خروجی
}
void loop() {
  digitalWrite(PC13, HIGH);   // روشن کردن ال ای دی
  delay(1000);              // تاخیر 1 ثانیه
  digitalWrite(PC13, LOW);    // خاموش کردن ال ای دی
  delay(1000);              // تاخیر 1 ثانیه
}

قسمت بعد را هم ببینید : آموزش آنالوگ به دیجیتال در STM32 با کد آردوینو

4.6 (10 نفر)

برای دریافت مطالب جدید کانال تلگرام یا پیج اینستاگرام ما را دنبال کنید.

محمد رحیمی

محمد رحیمی هستم. سعی میکنم در آیرنکس مطالب مفید قرار بدهم. سوالات مربوط به این مطلب را در قسمت نظرات همین مطلب اعلام کنید. سعی میکنم در اسرع وقت به نظرات شما پاسخ بدهم.

12 نظر

  1. سلام،برای راه اندازی جایرو Gy_61ADXL335 با stm32 در نرم‌افزار کیل باید چیکار کنم
    ممنون میشم کمکم کنید

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

  2. سلام مجدد . من طبق آموزش پیش رفتم اما برنامه فلش برد منو نمیشناسه .
    بد شما گفتین که فایل باینری دانلود کنیم اما نگفتید بد از دانلود کجا استفادش کنیم . میشه واضح تر توضیح بدین .

    1. سلام عزیز آموزش را با دقت مطالعه کنید اگر مشکل دارید هنوز میتوانید از دوره آموزش stm32 استفاده کنید.

  3. سلام . برد stm32 من داخل Device manager شناسایی نمیشه میشه یه راهنمایی کنید .
    من از طریق نرم افزار keil 5 میخوام به صورت مستقیم مراحل پروگرمینگ انجام بدم .

  4. با سلام و تشکر . چطور برد را به حالت قبلش برگردونیم؟
    فایل bin ارجینال stm32f1**c رو هم قرار بدید لطفا

  5. با سلام ممنون از آموزش شما
    من تا مرحله 5 پیش رفتم. اما متاسفانه فایل هایی که شما ذکر کردید (درایورها) را نمی توانم پیدا کنم ممنون میشم راهنمایی کنید/
    C:\Program Files (x86)\Arduino\hardware\Arduino_STM32-master\drivers\win

  6. No response from the target, the boot loader can not be started این‌ ارورر رومیده‌

    1. سلام. بر طبق آموزش پیش برید نباید این مشکل پیش بیاد و من نمیدونم این ارور به چه دلیلی دریافت میشه

  7. ارور‌ میده که بوت‌ مشکل داره وکا‌مپیوترروریست‌ کن‌ اول فکرکردم‌ مشکل ازسیستم‌ خودمه‌ اما‌ روی‌ یک‌ لپ‌ تاپ. دیگه‌ هم‌ امتحان‌ کردم‌ همین‌ ارور‌ روداد‌ .

  8. سلام‌ ،موقع‌ راه‌ اندازی‌ بوت‌ لودر‌ به‌ من‌ ارور‌ میده‌ ومرحله‌ اول‌ رومیره‌ next که‌ میزنم‌ جلونمیره

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *