آموزش پروگرام کردن میکرو های stm32

به نام خدا و با سلام خدمت دوستان گرامی!!

در این مطلب آموزش پروگرام کردن میکروهای سری stm32 رو با پروگرام  st-link v2  خدمتتون آموزش میدم که از سه طریق میتونید میکروتون رو پروگرام کنید.

پروگرام  st-link v2 :

 

میکروکنترلرهای STM32 به صورت کلی به ۳ روش قابل پروگرام شدن هستند:

۱- استفاده از بوت لودر سریال

۲- استفاده از پروتکل Jtag

۳- استفاده از پروتکل SWD

۴-پروگرام و آپگرید برنامه میکرو از طریق usb flash

 

۱- استفاده از بوت لودر سریال

به صورت پیشفرض در قسمتی از حافظه تراشه های ۳۲ بیت شرکت ST یک برنامه ای قرار دارد که با استفاده از ان و بدون نیاز به دستگاه پروگرامر، کاربر توانایی پروگرام کردن تراشه را خواهد داشت.

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

برای استفاده از این روش ابتدا باید نرم افزار ST Flash loader رو داشته باشید که برای دانلود اخرین نسخه نرم افزار اینجا کلیک کنید.
بعد از نصب برنامه حالا شما باید یک مبدل USB به سریال داشته باشید که می تونید از مبدل های اماده استفاده کنید .

وقتی درایو تهیه شد و درایورهای مربوطه رو نصب کردین و از صحت عملکردش مطلع شدین باید برین سراغ اتصال مبدل به میکروکنترلر.

در تراشه های مختلف این پین قطعا متفاوت خواهد بود و باید حتما برای هر تراشه به دیتاشیت مراجعه کنید. پین های مورد استفاده جهت ارتباط در تراشه STM32F030XX پین های USART1 می باشد که PA9,PA10 هستند.تصویر زیر از دیتاشیت میکروکنترلر می باشد.(وقتی دیتاشیت رو باز کردید ctrl+f  رو بزنید و کلمه boot رو سرچ کنید تا سریع به این قسمت برسید)

نکته ای که در این مورد مونده اینکه شما باید در این حالت میکروکنترلر رو به حالت بوت ببرین. برای این کار یک پین به اسم BOOT0 در میکروکنترلر وجود دارد که با یک کردن اون و Restart میکروکنترلر در حالتی که پین مربوطه یک هست، میکروکنترلر وارد حافظه(System Memory) بوت لودر سریال میشه.

نکته: در این سری میکروکنترلر یک بیت به اسم nBOOT1 وجود داره که به صورت پیشفرض فعال شده اما در صورتی که قبلا با استفاده از پروگرامر میکروکنترلر را پروگرام کرده اید حتما به این بیت در قسمت Option Byte دقت کنید که تیک مورد نظر فعال باشد.

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

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

برای اطمینان از شماره پورت اختصاص یافته به بخش Device Manager ویندوز مراجعه کنید. در اینجا به عنوان مثلا پورت ۱۱ اختصاص داده شده است.

کلید Next را فشار دهید تا به صفحه بعدی منتقل شوید. در صورتی که مراحل قبلی به درستی انجام شده باشند با صفحه زیر نمایش داده خواهد‌شد که در آن ظرفیت حافظه Flash میکروکنترلر شناسایی شده است. در غیر این صورت برنامه را مجددا اجرا نمایید.

کلید Next را در این صفحه و صفحه بعدی فشار دهید تا به صفحه اصلی برنامه منتقل شوید.

مسیر فایل HEX مورد نظر را مطابق شکل زیر با فشردن کلید … مشخص نمائید (به عنوان مثال در اینجا از کد برنامه ی چشمک زن LED ها استفاده می‌کنیم) و برای بازبینی پروگرام صحیح میکروکنترلر تیک گزینه Verify after download را بزنید.

کلید Next را فشار دهید تا عملیات انتقال فایل شروع شود. درصورتیکه عملیات با موفقیت انجام شده باشد پیغام زیر ظاهر خواهد شد.

در نهایت پین BOOT0 را مجددا از حالت یک بودن خارج کرده و میکروکنترلر را ریستارت کنید.

 

۲- استفاده از پروتکل Jtag

این پروتکل در همه مدل های STM32 موجود نیست. برای مثال نمونه ای که در بالا معرفی شد فاقد این پروتکل می باشد.

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

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

