İçindekiler:

AVR Mikrodenetleyici Programlama için Aşırı Yakıcı KULLANMA: 8 Adım
AVR Mikrodenetleyici Programlama için Aşırı Yakıcı KULLANMA: 8 Adım

Video: AVR Mikrodenetleyici Programlama için Aşırı Yakıcı KULLANMA: 8 Adım

Video: AVR Mikrodenetleyici Programlama için Aşırı Yakıcı KULLANMA: 8 Adım
Video: MİNİ ETEKLİ DERS OLAY OLDU! SOSYAL MEDYAYI KARIŞTIRAN ÖĞRETMEN! 2024, Temmuz
Anonim
AVR Mikrodenetleyici Programlama için Aşırı Yakıcı KULLANMA
AVR Mikrodenetleyici Programlama için Aşırı Yakıcı KULLANMA

Dışarıdaki tüm AVR kullanıcı kardeşliği ve akışa yeni girenler, Bazılarınız PIC mikrodenetleyicilerle, bazılarınız da ATMEL AVR'lerle başladı, bu sizin için yazıldı!

Yani bir USBASP satın aldınız çünkü Atmega cihazınızda ROM'u veya belki ATTINY serisini yüklemek ucuz ve etkili. Bunlar, Açık kaynaklı USB-ASP'nin Çin klonları olarak 5$'ın altında bir fiyata elde edilebilir! AVRdude onları programlamak için bir yazılımdır.

Atmel Studio'yu kullanarak bir Hex dosyasının nasıl oluşturulacağını şüphesiz biliyorsunuz (hafif tek çekirdekli CPU dizüstü bilgisayarımda daha hızlı ve daha hızlı olduğu için hala en son v7 yerine AVR Studio v4.19 kullanıyorum)/ Bunu okuyorsanız Netbook ve WINAVR yükleyin. DotNet'te yazılan her şey YAVAŞ çalışır! ve sonraki sürümler, dizüstü bilgisayarınızın bir kaplumbağa gibi çalışmasını sağlamak için tasarlanmıştır! AVR mikro denetleyicileri için ATMEL'den Studio'nun en iyi sürümü olan Studio v4.19'u kullanabilir, sonraki yongalar için gerçekten ihtiyacınız olduğunda sürüm 7'ye geçebilir ve beklemek yerine çalışarak dizüstü bilgisayardaki zamanınızı daha verimli hale getirebilirsiniz! Tavsiye ettiğim şey bu.

Bir Atmega'yı Hex dosyasıyla programlamak için tipik bir AVR dostum komut satırı şu şekilde çalışır:

FLASH'A YAZ:AVRdude -s -c avrisp -p t44 -P usb -U "flash:w:D:\ARDUINO\pwmeg1.hex:a"

burada pwmeg1.hex, mikrodenetleyici Lingo'daki "hedef MCU"ya "yakılacak" veya "flaşlanacak" Intel hex dosyasıdır

Bu hatırlanması gereken bir ağız dolusu! Bir toplu iş dosyası yazabilir ve onu write_flash.bat olarak adlandırarak Windows'ta komut satırında çalıştırabilirsiniz. Sigortaları okumak için benzer şekilde, hatırlanması gereken bir satır daha! Sıkıcı olur.

okumak için flash + eeprom:AVRdude -s -c avrisp -p t44 -P usb -U "flash:r:D:\ARDUINO\pwmeg1.hex:i" -U "eeprom:r::i"

Çözüm, AVRdude için Bitburner, Khazama programcısı gibi, neredeyse değer bakımından benzer olan kullanıcı dostu GUI ön uç araçlarından birini kullanmaktır. Aşırı Yakıcı. Ücretsiz aracı kullandım: eXtreme Burner çok yönlü, güvenilir ve bu eğitim bununla ilgili. Arka planda AVRdude'a verilen komutları kullanarak hex dosyanızı / programınızı MPU'ya flashlamakla kalmaz, aynı zamanda yeni başlayanları AVR programlamaya karıştıran karmaşık bir konu olan SİGORTALARI ayarlamanıza da yardımcı olabilir. SİGORTALAR konusunda gözden geçirebileceğiniz veya güncelleyebileceğiniz mükemmel bir öğreticinin bağlantısı burada. Bir uyarı: ATMEL, 'varsayılan' durumunu (ayarlanmamış veya programlanmamış durumu) belirtmek için bir FUSE bitinin '1' durumunu ve programlanmış veya ayarlanmış veya etkinleştirilmiş durumunu belirtmek için '0'ı kullanır! Bu, bir PIC mikro denetleyicisindeki FUSE bitleriyle yaptığınızın tam tersidir. Dahili RC saatini harici kristale dönüştürmek gibi saat sigorta bitlerini değiştirirken dikkatli olun çünkü bu, harici bir kristal kurulumu olmadan çipe bağlanmada sorun yaratacaktır. Benzer şekilde, SPIEN ve RESET DISABLE gibi kritik sigorta bitlerinin durumunu değiştirirken dikkatli olun (bunlar, ISP / SPI modunda USB-ASP'niz ile MCU ile iletişim kurmaya devam etmek istiyorsanız, her zaman SPIEN = 0 ve RESET DISABLE = 1 olarak ayarlanmalıdır) !Bunu berbat ederseniz, AVR'nizi 'kaldırmak' için bir Yüksek Gerilim programlayıcısına ihtiyacınız olacaktır.

"Sigortalar nedir" ve "ne işe yararlar" diye merak ediyorsanız? Bu mükemmel yazıyı okuyun:

İlgili başka bir konu, 1Mhz'den 16 veya 20Mhz'ye kadar hız yapabilen AVR MPU'nuzun Saat hızını nasıl ayarlayacağınızdır. Ayrıca, uygun şekilde tasarlanırsa AVR'nizin AA pillerinin 3 ay boyunca bitmesine neden olabilecek 31.25 kHz'lik özel bir düşük frekanslı kristal seçeneği de vardır!

Bunların her ikisi de, Saat Sigortası bitleri (hem frekans hem de saat dahili RC/harici kristal ve diğer Sigorta bitleri) eXtreme Burner'daki SİGORTALAR sekmesinden ayarlanabilir. İlk önce ROM'u okuduğunuzu ve ardından hex dosyasını eXtreme Burner kullanarak nasıl flaş edeceğinizi göstereceğiz. Tabii ki, çevrimiçi AVR sigorta web sitelerini de kullanabilirsiniz, ancak açıkladığım seçenek, çevrimdışı olduğunuzda da her yerde kullanılabilir.

Adım 1: Yapılacak Ayarlar:

Yapılacak Ayarlar
Yapılacak Ayarlar
Yapılacak Ayarlar
Yapılacak Ayarlar
Yapılacak Ayarlar
Yapılacak Ayarlar
Yapılacak Ayarlar
Yapılacak Ayarlar

Resimler, işinize başlamadan önce yapılması gereken AYARLARI gösterir. (sadece bir seferlik). 'Donanım ayarları' alt menü öğesi altında, ATMEL fabrikasındaki MCU'ların çoğu, dahili RC osilatöründe 1 Mhz CPU saatinin Varsayılan ayarlarına ayarlandığından 375Hz seçiyoruz. ISS hızı, F_cpu'nun Çeyrekidir. Bu bize 375 Khz en yakın hızı veriyor, daha düşük bir hıza da gidebilirsiniz, pek bir fark yaratmaz. Bunu varsayılan ayarında bırakarak bağlanmayı deneyebilir ve bir 'tümünü oku' yazabilirsiniz, başarısız olursa buraya gelebilir ve hızı değiştirerek hızı düşürebilirsiniz.

Çünkü bağlanamıyorsanız (programcı penceresinde "chip ile iletişim kurulamıyor, SCK yapamıyor" mesajı verilir) PC'nizden gelen saat sinyalinin okumaya çalıştığınız çipinizle senkronize edilemediği veya program)., CPU'nun Saat hızını değiştiremez veya hızını ve türünü değiştiremezsiniz! Yani bağlanmak her şeyin temelidir! Spielberg filmlerinde gördüğünüz gibi "İLK İLETİŞİM" gibi. Bunu başarırsanız, sigortaları uygun şekilde programlayarak MCU'nuzun saat hızını her zaman artırabilir ve daha sonra bağlanmak için daha yüksek bir hız kullanabilirsiniz.

Bu nedenle, burada sağlanan donanım ayarları anlık görüntülerini gözden geçirin, ardından cihaz türünü de ayarlayın (programlamaya çalıştığınız çip, model numarası).

2. Adım: Cihaz Türünüzü Ayarlama

Cihaz Türünüzü Ayarlama
Cihaz Türünüzü Ayarlama
Cihaz Türünüzü Ayarlama
Cihaz Türünüzü Ayarlama
Cihaz Türünüzü Ayarlama
Cihaz Türünüzü Ayarlama

ekran görüntüsüne bakın, Pic 1, "ATTINY44A" ayarladık. Bu, UART sans 14 pinli bir Mikrodenetleyicidir. Bunu son zamanlarda SSU sürümünü kullanıyorum. Extreme burner stok sürümünü yüklediyseniz, cihaz seçimi açılır listesinde Attiny44A'yı görmezsiniz, bu açılır listede listelenmeyen herhangi bir cihazı tanıtmak için Attiny44A'yı da programlamak için her amaç için kullanabileceğimiz bir Attiny44 göreceksiniz., diğer öğretilebilir "EXtreme Burner Hacking" kitabımı okuyun.

Atmega88PA-AU'yu eXtreme Burner ile de kullanıyorum ancak bu Instructable'da her yerde "Attiny44A" dan bahsediyoruz. Şimdi, 7 mm'lik küçük SMD çipinin devre tahtası versiyonunu nasıl yapar ve programlarınızla test edersiniz? (yonga boyutunu gösteren resimlere bakın), Bunun için, Attiny44A-SSU ve ATmega88PA-AU kullanarak Breadboard'a uygun Eklenti Modüllerinin nasıl yapıldığını gösterdiğim diğer talimatıma bakın

Bu tekniği öğrendikten sonra, SMD veya DIL paketi olsun, kurcalamayı merak ettiğiniz herhangi bir çipi kontrol edebileceksiniz. Örneğin, 32 pinli 0,8 mm pin aralıklı Dörtlü pakette (Atmega88A) gelen bir SMD çipini bile benzer şekilde kullandım!

. Veya bu Eğitilebilir Dosya için Attiny44A'nın 28pin DIL sürümünü veya AVR programlaması için eXtreme Burner'ı denemek için şu anda hangi AVR'yi kullanıyorsanız kullanabilirsiniz.

3. Adım: TÜMÜNÜ OKUYUN veya FLAŞ OKUYUN

TÜMÜNÜ OKUYUN veya FLASH OKUYUN
TÜMÜNÜ OKUYUN veya FLASH OKUYUN
TÜMÜNÜ OKUYUN veya FLASH OKUYUN
TÜMÜNÜ OKUYUN veya FLASH OKUYUN

USBasp'inizi dizüstü bilgisayarınızın USB bağlantı noktasına bağlayın, programlayıcınızla birlikte gelen doğru sürücüleri zaten yüklediğinizi ve doğru şekilde algıladığını varsayıyorum. USB bağlantı noktasına takılır takılmaz, Windows başlat menüsünde 'Aygıtlar ve Yazıcılar' altında görünmelidir! Hedef çipinizi USBasp'ınız ile kartına bağlayın (6 pinli veya 10 pinli kablo kullanan ilgili SDI// ISP pinleri ikisi arasında yani MOSI, RESET, MISO, SCK, Vcc, Ground pinleri arasında bağlanmalıdır).

Xtreme Burner MENÜSÜ'nden TÜMÜNÜ OKUYUN. Aldığımız resimlere ve mesajlara bakın. Başlangıçta ekranınız brülörün İlk Sekmesinde ROM için 'FF' gösterdi, hepsini okuduktan sonra çip üzerindeki gerçek ROM içeriğini gösterecektir. Fabrikadan yeni çıkmış bir çip veya silinmiş bir çip kullandıysanız, "Tümünü Oku"dan sonra içerikte FF görürsünüz. Programlanmamış bir çip belleğinde 'FF' gösterecektir, bir EEPROM (programlayıcıdaki ikinci sekme) de öyle, son sekme SİGORTALARI gösterir.

TÜMÜNÜ OKUYUN ardından 3 sekme çipte bulunan doğru bilgileri gösterecektir. Bundan önce olmazdı, bu yüzden her şeyi bağladığınızda önce hepsini okuyun.

Adım 4: Flash'a Yaz (Hex Dosyanız Çipte ROM'a Flaşladı)

Flash'a Yaz (Hex Dosyanız Çipte ROM'a Flaşladı)
Flash'a Yaz (Hex Dosyanız Çipte ROM'a Flaşladı)
Flash'a Yaz (Hex Dosyanız Çipte ROM'a Flashlandı)
Flash'a Yaz (Hex Dosyanız Çipte ROM'a Flashlandı)
Flash'a Yaz (Hex Dosyanız Çipte ROM'a Flashlandı)
Flash'a Yaz (Hex Dosyanız Çipte ROM'a Flashlandı)

