در این قسمت از سری اموزش های STM8 با استفاده از توابع SPL به مبحث راه اندازی EEPROM خواهیم پرداخت.

کلمه ی EEPROM مخفف Electrically Erasable Programmable Read-Only Memory میباشد که در واقع یک نوع حافظه دائمی میباشد که با قطع برق اطلاعات آن پاک نمیشود. در برنامه های میکرو کنترلی متغیرهای تعریف شده درون برنامه تا زمانی که میکروکنترلر در حال کار هست مقادیر را نگاه میدارند اما پس از قطع شدن برق میکروکنترلر تمامی متغیرها به حالت پیش فرض تعریف شده خود باز خواهند گشت. بعضی از متغیر ها نیاز است که پس از مقدار گرفتن با قطع شدن برق همان مقدار را حفظ کرده و پاک نشود.

یک مثال عملی: مثلا در پروژه ای نیاز است تا مقدار فشار داخل یک مخزن را روی عدد ثابتی که کاربر تنظیم میکند نگه داریم. پس از دریافت مقدار set point (همان مقداری که باید فشار مخزن روی ان ثابت بماند)  با کنترل کردن منبع فشار (مانند پمپ هوا) ، فشار هوای مخزن را روی set point نگه میداریم. در صورت قطع شدن برق یا خاموش شدن دستگاه مقدار set point باید مجددا توسط کاربر تعریف شود که اتفاق جالبی نیست پس باید این عدد را روی حافظه ای ذخیره کنیم که یک انتخاب برای اینکار میتواند حافظه ی eeprom باشد.

آموزش میکروکنترلر STM8 با توابع SPL-معرفی سری STM8S103

میکرو کنترلر های stm8s دارای حافظه eeprom داخلی با ظرفیت های مختلف میباشد که از دیتا شیت میتوان حجم انرا استخراج نمود.

برای استفاده از این حافظه در برنامه، قدم اول اضافه کردن فایل سورس stm8s_flash.c به ساختار درختی پروژه است.

قدم دوم unlock کردن حافظه eeprom میباشد که با این دستور در ابتدای برنامه میتوانید این کار را انجام دهید.

حالا با استفاده از توابع دیگر فایل stm8s_flash.c میتوانیم عمل خواندن و نوشتن را روی حافظه انجام دهیم. البته نام توابع موجود در این کتابخانه بیانگر عملکر هر کدام میباشد اما دو تابع پایه خواندن نوشتن را در این قسمت جهت روشن شدن موضوع توضیح میدهیم.

برای نوشتن یک بایت داده در یک ادرس مشخص از حافظه ایپرام از تابع زیر استفاده میکنیم. که با استفاده از این دستور عدد ۲۵ در ادرس 0x004000 حافظه نوشته میشود.

و همچنین برای خواندن یک بایت داده از حافظه ایپرام با ادرس مشخص از دستور زیر استفاده میکنیم که مقدار خوانده شده از ادرس 0x004000 را در متغیر data قرار میدهد.

در این مثال از میکروکنترلر stm8s003 استفاده شده است که این میکرو کنترلر دارای ۱۲۸ بایت حافظه eeprom میباشد که از ادرس 0x004000 شروع میشود که این ادرس را میتوان با مراجعه به refrence manual میکروکنترلر مورد نظر در بخش Flash program memory and data EEPROM پیدا کرد.

آموزش میکروکنترلر STM8 قسمت اول-معرفی

همچنین با استفاده از نرم افزار stvp که شرکت st برای پروگرم نمودن میکروکنترلر های ۸ بیتی خود ارائه داده میتوان ادرس شروع و پایان بخش های مختلف حافظه را به همراه دیتای موجود در ان را مشاهده کرد.

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

پــــاور الــــکـــتـــرونــــیــــک

پاسخی بگذارید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

این فیلد را پر کنید
این فیلد را پر کنید
لطفاً یک نشانی ایمیل معتبر بنویسید.
شما برای ادامه باید با شرایط موافقت کنید

برای امنیت، استفاده از سرویس reCAPTCHA گوگل مورد نیاز است که موضوع گوگل است Privacy Policy and Terms of Use.

من با این شرایط موافق هستم .

فهرست