Orodha ya maudhui:

Jinsi ya Kupanga AVR (arduino) Na Arduino nyingine: Hatua 7
Jinsi ya Kupanga AVR (arduino) Na Arduino nyingine: Hatua 7

Video: Jinsi ya Kupanga AVR (arduino) Na Arduino nyingine: Hatua 7

Video: Jinsi ya Kupanga AVR (arduino) Na Arduino nyingine: Hatua 7
Video: ESP32 Turorial 1 - Introduction to SunFounder's ESP32 IoT Learnig kit Software and Arduino IDE 2024, Novemba
Anonim
Jinsi ya Kupanga AVR (arduino) Na Arduino nyingine
Jinsi ya Kupanga AVR (arduino) Na Arduino nyingine
Jinsi ya Kupanga AVR (arduino) Na Arduino nyingine
Jinsi ya Kupanga AVR (arduino) Na Arduino nyingine
Jinsi ya Kupanga AVR (arduino) Na Arduino nyingine
Jinsi ya Kupanga AVR (arduino) Na Arduino nyingine

Mafundisho haya ni muhimu ikiwa:

* unayo arduino yako na atmega168 na umenunua atmega328 kwenye duka lako la elektroniki. Haina bootloader ya arduino * unataka kutengeneza mradi ambao hautumii arduino - tu chip ya kawaida ya AVR (kama USBTinyISP) - una safi att132313 / attiny48 nk ambayo unataka kuchoma firmware. Kawaida italazimika kuwa na ISP (In System Programmer) kama USBTinyISP kupanga chip yako mpya. Kuwa na arduino unaweza kuifundisha kuwa programu ya shukrani kwa kazi nzuri iliyofanywa na Randall Bohn. Aliunda Mega-ISP - mchoro wa arduino ambao hufanya kazi kama programu.

Hatua ya 1: Unahitaji Nini?

Unahitaji nini ?
Unahitaji nini ?

* Arduino inayofanya kazi (au kigongo - ninatumia BBB - BareBonesBoard na RBBB - RealBareBonesBoard na ModernDevices) * chip ambayo unataka kupanga (iliyojaribiwa na atmega8, atmega168, atmega368, attiny2313, attiny13) * boardboard au bodi iliyo na kichwa cha ISP * 3 leds + 3 resistors * waya za mkate

Hatua ya 2: Kufanya Programu ya Mega-isp kwenye ubao wa mkate

Kufanya Programu ya Mega-isp kwenye ubao wa mkate
Kufanya Programu ya Mega-isp kwenye ubao wa mkate
Kufanya Programu ya Mega-isp kwenye ubao wa mkate
Kufanya Programu ya Mega-isp kwenye ubao wa mkate
Kufanya Programu ya Mega-isp kwenye ubao wa mkate
Kufanya Programu ya Mega-isp kwenye ubao wa mkate

Kuna njia mbili za kuunganisha Arduino yako ili kupanga chip.

Unaweza kuziba chip yako ya avr kwenye ubao wa mkate na unganisha 5v na GND kwenye pini husika (angalia hati ya data!) + Kontena la pullup kuweka upya na kuweka pini kutoka kwako arduino kwenye chip. Hizi ni mistari kwenye Arduino na kazi yao 13 - SCK 12 - MISO 11 - MOSI 10 - RST (Rudisha upya) Au unaweza kutengeneza kichwa cha 2x3pin ISP ambacho unaweza kuziba kwenye bodi ambayo hutoa moja (bodi nyingine ya arduino). Pinout ya kichwa cha ISP iko kwenye picha ya tatu Kuna viongozo 3 kuonyesha hali ya programu. pini 9 - bluu iliyoongozwa - sauti yake ya kusikia ya programu. pini 8 - nyekundu iliyoongozwa - inaonyesha pini ya makosa 7 - kijani kilichoongozwa - inaonyesha kwamba programu inafanyika (nilikuwa mvivu kwa hivyo sikulinganisha rangi kwenye usanidi wangu) Hapa kuna michoro zilizofanywa katika Fritzing Unaweza pia kutengeneza Ngao ya MEGA-isp. Yaroslav Osadchyy alitengeneza ngao katika tai. Unaweza kupata faili za tai kwenye wavuti yake:

Hatua ya 3: Kupakia Mchoro

Inapakia Mchoro
Inapakia Mchoro

Pakua mchoro kutoka kwa mega-isp google code. (Avrisp.03.zip wakati wa kuandika). Ondoa na uendesha ideu ya arduino na ufungue avrisp.pde. Pakia kwenye bodi yako ya arduino. Kuongozwa kwa mapigo ya moyo kunapaswa kuanza kupiga.

Hatua ya 4: Kutumia na Avrdude

Kutumia na Avrdude
Kutumia na Avrdude

Ili kutumia na avrdude (na GUI zote zinazotumia) lazima uchague programu ya 'avrisp'. bitrate salama ni 19200.

Ili kujaribu atmega168 yako mpya kutoka kwa jaribu la amri: $ avrdude -p m168 -P / dev / ttyUSB0 -c avrisp -b 19200 / dev / USB0 ndio bandari ambayo arduino imeunganishwa na sanduku langu la linux (yako inaweza kuwa com5). Hii inaweza kuchunguzwa katika arduino IDE katika Zana -> Serial Port. Unapaswa kupata: [kabturek @ hal-9000 ~] # avrdude -p m168 -P / dev / ttyUSB0 -c avrisp -b 19200 avrdude: Kifaa cha AVR kimeanzishwa na tayari kupokea maagizo Kusoma | # ############ | 100% 0.13s avrdude: Saini ya kifaa = 0x1e9406 avrdude: safemode: Fuses OK avrdude imefanywa. Asante. Hiyo inamaanisha kila kitu ni sawa. Ikiwa unapata makosa - angalia hatua ya mwisho.

Hatua ya 5: Kuungua Firmware ya USBtinyISP kwa Attiny2313

Kuungua Firmware ya USBtinyISP kwa Attiny2313
Kuungua Firmware ya USBtinyISP kwa Attiny2313
Kuungua Firmware ya USBtinyISP kwa Attiny2313
Kuungua Firmware ya USBtinyISP kwa Attiny2313
Kuungua Firmware ya USBtinyISP kwa Attiny2313
Kuungua Firmware ya USBtinyISP kwa Attiny2313

USBTinyISP ni programu nzuri kutoka kwa LadyAda hiyo ni bei rahisi - 22 $. Nilikuwa na attiny2313 ya vipuri na sehemu zingine kwa hivyo niliamua kutengeneza mwenyewe. Ikiwa huna uzoefu wowote katika kutengeneza PCB nakushauri ununue kit hiyo ni sababu ya hali ya juu kuliko unavyoweza kujifanya:). Angalau nunua PCB ikiwa unataka kujenga. Unaweza kuipata kutoka kwa Adafruit. Unganisha ATtiny2313Katika picha ya mwisho unaweza kuona attiny2313 na pini zinazotumiwa kwa ISP kwa rangi nyekundu. Picha ni kutoka kwa mafunzo ya LadyAda avr. Kuungua firmware: Ondoa firmware ya USBTinyISP. Nenda kwa spi dir na uendesha $ avrdude -p pt2313 -P / dev / ttyUSB0 -c avrisp -b 19200 kuangalia ikiwa kila kitu ni sawa na chip. Sasa weka fuses: $ avrdude -P / dev / ttyUSB0 -c avrisp -b 19200 -pt2313 -U hfuse: w: 0xdf: m -U lfuse: w: 0xef: m Sasa unapaswa kushikamana na oscillator ya nje ya 12mhz kwenye chip. Na choma firmware: $ avrdude -B 1 -pt2313 -U flash: w: main.hex -P / dev / ttyUSB0 -c avrisp -b 19200 Voila. Attiny2313 yako ina firmware ya USBTinyISP.

Hatua ya 6: Kuungua Moto wa Arduino

Kuungua Moto wa Arduino
Kuungua Moto wa Arduino
Kuungua Moto wa Arduino
Kuungua Moto wa Arduino
Kuungua Moto wa Arduino
Kuungua Moto wa Arduino

Kuunganisha Nilidanganya sababu kidogo nilitumia RBBB kurahisisha unganisho. Schema iko kwenye picha # 2. Ikiwa unatumia 2 arduinos tumia picha # 3 na unganisha pini ya ISP kwa ICSP 2x3header kwenye pili (mtumwa) arduino. Unganisha tu nguvu ya usb kwenye bodi ya kwanza. Njia ya GUI Hii ni sababu ngumu sana huwezi kutumia Zana-> Burn Bootloader -> w / AVR ISP sababu kasi ya chaguo-msingi ni kubwa sana kwa mega-isp. Pata avrdude.conf ambayo inakuja na arduino IDE (katika arduino / vifaa / zana / avrdude.conf) na ubadilishe mpaka wa programu ya avrisp kutoka 115200 hadi 19200 (karibu na mstari wa 312) Pata na ubadilishe kwa avrdude.conf programmer id = "avrisp"; desc = "Atmel AVR ISP"; baudrate = 115200; # chaguo-msingi ni aina ya 115200 = stk500;; kwa: programu id = "avrisp"; desc = "Atmel AVR ISP"; baudrate = 19200; # chaguo-msingi ni aina ya 115200 = stk500;; Sasa unaweza kutumia Zana -> Burn Bootloader -> w / AVR ISP (baada ya kuchagua bodi sahihi kutoka kwa menyu ya Zana) Commanline Unaweza pia kutumia laini ya amri: Hariri arduino / vifaa / bootloaders / atmega / Makefile na ubadilishe ISPTOOL / PORT / SPEED to: # ingiza vigezo vya chombo cha avrdude ISPOOL = avrisp ISPPORT = / dev / ttyUSB0 ISPSPEED = -b 19200 hapana unaweza kuandika $ make diecimila_isp kuchoma fuses na bootloader. Jaribu sasa unganisha arduino mpya kwa usb na choma blinky!

Hatua ya 7: Utatuzi wa matatizo

Utatuzi wa shida
Utatuzi wa shida

Makosa ya Avrdude: avrdude: ser_open (): haiwezi kufungua kifaa "/ dev / ttyUSB0": Hakuna faili au saraka kama hiyo Una bandari isiyo sahihi (-P) iliyoainishwa au arduino yako haijaunganishwa. angalia uunganisho avrdude: Saini ya kifaa = 0x000000 avrdude: Yikes! Saini ya kifaa si sahihi. Angalia miunganisho mara mbili na ujaribu tena, au tumia -F kubatilisha hundi hii. Hii ni aina ya makosa ya jumla. Chip yako haitambuliwi. Angalia unganisho kwenye ubao (GND / 5V iliyounganishwa na pini?) Utapata hitilafu hii wakati chip yako imesanidiwa kutumia oscillator ya nje na haifanyi kazi (hakuna moja au haitoi alama za 22pf kukosa?)

Ilipendekeza: