برنامه نویسی ATTiny13 با آردوینو نانو

  • ۲۲۶ بازدید

اگر قصد دارید مدار خود را با کمترین قطعات و پایین ترین هزینه بسازید بهترین گزینه استفاده از تراشه (آی سی) ATTiny13A می باشد. این تراشه در عین سادگی قابلیتهای زیادی را دارا می باشد.

تراشه ATTiny13A

پیش از هرکار ابتدا پین اوت تراشه ATTiny13A را مطالعه کنید. تصویر زیر پین اوت این مدار مجتمع را نشان می دهد.

بریدگی بالای تراشه نشان می دهد که پایه 1 کجاست، سپس شمارش متوالی در خلاف جهت عقربه های ساعت ادامه می یابد. حالا بیایید به ATtiny13A نگاه کنیم.

در دیاگرام آی سی ATtiny13A، پین های زیر را با برچسب PB0، PB1، PB2، PB3، PB4 و PB5 مشاهده می کنیم. پین های GND و VIN را نیز خواهید دید. پین GND زمین (پایه 4 آی سی) و پین VIN ولتاژ ورودی (پین 8 آی سی) میباشند.

اتصال ATtiny13A به آردوینو نانو

بیایید پین های لازم را روی هر دو قطعه به هم وصل کنیم.

لیست قطعات

1 عدد آردوینو نانو (یا هر برد آردوینو که این کار را انجام می دهد)
1 عدد ATtiny13A
6 عدد سیم جامپر
1 عدد خازن الکترولیتی – 10µF ~ 25V

ما باید پین های MOSI ، MISO و SCK هر دو برد را به هم وصل کنیم (به خروجی آی سی مراجعه کنید)، و پایه دیجیتال 10 آردوینو نانو را به ATtiny13A پایه P5 متصل کنیم.

موارد زیر را وصل کنید (دراینجا از برد آردوینو نانو استفاده شده است، اگر از نوع دیگری استفاده میکنید به داکیمنت پینهای آن مراجعه کنید.)

یک خازن 10uF بین پایههای RESET و GND در آردوینو اضافه کنید. این برای جلوگیری از بازنشانی خودکار آردوینو نانو هنگام آپلود برنامه در ATtiny13A است. اگر از خازن الکترولیتی استفاده می کنید، مطمئن شوید که آند در GND آردوینو نانو قرار می گیرد.

آردوینو نانوATtiny13A
MOSIپین دیجیتال 11PB0 (Chip Pin 5)
MISOپین دیجیتال 12PB1 (Chip Pin 6)
SCLپین دیجیتال 13PB2 (Chip Pin 7)
RESETپین دیجیتال 10PB5 (Chip Pin 1)
VCCVCC (5V)VCC (Chip Pin 8)
GNDGNDGND (هر پین GND)

برای برنامه نویسی موفقیت آمیز ATtiny13A باید دو چیز را تنظیم کنیم.

نصب بردهای ATTINY

نرم افزار Arduino IDE را باز کنید سپس به Arduino  > Preferences بروید. نشانی‌های اینترنتی مدیر بردهای اضافی “Additional Boards Manager URLs” را خواهید دید. با فشار دادن سمت راست ترین آیکن، این پیوند را در آنجا اضافه کنید.


https://mcudude.github.io/MicroCore/package_MCUdude_MicroCore_index.json


OK را فشار دهید (سپس یک تأیید دیگر برای خروج از Preferences).

اکنون به Tools > Board > Boards Manager بروید. attiny را در قسمت جستجو تایپ کنید و باید MicroCore را ببینید . روی آن کلیک کنید (MicroCore by MCUDude) و “install the board” برد را نصب کنید . اکنون، وقتی به Tool > Boards می روید، باید بردهای attiny را در لیست ببینید . به پایین بروید تا مطمئن شوید که برد واقعاً نصب شده است.

ARDUINO AS ISP

آردوینو نانو را به کامپیوتر خود وصل کنید. به File > Examples > ArduinoISP بروید و روی Arduino ISP کلیک کنید . سپس به Tools > Boards رفته و Arduino Nano (یا برد دلخواه خود) را انتخاب کنید. به Tools > Port بروید و پورتی که بردتان به آن متصل است را انتخاب کنید. با رفتن به Sketch > Upload اسکچ ArduinoISP را در آردوینو نانو (یا برد دلخواه خود) آپلود کنید . در این مرحله آردوینو نانو شما برای برنامه نویسی آماده است.


توجه: در برخی موارد باید پردازنده را انتخاب کنید: “ATMega328P (Old Bootloader)”


آپلود طرح در ATtiny13A DEVELOPMENT board

اطمینان حاصل کنید که اتصالات همانطور که در بالا توضیح داده شده است قرار گرفته است. در program / sketch اسکچی که می خواهید در ATtiny13A خود آپلود کنید را باز کنید . به Toolبروید و موارد زیر را تنظیم کنید.

Board:“ATtiny13”
BOD: “BOD Disabled”
Clock:“9.6 MHz Internal osc.”
Port:پورتی که برد شما به آن وصل است را انتخاب کنید.

سپس مطمئن شوید که Arduino به عنوان ISP در زیر Tools -> Programmer انتخاب شده است . به طور پیش فرض ATtiny13A با فرکانس 9.6 مگاهرتز کار می کند. اگر منبع ساعت خارجی ندارید از گزینه اسیلاتور خارجی استفاده نکنید. به یاد داشته باشید که یک کریستال دو پین معمولی روی ATtiny13A کار نخواهد کرد.

حالا Blink example را از نمونه های آردوینو باز کنید و شماره پین ​​را از 13 به 0 تغییر دهید و آپلود کنید .

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

 void setup() {
  // initialize digital pin 13 as an output.
  pinMode(0, OUTPUT);
}

void loop() {
  digitalWrite(0, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(100);              // wait for a second
  digitalWrite(0, LOW);    // turn the LED off by making the voltage LOW
  delay(100);              // wait for a second
}

اکنون زمان تست است. تمام اتصالات را از آردوینو جدا کنید و یک منبع تغذیه بگیرید. در اینجا من از یک سلول دکمه ای برای روشن کردن ATtiny13A استفاده می کنم.

تست چشمک زن ATtiny13A

اکنون برنامه چشمک زدن روی ATtiny13A اجرا می شود که فقط یک عدد باتری و LED احتیاج دارد. شما می توانید پروژه های زیادی را با هزینه کم، توان کم و فضای کم انجام دهید. محدودیت فقط در تخیل شما وجود دارد و البته تعداد پین های PWM.

در همین رابطه: