İçindekiler:

Raspberry Pi ile AVR/Arduino Flashing: 3 Adım (Resimlerle)
Raspberry Pi ile AVR/Arduino Flashing: 3 Adım (Resimlerle)

Video: Raspberry Pi ile AVR/Arduino Flashing: 3 Adım (Resimlerle)

Video: Raspberry Pi ile AVR/Arduino Flashing: 3 Adım (Resimlerle)
Video: Arduino project 😎^ Arduino #arduino #2022 #2021 #2023 #dc #arduinoproject #diy #foryou 2024, Kasım
Anonim
Raspberry Pi ile Yanıp Sönen AVR/Arduino
Raspberry Pi ile Yanıp Sönen AVR/Arduino

Sistem içi programlayıcı (ISP), birçok mikro denetleyiciyi programlamak için kullanabileceğiniz bir cihazdır, örneğin Arduino Uno'nun beyni olan ATMega328p. USBtinyISP gibi bir şey satın alabilir veya bir Arduino bile kullanabilirsiniz. Bu talimat size bir Raspberry Pi'yi ISS olarak nasıl kullanacağınızı gösterecektir.

Arduino IDE'nin kaputun altında çipleri flaş etmek için kullandığı avrdude programı birçok programcı ile kullanılabilir. Seçeneklerinden biri, Pi'nin genişleme portundaki SPI pinlerini kullanmaktır. Uygun bağlantıların nasıl yapılacağını, bir çipi her flaşlamak istediğinizde kablolamayı yeniden yapmak zorunda kalmamanız için basit bir devreyi perfboard üzerinde bir araya getirmeyi ve avrdude'un nasıl kurulacağını ve kullanılacağını açıklayacağım. Ayrıca, bu yöntemi kullanarak, Arduino IDE kullanılarak ATmega veya ATtiny gibi bir AVR çipine programların nasıl derlendiğini göstereceğim.

Gerekli şeyler:

  • En son Raspbian yüklü Raspberry Pi
  • 40 pinli erkek başlık soketi (veya daha eski bir Pi'niz varsa 26 pinli)
  • Pi'nize bağlanmak için IDE kablosu
  • 16 MHz kristal rezonatör
  • 22 pF kapasitör (2)
  • Programcı durumunu göstermek için LED (1)
  • Hangi çip şeklini flaş etmek istediğinize bağlı olarak 8, 14 ve/veya 28 pinli IC soketleri
  • Bazı perfboard, teller, lehim

Adım 1: Cobbler Eklentisi Oluşturma

İnşaat Ayakkabısı Ataşmanı
İnşaat Ayakkabısı Ataşmanı
İnşaat Ayakkabısı Ataşmanı
İnşaat Ayakkabısı Ataşmanı
İnşaat Ayakkabısı Ataşmanı
İnşaat Ayakkabısı Ataşmanı

Dört kablolu seri olarak da adlandırılan Seri Çevre Birimi Arabirimi (SPI), tek bir ana cihaz ile bir veya daha fazla bağımlı cihaz arasında iletişim kurmanın bir yoludur. Bunu, Pi'nin ana ve çipin bağımlı olduğu çipleri flaş etmek için kullanacağız. Pi ve çipiniz arasında aşağıdaki bağlantıları yapacaksınız (hangi pinlerin hangisi olduğunu öğrenmek için çeşitli AVR'ler ve Pi genişletme portları için yukarıdaki pin çıkışlarına bakın):

  • MOSI (master-out-slave-in) pinlerini birbirine bağlayın
  • SCLK (paylaşılan saat) pinlerini birbirine bağlayın
  • Pi'yi çipten gelen beklenmedik yüksek voltajlardan korumak için MISO (master-in-slave-out) pinlerini 220 Ohm'luk bir dirençle birbirine bağlayın.
  • Pi üzerindeki GPIO 25'i doğrudan çip üzerindeki RESET pinine bağlayın. Pi, programlama sırasında bu pimi alçaltır, bu nedenle programlama olmadığında yüksek tutmak için 10K'lık bir direnç ve programlama sırasında bize güzel bir görsel geri bildirim vermek için pozitif voltaja çalışan 1K koruma direncine sahip bir LED kullanırız.

Toprak ve güç (3.3V) pinlerini Pi ile programlamak istediğimiz chipler arasına bağlarız. Bilmiyorsanız, Raspberry Pi'nin pinleri 5V toleranslı değildir - üzerlerinde 3,3V'den fazla görünürse zarar görürler. Programlanan çipler herhangi bir nedenle 5V güce ihtiyaç duyarsa, Pi'nin pinlerini korumak için bir seviye değiştirici çip kullanabiliriz, ancak 3.3V kullanırken herhangi bir sorunla karşılaşmadım - bu yüzden güvenli bir şekilde oynamanızı ve bileşenlerden tasarruf etmenizi öneririm.

Son olarak, bir çift 22pF kapasitör aracılığıyla toprağa bağladığımız çip üzerindeki XTAL pinlerine 16MHz kristal osilatör bağladık. AVR çipleri farklı frekanslarda çalışacak şekilde ayarlanabilir ve ayrıca bu frekansı belirlemek için dahili veya harici bir kaynak kullanacak şekilde ayarlanabilir. Çipiniz, frekans kaynağı olarak harici bir kristal kullanacak şekilde ayarlanmışsa, onsuz yeniden programlayamazsınız. Aksi halde orada olup olmamasının bir önemi yok.

Son resimdeki devre şemasını perfboard ataşmanınızın montajı için kılavuz olarak kullanabilirsiniz. İstediğiniz kadar çok veya az farklı IC soket şekline sahip olabilirsiniz, sadece uygun pinleri Pi ve kristal ile paralel olarak bağlayın. not Prototipimin görüntüsünü kılavuz olarak kullanırsanız, Pi üzerindeki pinlere ilgisiz nedenlerle erişebilmem için bazı ekstra başlık pinleri ve soketler eklediğimi unutmayın.

Adım 2: Avrdude'u Kurma ve Kullanma

Avrdude Kurulumu ve Kullanımı
Avrdude Kurulumu ve Kullanımı
Avrdude Kurulumu ve Kullanımı
Avrdude Kurulumu ve Kullanımı
Avrdude Kurulumu ve Kullanımı
Avrdude Kurulumu ve Kullanımı
Avrdude Kurulumu ve Kullanımı
Avrdude Kurulumu ve Kullanımı

Pi'nize avrdude yüklemek için yazmanız yeterlidir

sudo apt-get install avrdude

Daha sonra henüz açılmadıysa SPI arayüzünü etkinleştirmeniz gerekecektir. Bunu yapmanın bir komut satırı yolu var, ancak Raspberry Pi yapılandırma aracını kullanmak çok daha kolay. Tip

sudo raspi yapılandırması

ve SPI'yi açmak için Arayüz Seçenekleri'ne gidin.

Çipinizi flaşlamak için, Pi'nizden gelen şerit kabloyu perfboard devresindeki konektöre takın ve çipi uygun IC soketine takın (doğru yöne baktığından emin olun).

Bir programı yanıp sönerken, çipteki sigortaları da doğru ayarladığınızdan emin olmalısınız. Bunlar gerçekten sadece çipte hangi saat hızında çalışacağını, çipi yazarken EEPROM'un silinip silinmeyeceğini vb. anlatmak için ayarladığınız bitlerdir. Her bir bitin nasıl ayarlanacağını anlamak için tam AVR spesifikasyonunu okuyabilirsiniz, ancak engbedded.com/fusecalc adresinde sağlanan sigorta hesaplayıcısını kullanmak çok daha kolay. Kullanmakta olduğunuz AVR parça adını seçin ve "Özellik Seçimi" alanında istediğiniz seçenekleri seçin. Genellikle saat ayarlarının doğru olduğundan emin olurum ve diğer şeyleri varsayılanda bırakırım. Neredeyse her zaman "Seri programlama etkin" KONTROLLÜ ve "Sıfırlama Devre Dışı" seçeneğini İŞARETSİZ bırakmak isteyeceksiniz - aksi takdirde çipi yeniden programlayamazsınız. Doğru ayarlara sahip olduğunuzda, "Geçerli Ayarlar" alanını aşağı kaydırabilir ve resimde gösterildiği gibi AVRDUDE argümanlarını kopyalayabilirsiniz.

Sigortaları ayarlamak için şu komutu girin:

sudo avrdude -c linuxspi -P /dev/spidev0.0 -p

parça adı, kullandığınız çipe karşılık gelir. Sudo ardude -c linuxspi -p ?type yazarak parça adlarının listesini bulabilirsiniz. Programınızı flaş etmek için mevcut dizinde olduğundan emin olun ve girin.

sudo avrdude -c linuxspi -P /dev/spidev0.0 -p -U flash:w::i

Her iki komuttan sonra, çip değiştirilirken LED yanacaktır.

Adım 3: Arduino Programlarını AVR'lere Alma

Arduino Programlarını AVR'lere Alma
Arduino Programlarını AVR'lere Alma
Arduino Programlarını AVR'lere Alma
Arduino Programlarını AVR'lere Alma
Arduino Programlarını AVR'lere Alma
Arduino Programlarını AVR'lere Alma

Bu talimatın ana odak noktası, önceden derlenmiş programları nasıl yazılacağı veya derleneceği değil, yongalara yanıp sönmektir. Ancak, Arduino IDE'yi kullanarak ikili dosyaları nasıl derleyebileceğinizi ve bu yöntemi kullanarak bunları çıplak AVR yongalarına nasıl alabileceğinizi açıklamak istedim, çünkü Arduino öğrenmesi nispeten kolay ve çok fazla öğretici ve örnek var.

İlk olarak, IDE'nin bunları nasıl derleyeceğini bilmesi için yanıp söneceğiniz AVR yongaları hakkında bilgi eklemeniz gerekecek. James Sleeman, github'da bulunan bazı kurulum dosyalarını çok faydalı bir şekilde bir araya getirdi. Bunları kullanmak için Arduino IDE'de "Tercihler" menüsünü açın ve "Ek Pano Yöneticisi URL'leri" alanının yanındaki kutuyu tıklayın. Görüntülenen iletişim kutusuna aşağıdaki URL'leri kopyalayıp yapıştırın:

Ardından, "Araçlar" menüsüne gidin ve "Pano" alt menüsünde "Pano Yöneticisi…" seçeneğini bulun. Boards Manager iletişim kutusundaki listenin en altına gidin ve DIY ATmega ve DIY ATtiny panolarını kurun.

Programlarınızı derlemek için öncelikle "İşlemci" menüsünde doğru çipi ve doğru İşlemci Hızını seçtiğinizden emin olun. "Use Bootloader: No" seçeneğini seçin, çünkü doğrudan Pi ile yükleyeceğiz ve böylece normalde Arduino önyükleyici tarafından kaplanacak olan ekstra alanı kullanabiliriz. Şimdi, "Doğrula" düğmesini (onay işareti) tıklayın. Bu, programınızı yüklemeye çalışmadan derleyecektir (çünkü bu adımı kendiniz yapıyorsunuz).

Her şeyin yolunda gittiğini varsayarsak, şimdi derlenmiş programı Pi'nize getirmeniz gerekiyor. IDE, programları kendisi yüklemek için tasarlandığından, bunları geçici bir konumda gizler. Windows'ta, kullanıcı dizininizdeki AppData/Local/Temp içinde, 'arduino_build' ile başlayan bir klasördedir..hex dosyasını arayın - bu sizin programınız! FTP veya bir USB çubuğu ile Pi'nize gönderin ve işinize başlayın.

Bunu yapmak, programlarınızı derlemek ve ardından Pi'ye göndermek için bir Windows PC veya Mac'iniz olmasını gerektirir. Bunu Pi'nin kendisinde yapabilmek gerçekten harika olurdu, ancak ne yazık ki Raspbian deposunda bulunan Arduino IDE'nin resmi sürümü oldukça eski ve Yönetim Kurulu Yöneticisine sahip değil. Bu olmadan, çıplak AVR'leri derlemek için uygun ayarları eklemek biraz daha zordur. Pi'nizde Arduino'nun daha yeni bir sürümünü derlemek için öğreticiler var - yapmak istediğiniz buysa, onları bulun! Ayrıca, IDE'nin kendi içinden bir çipi flaş etmek için linuxspi programlayıcısını kullanmasını sağlamanın mümkün olması gerektiğini düşünüyorum (yani "indir" düğmesini kullanarak), ancak bu benim sabrım ve beceri seviyemin ötesinde - eğer biliyorsanız bir şekilde, yorumlarda yayınlayın! Son olarak, programları doğrudan AVR-C'ye yazabilir ve avr-gcc ile Pi'de derleyerek size Raspberry Pi'de eksiksiz bir AVR geliştirme platformu sunabilirsiniz. Ben bunun birazını yaptım ve o yoldan gitmek istiyorsanız sizi selamlıyorum. Yanıp sönme!

Önerilen: