میکرو کنترلر های AVR

استاندار های مربوط به لوله
ژانویه 18, 2021
نقش تاسیسات برقی در ساختمان
ژانویه 25, 2021
Show all

میکرو کنترلر های AVR

#توان گستر


میکرو کنترلر های AVR

 به آی سی هایی که قابل برنامه ریزی می باشد و عملکرد آنها از قبل تعیین شده میکروکنترلرگویند میکرو کنترل ها دارای ورودی – خروجی و قدرت پردازش می باشد.
بخشهای مختلف میکروکنترلر :
میکروکنترلر ها از بخشهای زیر تشکیل شده اند
Alu واحد محاسبات

Cpu واحد پردازش

I /O ورودی ها و خروجی ها
Ram حافظه اصلی میکرو
Rom حافظه ای که برنامه روی آن ذخیره می گردد
Timer برای کنترل زمان ها
و . . .

یک میکروکنترلر چگونه برنامه ریزی میشود:

 میکرو کنترلر ها دارای کامپایلرهای خاصی می باشد که با زبان های Assembly basic, c می توان برای آنها برنامه نوشت سپس برنامه نوشته شده را توسط دستگاهی به نام programmer که در این دستگاه ای سی قرار می گیرد و توسط یک کابل به یکی از در گاه های کامپیوتر وصل می شود برنامه نوشته شده روی آی سی انتقال پیدا میکند و در Rom ذخیره می شود .

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

بهره های کلیدی AVR :
دارای بهترین MCU برای حافظه فلش در جهان ! (MCU: Master Control Unit)
دارای سیستمی با بهترین هماهنگی
دارای بالاترین کارایی و اجرا در CPU (یک دستورالعمل در هر سیکل کلاک(
دارای کدهایی با کوچکترین سایز
دارای حافظه خود برنامه ریز
دارای واسطه JTAG که با IEEE 1149.1 سازگار است
(IEEE: Institute of Electrical and Electronics Engineers.)
دارای سخت افزار ضرب کننده روی خود

دارای بهترین ابزارها برای پیشرفت و ترقی
دارای حالات زیادی برای ترفیع دادن یا Upgrade
واژگان کلیدی AVR :
میکرو کنترلر AVR به منظور اجرای دستورالعملهای قدرتمند در یک سیکل کلاک(ساعت) به اندازه کافی سریع است و می تواند برای شما آزادی عملی را که احتیاج دارید به منظور بهینه سازی توان مصرفی فراهم کند. میکروکنترلر AVR بر مبنای معماری RISC (کاهش مجموعه ی دستورالعملهای کامپیوتر) پایه گذاری شده و مجموعه ای از دستورالعملها را که با ۳۲ ثبات کار میکنند ترکیب می کند.

به کارگرفتن حافظه از نوع Flash که AVR ها به طور یکسان از آن بهره می برند از جمله مزایای آنها است. یک میکرو AVR می تواند با استفاده از یک منبع تغذیه ۲٫۷ تا ۵٫۵ ولتی از طریق شش پین ساده در عرض چند ثانیه برنامه ریزی شود یا Program شود. میکروهای AVR در هرجا که باشند با ۱٫۸ ولت تا ۵٫۵ ولت تغذیه می شوند البته با انواع توان پایین Low Powerکه موجودند.
راه حلهایی که AVR پیش پای شما می گذارد، برای یافتن نیازهای شما مناسب است:

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

 

خانواده های محصولات AVR :
Tiny AVR:
میکروهای مدل tiny توانایی های عظیمی دارند.به خاطر کوچک بودن و داشتن MCU بسیار پر قدرت به اینگونه میکروها نیاز فراوانی هست آنها به هیچ منطق خارجی نیاز نداشته و به همراه یک IC مبدل آنالوگ به دیجیتال و یک حافظه قابل برنامه ریزی EEPROM قابلیتهای خود را ثابت می کنند.
میکروکنترلری با اهداف کلی و با بیش از ۴ کیلو بایت حافظه فلش و ۱۲۸ بایت حافظه استاتیک و قابل برنامه ریزی است.(منظور از حافظه استاتیک SRAM و حافظه قابل برنامه ریزی EEPROM است).

نکات کلیدی و سودمند مدل Tiny :
• آنها به منظور انجام یک عملیات ساده بهینه سازی شده و در ساخت وسایلی که به میکروهای کوچک احتیاج است کاربرد فراوان دارند.
• کارایی عظیم آنها برای ارزش و بهای وسایل موثر است.

Mega AVR:
چنانچه به میکرویی نیاز دارید که دارای سرعت و کارایی بالا باشد و توانایی اجرای حجم زیادی از کد برنامه را داشته و بتواند داده های زیادی را سروسامان دهد باید از AVR های مدل Mega استفاده کنید آنها به ازای هر یک مگا هرتز سرعت ، توانایی اجرای یک میلیون دستورالعمل در هر یک ثانیه را دارند همچنین قابل برنامه ریزی و بروزرسانی کدها با سرعت و امنیت بسیار بالایی هستند. این نوع میکروها قابلیت خود برنامه ریزی دارند و می توان آنها را بدون استفاده از مدارات اضافی برنامه ریزی کرد همچنین بیش از ۲۵۶ کیلو بایت حافظه فلش و ۴ کیلوبایت حافظه استاتیک و قابل برنامه ریزی دارند.

نکات کلیدی و سودمند مدل :Mega
• حافظه سریع از نوع فلش با عملکرد خود برنامه ریز و بلوکه ی بوت (Boot Block)
• دقت بسیار بالای ۸-کانال در تبدیل آنالوگ به دیجیتال ۱۰ بیتی
• USART و SPI و TWI بر طبق واسطه های سریال
• واسطه ی JTAG بر طبق IEEE 1149.1

فقط در میکروهای با بیش از ۱۶ کیلوبایت حافظه فلش موجود است.

معایب و مزایای میکروکنترلر های مختلف

میکرو کنترلر ۸۰۵۱:
اگربخواهیم به صورت کلی مسیر پیشرفت این نوع میکروکنترلر را در نظر بگیریم اولین میکروکنترلر هایی که ساخته شد با جدیدترین میکروکنترلرهای ۸۰۵۱ که الان تولید می شود با توجه به پیشرفت شگفت که صنایع دیگر در دنیا دارند پیشرفت زیادی نکرده اند به طور مثال AT89S5X که میکروکنترلر ۸۰۵۱ ساخت جدید ATMEL است نسبت به مدل های اولیه ۸۰۵۱ پیشرفت آنچنانی ندارد . امکانات این میکرو نسبت به AVR و PIC قابل مقایسه نیست . به صورتی که که همین مد

ل جدید ۸۰۵۱ تقریبا حافظه ای برابر یک صدم (۰٫۰۰۱ ) میکروکنترلر های AVR را دارد و سرعتش ۴ برابر کمتر از میکروکنترلر های PIC و ۱۲ بار کمتر از میکروکنترلر های AVR است . از لحاظ امکانات دیگر هم چنین ضعفی احساس میشود. اما برای کارهای ساده تر که پیچیدگی زیادی در آن نباشد به خاطر قیمت بسیار پایینی که این میکروکنترلر دارد بسیار مناسب است . قیمت مدل جدید AT89S5X حدود ۱۰۰۰ تومان است که قیمت بسیار مناسبی است.

این میکرو کنترلر از زبان اسمبلی و C پشتیبانی میکند که زبان برنامه نویسی اصلی آن اسمبلی است که واقعا نوشتن با این زبان برنامه نویسی نسبت به زبان های برنامه نویسی دیگر هم مشکل تر و هم طولانی تر است. در کل این میکروکنترلر امروزه دیگر توانای رقابت با AVR و PIC رو ندارد و امروزه رقابت اصلی بین این دو میکروکنترلر است .

میکروکنترلرPIC :
این خانواده از نظر امکانات مانند AVR میباشد و در کل صنعتی تر است . میکروکنترلر خیلی قوی است که بر اساس بعضی آمار ها بیشترین کاربر را به خود اختصاص داده است البته در ایران این آمار به نفع AVR است. این میکروکنترلر ساخت شرکت میکرو چیپ است که PIC رو در مدل های خیلی زیادی با امکانات مختلف برای کارهای مختلف میسازد . این میکروکنترلر با مدل های مختلفPIC16XXX و PIC12XXXX که به جای X دوم از چپ به راست حروف C ,X,E,F قرار میگیرد که هر کدام مفهوم خاصی دارد که X های بعدی هم اعدادی هستنند که نشان دهنده مدل های مختلف هستنند .

میکروکنترلرAVR:
این خانواده از میکرو کنترلرها تمامی امکانات ۸۰۵۱ را دارا می باشد و امکاناتی چون ADC مبدل آنالوگ به دیجیتال نوسان ساز داخلی و قدرت و سرعت بیشتر و( – EEPROM حافظه) از جمله مزایای این خانواده می باشد.
.اول از همه سرعت این میکروکنترلر بسیار بالاست و دستوراتی که به آن داده می شود را در یک سیکل کلاک انجام میدهد در صورتی که این سیکل کلاک برای ۸۰۵۱ باید تقسیم بر۱۲شودو برای PIC باید تقسیم بر ۴ بنابراین AVR سریعترین میکروکنترلر موجود در بازار است . AVR از زبان های برنامه نویسی سطح بالا یا به اصطلاح (HIGH LEVEL LANGUAGE) HLLپشتیبانی می کند که

باعث تولید کدهای بیشتری می شود که در کل برنامه نوشته شده نسبت به برنامه هایی که برای ۸۰۵۱ و PIC نوشته می شود کوتاهتر است. امکانات جانبی این میکروکنترلر بسیار مناسب است و شما را از خرید بعضی لوازم جانبی مانند چیپ های آنالوگ به دیجیتال (ADC) , مقایسه گر آنالوگ و… راحت میکند.

در ضمن AVR از بسیاری از استاندارد های ارتباطی مانند SPI,UART,12C,JTAG پشتیبانی میکند که به راحتی میتوان این میکروکنترلر را با میکروکنترلر دیگر یا به وسایل دیگر به راحتی وصل کرد. قیمت این میکروکنترلر هم به نسبت امکانات فراوانی که داره بسیار پایین است به طوری که یک میکروکنترلر AVR تقریبا پیشرفته رو با قیمت حول و حوش ۳ تا ۴ هزار تومان خرید .

شرکت ۵ Atmel میکروکنترلر ۸ بیتی AVR جدید با توان مصرفی بسیار پایین برای استفاده در مدارات با تعداد کدهای بالا و اینترفیسینگ زیاد عرضه نموده است.
این میکروکنترلر ها با نام های ATmega640، ATmega1280، ATmega2560، ATmega1281، ATmega2561 عرضه شده است و دارای ۶۴ تا ۲۵۶ کیلو بایت flash و ۸ کیلو بایت RAM به صورت داخلی می باشد.

این میکروهای جدید مدارات جانبی میکروها را با توجه به مدارات داخلی خود کاهش داده است که از آن جمله می توان به وجود یک اسیلاتور RC 8مگا هرتزی در داخل خود که باعث حذف اسیلاتور خارجی گشته است را نام برد؛ از دیگر قابلیت های جالب این میکرو مصرف بسیار پایین آن می باشد این میکرو که با ۱٫۵ ولت کار می کند در حالت power down تنها ۱۰۰ نانو آمپر مصرف می کند که باعث افزایش عمر باتری خواهد شد..مدل ۱۰۰ پین این میکرو ها داراری ۴ کانال UART و ۱۶ عدد A/D می باشد.

 

فیوز بیت ها، منابع کلاک وReset

فیوز بیت ها
فیوز بیت ها قسمتی از حافظه ی میکروکنترلرAVRهستند که امکاناتی را در اختیار کاربر قرار می دهند و باErase شدن میکرو مقدار آن ها تغییر نمی کند. یک به معنی غیر فعال بودن و صفر فعال بودن هر بیت می باشد. قطعه ی mega 16 دارای ۲ بایت فیوز بیت طبق جدول زیر می باشد:

:BOOTRSTانتخاب برداری است BOOT که در حالت پیش فرض برنامه ریزی نشده است و آدرس
برداری است۰۰۰۰ است و در صورت برنامه ریزی آدرس بردار Resetطبق جدول زیر تعیین می
شود) براساس(BOOTSZ [1,0]

:BODEN این بیت فعال ساز Brown-out Detector بوده و در صورت پروگرام شدن مطابق وضعیت جدول زیر سطح ولتاژ Brown-out تعیین می شود.

منابع کلاک
همانطور که در دیاگرام زیر دیده می شود، این منابع شامل: اسیلاتور RC کالیبره شده، اسیلاتور کریستالی فرکانس پایین، اسیلاتور کریستالی، کلاک خارجی، اسیلاتور RC خارجی و اسیلاتور تایمر/کانتر می باشند.

انتخاب منبع کلاک بوسیله ی فیوزبیت های CKSEL بوده و مطابق جدول زیر می باشد. مقدار پیش فرض بیت های , CKSEL یک بوده و در نتیجه منبع پیش فرض، اسیلاتور RC داخلی می باشد.

کلاک خارجی : برای راه اندازی وسیله بوسیله ی منبع کلاک خارجی باید مطابق شکل زیر یک پالس به پین XTAL1 اعمال می شود.برای قرار گرفتن در این وضعیت باید تمام بیت های CKSEL پروگرام شده (صفر شوند (و کاربر می تواند با پروگرام کردن فیوزبیت CKOPTیک خازن داخلی به ظرفیت ۳۶ پیکوفاراد را بین ورودی وزمین قرار دهد.

اسیلاتور RCکالیبره شده ی داخلی: این منبع در فرکانس های ۱و۲و۴و۸ مگاهرتز موجود می باشد و مقدار آن در دمای ۲۵ درجه و ولتاژ ۵ ولت کالیبره شده است که در این وضعیت ممکن است تا ۳ درصد در کلاک ایجاد شده وجود داشته باشد . فرکانس نوسان بوسیله ی فیوزبیت های CKSEL تعیین شده و مطابق جدول زیر می باشد. در این وضعیت CKOPT نباید پروگرام شود.

اسیلاتور RC خارجی :
در کاربردهایی که دقت کلاک اهمیت زیادی ندارد می توان از این منبع استفاده کرد .پیکربندی مطابق شکل زیر بوده و فرکانس نوسان از رابطه ی بدست می آید . حداقل مقدار Cبرابر۲۲ پیکوفاراد بوده و در صورتی که CKOPT پروگرام شود می توان مقدار ۳۶ پیکوفاراد را نیز لحاظ نمود.

این منبع نوسان می تواند در چهار MODEکاری عمل کند که هر کدام برای یک بازه ی فرکانسی بهینه شده است و بوسیله ی فیوزبیت های CKSEL مطابق جدول زیر انتخاب می شود.

اسیلاتور کریستالی فرکانس پایین: این منبع کلاک می تواند کریستال های فرکانس پایین مثل کریستال ساعت با فرکانس ۳۲۷۶۸ هرتز باشد با دادن مقدار ۱۰۰۱ به فیوزبیت های CKSEL. منبع کلاک کریستال خارجی فرکانس پایین انتخاب شده و در این وضعیت پیکربندی مطابق شکل زیر می باشد. در صورت پروگرام نمودن CKOPT می توان از خازن خارجی صرفنظر نمود.

کریستال کوارتز یا رزوناتور سرامیکی : پبن های XTAL1 و XTAL2 به ترتیب ورودی و خروجی یک تقویت کننده ی وارونگر هستند که می توانند به عنوان یک اسیلاتورOn-chip مطابق شکل زیر پیکربندی شوند.

  • به جای کریستال کوارتز می توان از رزوناتور سرامیکی استفاده نمود که از دوام بیشتری در مقابل ضربه بر خوردار است و زمان STARTUP کمتری نیز دارد و البته نسبت به کریستال کوارتز دقت کمتری داشته و پایداری دمایی آن نیز کمتر است.
  • در این وضعیت خازن های ۳۶ پیکو فاراد حذف شده و عملکرد فیوزبیت CKOPT نیز تغییر می کند . بدین ترتیب که با پروگرام شدن این بیت دامنه ی خروجی تقویت کننده ی وارونگر افزایش یافته و می توان از پین XTAL2 به عنوان کلاک برای یک وسیله ی دیگر استفاده نمود. همچنین با فعال کردن CKOPT در محیط های نویزی عملکرد اسیلاتور بهبود می یابد.
  • چنانچه از رزوناتور استفاده می شود برای فرکانس های بالاتر از ۸ مگاهرتز باید CKOPT پروگرام شود.اسیلاتور می تواند در سه وضعیت متفاوت نوسان کند که هرکدام برای یک محدوده ی فرکانسی بهینه شده است و آن را می توان با فیوز بیت های CKSEL مطابق جدول زیر انتخاب نمود.

با هر یک از منابع کلاک انتخاب شده بوسیله ی فیوزبیت های ,CKSELدو بیت به نام های [۱,۰] SUT نیز وجود دارد که از طریق آن می توان حداکثر زمان Start-up منبع کلاک را به میکرو اعلام نمود . مقدار این بیت ها به طور پیش فرض ماکزیمم زمان Start-up را در نظر می گیرد و در صورتی که نیاز است مقدار آن را تغییر دهید مطابق جداول مربوطه در فصل System Clock and Clock Options در Datatsheet عمل کنید.

منابع RESET
با Reset شدن میکروکنترلر، تمام رجیسترهای I/O به مقدار اولیه شان تغییر می کنند و CPU شروع به اجرای دستورالعمل ها از بردار Reset خواهد کرد. در قطعه ی ۵ Mega 16 منبع Reset وجود دارد که عبارتند از:

۱٫ Power-on Reset
2. External Reset
3. Brown-out Reset
4. Watchdog Reset
5. JTAG AVR Reset

منطق Reset مطابق دیاگرام زیر می باشد:

مشخصات هر یک از منابع Reset را در جدول زیر مشاهده می کنید:

Power-on Reset .1 : زمانی فعال خواهد که ولتاژ Vcc کمتر از حد تعیین شده باشد. این منبع تضمین می کند که وسیله در زمان راه اندازی Reset می شود . با رسیدن ولتاژ به حد آستانه ، شمارنده ی تاخیر راه اندازی شده که تعیین می کند چه مدت وسیله در وضعیت Reset بماند . دیاگرام زمانی زیر شرایطی را نشان می دهد که پین RESET به Vcc وصل شده است. (و یا آزاد باشد چون این پین از داخل Pull-up شده است).

و نمودار زیر شرایطی است که سطح منطقی پین Reset تابع Vcc نمی باشد:

External Reset .2: این Reset بوسیله ی یک پالس با سطح صفر منطقی روی پین Reset ایجاد شده و حداقل عرض آن ۱,۵ میکرو ثانیه می باشد . با رسیدن ولتاژ این پین به مقدار آستانه در لبه بالا رونده، شمارنده ی تاخیر شروع به کار کرده و پس از اتمام زمان Time-out میکروکنترلر کار خود را شروع خواهد کرد.

Brown-out Detection .3: قطعه ی ATMega 16 دارای یک مدار Brown-out Detection داخلی بوده که پیوسته مقدار ولتاژ Vcc را با یک مقدار ثابت مقایسه می کند . این مقدار ثابت برابر ۲,۷ ولت بوده و در صورتی که فیوزبیت BODLEVEL پروگرام شود به ۴,۰ ولت افزایش می یابد . با کمتر شدن ولتاژ تغذیه از این مقدار ثا بت میکروکنترلر وارد حالت Reset شده و با عادی شدن ولتاژ ، پس از اتمام تاخیر به وضعیت عادی باز می گردد .
برای حفاظت در برابر Spike مقدار آستانه دارای پسماند بوده و در نتیجه دارای دو مقدار مثبت و منفی می باشد که با توجه به مقادیر موجود در جدول از رابطه ی و بدست می آید.
مدار Brown-out Detection در حالت عادی غیر فعال بوده و برای راه اندازی آن باید فیوزبیت BODEN پروگرام (صفر) شود.

Watchdog Reset .4 : با اتمام زمان تایمر Watchdog ،تایمر یک پالس به عرض یک سیکل ایجاد خواهد کرد . در لبه ی پایین رونده ی این پالس، تایمر تاخیر شروع به شمارش زمان تاخیر کرده و پس ازاتمام آن میکروکنترلر کار عادی خود را ادامه خواهد داد.

MCU Control and Status Register

این رجیستر محتوی اطلاعاتی است که نشان می دهد کدامیک از منابع Reset باعث راه اندازی مجدد CPU شده است. نرم افزار پس از خواندن هر بیت باید با نوشتن صفر بر روی آن، پرچم را پاک کند تا در صورت Reset مجدد، وقوع آن قابل تشخیص باشد.

SPI Bus

SPI که یک استاندارد سریال سنکرون می باشد سرنام Serial Peripheral Interface بوده و بوسیله شرکت موتورولا طراحی شده است . این استاندارد به لحاظ پشتیبانی از سرعت های بالا نه تنها در کاربردهای اندازه گیری بلکه در مواردی نظیر انتقال حجم بالای اطلاعات ، پردازش سیگنال دیجیتال، کانال های ارتباطی و … نیز مورد استفاده واقع می شود . سرعت چند مگابیت بر ثانیه به راحتی توسط SPI قابل دسترسی است و در نتیجه امکان انتقال صوت فشرده نشده و تصویر فشرده شده وجود خواهد داشت.
در زیر لیست برخی از وسایل SPI آورده شده است:

نحوه عملکرد SPI
این استاندارد برای ایجاد یک ارتباط به چهار خط ارتباطی نیاز دارد:

همانطور که ملاحظه می شود این چهار خط ,SCK ,MOSI ,MISO SS بوده که به ترتیب خط کلاک، ,Master out slave in ,Master in slave out ,Slave Select می باشند . نحوه ی تعامل Master و Slave در شکل زیر نشان داده شده است:

سیستم شامل دو Shift Register و یک مولد کلاک می باشد. Master با صفر کردن خط SS از slave مورد نظر ، چرخه ی ارتباطی را آماده می کند.Master و Slave داده ی مورد نظر برای ارسال را در Shift Register قرار داده و Master با ایجاد کلاک در خط SCK مبادله ی داده را آغاز می کند .

اطلاعات از پین MOSI در Master خارج شده و وارد پین MOSI درSlave می شود . در طرف Slave نیز داده از پین MISO خارج شده و وارد MISO از Master می شود . بعد از اتمام ارسال یک ,Packet مجددا خط SS توسط Master یک شده و بدین ترتیب Slave با Master سنکرون می شود.

رجیسترهای SPI
ماژول SPI دارای سه رجیستر ,SPDR,SPSR وSPCR بوده که به ترتیب رجیسترهای داده، وضعیت و کنترل می باشند.

SPI Data Register

نوشتن بر روی این رجیستر شروع انتقال داده را موجب خواهد شد و خواندن آن موجب خواندن داده ی موجود در بافر دریافت خواهد شد.

SPI Status Register

:Double SPI Speed Bit با نوشتن یک بر روی این بیت در صورتیکه ماژول SPI در وضعیت Master باشد فرکانس کلاک موجود روی پین SCK دو برابر خواهد شد.

:Write COLlision Flagاین پرچم زمانی یک خواهد شد که در حین انتقال یک بایت بر روی رجیستر SPDR مقداری نوشته شود. با اولین خواندن رجیستر SPSR این بیت پاک می شود.
:SPI Interrupt Flag این بیت در دو حالت یک می شود: ۱٫ با اتمام ارسال یک بایت این پرچم یک شده و در صورتی که بیت SPIE و فعال ساز عمومی وقفه ها یک باشند اتمام عملیات می تواند

باعث ایجاد یک وقفه شود. ۲٫ پین SS از خارج توسط یک وسیله ی دیگر زمین شود، این به معنای از دست د ادن حاکمت باس بوده و این وضعیت با یک شدن بیت SPIF اعلام می شود . با اجرای ISR یا خواندن رجیستر وضعیت این بیت پاک می شود.

دیدگاهتان را بنویسید

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

error: Content is protected !!