Yukarıdaki MENÜ çubuğundaki ilk simgeye tıkladığınızda açılan Gözat iletişim kutusunu kullanarak bir dosya seçin. Resimde gördüğünüz gibi bir dosya seçtik. Hex dosyasını (intel hex formatı) seçtiğinizde, "dosya yüklenmedi" yazan Menü çubuğu yüklediğiniz dosya adına dönüştü.

Şimdi yazılımın Menüsünden bir Yazma Flaşı yayınlayın. Mesajlar size neler olduğunu gösterecektir. resimlere bakın.

Başarılı bir yazma işleminden sonra, programınızın veya onaltılık dosyanızın içeriğinde yeni veya silinmiş bir ROM değişikliğini işaret eden 'FF' görürsünüz. Dosyanızın ROM'da kapladığı bayt boyutu veya sayısı da bu ekrana bakarak sizin tarafınızdan bilinir, bu da size şu anda flashladığınız hedef çipinizin gerçek ROM içeriğini gösterir.

Doğrulama adımı da ilk adımda yaptığımız AYARLAR'a göre çip okunarak yapılır. Bu, doğrulamanın da başarılı olduğu mesajlarda görülüyor.

Adım 5: SİGORTALAR: Aşırı Yakıcıda Nasıl Ayarlanır

SİGORTALAR: Aşırı Yakıcıda Nasıl Ayarlanır
SİGORTALAR: Aşırı Yakıcıda Nasıl Ayarlanır

TÜMÜNÜ OKUYUN yayınladığınızda, sigortalar çipten okunmuştur. Bu, fuses-j.webp

Şimdi belki onları başka bir şeye değiştirmeniz gerekir. Sigortalar, eXtreme Burner ekranınızın son TAB'ında 4 kutudan oluşur. Yani DÜŞÜK SİGORTA BYTE, YÜKSEK SİGORTA BYTE, GENİŞLETİLMİŞ SİGORTA BYTE, KİLİT SİGORTA BYTE ve KALİBRASYON BYTE. bu sırayla gösterilirler.

ÇEVRİMİÇİ bir sigorta hesaplayıcısı kullanabilir ve bunları aşağıdaki adreste olduğu gibi doldurabilirsiniz.

eleccelerator.com/fusecalc/fusecalc.php?

Veya bunu sizin için yapmak için eXtreme brülörünü kullanabilirsiniz. kendisi her zaman çevrimdışı: Her tür sigorta baytının altında bulunan DETAYLAR düğmesine tıkladığınızda görünen açılır listeden seçim yapın. DETAYLAR ekranında herhangi bir satıra çift tıklayın ve SET'ten CLEARED'e geçişini izleyin ve her satıra farenizle tıklayarak durumunu değiştirin. Yukarıdaki kutudaki Sigorta Baytı buna göre değişecektir.

"Sigortalar nedir" ve "ne işe yararlar" diye merak ediyorsanız? Bu mükemmel yazıyı okuyun:

www.instructables.com/id/Avr-fuse-basics-Running-an-avr-with-an-external-cl/

Adım 6: Aşırı Brülör Sigorta Hesaplayıcısını Kullanarak Sigortaları Ayarlama

Aşırı Brülör Sigorta Hesaplayıcısını Kullanarak Sigortaları Ayarlama
Aşırı Brülör Sigorta Hesaplayıcısını Kullanarak Sigortaları Ayarlama
Aşırı Brülör Sigorta Hesaplayıcısını Kullanarak Sigortaları Ayarlama
Aşırı Brülör Sigorta Hesaplayıcısını Kullanarak Sigortaları Ayarlama
Aşırı Brülör Sigorta Hesaplayıcısını Kullanarak Sigortaları Ayarlama
Aşırı Brülör Sigorta Hesaplayıcısını Kullanarak Sigortaları Ayarlama

Sigorta baytlarının (DÜŞÜK, YÜKSEK, GENİŞLETİLMİŞ, KİLİT ve Kalibrasyon) her biri için görünen Ayrıntılar Ekranını görebilirsiniz. Dahili RC osilatörü için geçerli olan AVR'deki kalibrasyon verisi baytını gösterdiği için Kalibrasyon baytı değişmeden bırakılmalıdır. LOCK baytı genellikle yalnızca FF'dir (yukarıdaki resimlerde tartışılmamıştır), çünkü öğrenme aşamasında Flash veya EEPROM'u kilitlemeyeceksiniz. Yalnızca DÜŞÜK, YÜKSEK ve GENİŞLETİLMİŞ baytları değiştirmiş olacaksınız. Dikkat olmak !

SPIEN bitini 1'e değiştirirseniz (AVR mikro denetleyicilerinde programlanmamış durum 1'dir) USBASP veya herhangi bir programlayıcı kullanarak çipinizle iletişim kuramazsınız! Varsayılan durum, her bir sigorta biti için ekranınızda da gösterilir. Bu, ISP programlaması için SPI modunu kullanmanıza izin vermek için SPIEN varsayılanının her zaman 0 (programlanmış durum) olduğu konusunda sizi uyarır. SPIEN 0'a ayarlandığında hata ayıklama kablosu veya DW biti her zaman 1 (programlanmamış) olarak bırakılır. Bu da varsayılan durumudur. Ayrıca, Hedef çipinizi programlamak için USB-ASP'nizi kullanıyorsanız (ARDUINO'daki gibi önyükleyici ROM kullanmıyorsanız), Genişletilmiş Sigorta bitlerinde 'Kendi Kendini Programlama Etkinleştirme' '1' (programlanmamış) olmalıdır.

Dahili RC veya harici kristali seçmek için SAAT bitlerini (sayı olarak 3) değiştirebilirsiniz. Normalde, harici kristali serbest bırakarak AVR projeleriniz için PORT pinleri olarak kullanmanız gereken 2 ekstra pin almanıza izin veren dahili RC için bırakırım. Projenizde yüksek doğrulukta zamanlamaya ihtiyaç duyduğunuzda genellikle harici kristal gerekir. Öğrenciler için dahili RC yeterlidir.

Genellikle bir kez bir sigorta kombinasyonuna karar verdiğinizde, onu değiştirmezsiniz. Tek seferlik olurdu. Yalnızca ROM'u veya bazen EEPROM'u da yanıp sönersiniz. EEPROM'u Flashlamak için, programınız veri depolamak için EEPROM'u kullanıyorsa, WINAVR / ATMEL stüdyonuz tarafından ayrı bir.eep dosyası oluşturulur. Aksi takdirde, EEPROM kullanılmadan bırakılır ve EEPROM'un 'VERİ YOK durumu'nu gösteren 'FF' verileriyle doldurulur.

Adım 7: Sigorta Bitlerinin Son Değeri

Sigorta Uçlarının Nihai Değeri
Sigorta Uçlarının Nihai Değeri

Tüm Sigorta bitlerini ayarladıktan ve kullandığınız DETAY kutularını kapattıktan sonra, program tarafından hesaplanan Sigorta bitlerinin değerini görebilirsiniz (resme bakın). Geriye sadece menüyü kullanarak bir "Sigorta Yazma" yapmak kalıyor. Ve başarılı bir yazma bildiren mesajlara bakın. Daha sonra, menüden TÜMÜNÜ OKU'yu da düzenleyebilir ve brülör ekranının son TAB'ında okunan sigortaların çipe yazmak istediğiniz şeyle uyuşup uyuşmadığını kontrol edebilirsiniz. (Sigorta doğrulaması).

Bu Talimatın başlangıcında bir READ FUSES yaptığımızda, ekranın burada gördüğümüz FUSE değerlerinin aynısını gösterdiğini fark edeceksiniz! Bunun nedeni, bazı projeler için frekansı 1 Mhz'den 4 Mhz'ye değiştirmediğim sürece, bunlar sıklıkla kullandığım ve MCU'mda ayarladıktan sonra nadiren değiştirdiğim sigortalardır. AVR maksimum 20Mhz'ye ayarlanabilir (bazı çipler yalnızca 16Mhz'ye kadar). F_cpu için ayarladığınız frekans, çipi beslediğiniz Voltaj'a da bağlıdır! Örneğin, çipiniz 1.8V Vcc'den 5.5V Vcc'ye kadar çalışıyorsa (veri sayfasına bakın), sadece 1.8V sağlarsanız Chip'inizi 20 mhz'de çalıştırmayı beklemezsiniz! ondan çok şey bekliyorsun! Veri sayfasındaki bir tablo, frekansın hangi değerde hangi voltajda olduğunu size söyler. Çip çalışma sıklığınız ne kadar yüksek olursa, o kadar fazla ısı ve tükettiği güç o kadar fazla olur. Frekansı bir hayvanın Kalp Atışı gibi düşünün. Yüksek bir kalp atışı hızına sahip bir Sinekkuşu, çok daha düşük bir kalp atışı olan bir Balina veya file kıyasla dakika başına daha yüksek bir enerji yanmasına sahip olacaktır! Ancak daha kısa sürede çok daha fazlasını yapabilir. MCU aynen böyle.

Adım 8: Bitir

Artık eXtreme brülördeki tüm adımları tamamladınız, bir çipin ROM'unu okudunuz, bir HEX Dosyası açtınız ve çipe flashladınız ve flaşın doğru olduğunu doğruladınız, ayrıca sigortaları nasıl kuracağınızı ve çipe nasıl yakacağınızı da öğrendiniz..

Herhangi bir sorunuz varsa, daha açık hale getirmek için öğreticiyi yanıtlamaktan veya değiştirmekten memnuniyet duyarım.

Bazı çipler için, menüdeki çip seçimi açılır listesinde girişinin eksik olduğunu görebilirsiniz. Veya yazma hatalarıyla karşılaşabilir ve hataları doğrulayabilirsiniz. Bu gibi durumlarda, sorunu çözmek için lütfen diğer Eğitilebilir "EXtreme Burner Hacking" bölümünü okuyun.

Mutlu programlama.

Önerilen: