İçindekiler:
- Adım 1: Cobbler Eklentisi Oluşturma
- Adım 2: Avrdude'u Kurma ve Kullanma
- Adım 3: Arduino Programlarını AVR'lere Alma
Video: Raspberry Pi ile AVR/Arduino Flashing: 3 Adım (Resimlerle)
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:19
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
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
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
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:
WS2812b Led Strip ile Raspberry Pi Üzerinde Hyperion ile OSMC Nasıl Kurulur: 8 Adım
WS2812b Led Strip ile Raspberry Pi Üzerinde Hyperion ile OSMC Nasıl Kurulur: Bazen çok iyi ingilizcem var, bazen hayır…Önce ilk şeyler. Bu benim ilk dersim ve ingilizce benim ana dilim değil, bu yüzden lütfen bana fazla yüklenme. Bu çerçevenin nasıl oluşturulacağı ile ilgili olmayacak, bu kolay. Kurulumla ilgili
Adım Adım Arduino Uno ile Akustik Kaldırma (8 adım): 8 Adım
Arduino Uno ile Akustik Kaldırma Adım Adım (8 adım): ultrasonik ses dönüştürücüler L298N erkek dc pinli Dc dişi adaptör güç kaynağı Arduino UNOBreadboardBu nasıl çalışır: İlk olarak, Arduino Uno'ya kod yüklersiniz (dijital ile donatılmış bir mikrodenetleyicidir) ve kodu dönüştürmek için analog bağlantı noktaları (C++)
Shadow Light Box - Arduino ile IR Uzaktan Kumanda ile Kontrol: 8 Adım (Resimlerle)
Gölge Işık Kutusu - Arduino ile IR Uzaktan Kumanda ile Kontrol: Bu talimat, bir sonraki Noel için gölge ışık kutusunun nasıl yapılacağına rehberlik edecektir. Kendi odanızı dekore edebilir veya arkadaşınıza hediye olarak yapabilirsiniz. Bu gölge kutusu, Kırmızı, Mavi, Yeşil renklerle karıştırarak çeşitli renkler yapabilir
ESP32 ile PWM - Arduino IDE ile ESP 32'de PWM ile LED Karartma: 6 Adım
ESP32 ile PWM | Arduino IDE ile ESP 32'de PWM ile LED Karartma: Bu talimatta Arduino IDE & PWM temel olarak herhangi bir MCU'dan analog çıkış üretmek için kullanılır ve bu analog çıkış 0V ile 3.3V (esp32 durumunda) arasında herhangi bir şey olabilir & itibaren
Bir AVR (arduino) Başka Bir Arduino İle Nasıl Programlanır: 7 Adım
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ıysanız ve yerel elektronik mağazanızdan bir atmega328 satın aldıysanız. Arduino önyükleyicisi yok * arduino kullanmayan bir proje yapmak istiyorsunuz - sadece bir