Talaan ng mga Nilalaman:

Paano Mag-Program ng isang AVR (arduino) Sa Isa pang Arduino: 7 Hakbang
Paano Mag-Program ng isang AVR (arduino) Sa Isa pang Arduino: 7 Hakbang

Video: Paano Mag-Program ng isang AVR (arduino) Sa Isa pang Arduino: 7 Hakbang

Video: Paano Mag-Program ng isang AVR (arduino) Sa Isa pang Arduino: 7 Hakbang
Video: Arduino MASTERCLASS | Full Programming Workshop in 90 Minutes! 2024, Nobyembre
Anonim
Paano Mag-Program ng isang AVR (arduino) Sa Isa pang Arduino
Paano Mag-Program ng isang AVR (arduino) Sa Isa pang Arduino
Paano Mag-Program ng isang AVR (arduino) Sa Isa pang Arduino
Paano Mag-Program ng isang AVR (arduino) Sa Isa pang Arduino
Paano Mag-Program ng isang AVR (arduino) Sa Isa pang Arduino
Paano Mag-Program ng isang AVR (arduino) Sa Isa pang Arduino

Ang mga itinuturo na ito ay kapaki-pakinabang kung:

* Nakuha mo ang iyong arduino sa atmega168 at bumili ka ng isang atmega328 sa iyong lokal na tindahan ng electronics. Wala itong isang arduino bootloader * nais mong gumawa ng isang proyekto na hindi gumagamit ng arduino - isang regular na AVR chip (tulad ng USBTinyISP) - mayroon kang isang malinis na attiny2313 / attiny48 atbp na nais mong sunugin ang firmware. Karaniwan ay magkakaroon ka ng isang ISP (Sa System Programmer) tulad ng USBTinyISP upang mai-program ang iyong bagong chip. Ang pagkakaroon ng arduino maaari mo itong turuan upang maging isang programmer salamat sa isang mahusay na gawa na ginawa ni Randall Bohn. Nilikha niya ang Mega-ISP - isang arduino sketch na gumagana tulad ng isang programmer.

Hakbang 1: Ano ang Kailangan Mo?

Ano'ng kailangan mo ?
Ano'ng kailangan mo ?

* isang gumaganang Arduino (o isang clone - gumagamit ako ng BBB - BareBonesBoard at isang RBBB - RealBareBonesBoard ng ModernDevices) * isang maliit na tilad na nais mong i-program (nasubukan sa atmega8, atmega168, atmega368, attiny2313, attiny13) * isang breadboard o isang board na may ISP header * 3 leds + 3 resistors * breadboard wires

Hakbang 2: Paggawa ng Mega-isp Programmer sa isang Breadboard

Paggawa ng Mega-isp Programmer sa isang Breadboard
Paggawa ng Mega-isp Programmer sa isang Breadboard
Paggawa ng Mega-isp Programmer sa isang Breadboard
Paggawa ng Mega-isp Programmer sa isang Breadboard
Paggawa ng Mega-isp Programmer sa isang Breadboard
Paggawa ng Mega-isp Programmer sa isang Breadboard

Mayroong dalawang paraan upang ikonekta ang iyong Arduino upang mag-program ng isang maliit na tilad.

Maaari mong mai-plug ang iyong avr chip sa isang breadboard at ikonekta ang 5v at GND sa kani-kanilang mga pin (suriin ang datasheet!) + Isang pullup risistor upang i-reset at mga wire pin mula sa iyo arduino sa chip. Ito ang mga linya sa Arduino at ang kanilang pagpapaandar 13 - SCK 12 - MISO 11 - MOSI 10 - RST (I-reset) O maaari kang gumawa ng isang 2x3pin ISP header na maaari mong mai-plug sa isang board na nagbibigay ng isa (isa pang arduino board). Ang pinout para sa header ng ISP ay nasa pangatlong imahe Mayroong 3 leds upang ipahiwatig ang katayuan ng programmer. pin 9 - asul na humantong - ito ay ang pandinig ng programmer. pin 8 - red led - nagsasaad ng isang error pin 7 - berde na humantong - ay nagpapahiwatig na ang programa ay nagaganap (tamad ako kaya hindi ako tumugma sa mga kulay sa aking pag-set up) Narito ang mga guhit na ginawa sa Fritzing Maaari kang gumawa ng isang MEGA-isp kalasag. Dinisenyo ni Yaroslav Osadchyy ang kalasag sa agila. Maaari mong makuha ang mga file ng agila sa kanyang site:

Hakbang 3: Pag-upload ng Sketch

Pag-upload ng Sketch
Pag-upload ng Sketch

I-download ang sketch mula sa mega-isp google code. (Avrisp.03.zip sa oras ng pagsulat). I-unpack ito at patakbuhin ang arduino ide at buksan ang avrisp.pde. I-upload ito sa iyong arduino board. Ang pinangungunahan ng heartbeat ay dapat magsimulang matalo.

Hakbang 4: Paggamit Sa Avrdude

Paggamit Sa Avrdude
Paggamit Sa Avrdude

Upang magamit sa avrdude (at lahat ng mga GUI na gumagamit nito) kailangan mong piliin ang programmer na 'avrisp'. ang pinakaligtas na bitrate ay 19200.

Upang subukan ang iyong bagong atmega168 mula sa commandline subukan: $ avrdude -p m168 -P / dev / ttyUSB0 -c avrisp -b 19200 / dev / USB0 ay ang port na ang arduino ay konektado sa aking linux box (maaaring ang com5 mo). Maaari itong suriin sa arduino IDE sa Tools -> Serial Port. Dapat mong makuha ang: [kabturek @ hal-9000 ~] # avrdude -p m168 -P / dev / ttyUSB0 -c avrisp -b 19200 avrdude: Pinasimulan ang AVR aparato at handa nang tanggapin ang mga tagubilin sa Pagbasa | ###Oooooooooooooooo | 100% 0.13s avrdude: Pirma ng aparato = 0x1e9406 avrdude: safemode: Fuse OK avrdude tapos na. Salamat. Ibig sabihin ok ang lahat. Kung nakakuha ka ng mga error - suriin ang huling hakbang.

Hakbang 5: Nasusunog na USBtinyISP Firmware sa isang Attiny2313

Nasusunog na USBtinyISP Firmware sa isang Attiny2313
Nasusunog na USBtinyISP Firmware sa isang Attiny2313
Nasusunog na USBtinyISP Firmware sa isang Attiny2313
Nasusunog na USBtinyISP Firmware sa isang Attiny2313
Nasusunog na USBtinyISP Firmware sa isang Attiny2313
Nasusunog na USBtinyISP Firmware sa isang Attiny2313

Ang USBTinyISP ay isang mahusay na programmer mula sa LadyAda na talagang mura - 22 $. Mayroon akong ekstrang attiny2313 at ilang mga bahagi kaya nagpasya akong gawin ang isa sa aking sarili. Kung wala kang anumang karanasan sa paggawa ng PCB i payo na bilhin mo ang kit sanhi ng mas mataas na kalidad kaysa sa magagawa mo ang iyong sarili:). Hindi bababa sa bumili ng PCB kung nais mong bumuo ng isa. Maaari mo itong makuha mula sa Adafruit. Ikonekta ang ATtiny2313 Sa huling larawan makikita mo ang attiny2313 sa mga pin na ginamit para sa ISP na pula. Ang larawan ay mula sa LadyAda avr tutorial. Nasusunog ang firmware: I-unpack ang USBTinyISP firmware. Pumunta sa spi dir at patakbuhin ang $ avrdude -p pt2313 -P / dev / ttyUSB0 -c avrisp -b 19200 upang suriin kung ang lahat ay ok sa chip. Itakda ngayon ang mga piyus: $ avrdude -P / dev / ttyUSB0 -c avrisp -b 19200 -pt2313 -U hfuse: w: 0xdf: m -U lfuse: w: 0xef: m Ngayon ay dapat mong ikabit ang 12mhz external oscillator sa chip. At sunugin ang firmware: $ avrdude -B 1 -pt2313 -U flash: w: main.hex -P / dev / ttyUSB0 -c avrisp -b 19200 Voila. Ang iyong attiny2313 ay mayroong USBTinyISP firmware.

Hakbang 6: Nasusunog ang Arduino Bootloader

Nasusunog ang Arduino Bootloader
Nasusunog ang Arduino Bootloader
Nasusunog ang Arduino Bootloader
Nasusunog ang Arduino Bootloader
Nasusunog ang Arduino Bootloader
Nasusunog ang Arduino Bootloader

Kumokonekta ako nang kaunti sanhi na gumamit ako ng isang RBBB upang gawing simple ang mga koneksyon. Ang iskema ay nasa larawan # 2. Kung gumagamit ka ng 2 arduinos gamitin ang larawan # 3 at ikonekta ang ISP pin sa ICSP 2x3header sa pangalawang (alipin) arduino. Ikonekta lamang ang kapangyarihan ng usb sa unang board. Ang paraan ng GUI Ito ay isang maliit na nakakalito sanhi hindi mo lamang magagamit ang Mga Tool-> Burn Bootloader -> w / AVR ISP sanhi ng default na bilis ay masyadong malaki para sa mega-isp. Hanapin ang avrdude.conf na kasama ng arduino IDE (sa arduino / hardware / tools / avrdude.conf) at palitan ang border para sa avrisp programmer mula 115200 hanggang 19200 (sa paligid ng linya 312) Hanapin at baguhin ang avrdude.conf programmer id = "avrisp"; desc = "Atmel AVR ISP"; baudrate = 115200; Ang # default ay 115200 uri = stk500;; sa: programmer id = "avrisp"; desc = "Atmel AVR ISP"; baudrate = 19200; Ang # default ay 115200 uri = stk500;; Maaari mo nang gamitin ang Mga Tool -> Burn Bootloader -> w / AVR ISP (pagkatapos mong piliin ang tamang board mula sa menu ng Mga Tool) Commanline Maaari mo ring gamitin ang commandline: I-edit ang arduino / hardware / bootloaders / atmega / Makefile at baguhin ang ISPTOOL / PORT / SPEED to: # ipasok ang mga parameter para sa avrdude isp tool ISPTOOL = avrisp ISPPORT = / dev / ttyUSB0 ISPSPEED = -b 19200 no maaari kang magsulat ng $ make diecimila_isp upang magsunog ng mga piyus at ang bootloader. Subukan Ngayon ikonekta ka ng bagong arduino sa usb at sunugin ang kumurap!

Hakbang 7: Pag-troubleshoot

Pag-troubleshoot
Pag-troubleshoot

Mga error sa Avrdude: avrdude: ser_open (): hindi mabubuksan ang aparato "/ dev / ttyUSB0": Walang ganoong file o direktoryo Mayroon kang maling port (-P) na tinukoy o ang iyong arduino ay hindi nakakonekta. suriin ang koneksyon avrdude: Pirma ng aparato = 0x000000 avrdude: Yikes! Di-wastong lagda ng aparato. I-double check ang mga koneksyon at subukang muli, o gamitin ang -F upang ma-override ang tseke na ito. Ito ay uri ng pangkalahatang error. Ang iyong chip ay hindi kinikilala. Suriin ang koneksyon sa board (nakakonekta ang GND / 5V sa mga pin?) Makukuha mo ang error na ito kapag ang iyong maliit na tilad ay na-configure upang magamit ang isang panlabas na oscillator at hindi ito gumagana (walang isa o hindi ito oscillating maayos - 22pf cap nawawala?)

Inirerekumendang: