فهرست مطالب:

برنامه نویس VUSBTiny AVR SPI: 3 مرحله
برنامه نویس VUSBTiny AVR SPI: 3 مرحله

تصویری: برنامه نویس VUSBTiny AVR SPI: 3 مرحله

تصویری: برنامه نویس VUSBTiny AVR SPI: 3 مرحله
تصویری: 15دیمەنی سەرسوڕهێنەرتاکو بە چاوی خۆت نەیانبینی بڕوایان پێ ناکەیت😱 2024, نوامبر
Anonim
برنامه نویس VUSBTiny AVR SPI
برنامه نویس VUSBTiny AVR SPI

بعد از ساخت برنامه نویس usbtiny isp و استفاده از آن به مدت 6 ماه ، به دنبال ساختن برنامه دیگری برای حمل و نقل بودم. من ساده بودن طراحی usbtiny isp را دوست دارم اما می خواهم آن را حتی کوچکتر کرده و قطعات کمتری بگیرم. یک چیز در طراحی اصلی که می خواهم تغییر دهم این است که استفاده از کریستال ساعت را حذف کنم. یک راه حلی که پیدا کردم این است که درایورهای v-usb از نوسان ساز داخلی 16.5 مگاهرتز در دستگاه های attiny25/45/85 پشتیبانی می کند. بنابراین من این پروژه را شروع می کنم تا usbtiny isp از v-usb برای ارتباطات usb استفاده کند. مزایای فوری این است که باعث صرفه جویی در فضا و تعداد اجزای کمتری (بدون کریستال بیشتر) می شود. پروتکل برای میکروکنترلرهای Atmel ATtiny البته روی سری ATmega نیز کار خواهد کرد. این نرم افزار برای یک AVR با فرکانس 12 مگاهرتز نوشته شده است. در این فرکانس ، هر بیت روی گذرگاه USB 8 چرخه ساعت می گیرد و با ترفندهای زیاد ، می توان شکل موج USB را توسط نرم افزار رمزگشایی و رمزگذاری کرد. بسته به پیکربندی و نسخه کامپایلر ، درایور USB تقریباً 1250 تا 1350 بایت فضای فلش (بدون در نظر گرفتن رشته های اختیاری شناسایی) و 46 بایت RAM (بدون احتساب فضای پشته) نیاز دارد. رابط C شامل 3 تا 5 عملکرد است که بستگی به پیکربندی دارد. توصیف vusb از https://www.obdev.at/products/vusb/ میکروکنترلرهای AVR ، ساخت سخت افزار USB با تقریباً هر میکروکنترلر AVR را ممکن می سازد ، بدون نیاز به تراشه اضافی. ویدئو در مورد ساخت و استفاده

مرحله 1: ویژگی ها و قطعات

ویژگی ها و قطعات
ویژگی ها و قطعات

* منطق برنامه نویسی از usbtiny isp ، پشتیبانی از avr-dude بالغ * چاپ کوچک روی پا * حداقل اجزاء * قدرت دستگاه هدف توجه داشته باشید که خطوط io به mcus مورد نظر محافظت نمی شوند. می توانید مقاومتهای 1k-2k را به SCK و MOSI اضافه کنید و در برابر اتصالات اشتباه احتمالی مراجع بر اساس آثار موجود در v-usb از چارچوب https://www.obdev.at/vusb/ usbtiny isp https://www.xs4all محافظت کنید. nl/~ dicks/avr/usbtiny/لیست قطعات * attiny45/85 (85 آسان تر به دست می آید) * دیودهای زنر 3.6 ولت (1n747 ، BZX79 ،..از انواع 1W اجتناب کنید) * مقاومت 68 اهم x 2 * مقاومت 1.5K * mini breadboard 170 tiepoints * کابل usb (دلار کابل چاپگر usb خوب است) * مقاومتهای 1k/2k برای حفاظت از خطوط io (اختیاری) ابزار مورد نیاز * یک برنامه نویس avr کار می کند (بله ، این یک برنامه22 است ، برای ساختن آن به یکی نیاز داریم) * محیط برنامه نویسی avr

مرحله 2: طرح بندی تخته نرد ، شماتیک و ساخت

طرح بندی ، شماتیک و ساخت و ساز Breadboard
طرح بندی ، شماتیک و ساخت و ساز Breadboard
طرح بندی ، شماتیک و ساخت و ساز Breadboard
طرح بندی ، شماتیک و ساخت و ساز Breadboard

ساخت و ساز

* از طرح بردبورد پیروی کنید ، اجزای آن ، 3 مقاومت ، 2 دیود ، 1 کلاه ، به علاوه یک mcu 8 پین وجود ندارد. * کابل چاپگر usb shop dollar را قطع کنید و انتهای چاپگر را قطع کنید ، 4 سیم در معرض دید قرار می گیرد ، آنها را محکم کرده و آنها را به عنوان هدر 4 پین تبدیل کنید ، ما از آن برای اتصال به تخته نان استفاده خواهیم کرد. برای طرح بندی و تعیین پین (J1) از طرحواره استفاده کنید. * مراقب قطبیت دیود باشید

ساخت و چشمک زدن پروژه

این پروژه در یک جعبه لینوکس ubuntu lucid با زنجیره ابزار avr-gcc ساخته شده است. فرض بر این است که شما قبلاً چنین محیطی دارید ، یا می توانید از طریق اینترنت نحوه راه اندازی محیط را بیاموزید. کد منبع gnu gpl v2 دارای مجوز وراثت است.

کد منبع از یک کنوانسیون توصیه شده توسط v-usb پیروی می کند ، شما می توانید بسته منبع vusbtiny.tgz را دانلود کرده و در پوشه پروژه قرار ندهید. در فهرست راهنمای شما ، main.c وجود دارد که نسخه من از برنامه نویس usbtiny اصلاح شده است. و یک زیر شاخه usbdrv ، که شامل لایه v-usb است. لطفاً هنگام ساخت این پروژه ، مدت مجوز دو پروژه فوق را رعایت کنید. منبع من در منطق برنامه نویس بر اساس نسخه دیک استریفلند است و نه نسخه ladyada (اگرچه تقریباً یکسان هستند).

برای کسانی که ساختار بیش از حد زنجیره ای ندارند ، می توانید از باینری زیر استفاده کنید

برای بارگیری vusbtiny.hex کلیک کنید

و از avrdude برای فلش سیستم عامل استفاده کنید

avrdude -c usbtiny -p t45 -e -V -U flash: w: usbtiny.hex

(اگر دستگاه شما tiny85 است ، -p t45 w/ -p t85 را جایگزین کنید)

منبع را می توان در اینجا بارگیری کرد تا vusbtiny.tgz را بارگیری کنید

بسته منبع را در فهرست کار خود حذف کنید

tar -zxvf vusbtiny.tgz

* cd vsubtiny را انجام دهید ، تا به دایرکتوری کاری vusbtiny تبدیل شوید * مطابق تراشه ای که استفاده می کنید ، برای دستگاه مورد نظر makefile کنید. یعنی PROGRAMMER_MCU = t45 یا t85 * برنامه * ISP مورد علاقه خود را ضمیمه کنید * makefile را تغییر دهید و در صورت نیاز پارامترهای avrdude خود را تغییر دهید. سهام یکی برنامه نویس USBTiny را فرض می کند. یعنی AVRDUDE_PROGRAMMERID = usbtiny * سیستم عامل فلش از طریق make install

پس از چشمک زدن سیستم عامل ، باید فیوز را به درستی تنظیم کنیم ، در این پروژه از تنظیم مجدد پین 1 به عنوان io استفاده می کنیم

* ساعت ppl مورد نیاز لایه v-usb برای زمان یواس بی * تنظیم مجدد پین غیرفعال است زیرا باید از آن به عنوان io استفاده کنیم

avrdude -c usbtiny -p t45 -V -U lfuse: w: 0xe1: m -U hfuse: w: 0x5d: m -U efuse: w: 0xff: m

این تنظیم برنامه نویسی بیشتر را از طریق 5V SPI غیرفعال می کند زیرا به پین RESET (pin1) برای io نیاز داریم. برای بازیابی فیوز به برنامه نویس HVSP نیاز دارید.

مرحله 3: استفاده و کاربرد

استفاده و کاربرد
استفاده و کاربرد
استفاده و کاربرد
استفاده و کاربرد
استفاده و کاربرد
استفاده و کاربرد

چشمک زدن مستقیم روی تخته نان

اگر از vusbtiny برای فلش کردن دستگاه های AVR 8 پین استفاده می کنید ، فقط می توانید دستگاه مورد نظر خود را در بالای دستگاه برنامه نویس فشار دهید. برنامه نویس طوری طراحی شده بود که پایه های برنامه نویسی با اهداف مطابقت داشته باشد. اما یک ترفند وجود دارد ، شما باید پین 2 و 3 را روی mcu برنامه نویس جدا کنید ، زیرا آنها پین های USB D+ و D- هستند که به کامپیوتر متصل می شوند. من از یک نوار اسکاچ برای رسیدن به این هدف استفاده می کنم ، می توانید آن را روی عکس ها ببینید. در زیر یک tiny13v "سوار" بر روی tiny45 آماده دریافت سیستم عامل است.

ISP از طریق بلوز چشمک می زند

برای برنامه ریزی مدار هدف از طریق ISP (برنامه نویسی درون سیستم) ، به کابل ISP نیاز دارید. در اینجا من از هدرهای استاندارد 2x3 یا 2x5 پین استفاده نمی کنم. در عوض من از یک بلوز 1x6 استفاده می کنم که بیشتر برای تخته نورد مناسب است ، شما می توانید هدر 2x3 یا 2x5 پین را با نگاشت آنها بر روی J2 همانطور که در طرح و نگاره های تخته نان نشان داده شده است ، ایجاد کنید. عکس زیر یک tiny2313 آماده برای نمایش از طریق ISP را نشان می دهد.

عیب یابی

* نمی توان سیستم عامل را فلش کرد؟ برنامه نویس اصلی خود را بررسی کنید ، ممکن است لازم باشد زمان را از طریق پرچم -B در avrdude تنظیم کنید. سعی کنید تراشه 1 را بخوانید ، ممکن است فیوز بدی باشد ، ممکن است تراشه شما به سیگنال ساعت خارجی نیاز داشته باشد. ممکن است لازم باشد تراشه خود را به حالت اول بازگردانید. * بررسی اتصالات * در صورت استفاده از پین های مختلف io ، کد و اتصالات را بررسی کنید * می توانید دیودهای zener w/ 500mw ، انواع 400mw را جایگزین کنید * ممکن است سعی کنید مقدار R3 را به 1.2K یا کمتر کاهش دهید * به احتمال زیاد با مشکلات زمان بندی avrdude مواجه می شوید ، سعی کنید -B پرچم avrdude ، یک کابل USB کوتاهتر داشته باشید همه کمک می کند

توصیه شده: