میکرو لایب

پروگرام کردن میکروکنترلر های سری stm8 با st-link

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

در این پست ، در مورد نحوه ی پروگرام  میکروکنترلرهای STM8 صحبت خواهیم کرد. منظور  از پروگرام انتقال برنامه نوشته شده از کامپیوتر به حافظه فلش میکروکنترلرهای STM8 است. لزوم یادگیری نحوه ی پروگرام کردن میکروکنترلر قبل از اینکه به سراغ برنامه نویسی آنها بروید ضروریست چرا که یک برنامه نویس شاید نیاز پیدا کند در طول دوره برنامه نویسی چندین و چندین بار برنامه را به صورت سخت افزاری تست کند از این رو یادگیری نحوه پروگرام میکرکنترلر ها گامی حیاتی و ضروریست…

اما بیشتر میکروکنترلرهای مطرح امروزی از رابط سریال برای پروگرام و اشکالزدایی برنامه استفاده می کنند. منظور از ارتباط سریال این است که برای این ارتباط به سیم زیادی احتیاج نیست ، فقط به دو یا سه سیم نیاز است.این ارتباط سریال در میکروکنترلر های سری STM8 رابط SWIM نامیده می شود SWIM مخفف Single Wire Interface Module است. ارتباط SWIM یکی از سریعترین و در عین حال کم نویزترین ارتباط سریال برای پروگرام و اشکالزدایی برنامه می باشد. SWIM برای انتقال داده فقط به یک سیم واحد نیاز دارد. این پین در برگه اطلاعاتی هر میکروکنترلر همانطور که در عکس می بینید با نام SWIM به چشم می خورد.

این پین در برد های توسعه هم با همان نام SWIM علامت گذاری شده است

پروگرامر ST-LINK

اگر  پروگرامر stlink را که خریده اید نگاه کنید و نوشته های روی آن را بخوانید خواهید دید که پایه ای با نام SWIM بر روی پروگرامر وجود دارد شما باید پایه swim میکروکنترلر را به پین SWIM پروگرامر متصل کنید همینطور پایه RST پروگرامر به پایه NRST میکروکنترلر و GND , VDD میکروکنترلر هم به GND , VDD پروگرامر باید متصل شوند با وصل این چهار پایه میکروکنترلر آماده دریافت برنامه می باشد البته توجه نمایید که اگر از تغذیه خارجی یعنی غیر از تغذیه پروگرامر برای میکروکنترلر استفاده می کنید حتما باید GND میکروکنترلر را به GND پروگرامر متصل کنید این کار برای پروگرام صحیح و عدم آسیب رسیدن به پروگرامر انجام می شود.

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

 

نرم افزار پروگرامر

نرم افزار ST Visual Programmer یا STVP نرم افزار قدرتمندی برای پروگرام میکروکنترلر های سری STM8 می باشد این نرم افزار توسط شرکت ST به صورت رایگان در دسترس عموم قرار گرفته است. می توانید آن را از اینجا بارگیری و در رایانه خود نصب کنید. همچنین این نرم افزار علاوه بر نرم افزار پروگرامر STVP درایورهای ST-LINK V2 را نیز نصب می کند.

هنگامی که نرمافزار پروگرامر STVP را بعد از نصب برای اولین بار راه اندازی می کنید ، پیکربندی اولیه را همانطور که در تصویر زیر نشان داده شده است ، باید انجام دهید. در مرحله اولیه اجرا ، نرم افزار به شما امکان می دهد که نوع میکروکنترلر و نوع واسط پروگرام تراشه خود را انتخاب کنید. بنابراین از قسمت Device نوغ میکروکنترلر را انتخاب کرده و Programming mode را در حالت SWIM قرار دهید.

 

پنجره اصلی STVP در زیر نشان داده شده است. شما فقط باید فایل HEX را با استفاده از دستور open انتخاب کنید و سپس روی دکمه Program کلیک کنید.

 

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

 

دیدگاه‌ها (12)

*
*

    احمد مهمان ژوئن 17, 2022 پاسخ

    سلام
    ضمن تشکر از سایت خوبتون؛ در همه‌ی سایتها تنها به پروگرام stm8 اشاره شده، آیا می‌توان اطلاعات داخل میکرو STM8S003F3P6 رو کپی کرد و روی میکرو دیگر ریخت؟

      mast3r مدیر کل ژوئن 17, 2022 پاسخ

      سلام دوست عزیز
      اگر میکروکنترلر قفل نباشد بله می توانید از قسمت Read >> All Tabs فلش و ایپرام و فیوز بیت را بخوانید سپس از قسمت File >> Save as خروجی hex بگیرید
      برای اطلاع از قفل بودن یا نبودن حافظه فلش به برگه option byte بروید و سپس از تب Read >> current tab رو بزنید با این کار فیوز بیتهای میکرو خوانده می شود
      بعد از خوانده شدن می توانید Rop رو بررسی کنید
      اگر Rop بر روی Read out protection off باشد میکرو قفل نیست! در غیر این صورت در صورتی که این گزینه on باشد یعنی حافظه فلش حفاظت می شود و قابل خواندن نیست
      موفق و موید باشید

        احمد مهمان ژوئن 17, 2022 پاسخ

        ممنون از محبت و راهنمایی‌تون.

          mast3r مدیر کل جولای 14, 2022 پاسخ

          خواهش می کنم دوست عزیز وظیفه هست
          امیدوارم که موفق و موید باشید.

      امید مهمان مارس 26, 2023 پاسخ

      باسلام وخسته نباشید
      باتشکر از سایت خوبتون
      میخواستم بدونم اگه میکرو stm8 قفل باشه میشه دوباره پروگرام کردیا غیر قابله پروگرام هست؟

        mast3r مدیر کل مارس 26, 2023 پاسخ

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

          امید مهمان مارس 30, 2023 پاسخ

          باسلام
          ولی من چهارتا آیسی رو از دستگاههای مختلف در آوردم خواستم پروگرام کنم ولی نشد و پروگرامر پیغام رایت پروتکت داد

            mast3r مدیر کل مارس 31, 2023

            سلام
            به صورت زیر سعی کنید
            از طریق option byte رایت پروتکت رو غیر فعال کنید
            و سپس اقدام به خواندن حافظه فلش کنید

    احمد مهمان ژوئن 22, 2022 پاسخ

    (به علت اینکه پیام ناقص ارسال می شد. مجبور شدم چند با ارسال کنم و دست آخر آن را به دو بخش تقسیم نمایم. لطفا بخشهای مشابه قبلی را حذف بفرمایید.)

    با عرض سلام
    وظیفه هست که ابتدا تشکر مجدد کنم.
    پس از خرید پروگرامر ST-LINK V2 از نوع مینی طبق راهنمایی شما قدم به قدم جلو رفتم؛ اما هنگام پروگرام و یا حتی خواندن آیسی، با خطای ذیل مواجه می‌شوم.
    > Programming PROGRAM MEMORY area...
    Error : Cannot communicate with the device !
    Check the SWIM cable connection and check all the needed pin connections on the SWIM connector.
    If the application code uses Swim Disable and Reset pin as Output or has disabled SWIM Clock Divider:
    Try Now to SWITCH OFF and ON the application Power Supply while NRST Reset pin is forced low.
    Error : < PROGRAM MEMORY programming failed.

      احمد مهمان ژوئن 22, 2022 پاسخ

      پایه های پروگرام را به ترتیب ذیل به آیسی STM8S003F3P6 وصل کردم. (اتصالات چک شد)
      RST>4=NRST
      SWIM>18=SWIM
      ۵٫۰V>9=VDD
      GND>7=VSS
      آیسی خام است و قصد دارم برای تست فایل نمونه شما که در این صفحه آوردید را روی آن بریزم.
      درایور پروگرامر نیز به درستی نسب شده. با این حال نمی دانم علت خطای مذکور چیست.
      ممنون میشم اگر راهنمایی بفرمایید.

        احمد مهمان ژوئن 25, 2022 پاسخ

        سلام.
        پس از تلاش‌های زیاد نا موفق؛ در یکی از سایت‌ها به مطلب ارایه شده توسط عزیزی بنام: "مجید نبی از شهرستان آباده" برخوردم. ایشون گفنه:
        "من با stm8s003f3p6 کار کردم این میکرو رو بدون برد خریداری کردم و روی برد تبدیل SSOP نصب کردم و برای پروگرام کردنش دچار مشکل شدم با پروگرامر stlink بعد از کلی تحقیق متوجه شدم که یک نکته مهم برای پروگرام کردن این میکرو وجود داره این هم پایه Vcap هست که حتما باید با یک خازن نانو فارادی به زمین وصل بشه."

        من هم یه خازن ۱۰۰n بین زمین و Vcap آیسی وصل کردم و بدون هیچ خطایی پروگرام کار کرد.

          mast3r مدیر کل جولای 14, 2022 پاسخ

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

question