İçindekiler:

Bir AVR (arduino) Başka Bir Arduino İle Nasıl Programlanır: 7 Adım
Bir AVR (arduino) Başka Bir Arduino İle Nasıl Programlanır: 7 Adım

Video: Bir AVR (arduino) Başka Bir Arduino İle Nasıl Programlanır: 7 Adım

Video: Bir AVR (arduino) Başka Bir Arduino İle Nasıl Programlanır: 7 Adım
Video: Arduino android telefon ile programlama 2024, Temmuz
Anonim
Bir AVR (arduino) Başka Bir Arduino ile Nasıl Programlanır
Bir AVR (arduino) Başka Bir Arduino ile Nasıl Programlanır
Bir AVR (arduino) Başka Bir Arduino ile Nasıl Programlanır
Bir AVR (arduino) Başka Bir Arduino ile Nasıl Programlanır
Bir AVR (arduino) Başka Bir Arduino ile Nasıl Programlanır
Bir AVR (arduino) Başka Bir Arduino ile Nasıl Programlanır

Bu talimat aşağıdaki durumlarda yararlıdır:

* arduino'nuzu atmega168 ile aldınız ve yerel elektronik mağazanızdan bir atmega328 satın aldınız. Bir arduino önyükleyicisi yok * arduino kullanmayan bir proje yapmak istiyorsunuz - sadece normal bir AVR yongası (USBTinyISP gibi) - bellenimi yakmak istediğiniz temiz bir attiny2313/attiny48 vb. var. Normalde yeni çipinizi programlamak için USBTinyISP gibi bir ISP'ye (In System Programmer) sahip olmanız gerekir. Arduino'ya sahip olmak, Randall Bohn tarafından yapılan harika bir çalışma sayesinde ona bir programcı olmayı öğretebilirsiniz. Bir programcı gibi çalışan bir arduino taslağı olan Mega-ISP'yi yarattı.

Adım 1: Neye İhtiyacınız Var?

Ne istiyorsun ?
Ne istiyorsun ?

* çalışan bir Arduino (veya bir klon - BBB kullanıyorum - BareBonesBoard ve RBBB - ModernDevices tarafından RealBareBonesBoard) * programlamak istediğiniz bir çip (atmega8, atmega168, atmega368, attiny2313, attiny13) * bir devre tahtası veya ISP başlıklı bir kart * 3 led + 3 direnç * breadboard kabloları

Adım 2: Bir Breadboard'da Mega-isp Programlayıcı Yapmak

Breadboard'da Mega-isp Programlayıcı Yapmak
Breadboard'da Mega-isp Programlayıcı Yapmak
Breadboard'da Mega-isp Programlayıcı Yapmak
Breadboard'da Mega-isp Programlayıcı Yapmak
Breadboard'da Mega-isp Programlayıcı Yapmak
Breadboard'da Mega-isp Programlayıcı Yapmak

Bir çip programlamak için Arduino'nuzu bağlamanın iki yolu vardır.

Avr çipinizi bir devre tahtasına takabilir ve 5v ve GND'yi ilgili pinlere bağlayabilirsiniz (veri sayfasını kontrol edin!) + pinleri sıfırlamak ve arduino'dan çipe bağlamak için bir çekme direnci. Bunlar Arduino'daki satırlar ve işlevleri 13 - SCK 12 - MISO 11 - MOSI 10 - RST (Sıfırla) Veya bir tane sağlayan bir karta takabileceğiniz 2x3pin ISP başlığı yapabilirsiniz (başka bir arduino kartı). ISP başlığının pin çıkışı üçüncü resimdedir Programlayıcının durumunu gösteren 3 adet led vardır. pin 9 - mavi led - programcının kalbidir. pin 8 - kırmızı led - bir hata olduğunu gösterir pin 7 - yeşil led - programlamanın yapıldığını gösterir (tembeldim bu yüzden kurulumumdaki renkleri eşleştirmedim) İşte Fritzing'de yapılan çizimler. MEGA-isp kalkanı. Yaroslav Osadchyy kalkanı kartal olarak tasarladı. Kartal dosyalarını kendi sitesinden edinebilirsiniz:

3. Adım: Çizimi Yükleme

Çizimi Yükleme
Çizimi Yükleme

Krokiyi mega-isp google kodundan indirin.(yazarken avrrisp.03.zip). Paketi açın ve arduino ide'yi çalıştırın ve avrisp.pde'yi açın. Arduino kartınıza yükleyin. Kalp atışı ledi atmaya başlamalıdır.

Adım 4: Avrdude ile Kullanma

Avrdude ile Kullanmak
Avrdude ile Kullanmak

avrdude (ve onu kullanan tüm GUI'ler) ile kullanmak için 'avrisp' programlayıcısını seçmelisiniz. en güvenli bit hızı 19200'dür.

Yeni atmega168'inizi komut satırından test etmek için şunu deneyin: $ avrdude -p m168 -P /dev/ttyUSB0 -c avrisp -b 19200 /dev/USB0 arduino'nun linux kutuma bağlı olduğu bağlantı noktasıdır (sizinki com5 olabilir). Bu, arduino IDE'de Araçlar -> Seri Bağlantı Noktası'nda kontrol edilebilir. Almalısınız: [kabturek@hal-9000 ~]# avrdude -p m168 -P /dev/ttyUSB0 -c avrisp -b 19200 avrdude: AVR cihazı başlatıldı ve talimatları kabul etmeye hazır Okuma | ################################################# | %100 0.13s avrdude: Cihaz imzası = 0x1e9406 avrdude: safemode: Sigortalar OK avrdude yapıldı. Teşekkürler. Bu her şey yolunda demektir. Hata alırsanız - son adımı kontrol edin.

Adım 5: USBtinyISP Ürün Yazılımını Attiny2313'e Yazma

Bir Attiny2313'e USBtinyISP Firmware Yazma
Bir Attiny2313'e USBtinyISP Firmware Yazma
Bir Attiny2313'e USBtinyISP Firmware Yazma
Bir Attiny2313'e USBtinyISP Firmware Yazma
Bir Attiny2313'e USBtinyISP Firmware Yazma
Bir Attiny2313'e USBtinyISP Firmware Yazma

USBTinyISP, LadyAda'dan gerçekten ucuz olan harika bir programcıdır - 22$. Yedek bir attiny2313 ve bazı parçalarım vardı, bu yüzden kendim yapmaya karar verdim. PCB yapma konusunda herhangi bir tecrübeniz yoksa kiti satın almanızı tavsiye ederim çünkü kendiniz yapabileceğinizden daha kaliteli:). En azından bir tane oluşturmak istiyorsanız PCB'yi satın alın. Adafruit'ten alabilirsiniz. ATtiny2313'ü bağlayın Son resimde ISP için kullanılan pinleri kırmızı olan attiny2313'ü görebilirsiniz. Resim LadyAda avr eğitiminden alınmıştır. Bellenimi yakma: USBTinyISP bellenimini paketinden çıkarın. spi dizinine gidin ve çipte her şeyin yolunda olup olmadığını kontrol etmek için $ avrdude -p pt2313 -P /dev/ttyUSB0 -c avrisp -b 19200 komutunu çalıştırın. Şimdi sigortaları ayarlayın: $ avrdude -P /dev/ttyUSB0 -c avrisp -b 19200 -pt2313 -U hfuse:w:0xdf:m -U lfuse:w:0xef:m Şimdi 12mhz harici osilatörü çipe bağlamalısınız. Ve bellenimi yazın: $ avrdude -B 1 -pt2313 -U flash:w:main.hex -P /dev/ttyUSB0 -c avrisp -b 19200 Voila. attiny2313'ünüz USBTinyISP bellenimine sahiptir.

Adım 6: Arduino Bootloader'ı Yazmak

Arduino Bootloader'ı yakmak
Arduino Bootloader'ı yakmak
Arduino Bootloader'ı yakmak
Arduino Bootloader'ı yakmak
Arduino Bootloader'ı yakmak
Arduino Bootloader'ı yakmak

BağlanmakBiraz hile yaptım çünkü bağlantıları basitleştirmek için bir RBBB kullandım. Şema 2. fotoğrafta. 2 arduino kullanıyorsanız 3 numaralı resmi kullanın ve ISP pinini ikinci(slave) arduino üzerindeki ICSP 2x3header'a bağlayın. Sadece usb gücünü ilk karta bağlayın. GUI yolu Bu biraz zor çünkü sadece Tools-> Burn Bootloader -> w/ AVR ISP'yi kullanamazsınız çünkü varsayılan hız mega-isp için çok büyük. arduino IDE ile birlikte gelen avrdude.conf dosyasını bulun (arduino/hardware/tools/avrdude.conf içinde) ve avrisp programcısı için sınır oranını 115200'den 19200'e değiştirin (312 satırı civarında) avrdude.conf programmer id = "avrisp" içinde bulun ve değiştirin; desc = "Atmel AVR ISP"; baud hızı = 115200; # varsayılan 115200 tür = stk500;; için: programcı kimliği = "avrisp"; desc = "Atmel AVR ISP"; baud hızı = 19200; # varsayılan 115200 tür = stk500;; Artık Tools -> Burn Bootloader -> w/ AVR ISP'yi kullanabilirsiniz (Araçlar menüsünden uygun kartı seçtikten sonra)Commanline Komut satırını da kullanabilirsiniz: arduino/hardware/bootloaders/atmega/Makefile dosyasını düzenleyin ve ISPTOOL/PORT'u değiştirin /SPEED to: # avrdude isp tool için parametreleri girin ISPTOOL = avrisp ISPPORT = /dev/ttyUSB0 ISPSPEED = -b 19200 hayır sigortaları ve bootloader'ı yakmak için $ make diecimila_isp yazabilirsiniz. Test Şimdi yeni arduinoyu usb'ye bağlayın ve göz kırp!

7. Adım: Sorun Giderme

Sorun giderme
Sorun giderme

Avrdude hataları: avrdude: ser_open(): "/dev/ttyUSB0" aygıtı açılamıyor: Böyle bir dosya veya dizin yok Yanlış bağlantı noktası (-P) belirtmişsiniz veya arduino'nuz bağlı değil. avrdude bağlantısını kontrol edin: Cihaz imzası = 0x000000 avrdude: Yikes! Geçersiz cihaz imzası. Bağlantıları iki kez kontrol edin ve tekrar deneyin veya bu kontrolü geçersiz kılmak için -F'yi kullanın. Bu bir tür genel hatadır. Çipiniz tanınmadı. Kart üzerindeki bağlantıyı kontrol edin (GND/5V pinlere bağlı mı?) Chip'iniz harici bir osilatör kullanacak şekilde yapılandırıldığında ve çalışmıyorsa bu hatayı alırsınız (yoksa veya osilatör düzgün çalışmıyorsa - 22pf caps) eksik ?)

Önerilen: