اطلاعیه

Collapse
No announcement yet.

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

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

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

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


    میکروکنترلرهای STM32 به صورت کلی به ۳ روش قابل پروگرام شدن هستند:
    ۱- استفاده از بوت لودر سریال
    ۲- استفاده از پروتکل SWD
    ۳- استفاده از پروتکل Jtag



    ۱- استفاده از بوت لودر سریال
    به صورت پیشفرض در قسمتی از حافظه تراشه های ۳۲ بیت شرکت ST یک برنامه ای قرار دارد که با استفاده از ان و بدون نیاز به دستگاه پروگرامر، کاربر توانایی پروگرام کردن تراشه را خواهد داشت. مزیتی که این روش داره اینکه شما برای پروگرام کردن تراشه فقط نیاز به یک مبدل USB به سریال دارین و یک نرم افزار خاص جهت ارتباط و نیازی به هزینه اضافی جهت خرید پروگرامر نیست اما قطعا این روش خالی از ایراد هم نیست و بارزترین عیبش اینکه نمی تونید مستقیم از خود کامپایلر عملیات پروگرام کردن رو انجام بدین و دومین ایراد هم عدم توانایی عملیات دیباگ می باشد. برای استفاده از این روش ابتدا باید نرم افزار ST Flash loader رو داشته باشید که برای دانلود اخرین نسخه نرم افزار اینجا کلیک کنید.
    بعد از نصب برنامه حالا شما باید یک مبدل USB به سریال داشته باشید که می تونید از مبدل های اماده استفاده کنید و یا خودتون یکی بسازید مثل این. وقتی درایو تهیه شد و درایورهای مربوطه رو نصب کردین و از صحت عملکردش مطلع شدین باید برین سراغ اتصال مبدل به میکروکنترلر. در تراشه های مختلف این پین قطعا متفاوت خواهد بود و باید حتما برای هر تراشه به دیتاشیت مراجعه کنید. پین های مورد استفاده جهت ارتباط در تراشه STM32F030XX پین های USART1 می باشد که PA9,PA10 هستند.تصویر زیر از دیتاشیت میکروکنترلر می باشد.

    نکته ای که در این مورد مونده اینکه شما باید در این حالت میکروکنترلر رو به حالت بوت ببرین. برای این کار یک پین به اسم BOOT0 در میکروکنترلر وجود دارد که با یک کردن اون و Restart میکروکنترلر در حالتی که پین مربوطه یک هست، میکروکنترلر وارد حافظه(System Memory) بوت لودر سریال میشه. نکته: در این سری میکروکنترلر یک بیت به اسم nBOOT1 وجود داره که به صورت پیشفرض فعال شده اما در صورتی که قبلا با استفاده از پروگرامر میکروکنترلر را پروگرام کرده اید حتما به این بیت در قسمت Option Byte دقت کنید که تیک مورد نظر فعال باشد. بعد از طی مراحل بالا و اتصال مبدل به میکروکنترلر و بوت کردن اون جهت پروگرام کردن با نرم افزار معرفی شده باید به صورت زیر عمل کنید. مطابق شکل زیر پورت اختصاص داده شده برای مبدل USB به سریال را مشخص نمایید.

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

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

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

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

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

    ۲- استفاده از پروتکل SWD
    این پروتکل که مخصوص شرکت ST هستش فقط با ۵ پین توانایی پروگرام و دیباگ میکروکنترلر رو برای ما فراهم می کنه.
    این پین ها به صورت زیر هستن.
    • SWCLK
    • SWDIO
    • RESET
    • GND
    • VCC


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

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

    در این روش نرم افزار مورد استفاده هم مشخصه که STlink هستش و همراه پروگرامر عرضه میشه. نکته مهمتر کامپایلرهای IAR و Keil مستقیما پشتیبانیش می کنن.
    ۳- استفاده از پروتکل Jtag
    این پروتکل در همه مدل های STM32 موجود نیست. برای مثال نمونه ای که در بالا معرفی شد فاید این پروتکل می باشد. در مورد میکروکنترلرهایی که این پروتکل رو دارن می تونید به راحتی با استفاده از پروگرامر Jlink که شاید برای کار با سری های اتمل یا فیلیپس قبلا خریداری کرده باشید، استفاده کنید. پین ها در این پروتکل به صورت زیر می باشد.

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





    منبع
    چرا ناراحتی پاتریک!
    + امروز ی بچه دیدم سرچهارراه گل میفروخت
    - از دیدنش ناراحت شدی؟
    + نه
    پس چی ناراحتت کرده
    + اینکه دیدن اینجور بچه ها انقدر واسم عادی شده که دیگه ناراحتم نمیکنه
    ------------------------------------------------------------------------------------------------------
    تاحالا فکر کردی بیسواد کیه؟- بی سواد یعنی کسی که نمیتونه ذهنیاتش رو عملی کنه!
    ------------------------------------------------------------------------------------------------------
    محصولات

    #2
    پاسخ : [آموزش] روش های پروگرام کردن تراشه های stm32

    با سپاس از پست مفیدتون
    به نظرتون میشه با روش swd توسط این پروگرامر، میکروی HK32F030MF4P6 را هم پروگرام کرد؟
    خرید میکروکنترلر HK32F030MF4P6 -انواع میکروکنترلر Microcontroller و میکروپروسسور های AVR , ARM , PIC , FPGA در انواع پکیج های SMD و DIP با قیمت و کیفیت مناسب در فروشگاه تخصصی الکترونیک ECA



    البته من نتونستم. این هم تصویر اجرا و تنظیماتش:

    جدیدترین ویرایش توسط mm59; ۰۳:۲۶ ۱۴۰۲/۰۳/۱۹.

    دیدگاه


      #3
      نوشته اصلی توسط mm59 نمایش پست ها
      پاسخ : [آموزش] روش های پروگرام کردن تراشه های stm32

      با سپاس از پست مفیدتون
      به نظرتون میشه با روش swd توسط این پروگرامر، میکروی HK32F030MF4P6 را هم پروگرام کرد؟
      خرید میکروکنترلر HK32F030MF4P6 -انواع میکروکنترلر Microcontroller و میکروپروسسور های AVR , ARM , PIC , FPGA در انواع پکیج های SMD و DIP با قیمت و کیفیت مناسب در فروشگاه تخصصی الکترونیک ECA



      البته من نتونستم. این هم تصویر اجرا و تنظیماتش:

      سلام
      اول با بوت لودر کانفیگ ارتباط swd رو بریز بعد امتحان کن

      دیدگاه


        #4
        سلام. کسی میدونه ارور موجود در برنامه Keil بخاطر چی هست؟ اون علامت های ضربدر قرمز بقل برنامه
        جدیدترین ویرایش توسط Pouya_m39; ۲۳:۵۱ ۱۴۰۳/۰۵/۲۱.

        دیدگاه


          #5
          نوشته اصلی توسط Pouya_m39 نمایش پست ها
          سلام. کسی میدونه ارور موجود در برنامه Keil بخاطر چی هست؟ اون علامت های ضربدر قرمز بقل برنامه
          بنظر میرسه از خطوط مورد نظر غلط نوشتاری گرفته.
          ​​​​​

          دیدگاه

          لطفا صبر کنید...
          X