زنگ

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

قبلا از AvrUsb500 by Petka (STK500) و AVR Studio 4 برای فلش میکروکنترلرهای AVR استفاده می کردم تا زمانی که تراشه FTDI FT232RL از کار افتاده بود و نمی خواست کار کند. بعد از آن شروع به جستجوی جایگزین کردم و به آن برخورد کردم برنامه نویس Khazama AVRو . من بلافاصله این برنامه را به دلیل مینیمالیسم آن دوست داشتم، رابط کاربری ساده و شهودی دارد. کوچک و از راه دور. از آن زمان من از این برنامه نویس فوق العاده AVR استفاده می کنم.

ویژگی های برنامه نویس Khazama AVR

خزامابا همه میکروکنترلرهای محبوب AVR کار می کند، به شما امکان می دهد فلش و eeprom را برنامه ریزی کنید، محتویات حافظه فلش و eeprom را بخوانید، تراشه را پاک کنید و پیکربندی فیوز بیت ها را تغییر دهید (Fuses and Lock Bits). هر آنچه برای فلش میکروکنترلرهای AVR نیاز دارید. فیوزها با انتخاب منبع ساعت از لیست کشویی پیکربندی می شوند، بنابراین، احتمال "کشتن" کنترل کننده به اشتباه به شدت کاهش می یابد. فیوزها را نیز می توان با قرار دادن چک باکس ها در قسمت پایینی تغییر داد، در حالی که نمی توانید پیکربندی موجود را علامت بزنید، که پیکربندی فیوز را ایمن تر می کند. و این نیز یک مزیت بزرگ است.

فیوزهای ضبط

فیوزها با فشار دادن دکمه Write All در حافظه میکروکنترلر نوشته می شوند. یک دکمه Save برای ذخیره پیکربندی فعلی وجود دارد و Load ذخیره شده را برمی گرداند. دکمه پیش فرض برای نوشتن یک پیکربندی فیوز استاندارد است، مانند میکروکنترلرها از کارخانه، معمولاً 1 مگاهرتز از RC داخلی.
در کل در تمام مدت استفاده از این پروگرامر از نظر پایداری، امنیت و سرعت از بهترین طرف خود را نشان داد. من استفاده از آن را به هر کسی که می خواهد میکروکنترلرهای AVR را برنامه ریزی کند توصیه می کنم.

همانطور که تئاتر با آویز شروع می شود، برنامه ریزی میکروکنترلر نیز با انتخاب یک برنامه نویس خوب شروع می شود. از آنجایی که من شروع به تسلط بر میکروکنترلرهای ATMEL کردم، مجبور شدم کاملاً با آنچه تولید کنندگان ارائه می دهند آشنا شوم. آنها چیزهای جالب و خوشمزه زیادی را ارائه می دهند، فقط با قیمت های بسیار بالا. به عنوان مثال، یک روسری با یک میکروکنترلر بیست پا با یک جفت مقاومت و دیود به عنوان تسمه مانند یک "هواپیما" هزینه دارد. بنابراین، این سوال در مورد خود مونتاژ برنامه نویس مطرح شد. پس از مطالعه طولانی در مورد پیشرفت آماتورهای رادیویی با تجربه، تصمیم گرفته شد که یک برنامه نویس USBASP به خوبی تثبیت شود که مغز آن میکروکنترلر Atmega8 است (گزینه های سیستم عامل برای atmega88 و atmega48 نیز وجود دارد). حداقل اتصال میکروکنترلر به شما امکان می دهد یک برنامه نویس نسبتا مینیاتوری را جمع آوری کنید، که همیشه می توانید مانند یک درایو فلش آن را با خود ببرید.

نویسنده این برنامه نویس Thomas Fichl آلمانی است، صفحه توسعه آن با نمودارها، فایل های PCB و درایورها.
هنگامی که تصمیم به مونتاژ یک برنامه نویس مینیاتوری گرفته شد، مدار میکروکنترلر Atmega8 را در بسته TQFP32 دوباره ترسیم کردم (پایه میکروکنترلر با پین اوت بسته DIP متفاوت است):

در صورت نیاز به فلاش زدن میکروکنترلر با فرکانس کلاک زیر 1.5 مگاهرتز از جامپر J1 استفاده می شود. به هر حال، این جامپر را می توان با کاشت پایه 25 MK روی زمین به طور کلی از بین برد. سپس برنامه نویس همیشه با فرکانس کاهش یافته کار خواهد کرد. من شخصاً متوجه شدم که برنامه نویسی با سرعت کاهش یافته کسری از ثانیه طولانی تر است و بنابراین اکنون جامپر را نمی کشم بلکه دائماً با آن می دوزم.
دیودهای Zener D1 و D2 برای مطابقت با سطوح بین برنامه نویس و گذرگاه USB کار می کنند، بدون آنها کار می کند، اما نه در همه رایانه ها.
LED آبی نشان می دهد که مدار آماده برنامه ریزی است، LED قرمز در حین برنامه ریزی روشن می شود. مخاطبین برای برنامه نویسی به کانکتور IDC-06 آورده می شوند، پین اوت مطابق با استاندارد ATMEL برای یک کانکتور ISP 6 پین است:

این کانکتور دارای کنتاکت هایی برای تغذیه دستگاه های قابل برنامه ریزی است، در اینجا مستقیماً از درگاه USB رایانه گرفته شده است، بنابراین باید مراقب باشید که اجازه اتصال کوتاه را ندهید. از همین کانکتور برای برنامه ریزی میکروکنترلر کنترل نیز استفاده می شود، برای این کار کافی است پین های Reset را روی کانکتور و روی MK وصل کنید (خط نقطه چین قرمز را در نمودار ببینید). در طرح نویسنده، این کار توسط یک جامپر انجام می شود، اما من تخته را شلوغ نکردم و آن را حذف کردم. برای یک سیستم عامل، یک بلوز سیمی ساده کافی است. تخته دو طرفه به اندازه 45x18 میلی متر بود.

کانکتور برای برنامه نویسی و یک جامپر برای کاهش سرعت پروگرامر در انتهای دستگاه قرار داده شده است که بسیار راحت است.

سیستم عامل میکروکنترلر کنترلی
بنابراین، پس از مونتاژ دستگاه، مهمترین چیز باقی می ماند - فلش کردن میکروکنترلر کنترل. برای این منظور، دوستانی که کامپیوتر را با پورت LPT ترک کرده اند، مناسب هستند :) ساده ترین برنامه نویس پنج سیم برای AVR
با اتصال پایه های Reset میکروکنترلر (پایه بیست و نهم) و کانکتور می توان میکروکنترلر را از کانکتور برنامه نویسی فلاش کرد. سفت‌افزار برای مدل‌های Atmega48، Atmega8 و Atmega88 وجود دارد. توصیه می شود از یکی از دو سنگ آخر استفاده کنید، زیرا پشتیبانی از نسخه Atmega48 متوقف شده است و آخرین نسخه سیستم عامل به سال 2009 باز می گردد. و نسخه های سنگ های 8 و 88 به طور مداوم به روز می شوند و به نظر می رسد نویسنده در حال برنامه ریزی برای اضافه کردن یک دیباگر در مدار به عملکرد است. ما سیستم عامل را در صفحه آلمانی می گیریم. برای آپلود برنامه کنترل روی میکروکنترلر از برنامه PonyProg استفاده کردم. هنگام برنامه نویسی، لازم است که کریستال از یک منبع ساعت خارجی با فرکانس 12 مگاهرتز کار کند. اسکرین شات برنامه با تنظیمات فیوز جامپر در PonyProg:

پس از فریمور، LED متصل به پایه 23 میکروکنترلر باید روشن شود. این نشانه مطمئنی خواهد بود که برنامه نویس با موفقیت فلش شده و آماده کار است.

نصب درایور
نصب بر روی دستگاهی با سیستم ویندوز 7 انجام شد و هیچ مشکلی ایجاد نشد. هنگام اتصال به رایانه برای اولین بار، پیامی در مورد کشف یک دستگاه جدید ظاهر می شود که از شما می خواهد درایور را نصب کنید. نصب را از محل مشخص شده انتخاب کنید:

در یک لحظه، پنجره ای ظاهر می شود که هشدار می دهد درایور نصب شده دارای امضای دیجیتال برای درایورهای نرم کوچک نیست:

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

همه چیز، اکنون برنامه نویس آماده کار است.

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

با همه میکروکنترلرهای محبوب AVR کار می کند، به شما امکان می دهد فلش و eeprom را فلش کنید، محتویات حافظه را مشاهده کنید، تراشه را پاک کنید و همچنین تنظیمات فیوز بیت ها را تغییر دهید. به طور کلی، یک مجموعه کاملا استاندارد. فیوزها با انتخاب منبع ساعت از لیست کشویی پیکربندی می شوند، بنابراین، احتمال قفل شدن کریستال به اشتباه به شدت کاهش می یابد. فیوزها را نیز می توان با قرار دادن چک باکس ها در قسمت پایینی تغییر داد، در حالی که نمی توانید چک باکس ها را روی تنظیماتی که وجود ندارند قرار دهید، و این نیز از نظر امنیت یک مزیت بزرگ است.

همانطور که ممکن است حدس بزنید، ضبط فیوزها در حافظه MK با فشار دادن دکمه Write All انجام می شود. دکمه Save پیکربندی فعلی را ذخیره می کند و دکمه Load پیکربندی ذخیره شده را برمی گرداند. درست است، من نمی توانستم یک برنامه کاربردی برای این دکمه ها فکر کنم. دکمه پیش فرض برای نوشتن پیکربندی فیوز استاندارد طراحی شده است، مانند میکروکنترلرها از کارخانه (معمولاً 1 مگاهرتز از RC داخلی).
در کل در تمام مدت استفاده از این پروگرامر از نظر پایداری و سرعت از بهترین طرف خود را نشان داد. هم روی یک کامپیوتر ثابت قدیمی و هم روی یک لپ تاپ جدید بدون مشکل کار می کرد.

می توانید فایل PCB را در SprintLayout دانلود کنید

برنامه به نسخه آپدیت شده است 08.06.2010.
نویسنده Uniprofتلاش خستگی ناپذیری برای بهبود برنامه خود و حتی بهتر کردن آن. نسخه برنامه از 08.06.2010 میکروکنترلرها را خیلی بهتر می دوزد. خرابی های مکرر مشاهده شده در نسخه قبلی هنگام برنامه نویسی بدون چک باکس "ترمز" مربوط به گذشته است. هر چیز دیگری که ما در مورد UniProf خیلی دوست داریم در جای خود باقی مانده است.

صادقانه بگویم، در ابتدا تصمیم گرفتم از برنامه AVRDUDE ("لوله") برای فلش کردن میکروکنترلرها استفاده کنم. AVRDUDE یک برنامه قدرتمند است که شایسته احترام است - می تواند با تعداد زیادی برنامه نویس، با مجموعه ای از تنظیمات کار کند و به طور گسترده برای میکروکنترلرهای AVR استفاده می شود. این برنامه "GUI" خود را ندارد (از خط فرمان کار می کند) و من قصد داشتم برای هر سیستم عامل فایل های دسته ای بنویسم تا کنترلر را با "یک کلیک" فلش کنم. اما بعد از کمی فکر به این نتیجه رسیدم:
- برنامه باید ساده و در دسترس باشد - به طوری که حتی فردی که هرگز با میکروکنترلرها کار نکرده است بتواند آن را بفهمد (خب، من یک ایده آلیست هستم :))؛
- کوچک، قابل حمل، با رابط کاربری گرافیکی خاص خود، تمام مراحل برنامه نویسی را به صورت بصری نمایش می دهد، میکروکنترلرهای مورد استفاده در وبلاگ را پشتیبانی می کند.
متأسفانه، AVRDUDE با این الزامات مطابقت ندارد.
اما برنامه دیگری مناسب است - برنامه نویس UniProf-Universal برای AVR. این برنامه دارای اشکالات خاصی است، اما آنها را با سادگی و دسترسی جبران می کند. علاوه بر این، UniProf می تواند با برنامه نویسان LPT و COM ما کار کند. بنابراین تصمیم گرفتم برنامه UniProf را پس از بررسی کلی انجام دهم و بعداً به طور جداگانه برنامه نویسی از طریق پورت LPT و COM را شرح خواهم داد. بنابراین …

نویسنده برنامه میخائیل نیکولایف است. این برنامه تاریخچه نسبتا طولانی دارد، اما نمی تواند از به روز رسانی های مکرر به خود ببالد. در عین حال، این برنامه به قدری ساده و راحت است که حتی در حال حاضر، حتی در پس زمینه برنامه های پیشرفته تر، ارتباط خود را از دست نمی دهد.

بیایید مقدمه را شروع کنیم.
شامل تمام قابلیت های برنامه است. شما مجبور نیستید از منو بالا بروید - همه چیز با یک کلیک انجام می شود. این برنامه کمک خاص خود را دارد (F1 را فشار دهید) که در آن همه چیز با جزئیات توضیح داده شده است. رابط UniProf بصری است، اما اجازه دهید عناصر پنجره را مرور کنیم.
عنصر اصلی پنجره PROGRAM است. (در سلول های جدول) مقادیر خوانده شده یا نوشته شده سلول های حافظه کنترل کننده را نمایش می دهد. اگر تیک کادر PROGRAM را بردارید، پنجره ناپدید می شود. همچنین یک چک باکس EEPROM برای نمایش یا پنهان کردن پنجره EEPROM حافظه کنترلر وجود دارد (در بیشتر موارد، ما به EEPROM نیاز نداریم - علامت آن را بردارید).

ردیف بالای دکمه ها (از چپ به راست)

محتویات ویندوز (سیستم افزار) را روی کنترلر بنویسید.ابتدا باید سیستم عامل را از فایل در ویندوز بارگذاری کنید. (وقتی چک باکس EEPROM علامت زده می شود، ناحیه EEPROM نیز ثبت می شود).

بررسی (تأیید) حافظه کنترلربا مقادیر در جعبه تفاوت ها با ستاره نشان داده می شوند. (پس از ضبط، تأیید به طور خودکار انجام می شود - بنابراین نیازی به بررسی ندارید).

کنترل کننده را از نظر تمیزی بررسی کنید. برای یک کنترل کننده "تمیز"، تمام سلول های حافظه حاوی 0xFF هستند که بررسی می شود.

تنظیم بیت فیوز.همانطور که در تصویر پیوست شده به هر سیستم عامل، کادرها را با دقت بررسی کنید.
مهم! قبل از چشمک زدن بیت فیوز، مطمئن شوید که چک باکس "ترمز" را بررسی کنید، این کار خطر ضبط نادرست را کاهش می دهد.

تیم سطح پایینبهتره دست نزنی

پاک کردن (پاک کردن) کنترلر.قبل از هر برنامه ریزی، کریستال را تمیز کنید.

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

"اسکال"- خواندن بایت های کالیبراسیون کنترلر. ما نیاز نداریم.

F1-کمک- با کمک داخلی تماس بگیرید.

دو دکمه بعدی اشکال زدایی در کنترلر- ما نیاز نداریم.

پین های LPT- یک چیز بسیار مفید برای کسانی که قبلاً برخی از خطوط پورت LPT را شلیک کرده اند یا از برنامه نویسی با طراحی متفاوت استفاده می کنند. به شما امکان می دهد هر خط پورتی را برای جایگزینی خطوط سوخته اختصاص دهید.

چک باکس های زیر دکمه ها.

مانند تصویر تنظیم کنید. اولی بایت های خوانده شده یا آماده برای نوشتن در کنترلر را نشان می دهد. دومی برای نوشتن اجباری 0xFF در یک سلول خالی است. مورد سوم معکوس کردن خطوط پورت COM (هنگام استفاده از تراشه بافر در برنامه نویس) است. نام کنترلر متصل به رنگ آبی خواهد درخشید.بعد - روشن / خاموش کردن پنجره EEPROM. فرکانس سیستم با رنگ قرمز نشان داده شده است.
مهم! اگر روی قرمز کلیک کنید، برنامه دوباره با کنترلر همگام می شود. برای هر موردی، قبل از برنامه‌نویسی فشار دهید.

سایر عناصر پنجره

این چک باکس ها دکمه های اضافی را حذف می کنند (برای اینکه گیج نشوند). مثل عکس گذاشتیم.

خیلی مهم!چک باکس الزامی در نسخه قدیمی برنامه، مشکلات خاصی با قابلیت اطمینان برنامه نویسی بدون این چک باکس وجود داشت. این مشکل در نسخه جدید برنامه حل شده است! اما اگر در حین نوشتن یا خواندن خطاهایی رخ دهد، برنامه بلافاصله صادقانه این را اعتراف می کند. اگر صادر شده اید - جعبه "ترمز" را علامت بزنید و همه چیز بدون مشکل ثبت می شود! فقط کندتر هنگام ضبط فیوزها، "ترمز" لازم است! نیازی به ریسک کردن نیست.

شما می توانید مشخص کنید که کدام منطقه را بسوزانید - "همه چیز!" را تنظیم کنید.

انتخاب بندری که با آن کار خواهیم کرد. اگر نمی دانیم برنامه نویس به کجا زده شده است، همه چیز را به نوبه خود مرتب می کنیم تا زمانی که کنترلر شما به رنگ آبی روشن شود.

کلیدهای میانبر نیز وجود دارد.

F2تنظیم تاخیر ضبط، نرمال = 6. در صورت وجود خطا، سعی کنید آن را افزایش دهید (؟ هیچ اثری مشاهده نمی شود).

F3لیستی از کنترلرهای پشتیبانی شده را نشان می دهد.

خاکستری-،+فونت اعداد را در پنجره های Flash و EEPROM کوچک و بزرگ کنید - این می تواند هنگام تغییر اندازه پنجره مفید باشد.

خروج- کنش فعلی را لغو کنید.

موارد بیشتری وجود دارد، اما نه چندان ضروری - راهنمای داخلی را بخوانید.

UniProf را می توانید از اینجا دانلود کنید:
- برنامه نویس برای AVR. به avr.nikolaew.org مراجعه کنید

P.S. به هر حال، با گذشت زمان، ما از AVRDUDE استفاده می کنیم - یک چیز قدرتمند!

(48 833 بار بازدید شده، 11 بازدید امروز)

ما یاد خواهیم گرفت که رابط ISP چیست، با یک برنامه نویس ارزان و راحت USB ISP سروکار خواهیم داشت. نمودار مدار ساده ترین برنامه نویسان برای میکروکنترلرهای AVR با استفاده از پورت های COM و LPT یک کامپیوتر را در نظر بگیرید. این اطلاعات برای فلش اکثر مدل های میکروکنترلر AVR نه تنها در لینوکس، بلکه در سایر سیستم عامل ها کاملاً کافی است.

رابط برنامه نویسی درون سیستم ISP

برای نوشتن برنامه روی میکروکنترلر AVR به یک برنامه نویس نیاز دارید.

برنامه نویس- این یک مدار الکترونیکی کوچک است که به شما امکان می دهد میکروکنترلر را به یکی از درگاه های رایانه (COM، LPT، USB) برای خواندن و نوشتن بعدی سیستم عامل (برنامه نویسی) متصل کنید.

طرح‌های متفاوتی از برنامه‌نویس‌ها برای میکروکنترلرهای AVR وجود دارد که به پورت‌های مختلف کامپیوتر متصل می‌شوند.

مطمئن ترین و راحت ترین گزینه برنامه نویسی است که به پورت USB متصل می شود، زیرا رایانه های رومیزی و لپ تاپ های جدید دیگر پورت های COM و LPT را نصب نمی کنند.

در دستگاه های تمام شده، برنامه نویس از طریق یک رابط به میکروکنترلر متصل می شود ISP(در برنامه نویسی سیستم) - یک رابط برای برنامه نویسی درون سیستمی. رابط ISP از چندین هادی تشکیل شده است که از طریق آنها سیگنال ساعت و داده برای اتصال برنامه نویس به میکروکنترلر دریافت می شود.

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

برنج. 4. رابط ISP روی برد.

تخصیص پین در رابط ISP:

  1. VCC - منبع تغذیه به علاوه، معمولا + 5 ولت؛
  2. GND - منهای منبع تغذیه، زمین (زمین)؛
  3. MOSI - ورودی داده (Master Out Slave In)؛
  4. MISO - خروجی داده (Master In Slave Out)؛
  5. SCK - سیگنال ساعت (ساعت سریال)؛
  6. RST - برای ارسال سیگنال تنظیم مجدد (Reset).

برای برنامه ریزی در مدار میکروکنترلر، تنها 4 پین کافی است، زیرا میکروکنترلر می تواند از خود مداری که در آن نصب شده است تغذیه شود.

در صورت لحیم نشدن پروگرامر به تراشه میکروکنترلر AVR چگونه می توان آن را به مدار متصل کرد؟ - بسیار ساده، با استفاده از همان پایه های رابط ISP، در صورت لزوم، تغذیه میکروکنترلر از منبع تغذیه.

برنامه نویس USB ISP ASP

برای کار با تراشه های AVR، یک برنامه نویس ارزان قیمت USB ISP را به قیمت حدود 10 دلار خریداری کردم. چنین دستگاهی در حال حاضر در بسیاری از فروشگاه های آنلاین داخلی و خارجی به فروش می رسد، بنابراین هیچ مشکلی برای خرید وجود ندارد.

برنج. 5. USB ISP - یک برنامه نویس با یک حلقه برای برنامه نویسی در مدار میکروکنترلرهای AVR از ATMEL.

استفاده از این پروگرامر ایمن است، اندازه کوچکی دارد و توسط اکثر برنامه ها برای فلش میکروکنترلرهای AVR پشتیبانی می شود. ISP USB تحت سیستم عامل های Linux، Mac OS X و Windows اجرا می شود. برای لینوکس نیازی به نصب هیچ درایوری نیست، پس از اتصال پروگرامر به پورت USB، دستگاه بلافاصله شناسایی و آماده استفاده می شود.

در زیر پین اوت کانکتورهای برنامه نویس USB ISP آمده است - بعداً هنگام اتصال به میکروکنترلر به کارتان می آید.

برنج. 6. محل قرارگیری پین ها روی کانکتور USB ISP (pinout).

برنج. 7. محل قرارگیری کنتاکت ها در سوکت های کانکتور متصل به پروگرامر USB ISP.

در صورت عدم امکان خرید برنامه نویس USB ISP چه باید کرد؟- می توانید میکروکنترلرها را با استفاده از برنامه نویس های ساده خانگی که به پورت COM یا LPT متصل می شوند، برنامه ریزی کنید، اما بهتر است در حین برنامه ریزی تراشه میکروکنترلر برای آن یک بار با یک برنامه نویس ساده خانگی از طریق COM یا LPT، یک ISP USB بسازید. بندر.

برنج. 8. نمودار شماتیک یک برنامه نویس خانگی USB ASP ISP.

اطلاعات دقیق در مورد ساخت USB ASP و همچنین بردهای مدار چاپی، درایورها و سیستم عامل میکروکنترلر را می توانید در وب سایت رسمی مشاهده کنید: http://www.fischl.de/usbasp/

علاوه بر این، منابع زیادی در اینترنت برای این برنامه نویس رایگان وجود دارد، بسیاری از طرح های PCB آماده، از جمله در برنامه SprintLayout وجود دارد، بنابراین در این مقاله به طور مفصل به این موضوع نمی پردازیم.

برنامه نویس با استفاده از پورت COM

این برنامه نویس به افتخار کسی که این طرح را اختراع کرد، خالق برنامه Algorithm Builder (محیط گرافیکی برای برنامه نویسی AVR تحت ویندوز با استفاده از زبان الگوریتمی) - G.L. "برنامه نویس گروموف" نیز نامیده می شود. گروموف.

این برنامه نویس به شما اجازه می دهد تا تراشه های AVR را با استفاده از پورت COM کامپیوتر - رابط RS232 برنامه ریزی کنید. برای مونتاژ چنین برنامه نویسی به حداقل قطعات نیاز دارید - 3 دیود، 7 مقاومت، یک کانکتور DB-9 یا DB-25 (بسته به اینکه کدام کانکتور جفت در رایانه شما نصب شده است) و یک کانکتور ISP برای اتصال به میکروکنترلر. (یا فقط چند هادی برای تراشه). دیودهای موجود در مدار را می توان با هر کم مصرفی استفاده کرد.

برنج. 9. نمودار شماتیک میکروکنترلرهای AVR برنامه نویس از طریق پورت COM کامپیوتر.

برای کامل شدن اطلاعات، در زیر پین اوت پورت های RS-232 برای گزینه های DB-9 و DB-25 آمده است.

برنج. 10. RS232 - COM Port, DB-9 pinout.

برنج. 11. RS232 COM Port DB-25 - pinout روی کانکتورها.

برنامه نویس با استفاده از پورت LPT

همانطور که می دانیم، پورت LPT یک کامپیوتر برای اتصال یک چاپگر محلی (Local Printer Port) طراحی شده است، اما با این وجود اغلب برای اتصال دستگاه های مختلف و محصولات خانگی استفاده می شود. در این صورت می توانیم با مونتاژ یک مدار بسیار ساده برای این منظور که در زیر نشان داده شده است، از آن برای برنامه ریزی میکروکنترلرهای AVR استفاده کنیم.

برنج. 12. نمودار شماتیک برنامه نویس برای میکروکنترلرهای AVR با استفاده از پورت LPT کامپیوتر.

همانطور که می بینید، مدار حتی ساده تر از گزینه c است، در اینجا فقط به 4 مقاومت کم مصرف و یک کانکتور (نر، با پین) برای اتصال به پورت LPT کامپیوتر نیاز داریم.

برنج. 13. محل پین ها برای اتصالات پورت LPT.

تمامی قطعات و اتصالات را می توان در محفظه کانکتور LPT قرار داد و برای اتصال به میکروکنترلر یک کابل با کانکتور برای رابط ISP یا فقط هادی های لازم برای اتصال به میکروچیپ را بیرون آورد.

نرم افزار و یادداشت ها

پس از اتصال یک برنامه نویس COM یا LPT به میکروکنترلر، باید به خاطر داشته باشید که برق خود میکروچیپ را تامین کنید. می توانید از باتری ها یا منبع تغذیه با تثبیت کننده به عنوان منبع تغذیه میکروکنترلر استفاده کنید، این برای پورت کامپیوتر و تراشه امن ترین خواهد بود. قبلاً در مورد نحوه استفاده از آن صحبت کرده ایم.

تحت لینوکس یک برنامه بسیار قدرتمند وجود دارد که می تواند با برنامه نویسان USB ASP، COM و LPT کار کند - این یک برنامه است AVRDUDE، که در بخش های بعدی مورد بحث قرار خواهد گرفت.

برای فلش کردن تراشه های AVR تحت ویندوز با استفاده از این برنامه نویسان COM و LPT، به برنامه UniProf از Nikolaev نیاز دارید که یک برنامه نویس جهانی برای AVR (avr.nikolaew.org) است.

توجه! هنگام مونتاژ و استفاده از برنامه نویس هایی که از پورت COM یا LPT کامپیوتر استفاده می کنند بسیار مراقب و محتاط باشید. یک اشتباه ساده می تواند به راحتیآن پورت ها را آتش زد. برای عملکرد عادی این گونه برنامه نویس ها باید سعی کنید از کوتاه ترین هادی های ممکن از کانکتور به مدار پروگرامر و میکروکنترلر استفاده کنید. مطلوب است که ریزپردازنده رایانه دارای فرکانس بیش از 1-2 گیگاهرتز نباشد و مطلوب است از Win2000 یا WinXP به عنوان یک سیستم عامل برای تراشه های برنامه نویسی استفاده شود.

همچنین مهم است بدانید که آداپتورهای USB-RS232 (درگاه USB-COM) به احتمال زیاد با برنامه نویس گروموف کار نخواهند کرد، فقط آنهایی که ریزمدارهای جدیدتری دارند احتمالاً کار خواهند کرد، بنابراین بهتر است به دنبال دستگاهی با پورت COM بومی باشید. .

نتیجه

برنامه نویس هایی که در مقاله مورد بحث قرار می گیرند تنها تعدادی از مقرون به صرفه ترین و ساده ترین راه حل ها از لیست بزرگی از برنامه نویسان AVR هستند: برنامه نویسان USBTinyISP، AVR-Doper، AVR vusbtiny، AVRISP-MkII، FTDI و غیره.

اکنون، در هر صورت، می توانید یک برنامه نویس در دسترس خود را مونتاژ کنید و حداقل یک میکرو مدار را فلش کنید، که بر اساس آن می توانید یک برنامه نویس راحت تر دیگر یا نوعی دستگاه را مونتاژ کنید.

در مقاله بعدی نحوه اتصال مدل های مختلف میکروکنترلرهای AVR را به برنامه نویس خواهیم فهمید، از کجا می توان اطلاعات مربوط به pinout میکروکنترلرها را بدست آورد.

روی تخته نان متابوردبسیار راحت برای مونتاژ ISPبرنامه نویس برای AVRمیکروکنترلرها AVRProg. این طرح بسیار ساده است، کد منبع برنامه نویس باز است و برای دو نوع برنامه نویس در دسترس است - یک نسخه وجود دارد usbaspو نسخه دوپر AVR. مدار برنامه نویس مستقیماً در قسمت چیدمان برد متابورد مونتاژ می شود. سیستم عامل (نسخه برنامه نویس) را می توان به راحتی از طریق بوت لودر USB تعبیه شده در متابورد تغییر داد.

[ویژگی های برنامه نویس AVRProg]

1. برنامه نویس دارای دو سوکت بستر برای نصب میکروکنترلرهای AVR قابل برنامه ریزی در بسته های DIP برای 8، 20 و 28 پین، از جمله ATTiny25/45/85، ATTiny2313، ATMega8، ATMega48/88/168-328-pin. به یک سوکت 20 پین وصل شده است).

2. برای میکروکنترلرهای قابل برنامه ریزی، فرکانس ساعت 1 مگاهرتز تولید می شود (برای آن دسته از میکروکنترلرهایی که فیوزهای آنها با فرکانس کلاک خارجی یا با تشدید کننده کوارتز خارجی تنظیم شده است).

3. مدار برنامه نویس بسیار ساده و راحت برای خود مونتاژ در خانه است.

4. برای مدار این برنامه نویس (AVRProg روی متابورد) دو نسخه فریمور پورت شده است - usbaspو دوپر AVR. همچنین انتظار می رود در آینده حمل و نقل شود AVRminiProg. برای لینک های دانلود سیستم عامل، به .

5. یک کانکتور ISP 10 پین جداگانه با یک پین اوت سازگار با ISP استاندارد 10 پین (پایین‌های استاندارد کانکتورهای ISP را می‌توان در آن مشاهده کرد)، که برای برنامه‌نویسی درون مدار میکروکنترلرهای AVR (و همچنین به عنوان یک پورت خروجی اشکال زدایی در نسخه AVR-Doper، زیر را ببینید). این کانکتور یک ولتاژ تغذیه 5 ولتی برای برد قابل برنامه ریزی تولید می کند که می توان آن را با تنظیم جامپر JP5 (نمودار شماتیک برنامه نویس را ببینید)، فرکانس ساعت 1 مگاهرتز و اشکال زدایی سیگنال های دریافت و ارسال UART متصل کرد.

[نمودار شماتیک برنامه نویس AVRProg]

به منظور ساده سازی مدار تا حد امکان (و بر این اساس، تسهیل در خود مونتاژ برنامه نویس)، مبدل های سطح از آن حذف می شوند که در حالت کلی معمولاً برای مطابقت با سطوح منطقی برنامه نویس و مدار نصب می شوند. توسط ISP برنامه ریزی شده است، زیرا ولتاژ تغذیه مدار پروگرامر ممکن است با ولتاژ تغذیه دستگاه های قابل برنامه ریزی متفاوت باشد (به گزینه اتصال برای چنین مبدل های سطحی مراجعه کنید). این بدان معناست که برنامه نویس AVRProg و دستگاهی که از طریق کانکتور ISP SV1 برنامه ریزی شده است، در صورت امکان باید تقریباً با همان سطح ولتاژ (حدود 5 ولت) تغذیه شوند. مقاومت های R1..R7 به مدار اضافه می شوند که به صورت سری در مدار سیگنال دیجیتال وصل شده اند که تا حدودی مشکل اختلاف سطح منطقی را کاهش می دهد (اما کاملاً از بین نمی رود). این مقاومت ها حداکثر جریان را محدود کرده و از آسیب دیدن پروگرامر و پروگرامر که با ولتاژهای مختلف تغذیه می شوند، جلوگیری می کند. به لطف این مقاومت ها و وجود دیودهای محافظ در AVR، مقداری تبدیل سطح سیگنال انجام می شود. 1 مگاهرتز, تنظیم مجدد, MOSI, میسو, SCK, RXD, TXD، بنابراین باید بتوان دستگاه های ISP را که با برق 3.3 ولت تغذیه می شوند برنامه ریزی کرد.

علاوه بر این، امکان تامین ولتاژ اضافی +5 ولت به دستگاه در حال برنامه ریزی نیز وجود دارد. منبع تغذیه با تنظیم جامپر JP5 فعال می شود. به خاطر داشته باشید که مدار برنامه نویس AVRProg محدودیت جریان حفاظتی اعمال شده برای دستگاه در حال برنامه ریزی ندارد. البته به غیر از حالتی که خود پروگرامر از USB تغذیه می کند و کنترلر USB کامپیوتر دارای چنین حفاظتی است. اگر دستگاه قابل برنامه ریزی توسط ISP از منبع ولتاژ خودش تغذیه می شود و اگر ولتاژ منبع تغذیه دستگاه قابل برنامه ریزی (که از طریق ISP SV1 وصل شده است) + 5 ولت نیست، هرگز جامپر JP5 را نصب نکنید!

مدار برنامه نویس مورد استفاده ISP 10 پین"سبک قدیمی" (علاوه بر چنین پین اوت های ISP، راحت تر نیز وجود دارد ISP 6 پینکانکتورها)، از آنجایی که سیگنال های اضافی به پایه های آن (که در پین اوت 10 پین ISP اصلی به GND متصل هستند) خروجی می شود. این سه سیگنال اضافی هستند که در صورت لزوم می توانید برای نیازهای خود در یک دستگاه قابل برنامه ریزی استفاده کنید:

X1MHZ- فرکانس ساعت 1 مگاهرتز می توان از آن برای احیای تراشه های آجری استفاده کرد که برای کار با یک نوسان ساز داخلی RC طراحی شده اند، اما فیوزهای آنها به اشتباه برای استفاده از کریستال خارجی یا ژنراتور ساعت تنظیم شده است. بدون تامین فرکانس ساعت خارجی یا اتصال کوارتز، برنامه ریزی چنین AVR غیرممکن است، اینجاست که یک سیگنال ساعت خارجی 1 مگاهرتز می تواند مفید باشد.

XRXD- ورودی پورت سریال که می تواند خروجی دیباگ دیباگ را از دستگاه در حال برنامه ریزی دریافت کند. این ویژگی در نسخه سیستم عامل AVR-Doper پشتیبانی می شود. هر چیزی که دستگاه در حال اشکال زدایی از طریق UART منتقل می کند (تقریباً هر میکروکنترلر AVR دارای UART سخت افزاری است) می تواند در پنجره ترمینال متصل به پورت USB COM مجازی AVR-Doper نمایش داده شود. این ویژگی نوشتن و اشکال زدایی نرم افزار را بر روی یک دستگاه قابل برنامه ریزی توسط ISP در میکروکنترلر AVR آسان می کند. برای فعال کردن این ویژگی، باید خروجی سخت‌افزار TXD پورت UART AVR قابل برنامه‌ریزی را به سیگنال XRXD (پین 10 کانکتور ISP SV1) وصل کنید و همچنین از ماکروهای خروجی اشکال‌زدایی در میان‌افزاری که در حال رفع اشکال است استفاده کنید. کتابخانه های WinAVR، این یک ماکرو است DBG، همچنین می توانید استفاده کنید printf، به UART هدایت شد).

XTXD- یک خروجی پورت سریال که می تواند داده های دلخواه کاربر را به یک دستگاه قابل برنامه ریزی منتقل کند. این ویژگی در نسخه سیستم عامل AVR-Doper پشتیبانی می شود. هر چیزی که در پنجره ترمینال چاپ می شود (متصل به پورت USB COM مجازی AVR-Doper) به ورودی UART دستگاه در حال رفع اشکال منتقل می شود (تقریباً هر میکروکنترلر AVR دارای UART سخت افزاری است). این معمولا کمتر از خروجی اشکال زدایی XRXD (از طریق عبارت ماکرو DBG یا printf) استفاده می شود، اما نوشتن و اشکال زدایی نرم افزار را در دستگاه قابل برنامه ریزی توسط ISP نیز آسان تر می کند. به عنوان مثال، می‌توانید دستورات متنی را مستقیماً از پنجره ترمینال برای دستگاهی که اشکال زدایی می‌شود صادر کنید. برای فعال کردن این ویژگی، باید ورودی سخت‌افزار RXD پورت UART AVR قابل برنامه‌ریزی را به سیگنال XTXD (پین ۸ کانکتور ISP SV1) وصل کنید.

منبع تغذیه تراشه های AVR قابل برنامه ریزی نصب شده در بسترهای سوکت IC1 و IC2 از دو پایه میکروکنترلر برد متابورد PC3 و PC4 (پین های 4 و 5 کانکتور JP3) تامین می شود. پورت های PC3 و PC4 به عنوان خروجی برنامه ریزی شده اند و جریان خروجی آنها برای تغذیه مستقیم یک میکروکنترلر قابل برنامه ریزی نصب شده در سوکت کافی است (دو پورت متصل به صورت موازی به طور ویژه برای افزایش ظرفیت بار خروجی استفاده می شود). اگر گزارشی در PC3 و PC4 صادر شده باشد. 1، سپس برق به میکروکنترلر قابل برنامه ریزی تامین می شود. این حالت همچنین نشان دهنده درخشش LED قرمز متصل به پایه 1 کانکتور JP3 (که توسط پین نرم افزار پورت PC0 کنترل می شود) است. اگر گزارشی در PC3 و PC4 صادر شده باشد. 0، سپس میکروکنترلر قابل برنامه ریزی بدون برق (با LED خاموش) می شود و می توان آن را بدون ترس از آسیب الکتریکی آزادانه از سوکت خارج کرد.

[مونتاژ برنامه نویس]

برای اینکه بتوانید کانکتور ISP SV1 را نصب کنید، باید کانکتور برق JP4 را روی متابورد (در صورت نصب) جدا کنید. مونتاژ هیچ ویژگی دیگری ندارد، فقط تمام سیم ها را با هدایت نمودار مدار وصل کنید - تقریباً همانطور که در عکس نشان داده شده است. سیم های چند رنگ فقط برای وضوح استفاده می شوند تا درک سیم کشی سیگنال های مختلف را آسان تر کنند. مداری که به درستی مونتاژ شده است بلافاصله شروع به کار می کند و نیازی به اشکال زدایی ندارد.

بسیاری از اجزای موجود در نمودار AVRProg برای نصب اختیاری هستند. به عنوان مثال، اگر شما نیازی به تخت خواب ندارید و فقط به یک ISP نیاز دارید، سوکت های IC1 و IC2 را نمی توان نصب کرد و لحیم نشد. یا به عنوان مثال، اگر به توانایی برنامه نویسی ISP نیاز ندارید، نمی توانید کانکتور ISP-SV1 را نصب کنید و همچنین به مقاومت های R1..R7 و جامپر JP5 نیاز ندارید.

در زیر تفاوت در عملکرد دو نسخه سیستم عامل برنامه نویس - USBasp و AVR-Doper توضیح داده شده است. هر دو گزینه با استفاده از بوت لودر USB و برنامه Khazama AVR Programmer به راحتی در حافظه تراشه بارگذاری می شوند (نگاه کنید به)، بنابراین همیشه این فرصت را دارید که هر نسخه دلخواه برنامه نویس را به راحتی reflash کنید. برای فعال کردن بوت لودر، جامپر JP6 Upload باید نصب شده باشد و با اتصال متابورد از طریق USB به کامپیوتر، دکمه S1 Reset را فشار دهید ( جامپر JP6 و دکمه S1 ابتدا روی متابورد نصب شده اند). پس از این روش ساده، یک دستگاه USBasp USB بر روی رایانه ظاهر می شود (اگر درایور وجود نداشته باشد، ویندوز آن را درخواست می کند. درایور را از بسته در پیوند دریافت کنید). دستگاه USB bootloader USBasp (بوت لودر USB از برنامه نویس USBasp تقلید می کند) می تواند دستورات پوسته برنامه نویس Khazama AVR را بپذیرد. با استفاده از برنامه Khazama AVR Programmer، هر یک از دو گزینه سیستم عامل برنامه نویس - USBasp و AVR-Doper را می توان در حافظه تراشه متابورد نوشت (برای توضیح نحوه کار با این سیستم عامل، به زیر مراجعه کنید). گزینه های سفت افزار آماده (هم USBasp و هم AVR-Doper) در لینک موجود است.

[usbasp]

بسته آرشیو را از لینک دانلود کنید و باینری (فایل HEX) را با نام فایل مناسب از آن بردارید. نام فایل نشان دهنده نوع سیستم عامل (USBasp یا AVR-Doper)، نوع میکروکنترلر مورد استفاده در متابورد (هر دو ATmega168PA و ATmega328P به یک اندازه مناسب هستند) و فرکانس ساعت کوارتز (معمولاً از کوارتز استفاده می شود) 16 مگاهرتز، اما فرکانس ها نیز امکان پذیر است 12 , 15 , 16.5 , 20 مگاهرتز). باینری را با استفاده از بوت لودر USB متابورد و برنامه Khazama AVR Programmer به حافظه تراشه فلش کنید (تراشه متابورد را در آن انتخاب کنید و). هشدارهای مربوط به عدم امکان تغییر فرکانس ساعت ISP را نادیده بگیرید - بوت لودر USB بسیار ساده شده است و از پردازش فرمان تنظیم فرکانس ISP پشتیبانی نمی کند (این برای بوت لودر ضروری نیست).

بعد از اینکه فریمور USBasp روی حافظه تراشه متابورد نوشته شد، دوباره متابورد را با پروگرامر مونتاژ شده از طریق USB وصل کنید و پروگرامر USBasp آماده کار است. برای کار با برنامه نویس AVRProg در نسخه USBasp می توان از همین برنامه استفاده کرد برنامه نویس Khazama AVR(نسخه 1.7.0 یا بالاتر) یا ابزار خط فرمان avrdude.

من نسخه USBasp را کمتر از نسخه AVR-Doper دوست داشتم، زیرا این سیستم عامل دارای نقص هایی مربوط به عدم پشتیبانی از تغییر فرکانس ساعت ISP است (پوسته برنامه نویس Khazama AVR پیام های خطا می دهد، اما برنامه نویس هنوز کار می کند). علاوه بر این، فیوز برای برخی از تراشه ها مانند تراشه ATmega328P پشتیبانی نمی شود. اوضاع با avrdude تا حدودی بهتر است، اما کار با این ابزار چندان راحت نیست، زیرا هنوز یک ابزار خط فرمان است، نه یک رابط کاربری گرافیکی. با این حال، برای کار دسته‌ای (زمانی که نیاز به خودکارسازی برنامه‌نویسی جریانی تعداد زیادی دستگاه دارید)، avrdude ممکن است بهترین انتخاب باشد. برای کار با avrdude پروتکل usbasp را انتخاب کنید.

[دوپر AVR]

سیستم عامل نوع AVR-Doper به همان روشی که فرآیند USBasp توضیح داده شده است فلش می شود، فقط باید فایل سیستم عامل دیگری را از بایگانی بردارید (نام آن به AVR-Doper اشاره می کند). این گزینه، به نظر من، سزاوار احترام بیشتری است، زیرا نشان دهنده پشتیبانی پروتکل است STK500توسط Atmel (این پروتکل به دلیل محبوبیت پلت فرم AVR و ابزارهای آن به یک استاندارد واقعی تبدیل شده است). پروتکل STK500 پشتیبانی می شود AVR Studioبنابراین گزینه AVR-Doper با پوسته برنامه نویس AVRprog محیط برنامه نویسی AVR Studio به خوبی کار خواهد کرد. این برای کاربران AVR Studio بسیار راحت است و امکانات گسترده ای را برای برنامه نویسی تراشه باز می کند (هیچ مشکلی در پشتیبانی فیوزینگ در برخی از AVR ها وجود ندارد، همانطور که در مورد Khazama + USBasp وجود دارد). برای کار با avrdude، پروتکل STK500 را انتخاب کنید.

هنگام کار در محیط AVR Studio، ابزار برنامه نویس AVRprog را راه اندازی کنید و گزینه STK500 programmer را از گفتگوی اولیه انتخاب کنید. توجه: ابزار AVRprog آپلود مجدد سیستم عامل برنامه نویس را پیشنهاد می دهد، با کلیک کردن روی دکمه "نه" آن را رد کنید. در غیر این صورت کار با ابزار برنامه نویس هیچ ویژگی خاصی ندارد و شایسته توضیح جداگانه نیست. همچنین نمای کلی کار با AVRprog AVRStudio را در پیوند ببینید.

[نحوه نصب تراشه های قابل برنامه ریزی در سوکت ها]

برنامه نویسی DIP8 برنامه نویسی DIP20 برنامه نویسی DIP28

ATtiny25/45/85 ATtiny2313A-PU ATmega8, ATmega48/88/168/328

[کامپایل کد منبع USBasp و AVR-Doper]

از آنجایی که کد منبع سیستم عامل برنامه نویس متابورد AVRProg در دسترس است (برای نسخه های USBasp و AVR-Doper)، می توان آن را برای نیازهای شما تغییر داد، دوباره کامپایل کرد و با استفاده از یک بوت لودر در حافظه تراشه متابورد فلش کرد. به طور خاص، نسخه USBasp می تواند پشتیبانی از دستورات تغییر ساعت ISP را اضافه کند.

هر دو کد منبع USBasp و AVR-Doper دارای خطای یکسانی هستند که مربوط به مدیریت نادرست پورت نشانگر LED1 LED است (انتخاب پورت با نمودار مدار مطابقت ندارد). در سورس کد که می توانید از لینک دانلود کنید، این خطا برطرف شده است.

کامپایل ساده است، برای نسخه های USBasp و AVR-Doper یکسان است. برای کامپایل، باید بسته WinAVR را نصب کرده باشید. کد منبع سیستم عامل را در یک پوشه جداگانه باز کنید. به دایرکتوری ریشه پروژه که فایل در آن قرار دارد تغییر دهید makefileو دو دستور را یکی پس از دیگری در خط فرمان اجرا کنید: تمیز کردنو متابورد بسازید. پس از آن، یک فایل در پوشه اصلی پروژه ظاهر می شود main.hex، که یک فایل سیستم عامل باینری برای برنامه نویس است. این همان چیزی است که باید با کمک یک بوت لودر USB در حافظه تراشه متابورد پر شود.

متابورد را می توان با میکروکنترلرهای ATmega168PA و ATmega328P استفاده کرد. هر دو ATmega168PA و ATmega328P از سیستم عامل برنامه نویس استفاده می کنند که برای ATmega168PA کامپایل شده است. به خاطر داشته باشید که سیستم عامل کامپایل شده برای ATmega328P کار نمی کند (هنوز دلیل آن را متوجه نشده ام). اگر از تشدید کننده کوارتز در متابورد نه برای 16 مگاهرتز، بلکه برای فرکانس دیگر (12، 15، 16.5 یا 20 مگاهرتز) استفاده می کنید، قبل از کامپایل، ماکرو را در makefile ویرایش کنید. F_CPU.

1 . کد منبع سیستم عامل اصلی برنامه نویس USBasp به متابرد AVRProg منتقل شده است (توجه داشته باشید: این کد حاوی خطاهایی است، لطفاً از کد منبع موجود در پیوند استفاده کنید). دانلود را در انتهای مقاله ببینید (دانلود avrprog-metaboard-1.1.zip یا نسخه جدیدتر).
2 . کد منبع سیستم عامل اصلی برنامه نویس AVR-Doper، به متابرد AVRProg منتقل شده است (توجه داشته باشید: این کد حاوی خطاهایی است، لطفاً از کد منبع از پیوند استفاده کنید).
3 . .
4 . پین‌های کانکتور ISP.
5 . برنامه نویس Khazama AVR و درایور USB برای USBasp (سیستم عامل ویندوز). برای کار با نسخه USBasp برنامه نویس AVRProg، Khazama نسخه 1.7.0 یا بالاتر را نصب کنید!
6 .

زنگ

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