როგორ დავგეგმოთ AVR (arduino) სხვა Arduino– ით: 7 ნაბიჯი
როგორ დავგეგმოთ AVR (arduino) სხვა Arduino– ით: 7 ნაბიჯი
Anonim

ეს ინსტრუქციები სასარგებლოა, თუ:

* თქვენ მიიღეთ თქვენი arduino atmega168- ით და იყიდეთ atmega328 ელექტრონული ტექნიკის ადგილობრივ მაღაზიაში. მას არ აქვს arduino ჩამტვირთავი * გსურთ გააკეთოთ პროექტი, რომელიც არ იყენებს arduino- ს - ჩვეულებრივი AVR ჩიპი (USBTinyISP- ის მსგავსად) - თქვენ გაქვთ სუფთა attiny2313/attiny48 და ა.შ., რომელზეც გსურთ firmware- ის დაწვა. ჩვეულებრივ, თქვენ უნდა გქონდეთ ISP (სისტემის პროგრამისტი), როგორიცაა USBTinyISP, თქვენი ახალი ჩიპის დასაპროგრამებლად. არდუინოს მქონე თქვენ შეგიძლიათ ასწავლოთ მას იყოს პროგრამისტი რენდალ ბონის მიერ შესრულებული დიდი სამუშაოს წყალობით. მან შექმნა მეგა -ISP - არდუინოს ესკიზი, რომელიც მუშაობს როგორც პროგრამისტი.

ნაბიჯი 1: რა გჭირდებათ?

* სამუშაო Arduino (ან კლონი - მე ვიყენებ BBB - BareBonesBoard და RBBB - RealBareBonesBoard by ModernDevices) * ჩიპი, რომლის დაპროგრამებაც გსურთ (ტესტირებულია atmega8, atmega168, atmega368, attiny2313, attiny13) * პურის დაფა ან დაფა ISP სათაურით * 3 leds + 3 რეზისტორი * breadboard მავთულები

ნაბიჯი 2: მეგა-ისპ პროგრამისტის დამზადება პურის დაფაზე

თქვენი Arduino- ს ჩიპის პროგრამირების დასაკავშირებლად ორი გზა არსებობს.

თქვენ შეგიძლიათ შეაერთოთ თქვენი avr ჩიპი პურის დაფაზე და დააკავშიროთ 5v და GND შესაბამის ქინძისთავებთან (შეამოწმეთ მონაცემთა ფურცელი!) + გამყვანი რეზისტორი გადატვირთვისთვის და თქვენგან არდუინოს ჩიპს. ეს არის ხაზები Arduino- ზე და მათი ფუნქცია 13 - SCK 12 - MISO 11 - MOSI 10 - RST (გადატვირთვა) ან შეგიძლიათ გააკეთოთ 2x3pin ISP სათაური, რომელიც შეგიძლიათ შეაერთოთ დაფაზე, რომელიც უზრუნველყოფს ერთს (მეორე arduino დაფა). პროვაიდერის სათაურის პინოტირება მესამე სურათზეა. პროგრამისტის სტატუსის მითითებისათვის არის 3 led. pin 9 - ლურჯი led - ეს არის პროგრამისტის სმენისცემა. pin 8 - წითელი led - მიუთითებს შეცდომაზე pin 7 - მწვანე led - მიუთითებს იმაზე, რომ ხდება პროგრამირება (მე ვიყავი ზარმაცი, ასე რომ მე არ შევარჩიე ფერები ჩემს კონფიგურაციაში) აქ არის ნახატები, რომლებიც დამზადებულია ფრიზინგში, ასევე შეგიძლიათ გააკეთოთ MEGA-isp ფარი. იაროსლავ ოსადჩიმ შექმნა ფარი არწივში. თქვენ შეგიძლიათ მიიღოთ არწივის ფაილები მის საიტზე:

ნაბიჯი 3: ესკიზის ატვირთვა

ჩამოტვირთეთ ესკიზი მეგა-ისპ google კოდიდან. (Avrisp.03.zip წერის დროს). გახსენით იგი და გაუშვით arduino ide და გახსენით avrisp.pde. ატვირთეთ იგი თქვენს არდუინოს დაფაზე. გულისცემა გამოიწვია ცემა.

ნაბიჯი 4: Avrdude- ს გამოყენება

Avrdude- ს (და ყველა GUI, რომელიც მას იყენებს) გამოსაყენებლად, თქვენ უნდა აირჩიოთ „avrisp“პროგრამისტი. ყველაზე უსაფრთხო ბიტრეიტი არის 19200.

თქვენი ახალი atmega168 ბრძანების ხაზის შესამოწმებლად სცადეთ: $ avrdude -p m168 -P /dev /ttyUSB0 -c avrisp -b 19200 /dev /USB0 არის პორტი, რომელიც არდუინოს უკავშირდება ჩემს linux ყუთთან (თქვენი შეიძლება იყოს com5). ამის შემოწმება შესაძლებელია arduino IDE- ში Tools -> Serial Port. თქვენ უნდა მიიღოთ: [kabturek@hal -9000]# avrdude -p m168 -P /dev /ttyUSB0 -c avrisp -b 19200 avrdude: AVR მოწყობილობა ინიციალიზებული და მზად არის მიიღოს ინსტრუქციები კითხვა | #################################################### | 100% 0.13s avrdude: მოწყობილობის ხელმოწერა = 0x1e9406 avrdude: safemode: Fuses OK avrdude done. Გმადლობთ. ეს ნიშნავს, რომ ყველაფერი კარგადაა. შეცდომების შემთხვევაში - შეამოწმეთ ბოლო ნაბიჯი.

ნაბიჯი 5: USBtinyISP Firmware- ის დაწვა Attiny2313

USBTinyISP არის LadyAda- ს შესანიშნავი პროგრამისტი, რომელიც მართლაც იაფია - 22 $. მე მქონდა სათადარიგო attiny2313 და ზოგიერთი ნაწილი, ასე რომ გადავწყვიტე ამის გაკეთება მე თვითონ. თუ თქვენ არ გაქვთ გამოცდილება PCB- ში, გირჩევთ შეიძინოთ ნაკრები, რადგან ის უფრო მაღალი ხარისხისაა, ვიდრე თქვენ თვითონ შეძლებთ:). მინიმუმ იყიდეთ PCB, თუ გსურთ მისი აშენება. მისი მიღება შეგიძლიათ ადაფრუტიდან. შეაერთეთ ATtiny2313 ბოლო სურათზე თქვენ შეგიძლიათ ნახოთ attiny2313, რომელზეც ISP გამოიყენება წითელი. სურათი არის LadyAda avr სამეურვეოდან. Firmware- ის დაწვა: გახსენით USBTinyISP firmware. გადადით spi dir- ზე და გაუშვით $ avrdude -p pt2313 -P /dev /ttyUSB0 -c avrisp -b 19200, რომ შეამოწმოთ ყველაფერი რიგზეა ჩიპთან. ახლა დააყენეთ დაუკრავენ: $ avrdude -P /dev /ttyUSB0 -c avrisp -b 19200 -pt2313 -U hfuse: w: 0xdf: m -U lfuse: w: 0xef: m ახლა თქვენ უნდა მიამაგროთ 12 მჰც გარე ოსცილატორი ჩიპზე რა და დაწვით firmware: $ avrdude -B 1 -pt2313 -U flash: w: main.hex -P /dev /ttyUSB0 -c avrisp -b 19200 Voila. თქვენს attiny2313- ს აქვს USBTinyISP პროგრამული უზრუნველყოფა.

ნაბიჯი 6: არდუინოს ჩამტვირთველის დაწვა

ცოტა მოვიტყუე, რადგან RBBB გამოვიყენე კავშირების გასამარტივებლად. სქემა მოცემულია სურათზე #2. თუ იყენებთ 2 არდუინოს, გამოიყენეთ სურათი #3 და დააკავშირეთ ISP პინი ICSP 2x3header მეორე (მონა) arduino- ზე. მხოლოდ USB დაფის დაკავშირება პირველ დაფაზე. GUI გზა ეს არის ცოტა სახიფათო მიზეზი, რადგან თქვენ არ შეგიძლიათ უბრალოდ გამოიყენოთ Tools-> Burn Bootloader-> wr/ AVR ISP, რადგან ნაგულისხმევი სიჩქარე ძალიან დიდია მეგა-ისპისთვის. იპოვეთ avrdude.conf, რომელსაც გააჩნია arduino IDE (arduino/ტექნიკა/ინსტრუმენტები/avrdude.conf) და შეცვალეთ avrisp პროგრამისტის საზღვარი 115200 წლიდან 19200 წლამდე (312 სტრიქონის გარშემო) იპოვეთ და შეცვალეთ avrdude.conf პროგრამისტი id = "avrisp"; desc = "Atmel AVR ISP"; ბაუტრატი = 115200; # ნაგულისხმევია 115200 ტიპი = stk500;; to: პროგრამისტი id = "avrisp"; desc = "Atmel AVR ISP"; ბაუდრატი = 19200; # ნაგულისხმევია 115200 ტიპი = stk500;; ახლა თქვენ შეგიძლიათ გამოიყენოთ Tools -> Burn Bootloader -> w/AVR ISP (მას შემდეგ რაც შეარჩიეთ შესაბამისი დაფა Tools მენიუდან) Commanline ასევე შეგიძლიათ გამოიყენოთ ბრძანების ხაზი: შეცვალეთ arduino/hardware/bootloaders/atmega/Makefile და შეცვალეთ ISPTOOL/PORT /SPEED to: # შეიყვანეთ პარამეტრები avrdude isp ინსტრუმენტისთვის ISPTOOL = avrisp ISPPORT = /dev /ttyUSB0 ISPSPEED = -b 19200 არა დაწვა მოციმციმე!

ნაბიჯი 7: პრობლემების მოგვარება

Avrdude შეცდომები: avrdude: ser_open (): მოწყობილობის გახსნა შეუძლებელია "/dev/ttyUSB0": ასეთი ფაილი ან დირექტორია თქვენ გაქვთ არასწორი პორტი (-P) მითითებული ან თქვენი arduino არ არის დაკავშირებული. შეამოწმეთ კავშირი avrdude: მოწყობილობის ხელმოწერა = 0x000000 avrdude: დიახ! მოწყობილობის არასწორი ხელმოწერა. ორმაგად შეამოწმეთ კავშირები და სცადეთ ხელახლა, ან გამოიყენეთ -F ამ შემოწმების გასაუქმებლად. ეს არის ერთგვარი ზოგადი შეცდომა. თქვენი ჩიპი არ არის აღიარებული. შეამოწმეთ კავშირი დაფაზე (GND/5V დაკავშირებულია ქინძისთავებთან?) თქვენ მიიღებთ ამ შეცდომას, როდესაც თქვენი ჩიპი კონფიგურირებულია გამოიყენოს გარე ოსცილატორი და ის არ მუშაობს (არ არსებობს ერთი ან არ იცვლება სწორად - 22pf ქუდები დაკარგული?)

გირჩევთ: