Съдържание:

Как да програмирате AVR (arduino) с друг Arduino: 7 стъпки
Как да програмирате AVR (arduino) с друг Arduino: 7 стъпки

Видео: Как да програмирате AVR (arduino) с друг Arduino: 7 стъпки

Видео: Как да програмирате AVR (arduino) с друг Arduino: 7 стъпки
Видео: LDmicro 21: Why Choose Arduino Mega over Uno? (Microcontroller PLC Ladder Programming with LDmicro) 2024, Юли
Anonim
Как да програмирате AVR (arduino) с друг Arduino
Как да програмирате AVR (arduino) с друг Arduino
Как да програмирате AVR (arduino) с друг Arduino
Как да програмирате AVR (arduino) с друг Arduino
Как да програмирате AVR (arduino) с друг Arduino
Как да програмирате AVR (arduino) с друг Arduino

Тези инструкции са полезни, ако:

* имате вашия arduino с atmega168 и сте закупили atmega328 в местния магазин за електроника. Той няма arduino bootloader *, който искате да направите проект, който не използва arduino - просто обикновен AVR чип (като USBTinyISP) - имате чист attiny2313/attiny48 и т.н., на който искате да запишете фърмуера. Обикновено би трябвало да имате ISP (в системния програмист) като USBTinyISP, за да програмирате новия си чип. Имайки arduino, можете да го научите да бъде програмист благодарение на страхотната работа, извършена от Randall Bohn. Той създаде Mega -ISP - скица arduino, която работи като програмист.

Стъпка 1: Какво ви трябва?

Какво ти е необходимо ?
Какво ти е необходимо ?

* работещ Arduino (или клонинг - използвам BBB - BareBonesBoard и RBBB - RealBareBonesBoard от ModernDevices) * чип, който искате да програмирате (тестван с atmega8, atmega168, atmega368, attiny2313, attiny13) * макет или платка с ISP заглавие * 3 светодиода + 3 резистора * проводници за макет

Стъпка 2: Създаване на Mega-isp програмист на макета

Създаване на Mega-isp програмист на чертеж
Създаване на Mega-isp програмист на чертеж
Създаване на Mega-isp програмист на чертеж
Създаване на Mega-isp програмист на чертеж
Създаване на Mega-isp програмист на чертеж
Създаване на Mega-isp програмист на чертеж

Има два начина да свържете вашия Arduino, за да програмирате чип.

Можете да включите вашия avr чип към макет и да свържете 5v и GND към съответните щифтове (проверете листа с данни!) + Издърпващ резистор за нулиране и свързване на щифтове от вас arduino към чипа. Това са линиите на Arduino и тяхната функция 13 - SCK 12 - MISO 11 - MOSI 10 - RST (Нулиране) Или можете да направите 2x3pin ISP заглавка, която можете да включите в платка, която осигурява една (друга платка arduino). Разпилката за заглавката на ISP е на третото изображение. Има 3 светодиода, които показват състоянието на програмиста. щифт 9 - син светодиод - това е сърцето на програмиста. щифт 8 - червен светодиод - показва грешка щифт 7 - зелен светодиод - показва, че програмирането се извършва (бях мързелив, така че не съвпаднах с цветовете в моята настройка) Ето чертежите, направени във Fritzing Можете също така да направите Щит MEGA-isp. Ярослав Осадчий проектира щита в орел. Можете да получите файловете на орела на неговия сайт:

Стъпка 3: Качване на скицата

Качване на скица
Качване на скица

Изтеглете скицата от мега-isp кода на Google. (Avrisp.03.zip по време на писането). Разопаковайте го и стартирайте arduino ide и отворете avrisp.pde. Качете го на дъската си arduino. LED пулса трябва да започне да бие.

Стъпка 4: Използване с Avrdude

Използване с Avrdude
Използване с Avrdude

За да използвате с avrdude (и всички графични интерфейси, които го използват), трябва да изберете програмиста „avrisp“. най -сигурният битрейт е 19200.

За да тествате новия си atmega168 от командния ред, опитайте: $ avrdude -p m168 -P /dev /ttyUSB0 -c avrisp -b 19200 /dev /USB0 е портът, който arduino е свързан към моя linux box (вашият може да е com5). Това може да се провери в arduino IDE в Инструменти -> Сериен порт. Трябва да получите: [kabturek@hal -9000 ~]# avrdude -p m168 -P /dev /ttyUSB0 -c avrisp -b 19200 avrdude: AVR устройството е инициализирано и готово да приеме инструкции Четене | ################################################# | 100% 0.13s avrdude: Подпис на устройството = 0x1e9406 avrdude: safemode: Предпазителите OK avrdude направено. Благодаря ти. Това означава, че всичко е наред. Ако получите грешки - проверете последната стъпка.

Стъпка 5: Записване на фърмуера на USBtinyISP към Attiny2313

Записване на фърмуера на USBtinyISP към Attiny2313
Записване на фърмуера на USBtinyISP към Attiny2313
Записване на фърмуера на USBtinyISP към Attiny2313
Записване на фърмуера на USBtinyISP към Attiny2313
Записване на фърмуера на USBtinyISP към Attiny2313
Записване на фърмуера на USBtinyISP към Attiny2313

USBTinyISP е страхотен програмист от LadyAda, който е наистина евтин - 22 $. Имах резервен attiny2313 и някои части, затова реших сам да си направя такъв. Ако нямате опит в производството на печатни платки, съветвам ви да закупите комплекта, защото той е по -качествен, отколкото можете да направите сами:). Поне купете печатната платка, ако искате да я изградите. Можете да го получите от Adafruit. Свържете ATtiny2313 На последната снимка можете да видите attiny2313 с щифтовете, използвани за ISP в червено. Снимката е от лекция за AUD на LadyAda. Записване на фърмуера: Разопаковайте фърмуера на USBTinyISP. Отидете на 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 Сега трябва да свържете 12mhz външен осцилатор към чипа. И запишете фърмуера: $ avrdude -B 1 -pt2313 -U флаш: w: main.hex -P /dev /ttyUSB0 -c avrisp -b 19200 Voila. Вашият attiny2313 има фърмуера на USBTinyISP.

Стъпка 6: Записване на Arduino Bootloader

Записване на Arduino Bootloader
Записване на Arduino Bootloader
Записване на Arduino Bootloader
Записване на Arduino Bootloader
Записване на Arduino Bootloader
Записване на Arduino Bootloader

Изневерих малко, защото използвах RBBB, за да опростя връзките. Схемата е на снимка №2. Ако използвате 2 arduino, използвайте снимката #3 и свържете ISP щифта към ICSP 2x3header на втория (slave) arduino. Само свържете usb захранването към първата платка. Начинът на GUI Това е малко сложно, защото не можете просто да използвате Tools-> Burn Bootloader-> w/ AVR ISP, защото скоростта по подразбиране е твърде голяма за mega-isp. Намерете avrdude.; desc = "Atmel AVR ISP"; бодрейт = 115200; # по подразбиране е 115200 тип = stk500;; към: програмист 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 за: # въведете параметрите за avrdude isp инструмента ISPTOOL = avrisp ISPPORT = /dev /ttyUSB0 ISPSPEED = -b 19200 не можете да напишете $ make diecimila_isp за изгаряне на предпазители и буутлоудъра. изгори мигащото!

Стъпка 7: Отстраняване на неизправности

Отстраняване на неизправности
Отстраняване на неизправности

Грешки в Avrdude: avrdude: ser_open (): не може да отвори устройството "/dev/ttyUSB0": Няма такъв файл или директория Имате посочен грешен порт (-P) или вашето arduino не е свързано. проверете връзката avrdude: Подпис на устройството = 0x000000 avrdude: Браво! Невалиден подпис на устройството. Проверете отново връзките и опитайте отново или използвайте -F, за да отмените тази проверка. Това е някаква обща грешка. Чипът ви не се разпознава. Проверете връзката на платката (GND/5V, свързана с пинове?) Ще получите тази грешка, когато чипът ви е конфигуриран да използва външен осцилатор и той не работи (няма такъв или не е осцилиращ правилно - 22pf капачки липсва?)

Препоръчано: