Mündəricat:

Bir AVR (arduino) başqa bir Arduino ilə necə proqramlaşdırılır: 7 addım
Bir AVR (arduino) başqa bir Arduino ilə necə proqramlaşdırılır: 7 addım

Video: Bir AVR (arduino) başqa bir Arduino ilə necə proqramlaşdırılır: 7 addım

Video: Bir AVR (arduino) başqa bir Arduino ilə necə proqramlaşdırılır: 7 addım
Video: Arduino Dərs 2 - "Arduinonun Proqramlaşdırılması. Arduinonun növləri. Arduino IDE-nin yüklənilməsi" 2024, Noyabr
Anonim
AVR (arduino) proqramını başqa bir Arduino ilə necə proqramlaşdırmaq olar
AVR (arduino) proqramını başqa bir Arduino ilə necə proqramlaşdırmaq olar
AVR (arduino) proqramını başqa bir Arduino ilə necə proqramlaşdırmaq olar
AVR (arduino) proqramını başqa bir Arduino ilə necə proqramlaşdırmaq olar
AVR (arduino) proqramını başqa bir Arduino ilə necə proqramlaşdırmaq olar
AVR (arduino) proqramını başqa bir Arduino ilə necə proqramlaşdırmaq olar

Bu təlimatlar aşağıdakı hallarda faydalıdır:

* atmega168 ilə arduino var və yerli elektronika mağazasında bir atmega328 aldın. Arduino istifadə etməyən bir layihə etmək istədiyiniz bir arduino yükləyicisi yoxdur - sadəcə adi bir AVR çipi (USBTinyISP kimi) - firmware yazmaq istədiyiniz təmiz bir attiny2313/attiny48 və s. Adətən yeni çipinizi proqramlaşdırmaq üçün USBTinyISP kimi bir ISP (Sistem Proqramçısında) olması lazım idi. Arduino ilə Randall Bohn tərəfindən edilən böyük bir iş sayəsində proqramçı olmağı öyrədə bilərsiniz. Bir proqramçı kimi işləyən bir arduino eskizi olan Mega -ISP yaratdı.

Addım 1: Nə lazımdır?

Nə lazımdır?
Nə lazımdır?

* işləyən bir Arduino (və ya bir klon - BBB - BareBonesBoard və bir RBBB - RealBareBonesBoard by ModernDevices) istifadə edirəm * proqramlaşdırmaq istədiyiniz çip (atmega8, atmega168, atmega368, attiny2313, attiny13 ilə sınanmışdır) * çörək taxtası və ya ISP başlığı * 3 led + 3 rezistor * taxta telləri olan bir lövhə

Addım 2: Mega-isp Proqramlaşdırıcısını Breadboard-da hazırlayın

Mega-isp proqramçısı bir çörək lövhəsində hazırlanır
Mega-isp proqramçısı bir çörək lövhəsində hazırlanır
Mega-isp proqramçısı bir çörək lövhəsində hazırlanır
Mega-isp proqramçısı bir çörək lövhəsində hazırlanır
Mega-isp proqramçısı bir çörək lövhəsində hazırlanır
Mega-isp proqramçısı bir çörək lövhəsində hazırlanır

Bir çip proqramlaşdırmaq üçün Arduino -nuzu birləşdirməyin iki yolu var.

Avr çipinizi çörək taxtasına bağlaya və 5v və GND -ni müvafiq sancaqlara qoşa bilərsiniz (məlumat cədvəlini yoxlayın!) + Arduino -dan çipə sancaqları yenidən qurmaq və bağlamaq üçün bir çəkmə müqaviməti. Bunlar Arduino üzərindəki xətlər və onların funksiyası 13 - SCK 12 - MISO 11 - MOSI 10 - RST (Sıfırla) Və ya birini (başqa bir arduino lövhəsi) təmin edən bir lövhəyə qoşa biləcəyiniz 2x3pin ISP başlığı edə bilərsiniz. ISP başlığı üçün pinout üçüncü görüntüdədir. Proqramçının vəziyyətini göstərmək üçün 3 led var. pin 9 - mavi led - proqramçının eşitmə ritmi. pin 8 - qırmızı led - bir səhv olduğunu göstərir pin 7 - yaşıl led - proqramlaşdırmanın baş verdiyini göstərir (tənbəl idim, buna görə də quruluşumdakı rənglərə uyğun gəlmədi) Burada Fritzing -də çəkilmiş rəsmlər var. MEGA-isp qalxanı. Yaroslav Osadchyy, qartalda qalxanı dizayn etdi. Kartal sənədlərini onun saytından əldə edə bilərsiniz:

Addım 3: Eskizin yüklənməsi

Sketch yüklənir
Sketch yüklənir

Eskizi mega-isp google kodundan yükləyin. (Yazılarkən avrisp.03.zip). Paketdən çıxarın və arduino ide işlədin və avrisp.pde açın. Arduino lövhənizə yükləyin. Ürək döyüntüsü LEDləri döyülməyə başlamalıdır.

Addım 4: Avrdude ilə istifadə edin

Avrdude ilə istifadə
Avrdude ilə istifadə

Avrdude (və istifadə edən bütün GUI) ilə istifadə etmək üçün 'avrisp' proqramçısını seçməlisiniz. ən təhlükəsiz bit sürəti 19200 -dir.

Yeni atmega168 -ni əmr satırından sınamaq üçün cəhd edin: $ avrdude -p m168 -P /dev /ttyUSB0 -c avrisp -b 19200 /dev /USB0, arduinonun linux qutuma qoşulduğu portdur (sizinki com5 ola bilər). Bunu arduino IDE -də Alətlər -> Serial Port -da yoxlaya bilərsiniz. Almalısınız: [kabturek@hal -9000 ~]# avrdude -p m168 -P /dev /ttyUSB0 -c avrisp -b 19200 avrdude: AVR cihazı işə salındı və təlimatları qəbul etməyə hazırdır Oxu | ######################################################################################### | 100% 0.13s avrdude: Cihaz imzası = 0x1e9406 avrdude: safemode: Sigortalar tamamdır. Çox sağ ol. Yəni hər şey qaydasındadır. Səhvlər varsa - son addımı yoxlayın.

Addım 5: USBtinyISP Firmware -ni Attiny2313 -ə yandırın

USBtinyISP Firmware -ni Attiny2313 -ə yandırmaq
USBtinyISP Firmware -ni Attiny2313 -ə yandırmaq
USBtinyISP Firmware -ni Attiny2313 -ə yandırmaq
USBtinyISP Firmware -ni Attiny2313 -ə yandırmaq
USBtinyISP Firmware -ni Attiny2313 -ə yandırmaq
USBtinyISP Firmware -ni Attiny2313 -ə yandırmaq

USBTinyISP, LadyAda -dan əla proqramçıdır, həqiqətən də ucuzdur - 22 dollar. Yedek bir attiny2313 və bəzi hissələrim var idi, buna görə özüm etmək qərarına gəldim. PCB hazırlamaqda heç bir təcrübəniz yoxdursa, kiti satın almağı məsləhət görürəm, çünki özünüz edə biləcəyinizdən daha keyfiyyətlidir:). Bir PCB qurmaq istəyirsinizsə, heç olmasa satın alın. Adafruit -dən əldə edə bilərsiniz. ATtiny2313 -ə qoşun Son şəkildə, ISIN üçün istifadə olunan sancaqlar qırmızı olan attiny2313 -ü görə bilərsiniz. Şəkil LadyAda avr dərsliyindəndir. Firmware yandırmaq: USBTinyISP firmware paketini açın. Çiplə hər şeyin yaxşı olub olmadığını yoxlamaq üçün spi dir -ə gedin və $ avrdude -p pt2313 -P /dev /ttyUSB0 -c avrisp -b 19200 proqramını işə salın. İndi qoruyucuları təyin edin: $ avrdude -P /dev /ttyUSB0 -c avrisp -b 19200 -pt2313 -U hfuse: w: 0xdf: m -U lfuse: w: 0xef: m İndi 12 mhz xarici osilatoru çipə bağlamalısınız. Və firmware yazın: $ avrdude -B 1 -pt2313 -U flash: w: main.hex -P /dev /ttyUSB0 -c avrisp -b 19200 Voila. Attiny2313 -də USBTinyISP firmware var.

Addım 6: Arduino Bootloader -ı yandırın

Arduino Bootloader yandırılır
Arduino Bootloader yandırılır
Arduino Bootloader yandırılır
Arduino Bootloader yandırılır
Arduino Bootloader yandırılır
Arduino Bootloader yandırılır

Bağlantıları asanlaşdırmaq üçün RBBB istifadə etdiyim üçün bir az aldatdım. Sxem 2 nömrəli şəkildədir. 2 arduino istifadə edirsinizsə, 3 nömrəli şəkildən istifadə edin və ISP pinini ikinci (slave) arduino üzərindəki ICSP 2x3header -ə qoşun. Yalnız usb gücünü birinci lövhəyə qoşun. GUI yolu Bu, yalnız Tools-> Burn Bootloader-> AVR ISP-dən istifadə edə bilməyəcəyiniz bir az çətin səbəbdir, çünki standart sürət mega-isp üçün çox böyükdür. Arduino IDE (arduino/hardware/tools/avrdude.conf -da) ilə gələn avrdude.conf tapın və avrisp proqramçısı üçün sərhədləri 115200 -dən 19200 -ə dəyişdirin (312 -ci xətt ətrafında) avrdude.conf proqramçı id = "avrisp" tapın və dəyişdirin.; desc = "Atmel AVR İSS"; baudrate = 115200; # default 115200 növüdür = stk500;; kimə: proqramçı id = "avrisp"; desc = "Atmel AVR İSS"; baudrate = 19200; # default 115200 növüdür = stk500;; İndi Tools -> Burn Bootloader -> AVR ISP istifadə edə bilərsiniz (Alətlər menyusundan müvafiq lövhəni seçdikdən sonra) Commanline Komanda xəttindən də istifadə edə bilərsiniz: Arduino/hardware/bootloaders/atmega/Makefile redaktə edin və ISPTOOL/PORT dəyişdirin. /SPEED to: # avrdude isp aləti üçün parametrləri daxil edin ISPTOOL = avrisp ISPPORT = /dev /ttyUSB0 ISPSPEED = -b 19200 yox, qoruyucuları və yükləyicini yandırmaq üçün $ make diecimila_isp yaza bilməzsiniz. İndi yeni arduinonu usb -ə bağlayın yanıb yandır!

Addım 7: Problemlərin aradan qaldırılması

Giderme
Giderme

Avrdude səhvləri: avrdude: ser_open (): "/dev/ttyUSB0" cihazı açıla bilməz: Belə bir fayl və ya qovluq yoxdur Yanlış port (-P) göstərmisiniz və ya arduino bağlı deyil. əlaqəni yoxlayın avrdude: Cihaz imzası = 0x000000 avrdude: Yikes! Yanlış cihaz imzası. Bağlantıları iki dəfə yoxlayın və yenidən yoxlayın və ya bu yoxlamanı ləğv etmək üçün -F istifadə edin. Bu bir növ ümumi səhvdir. Çipiniz tanınmır. Lövhədəki əlaqəni yoxlayın (GND/5V sancaqlara bağlıdır?) Çipiniz xarici bir osilator istifadə etmək üçün konfiqurasiya edildikdə və işləmədikdə bu xətanı alacaqsınız (heç biri yoxdur və ya düzgün salınmır - 22pf qapaqlar) itkin?)

Tövsiyə: