NOTICE توجه: این یک موضوع قدیمی است که آخرین پست ارسالی آن مربوط به 1526 روز قبل است . لطفا فقط پاسخ ها ، سوالات و درخواست های 100 درصد مرتبط را به آن ارسال کنید و برای درخواست ها و سوالات جدید موضوع جدیدی را ایجاد کنید
نمایش نتایج: از 1 به 8 از 8

موضوع: روش های پروگرام کردن تراشه های stm32

  1. #1
    عضو جدید
    تاریخ عضویت
    Sep 2012
    نوشته ها
    9
    تشکر
    4
    تشکر شده 8 بار در 5 پست

    پیش فرض روش های پروگرام کردن تراشه های 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. کاربران : 4 تشکر کرده اند از شما soranarasteh برای ارسال این پست سودمند:


  3. # ADS
    Circuit advertisement
    تاریخ عضویت
    Always
    نوشته ها
    Many
     

  4. #2
    عضو جدید
    تاریخ عضویت
    Apr 2009
    نوشته ها
    14
    تشکر
    7
    تشکر شده 16 بار در 2 پست

    پیش فرض

    سلام.
    من یه برد آماده STM32F030F4 خریدم و یادگیری رو با اون شروع کردم ابتدا با نرم افزار CubeMX برنامه رو اماده میکردم و بعد در کیل 5 کاملش میکردم و با یه پروگرامر SWD برد را برنامه ریزی میکزدم یه بار اشتباها در CubeMX پایه های مربوط به SWD را پین معمولی تعریف کردم حالا برد دیگه برنامه ریزی نمیشه مکن هست راهنمایی کنید چه کار باید انجام بدم تا دوباره برد از طریق SWD برنامه ریزی بشه.

  5. #3

  6. #4
    عضو جدید
    تاریخ عضویت
    Apr 2009
    نوشته ها
    14
    تشکر
    7
    تشکر شده 16 بار در 2 پست

    پیش فرض

    سلام. نه جناب زرکوب اصلا بلد نیستم ممکنه راهنمایی کنید پاک کردن با بوت لودر را چگونه باید انجام بدم ممنون

  7. #5

  8. #6
    کاربر علاقه مند
    تاریخ عضویت
    Jan 2018
    نوشته ها
    51
    تشکر
    21
    تشکر شده 13 بار در 8 پست

    پیش فرض

    سلام من یه هدر بورد stm8s105k گرفتم ولی stlink یادم رفت بگیرم.جی لینک دارم ولی فک نکنم پشتیبانی کنه میکروم.روی برد یه پورت میکرو یو اس بی داره ولی به کامپیوتر میزنم نمیشناسه واصلا حتی پیام not recognized هم نمیدهولی ال ای دیای روی برد روشن میشه.این پورت میکرو یو اس بی مگه برای پروگرم کردن نیست؟

  9. #7

  10. تشکرها از این نوشته :


  11. #8
    عضو جدید
    تاریخ عضویت
    Feb 2016
    نوشته ها
    9
    تشکر
    0
    تشکر شده 0 بار در 0 پست

    Gadid

    با عرض سلام و خسته نباشید
    وقتی میخوام از بوت لودر استفاده میکنم وارد نرم افزار flash loader میشم پرت کام رو میشناسه ولی وقتی next رو میزنم این error رو میده
    no respons from the target,the boot loader can not be started.
    please ,verify the boot modeconfiguration and the flash protection status,reset your device ,then try again..
    من از هدر برد stmf103ve کویر الکترونیک استفاده میکنم
    ممنون میشم راهنمایی کنید

موضوعات مشابه

  1. سگهای نگهبان stm32
    توسط dizgah در انجمن stm32
    پاسخ: 0
    آخرين نوشته: 05-09-2015, 01:55
  2. ارتباط دو تا stm32 با spi
    توسط wantedboy در انجمن stm32
    پاسخ: 3
    آخرين نوشته: 09-06-2015, 15:53
  3. دانلود نمونه برنامه برای خانواده stm32
    توسط M.ABDOLLAHI در انجمن stm32
    پاسخ: 35
    آخرين نوشته: 19-05-2015, 12:59
  4. stm32 dac
    توسط morykeys در انجمن stm32
    پاسخ: 2
    آخرين نوشته: 30-09-2013, 21:10

کلمات کلیدی این موضوع

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •