Სარჩევი:

AVR/Arduino ციმციმებს ჟოლოს პი: 3 ნაბიჯი (სურათებით)
AVR/Arduino ციმციმებს ჟოლოს პი: 3 ნაბიჯი (სურათებით)

ვიდეო: AVR/Arduino ციმციმებს ჟოლოს პი: 3 ნაბიჯი (სურათებით)

ვიდეო: AVR/Arduino ციმციმებს ჟოლოს პი: 3 ნაბიჯი (სურათებით)
ვიდეო: LDmicro 12: Arduino Boards without IDE (Microcontroller PLC Ladder Programming with LDmicro) 2024, ივლისი
Anonim
AVR/Arduino Flashing With Raspberry Pi
AVR/Arduino Flashing With Raspberry Pi

სისტემური პროგრამისტი (ISP) არის მოწყობილობა, რომლის საშუალებითაც შეგიძლიათ მრავალი მიკროკონტროლერის დაპროგრამება, მაგალითად ATMega328p, რომელიც არის Arduino Uno- ს ტვინი. თქვენ შეგიძლიათ შეიძინოთ USBtinyISP- ის მსგავსი, ან შეგიძლიათ გამოიყენოთ Arduino. ეს ინსტრუქცია გაჩვენებთ თუ როგორ გამოიყენოთ Raspberry Pi როგორც ISP.

Avrdude პროგრამა, რომელსაც Arduino IDE იყენებს ჩიპების დასათბობად, შეიძლება გამოყენებულ იქნას ბევრ პროგრამისტთან. მისი ერთ -ერთი ვარიანტია გამოიყენოს SPI ქინძისთავები Pi- ს გაფართოების პორტში. მე აგიხსნით, თუ როგორ უნდა დაამყაროთ შესაბამისი კავშირები, მოაწყოთ მარტივი წრე პერფორდზე, ასე რომ თქვენ არ გჭირდებათ ხელახლა გაყვანილობა ყოველ ჯერზე, როდესაც გსურთ ჩიპის დატენვა და როგორ დააინსტალიროთ და გამოიყენოთ avrdude. მე ასევე გაჩვენებთ თუ როგორ უნდა მიიღოთ პროგრამები Arduino IDE გამოყენებით შედგენილი AVR ჩიპზე, როგორიცაა ATmega ან ATtiny ამ მეთოდის გამოყენებით.

საჭირო ნივთები:

  • Raspberry Pi დაინსტალირებული უახლესი Raspbian– ით
  • 40 პინიანი მამრობითი სათაურის ბუდე (ან 26 პინიანი თუ თქვენ გაქვთ ძველი Pi)
  • IDE კაბელი თქვენს Pi- თან დასაკავშირებლად
  • 16 MHz კრისტალური რეზონატორი
  • 22 pF კონდენსატორები (2)
  • LED (1) პროგრამისტის სტატუსის მითითებისთვის
  • 8, 14 და/ან 28 პინიანი IC სოკეტები, ეს დამოკიდებულია იმაზე, თუ რა ფორმის ჩიპს გსურთ აანთოთ
  • ზოგიერთი perfboard, მავთულები, solder

ნაბიჯი 1: მშენებლობა Cobbler დანართი

მშენებლობა Cobbler დანართი
მშენებლობა Cobbler დანართი
მშენებლობა Cobbler დანართი
მშენებლობა Cobbler დანართი
მშენებლობა Cobbler დანართი
მშენებლობა Cobbler დანართი

სერიული პერიფერიული ინტერფეისი (SPI), რომელსაც ასევე უწოდებენ ოთხ მავთულის სერიალს, არის ერთ ძირითად მოწყობილობასა და ერთ ან რამდენიმე მონა მოწყობილობას შორის კომუნიკაციის საშუალება. ჩვენ ამას გამოვიყენებთ ჩიპების გასანათებლად, Pi როგორც ოსტატი და ჩიპი, როგორც მონა. თქვენ დაამყარებთ შემდეგ კავშირებს Pi- სა და თქვენს ჩიპს შორის (იხილეთ ზემოთ pinouts სხვადასხვა AVR და Pi გაფართოების პორტებისთვის, რომ იცოდეთ რომელია რომელი ქინძისთავები):

  • შეაერთეთ MOSI (master-out-slave-in) ქინძისთავები ერთმანეთთან
  • შეაერთეთ SCLK (საერთო საათი) ქინძისთავები ერთმანეთთან
  • შეაერთეთ MISO (master-in-slave-out) ქინძისთავები 220 Ohm რეზისტორთან ერთად, რათა დაიცვათ Pi ჩიპიდან მოულოდნელად მაღალი ძაბვისგან
  • შეაერთეთ GPIO 25 Pi- ზე პირდაპირ ჩიპზე RESET pin- თან. Pi პროგრამირებისას ამცირებს ამ პინს, ამიტომ ჩვენ ვიყენებთ 10K რეზისტორს, რომ ის მაღალი იყოს პროგრამირების არარსებობისას, და LED 1K დაცვის რეზისტორით დადებით ძაბვაზე, რომ მოგვცეს სასიამოვნო ვიზუალური გამოხმაურება პროგრამირების დროს.

ჩვენ ვაკავშირებთ ადგილზე და დენის (3.3V) ქინძისთავებს Pi და ჩიპებს შორის, რომელთა დაპროგრამებაც გვინდა. თუ თქვენ უკვე არ იცით, Raspberry Pi- ს ქინძისთავები არ არის 5V ტოლერანტული - ისინი დაზიანდება, თუ მათზე 3.3V -ზე მეტი გამოჩნდება. თუ პროგრამირებულ ჩიპებს რაიმე მიზეზით სჭირდებათ 5 ვ სიმძლავრე, ჩვენ შეგვიძლია გამოვიყენოთ დონის ცვლის ჩიპი, რომ დავიცვათ Pi- ს ქინძისთავები, მაგრამ 3.3V– ის გამოყენებისას მე არანაირი პრობლემა არ შემხვედრია - ამიტომ გირჩევთ უსაფრთხოდ თამაშობდეთ და დაზოგოთ კომპონენტებზე.

დაბოლოს, ჩვენ ვაკავშირებთ 16 მჰც ბროლის ოსცილატორს ჩიპზე XTAL ქინძისთავების გასწვრივ, რომელსაც ჩვენ ასევე ვუკავშირდებით მიწას რამდენიმე 22pF კონდენსატორის საშუალებით. AVR ჩიპების დაყენება შესაძლებელია სხვადასხვა სიხშირეზე და ასევე შეიძლება გამოყენებულ იქნას შიდა თუ გარე წყაროს ამ სიხშირის დასადგენად. თუ თქვენი ჩიპი გამოიყენებს გარე კრისტალს, როგორც სიხშირის წყაროს, მის გარეშე ვერ შეძლებთ პროგრამის გადაპროგრამებას. წინააღმდეგ შემთხვევაში არ აქვს მნიშვნელობა იქ არის თუ არა.

თქვენ შეგიძლიათ გამოიყენოთ სქემატური სქემა ბოლო სურათზე, როგორც მეგზური პერფორდზე თქვენი ქობულარის დანართის ასაწყობად. თქვენ შეგიძლიათ გქონდეთ იმდენი ან რამდენიმე განსხვავებული ფორმის IC სოკეტი, რამდენიც გსურთ, უბრალოდ დააკავშირეთ შესაბამისი ქინძისთავები Pi და ბროლის პარალელურად. ნ.ბ. თუ თქვენ იყენებთ ჩემი პროტოტიპის სურათს, როგორც მეგზურს, გაითვალისწინეთ, რომ დავამატე სათაურის დამატებითი ბუდეები და სოკეტები, რათა შემეძლოს წვდომა Pi- ს ქინძისთავებზე, დაუკავშირებელი მიზეზების გამო.

ნაბიჯი 2: Avrdude– ის ინსტალაცია და გამოყენება

Avrdude– ის ინსტალაცია და გამოყენება
Avrdude– ის ინსტალაცია და გამოყენება
Avrdude– ის ინსტალაცია და გამოყენება
Avrdude– ის ინსტალაცია და გამოყენება
Avrdude– ის ინსტალაცია და გამოყენება
Avrdude– ის ინსტალაცია და გამოყენება
Avrdude– ის ინსტალაცია და გამოყენება
Avrdude– ის ინსტალაცია და გამოყენება

Avrdude თქვენს Pi– ზე დასაყენებლად, უბრალოდ ჩაწერეთ

sudo apt-get დააინსტალირეთ avrdude

შემდეგ თქვენ უნდა ჩართოთ SPI ინტერფეისი, თუ ის უკვე არ არის ჩართული. ამის გასაკეთებლად არსებობს ბრძანების სტრიქონი, მაგრამ ბევრად უფრო ადვილია Raspberry Pi კონფიგურაციის ინსტრუმენტის გამოყენება. ტიპი

sudo raspi-config

და გადადით ინტერფეისის პარამეტრებზე, რათა ჩართოთ SPI.

იმისათვის, რომ ააფეთქოთ თქვენი ჩიპი, შეაერთეთ ლენტი კაბელი თქვენი Pi- დან პერფორდის მიკროსქემის კონექტორში და ჩადეთ ჩიპი შესაბამის IC სოკეტში (დარწმუნდით, რომ ის სწორ გზაზეა).

პროგრამის ციმციმისას, თქვენ ასევე უნდა დარწმუნდეთ, რომ ჩიპში სწორად არის დაყენებული დაუკრავენ. ეს მართლაც მხოლოდ ბიპებია ჩიპში, რომელსაც თქვენ აყენებთ, რომ უთხრათ რა საათის სიჩქარეზე უნდა იმუშაოს, წაშალოს თუ არა EEPROM ჩიპის წერისას და ა.შ. გაცილებით ადვილია გამოიყენოთ დამცავი კალკულატორი, რომელიც მოცემულია engbedded.com/fusecalc– ზე. შეარჩიეთ AVR ნაწილის სახელი, რომელსაც იყენებთ და შეარჩიეთ თქვენთვის სასურველი პარამეტრები "ფუნქციების შერჩევა" არეალში. მე ჩვეულებრივ უბრალოდ ვამოწმებ, რომ საათის პარამეტრები სწორია და სხვა ნივთებს ნაგულისხმევად ვტოვებ. თქვენ თითქმის ყოველთვის გინდათ დატოვოთ "სერიული პროგრამირება ჩართული" შემოწმებული და "გადატვირთეთ გამორთული" დაუმოწმებელი - წინააღმდეგ შემთხვევაში თქვენ ვერ შეძლებთ ჩიპის გადაპროგრამებას. როდესაც გაქვთ სწორი პარამეტრები, შეგიძლიათ გადაახვიოთ ქვემოთ "მიმდინარე პარამეტრების" არეზე და დააკოპიროთ AVRDUDE არგუმენტები, როგორც ნაჩვენებია სურათზე.

სადაზღვევოების დასაყენებლად შეიყვანეთ ბრძანება

sudo avrdude -c linuxspi -P /dev/spidev0.0 -p

სადაც ნაწილის სახელი შეესაბამება თქვენს მიერ გამოყენებულ ჩიპს. თქვენ შეგიძლიათ იპოვოთ ნაწილების სახელების სია sudo ardude -c linuxspi -p? ტიპის შეყვანის გზით. თქვენი პროგრამის გასანათებლად, დარწმუნდით, რომ ის თქვენს ახლანდელ დირექტორიაშია და შეიყვანეთ

sudo avrdude -c linuxspi -P /dev/spidev0.0 -p -U flash: w:: i

ორივე ბრძანების შემდეგ, LED ანათებს, სანამ ჩიპი იცვლება.

ნაბიჯი 3: მიიღეთ Arduino პროგრამები AVR– ზე

Arduino პროგრამების მიღება AVR– ზე
Arduino პროგრამების მიღება AVR– ზე
Arduino პროგრამების მიღება AVR– ზე
Arduino პროგრამების მიღება AVR– ზე
Arduino პროგრამების მიღება AVR– ზე
Arduino პროგრამების მიღება AVR– ზე

ამ ინსტრუქციის მთავარი აქცენტი არის უკვე შედგენილი პროგრამების ჩიპებზე გადატანა, არა მათი ჩაწერა ან შედგენა. თუმცა, მე მინდოდა აეხსნა, თუ როგორ შეგიძლიათ შეადგინოთ ორობითი სისტემა Arduino IDE– ს გამოყენებით და მიიღოთ ისინი შიშველი AVR ჩიპებით ამ მეთოდის გამოყენებით, ვინაიდან Arduino სწავლა შედარებით ადვილია და ამდენი გაკვეთილი და მაგალითი არსებობს.

პირველ რიგში, თქვენ უნდა დაამატოთ ინფორმაცია AVR ჩიპების შესახებ, რომლებსაც თქვენ მოელვებთ ისე, რომ IDE– მ იცოდეს როგორ შეადგინოს მათთვის. ჯეიმს სლიმანმა ძალიან დამხმარედ შეაგროვა რამდენიმე დაყენების ფაილი, რომლებიც ხელმისაწვდომია github– ზე. მათი გამოსაყენებლად გახსენით მენიუ "პარამეტრები" Arduino IDE- ში და დააწკაპუნეთ ყუთზე "დამატებითი დაფების მენეჯერის მისამართები" ველის გვერდით. დააკოპირეთ და ჩასვით შემდეგი მისამართები დიალოგურ ფანჯარაში, რომელიც გამოჩნდება:

შემდეგ, გადადით "ინსტრუმენტები" მენიუში და იპოვეთ "დაფების მენეჯერი …" ვარიანტი "დაფის" ქვემენიუში. გადაახვიეთ სიის ბოლოში დაფების მენეჯერის დიალოგურ ფანჯარაში და დააინსტალირეთ DIY ATmega და DIY ATtiny დაფები.

თქვენი პროგრამების შესადგენად, ჯერ დარწმუნდით, რომ შეარჩიეთ სწორი ჩიპი "პროცესორის" მენიუში, ასევე სწორი პროცესორის სიჩქარე. შეარჩიეთ "გამოიყენეთ ჩამტვირთავი: არა" ვარიანტი, რადგან ჩვენ პირდაპირ ატვირთავთ Pi- ით და ამით შეგვიძლია გამოვიყენოთ დამატებითი სივრცე, რომელიც ჩვეულებრივ დაიკავებს Arduino ჩამტვირთველს. ახლა დააჭირეთ ღილაკს "გადამოწმება" (გამშვები ნიშანი). ეს ადგენს თქვენს პროგრამას მისი ატვირთვის მცდელობის გარეშე (ვინაიდან თქვენ თვითონ აკეთებთ ამ ნაბიჯს).

დავუშვათ, რომ ყველაფერი კარგად იქნება, ახლა თქვენ უნდა მიიღოთ შედგენილი პროგრამა თქვენს Pi- სთან. IDE მალავს მათ დროებით ადგილას, რადგან ის შექმნილია თავად პროგრამების ასატვირთად. Windows– ზე, ეს არის AppData/Local/Temp თქვენს მომხმარებლის დირექტორიაში, საქაღალდეში, რომელიც იწყება „arduino_build“- ით. მოძებნეთ. Hex ფაილი - ეს თქვენი პროგრამაა! გაგზავნეთ იგი თქვენს Pi– ზე FTP– ით ან USB ჯოხით, და თქვენ ბიზნესში ხართ.

ამის გაკეთება მოითხოვს, რომ თქვენ გქონდეთ Windows PC ან Mac თქვენი პროგრამების შესადგენად, რომელსაც შემდეგ აგზავნით Pi- ს. მართლაც რომ ძალიან ჯანსაღი იქნებოდა ამის გაკეთება Pi– ზე, მაგრამ სამწუხაროდ Raspbian საცავში არსებული Arduino IDE– ს ოფიციალური ვერსია საკმაოდ ძველია და მას არ ჰყავს დაფის მენეჯერი. ამის გარეშე, შიშველი AVR– ების შესადგენად შესაბამისი პარამეტრების დამატება ცოტა უფრო რთულია. არსებობს გაკვეთილები Arduino– ს უახლესი ვერსიის შედგენაზე თქვენს Pi– ზე - თუ ეს არის რისი გაკეთებაც გსურთ, წადით და მოძებნეთ ისინი! მე ასევე ვგრძნობ, რომ შესაძლებელი უნდა იყოს IDE- ს გამოიყენოს linuxspi პროგრამისტი, რომ ჩიპი ააფეთქოს თავად IDE- დან (ანუ "გადმოტვირთვის" ღილაკის გამოყენებით), მაგრამ ეს სცილდება ჩემს მოთმინებას და უნარებს - თუ იცით გზა, განათავსეთ იგი კომენტარებში! დაბოლოს, თქვენ უბრალოდ შეგიძლიათ დაწეროთ პროგრამები პირდაპირ AVR-C– ში და შეადგინოთ ისინი Pi– ზე avr-gcc– ით, რაც მოგცემთ სრულ AVR განვითარების პლატფორმას Raspberry Pi– ში. მე ამის მცირედი ნაწილი გავაკეთე და თუ თქვენ გინდათ რომ გაიაროთ ეს გზა, გილოცავთ. გაანათე!

გირჩევთ: