İçindekiler:

ATTiny85, ATTiny84 ve ATMega328P'yi Programlama: ISP Olarak Arduino: 9 Adım (Resimlerle)
ATTiny85, ATTiny84 ve ATMega328P'yi Programlama: ISP Olarak Arduino: 9 Adım (Resimlerle)

Video: ATTiny85, ATTiny84 ve ATMega328P'yi Programlama: ISP Olarak Arduino: 9 Adım (Resimlerle)

Video: ATTiny85, ATTiny84 ve ATMega328P'yi Programlama: ISP Olarak Arduino: 9 Adım (Resimlerle)
Video: Attiny85 ve Digispark Kartlarına Micronucleus Bootloader Kurulumu 2024, Kasım
Anonim
ATTiny85, ATTiny84 ve ATMega328P'nin Programlanması: ISP Olarak Arduino
ATTiny85, ATTiny84 ve ATMega328P'nin Programlanması: ISP Olarak Arduino
ATTiny85, ATTiny84 ve ATMega328P'nin Programlanması: ISP Olarak Arduino
ATTiny85, ATTiny84 ve ATMega328P'nin Programlanması: ISP Olarak Arduino

Önsöz

Son zamanlarda birkaç ESP8266 tabanlı IoT projesi geliştiriyordum ve çekirdek işlemcinin yönetmem gereken tüm görevleri yerine getirmekte zorlandığını fark ettim, bu yüzden daha az önemli olan bazı aktiviteleri farklı bir mikrodenetleyiciye dağıtmaya karar verdim. bu şekilde, bir IoT cihazı olma işine devam etmek için ESP8266'yı serbest bırakır.

Projemi olabildiğince geniş bir kitleye yayınlamak istediğim için, Arduino IDE'yi bu kadar geniş bir şekilde desteklenen bir topluluğa sahip olduğu için tercih edilen geliştirme platformu olarak kullanmayı seçtim.

Tasarım kısıtlamaları

Eldeki uygulama için uygun bir mikrodenetleyici seçimine izin veren hedef cihazların makul bir dağılımını sağlamak için aşağıdaki Atmel parçalarına yerleştim; ATMega328P, ATTiny84 ve ATTiny85. Gerekli programlayıcının karmaşıklığını sınırlamak için saat seçimini tüm cihazlar için dahili ve yalnızca ATMega328P ve ATTiny84 için 16MHz harici olarak sınırladım.

Aşağıda, Arduino ile programlama hakkında bir notlar koleksiyonu ve bu cihazlar için basit bir Arduino Uno tabanlı programlayıcıyı nasıl bir araya getirdiğimin bir açıklaması (yukarıdaki resimler).

Hangi parçalara ihtiyacım var?

Programlayıcıyı oluşturmak için aşağıdaki parçalara ihtiyacınız olacak

  1. 1 adet Arduino Uno
  2. 2 kapalı 28 pinli Sıfır Yerleştirme Kuvveti (ZIF) DIP soketleri (ATMega328P, ATTiny85, ATTiny84'ü tutmak için)
  3. 1 adet Arduino prototip kalkanı (benimkini burada aldım;
  4. 2 kapalı 5MM LED
  5. 2 kapalı 1K direnç
  6. 1 kapalı 10K direnç
  7. 4 kapalı 22pF Seramik kapasitör
  8. 2 kapalı 16MHz kristal
  9. 3 kapalı 0.1uF seramik kapasitör
  10. 1 adet 47uF Elektrolitik Kondansatör
  11. 1 kapalı 10uF Elektrolitik Kapasitör
  12. Çeşitli uzunluklarda tel sarma teli.

Hangi yazılıma ihtiyacım var?

Arduino IDE 1.6.9

Hangi becerilere ihtiyacım var?

  1. Arduino IDE'si hakkında bilgi
  2. Biraz elektronik bilgisi ve lehimleme
  3. Büyük bir el becerisi
  4. Bir sürü sabır ve iyi görüş

İşlenmiş konular

  1. Atmel Mikrodenetleyicileri Programlamaya Genel Giriş
  2. ISP veya Bootloader: Hepsi biraz kafa karıştırıcı
  3. Devreye genel bakış
  4. Programlayıcınızı ayarlama
  5. Arduino ISP Programlayıcınızı Kullanma
  6. Hedef sisteminizde kod geliştirme
  7. yakalandım
  8. Çözüm
  9. Kullanılan referanslar

sorumluluk reddi

Her zaman olduğu gibi, bu talimatları kendi sorumluluğunuzda kullanırsınız ve desteklenmezler

Adım 1: Atmel Mikrodenetleyicilerin Programlanmasına Genel Giriş

Atmel Mikrodenetleyicilerin Programlanması Hakkında Genel Tanıtım
Atmel Mikrodenetleyicilerin Programlanması Hakkında Genel Tanıtım
Atmel Mikrodenetleyicilerin Programlanması Hakkında Genel Tanıtım
Atmel Mikrodenetleyicilerin Programlanması Hakkında Genel Tanıtım
Atmel Mikrodenetleyicilerin Programlanması Hakkında Genel Tanıtım
Atmel Mikrodenetleyicilerin Programlanması Hakkında Genel Tanıtım

Atmel mikrodenetleyicilerini programlamak için iki yöntem mevcuttur;

  1. Sistem Programlamada (ISP),
  2. Kendi Kendine Programlama (bir önyükleyici aracılığıyla).

Önceki yöntem (1), cihazı ilk kez sıfırladıktan sonra mikrodenetleyiciyi SPI arabirimi aracılığıyla doğrudan programlar. Aksi belirtilmedikçe, derlenmiş bir yürütülebilir kaynak program, cihaza, başlangıçta yürütüldüğü yerden kod belleğine aşamalı olarak yazılır. Atmel cihazlarını programlayabilen birçok ISP cihazı vardır, bunlardan birkaçı (resim 1); AVRISPmkII, Atmel-ICE, Olimex AVR-ISP-MK2, Olimex AVR-ISP500. Resim 2, ISP cihazının Arduino Uno R3 kartındaki ATMega328P'ye (garip bir şekilde işaretlenmiş ICSP) nasıl bağlandığını gösterir (resim 3, ISP pin çıkışını verir). ISP olarak Arduino Uno kullanarak SPI arayüzü üzerinden bir Atmel mikrodenetleyiciyi programlamak da mümkündür (resim 4), burada Uno bir ATMega328P'yi programlamak için kullanılıyor.

İkinci yöntem (2), yürütülebilir kod belleğinde kalıcı olarak bulunan 'önyükleyici' olarak bilinen küçük bir kod saplaması kullanır (genellikle resim 5'in yanlışlıkla üzerine yazılmasını önlemek için kilitlenir). Bu kod, güç açıldığında veya cihaz sıfırlandığında ilk iş olarak yürütülür ve mikro denetleyicinin, arabirimlerinden biri aracılığıyla kendisine harici bir kaynaktan alınan yeni kodla kendisini yeniden programlamasını sağlar. Bootloader yöntemi, Arduino IDE tarafından PC'de bir USB iletişim portu olarak eşlenen Arduino'ları (Veya MAC, Linux kutusu vb., resim 6) yeniden programlamak için kullanılır ve Arduino Uno'nun Atmel cihazı ile iletişim kurması durumunda. ATMega328P'nin IC Pins 2 ve 3 üzerindeki seri arabirim. Ayrıca Arduino Uno (ATMega328P mikro denetleyicisi çıkarılmış halde) bir ATMega328P'yi bootloader yöntemi ile etkin bir şekilde USB'den seri adaptör cihazına (resim 7) olarak programlamak için kullanılabilir.

USB'den seri adaptöre nedir?

USB'den seriye adaptör, PC'nizin USB bağlantı noktasına takılan ve bir seri com bağlantı noktası gibi görünen bir donanım parçasıdır (bilgisayarların EIA-232, V24 veya RS232 olarak bilinen bir seri iletişim standardı kullandığı eski zamanlardan kalmadır). mikrodenetleyicinin aynı elektrik seviyelerinde seri veri gönderir ve alır. Arduino IDE'den Araçlar -> Bağlantı Noktası -> COMx'i seçtiğinizde, PC'nizi Arduino'nuza bağlarsınız/arayüz kurarsınız.

Bunun gibi bir cihaza bazen FTDI (aslında bir marka adı olan resim 8) veya CH340G vb. denir. Arduino uno'da seri USB'den USB'ye, Arduino Şemasında olduğu gibi bir ATMega16U2-MU(R) IC ZU4 aracılığıyla elde edilir. aşağıda.

Netlik için resim 9, Arduino Uno R3'teki iki Atmel cihazını ve ilgili ISP konektörlerini tanımlar.

Not 1: FTDI cihaz yolunu seçmeyi seçerseniz, piyasada bir Windows güncellemesinin uygulanmasından sonra başarısız olan çok sayıda ucuz sahte cihaz olduğundan saygın bir satıcıdan satın aldığınızdan emin olun.

Önerilen: