
پروگرام میکروکنترلر های سری 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 وصل کنید اگر همه چیز درست باشد ال ای دی چشمک خواهد زد.
سلام
ضمن تشکر از سایت خوبتون؛ در همهی سایتها تنها به پروگرام stm8 اشاره شده، آیا میتوان اطلاعات داخل میکرو STM8S003F3P6 رو کپی کرد و روی میکرو دیگر ریخت؟
سلام دوست عزیز
اگر میکروکنترلر قفل نباشد بله می توانید از قسمت Read >> All Tabs فلش و ایپرام و فیوز بیت را بخوانید سپس از قسمت File >> Save as خروجی hex بگیرید
برای اطلاع از قفل بودن یا نبودن حافظه فلش به برگه option byte بروید و سپس از تب Read >> current tab رو بزنید با این کار فیوز بیتهای میکرو خوانده می شود
بعد از خوانده شدن می توانید Rop رو بررسی کنید
اگر Rop بر روی Read out protection off باشد میکرو قفل نیست! در غیر این صورت در صورتی که این گزینه on باشد یعنی حافظه فلش حفاظت می شود و قابل خواندن نیست
موفق و موید باشید
ممنون از محبت و راهنماییتون.
خواهش می کنم دوست عزیز وظیفه هست
امیدوارم که موفق و موید باشید.
باسلام وخسته نباشید
باتشکر از سایت خوبتون
میخواستم بدونم اگه میکرو stm8 قفل باشه میشه دوباره پروگرام کردیا غیر قابله پروگرام هست؟
سلام
بعله مشکلی نیست
فقط اگر قفل کنی بخوای بازش کنی برنامه ای که زدی براش پاک میشه
باسلام
ولی من چهارتا آیسی رو از دستگاههای مختلف در آوردم خواستم پروگرام کنم ولی نشد و پروگرامر پیغام رایت پروتکت داد
سلام
به صورت زیر سعی کنید
از طریق option byte رایت پروتکت رو غیر فعال کنید
و سپس اقدام به خواندن حافظه فلش کنید
(به علت اینکه پیام ناقص ارسال می شد. مجبور شدم چند با ارسال کنم و دست آخر آن را به دو بخش تقسیم نمایم. لطفا بخشهای مشابه قبلی را حذف بفرمایید.)
با عرض سلام
وظیفه هست که ابتدا تشکر مجدد کنم.
پس از خرید پروگرامر 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.
پایه های پروگرام را به ترتیب ذیل به آیسی STM8S003F3P6 وصل کردم. (اتصالات چک شد)
RST>4=NRST
SWIM>18=SWIM
۵٫۰V>9=VDD
GND>7=VSS
آیسی خام است و قصد دارم برای تست فایل نمونه شما که در این صفحه آوردید را روی آن بریزم.
درایور پروگرامر نیز به درستی نسب شده. با این حال نمی دانم علت خطای مذکور چیست.
ممنون میشم اگر راهنمایی بفرمایید.
سلام.
پس از تلاشهای زیاد نا موفق؛ در یکی از سایتها به مطلب ارایه شده توسط عزیزی بنام: "مجید نبی از شهرستان آباده" برخوردم. ایشون گفنه:
"من با stm8s003f3p6 کار کردم این میکرو رو بدون برد خریداری کردم و روی برد تبدیل SSOP نصب کردم و برای پروگرام کردنش دچار مشکل شدم با پروگرامر stlink بعد از کلی تحقیق متوجه شدم که یک نکته مهم برای پروگرام کردن این میکرو وجود داره این هم پایه Vcap هست که حتما باید با یک خازن نانو فارادی به زمین وصل بشه."
من هم یه خازن ۱۰۰n بین زمین و Vcap آیسی وصل کردم و بدون هیچ خطایی پروگرام کار کرد.
سلام
دوست عزیز
اعلانات مربوط به کامنتها برای کسانی که کامنتشان برای بار اول تایید شده بود دیگر نمایش داده نمی شد (به خاطر مشکل بوجود آمده از شما پورش می طلبیم)
از اینکه تجربه خود را با ما و کاربران عزیز به اشتراک گذاشتید صمیمانه سپاسگذاریم.
موفق و موید باشید.