نکته ای که باید بهش توجه کنید اینکه در این روش یک سری از پین ها به مقاومت های Pullup و Pulldown نیاز دارن که من اونها در نقشه زیر قرار دادم.(نقشه قسمت Jtag برد کاتالیست F407)

آموزش پروگرام میکروهای stm8   و  میکروی lpc1768  هم در سایت قرار دادم میتونید استفاده کنید.

موفق و سربلند باشید.

 

۳- استفاده از پروتکل SWD (مخصوص stm32 ها)

این پروتکل که مخصوص شرکت ST هستش فقط با ۴ پین توانایی پروگرام و دیباگ میکروکنترلر رو برای ما فراهم می کنه.
این پین ها به صورت زیر هستن.

  • SWCLK
  • SWDIO
  • GND
  • VCC

در نتیجه فقط کافیه پین های نوشته شده که در تمام میکروکنترلرهای STM32 وجود دارد رو به پروگرامر متصل کنید و عملیات دیباگ و پروگرام رو به راحتی انجام بدین.

پین های پروگرامر هم به این صورته

پین های خروجی هر دو نوع پروگرامر رو گذاشتم ،من اینجا از پروگرامر مینی استفاده میکنم.

در این روش (خودم بیشتر از این روش استفاده میکنم) نرم افزار مورد استفاده هم مشخصه که ST-LINK Utility stm32 هستش که از سایت st  قابل دانلوده

دانلود STM32 ST-LINK Utility

نکته مهمتر کامپایلرهای IAR و Keil مستقیما پشتیبانیش می کنن.

در نرم افزار cube mx  به این قابلیت serial wire  میگن.

نمونه ای اتصال میکرو و پروگرامر

ویدئو زیر برای استارت میکرو های stm32 میتونه خیلی کمکتون کنه و در اون به موضوعات زیر پرداختم

  • نحوه ایجاد پروژه با stm32 cube mx برای کامپایلر iar
  • نحوه ایجاد پروژه با stm32 cube mx برای کامپایلر keil
  • نحوه پروگرام میکرو stm32 از طریق خوده keil و iar
  • تنظیمات keil و iar  برای تولید کد هگز
  • آموزش پروگرام فایل hex و bin از طریق ST-LINK Utility stm32
  • نحوه اپدیت پروگرامر st-link
  • و…

 

برد میکروی stm32f103c6t8 که ما اینجا با اون کار میکنیم به صورت شکل زیر هستش

 

لینک های اموزشی لازم:

  1. لینک دانلود stm32cube mx —————–> ته مطلب بخش get software برید
  2. لینک دانلود پک سری f1 برای cube mx  —> بخش Embedded Software برید
  3. لینک آموزش دانلود و نصب keil
  4. لینک دانلود پک سری stm32f1 برای keil –>  پک همه میکروها اینجا هستش 
  5. لینک آموزش دانلود و نصب iar
  6. لینک دانلود ST-LINK Utility stm32

اینم بگم که اول باید تو سایتا عضو بشید تا بتونین دانلود کنید.

دانلود شماتیک و سورس برد فوق stm32f103c6t8 

mehdi sehati

در این سایت پروژه و آموزش های انواع ماژول ها و میکروکنترلر ها و نحوه ارتباط سخت افزار با نرم افزار (برنامه نویسی اندروید برای گوشی و برنامه نویسی سی شارپ برای کامپیوتر) و برنامه نویسی پایتون و رسبری پای و ماژول های وای فای قرار میگیرد همچنین دوستان برای توضیحات بیشتر و سفارش پروژه میتوانند به آی دی تلگرام بنده مراجعه کنند

مطالب مرتبط

Subscribe
Notify of
guest

3 نظرات
Inline Feedbacks
View all comments
رضا رحیمی
رضا رحیمی
3 years ago

سلام و عرض ادب . ممنون بابت آموزشهای خوبتون .
اگه ما بخواهیم برنامه رو از میکرو آرم STM32 بخونیم با چه نرم افزاری میشه اینکارو کرد ؟ آیا امکان میکرو توسط سازنده قفل شده باشه ؟ یا اصلا امکان قفل بودن برنامه وجود داره ؟

علی رضا
علی رضا
3 years ago

سلام
با اس تی یوتیلیتی میشه دیباگ کرد؟

3
0
Would love your thoughts, please comment.x