AVR'nin manuel olarak yanıp sönmesi. AVR mikrodenetleyicilerini programlamanın temelleri

Eksen ve ilk ürün yazılımının zamanı geldi. Tsya üretici yazılımı є testi. Vaughn, zhodnyh kahverengi çocukları soymamak için, şarkı söyleme algoritmasının arkasında titreyen nizhki'yi krim. Bu bellenimle, tüm mikro denetleyicinin pratikliğini ve zocrem'in giriş ve uygulama portunu değiştirmek mümkündür.
Mikrodenetleyiciyi değiştirmek için firmware'i indirmek ve bacaklarda görülenlere hayret etmek gerekiyor. Bir multimetre ile veya basitçe bir sonda ile "şaşırabilirsiniz" - 300 Ohm - 1 kOhm dirençli seri bir ışık diyotu. Direnç olmadan siğili değiştiremezsiniz - G/Ç portunu yakabilirsiniz. Alt kısımdaki sinyal seviyeleri "1"den "Z"-standına kadar "0"a ve geriye doğru değiştirilir. Giriş modunda bağlantı noktasının sırasını kontrol etmek için "Z" stan sırayla eklenir.

ATMega48/88/168 mikrodenetleyici için üretici yazılımını test edin.
Görüntüdeki robotik üretici yazılımı ATMega48/88/168 okumalarının algoritması (önceki açıklamada eklemelerin mikrodenetleyicisi).

Mikrodenetleyici dahili bir jeneratör gibi çalışır, bu nedenle harici kuvarsa ihtiyaç yoktur. Nizhki 9 ve 10 (dış kuvarsla bağlantı), dış kuvars orada göründüğü için geride değil. Ayrıca, düşük 1 (kayma) ve 21 (ADC için voltaj referansı) ayarlamayın. Uygulamayı tersine çevirmenin (ilahi küçükler) iki yolu vardır - dünyadaki (GND) veya daha düşük yaşamdaki (VCC) sinyal seviyesinin değişmesine hayret etmek.
- ATMega48/88/168 için üretici yazılımı testi

Mikrodenetleyici nasıl yanıp söner >


ATTiny2313 mikrodenetleyici için üretici yazılımını test edin.
Görüntüdeki robotik bellenim ATTiny2313 okumaları için algoritma (önceki açıklamada eklemelerin mikro denetleyicisi).

Mikrodenetleyici dahili bir jeneratör gibi çalışır, bu nedenle dışarıdan buna ihtiyaç yoktur. Nizhki 4 ve 5 (dış kuvarsın bağlantısı), dış kuvars orada göründüğü için vapadok üzerinde ayarlanmamıştır. Ayrıca düşük 1 (kayma) atanmamış. Pratikliği yeniden gözden geçirmenin iki yolu vardır - toprak sinyali (GND) ve düşük ömür (VCC) seviyesindeki değişime hayret etmek.
- ATTiny2313 için üretici yazılımını test edin

Mikrodenetleyici nasıl yanıp söner >


ATTiny13 mikrodenetleyici için üretici yazılımını test edin.
Görüntüdeki robotik üretici yazılımı ATTiny13 göstergeleri için algoritma (önceki açıklamada eklemelerin mikro denetleyicisi).

Mikrodenetleyici dahili bir jeneratör gibi çalışır (bu mikrodenetleyici için büyük bir lüks, bunu göremiyorum). Açıkçası, düşük bir sayı değil (kayma). Uygulamayı önceki mikrodenetleyicilerde olduğu gibi yeniden doğrularız.
- ATTiny13 için Eustova üretici yazılımı

Mikrodenetleyici nasıl yanıp söner >


Perevirka pratsezdatnosti "Z" - Bir port_v vvednya-vyvedennya olacağım.


“Z”-bu standı standı, eğer alt olan giriş için yapılandırılmışsa ve buna eşit değilse (hiçbir şeye bağlı değiller). Böyle bir çeliğin varlığını kontrol etmek için bir direnç dilnik ile hızlandırabilirsiniz. Denkleştirme "1" ise ömür gerilimi +5v, eşit "0" ise - toprak 0v ve "Z" açık ise giriş ve çıkış portunun çalışmasında çalışma duracaktır. dilnik ve canlıların voltajını ekleyeceğiz ve +2.5v alacağız.

DOSYALAR:
- Test yazılımının widget'ları

(18 359 kez ziyaret edildi, bugün 4 ziyaret)

  • Programlar için bellek (FLASH) - 1Kb
  • RAM - 64 Bayt
  • Giriş / çıkış sayısı - 6
  • Vihodiv ŞІM - 2
  • Analog girişler (ADC 10bit) - 4
  • Zamanlayıcı 8 bit - 1
  • Canlı voltaj 1.8 - 5.5V
  • Çalışma frekansı - 20MHz'e kadar
  • Aktif modda uyku 1.8V/1MHz - 190uA
  • Uyku modu 1.8V/1MHz - 24uA

ATtiny13 programlama

Programlama için Arduino IDE kuracağım. Gördüğünüz gibi, geliştirmenin özü ek kontrolörler tarafından desteklenebilir. Örneğin, bu durum Arduino IDE'de "halkın WiFi" ESP8266'sını nasıl programlayacağımı buldum. arduino.cc web sitesinde, Arduino çekirdeğinde ATTiny13 programlamayı gösteren bir bağlantı var. 1.6.5 sürümünü yükledim. Arduino için ATTiny çekirdeğinin arşivlerini yakalayacağım. c:\Program Files (x86)\Arduino\hardware\ dosyasına açın ve Arduino IDE ek ödemeleri gösterir

Şimdi zavantazhennya programları. Mikroişlemcinin toplam bellek kapasitesi 1Kb'dir ve herhangi bir maceraperest için yer yoktur. Bu nedenle çizim, programcı tarafından ISS'de gerçekleştirilir. USBAsp, Atmega328'i programladığım gibi, istemedim. Programcı için özel bir bellenime ihtiyacınız var, bununla uğraşmak istemiyorum. Mikrodenetleyiciyi bir Arduino yardımı için programlayabilirsiniz. Kimin için aşağıdaki şemayı seçiyorum:

Arduino IDE'de "File->Imports->ArduinoISP" seçiyorum ve Arduino'da programcının taslağını başlatacağım. Ardından "Tools->Programmer->Arduino as ISP"yi seçiyorum. Artık karanlıkta eskizleri zavantazhuvat yapabilirsiniz. Ardından, Arduino fonksiyon setini değiştirmek için Arduino için ATTiny13 çekirdeğini ayarlayın.

Robotumda ışık kılavuzlu düz bir yalinka var

12V için bir halojen lamba ve Yalintsa'nın yakınında, ışık kılavuzlarının rengini değiştiren renk çemberi filtresini çeviren bir motor vardı. 3 yıl boyunca ampul ve motor öldü.

Eksen i ve vyrіshiv vіdnoviti tsyu yalinka shmatochkoy RGB-strіchki kerovanoї ATtiny13. Znіmannya keruvannya hattı şöyle çıktı:

üç transistör ve direnç, bir doğrusal voltaj regülatörü ve bir su ısıtıcısı.

Çizim, farklı kanallardaki parlaklık değişiminden programlanabilir üç kanallı bir PWM'dir ve bunun sonucunda çizgi farklı renklerle parlar.

Öyle ise yalinka binasında o hat için ücret ödemeniz yeterlidir.

Vücudun ortasındaki ışığın görünümünü iyileştirmek için beyaz yapışkan bant.

meme 2015

1. Propone yönteminin avantajları

Mikrodenetleyicilerdeki (MK) bağlantı devreleri iki önemli şey gibi görünür: maksimum basitlik ve yüksek işlevsellik. O zamana kadar, programı değiştirmek (yanıp sönen) yerine, şemada herhangi bir değişiklik yapmadan işlevsellik değiştirilebilir ve genişletilebilir. Bu özellikler, günümüzün MK'lerinin yaratıcılarının bir elektronik cihaz satıcısının ihtiyaç duyabileceği her şeyi tek bir kristal üzerine yerleştirmeye çalıştıkları gerçeğiyle açıklanmaktadır - döşemeyi alın, döşeme mümkündür. Sonuç olarak, devre ve montajın yazılım üzerindeki vurgusunda bir kayma oldu. Şu andan itibaren, MK öğrencilerinin devreyi ayrıntılarla "gezinme" olasılığı daha düşüktür ve bileşenler arasında daha az parça vardır. Açıkçası, şemayı dosvіdchenimi olarak tekrarlamak için daha ayrıcalıklı bir şekilde soymak, yani elektronnik-pochatkіvtsyami. Ale, yak zavzhdi, her şeyi ödemek zorundasın. Burada da katlanmadan olmadı. Yeni bir MK satın alırsanız, yaşam masraflarının ödenmesinin doğru ayrıntılarının doğru seçilmiş şemasına koyun, o zaman hiçbir şey görmezsiniz - bu pratik değildir. Mikrodenetleyicinin bir programa ihtiyacı vardır.

Her şey sizin için basitti - İnternette ücretsiz bellenim ile anonim devreler oluşturabilirsiniz. Ancak burada bir sorun var: bellenimin mikrodenetleyiciye "yüklenmesi" gerekiyor. Bununla daha önce ilgilenmemiş olanlar için, böyle bir görev genellikle bir sorun haline gelir ve genellikle rahatsız edici olan, genellikle MK'nin üyeliğinden rahatsız olan ve "rozsipuhu" ve zhorstkіy mantığı üzerine planlar arayan ana faktör haline gelir. Aje, ilk bakışta gördüğün gibi her şey o kadar iyi ve sorunsuz değil.

İnternetteki yayınları inceledikten sonra, bu sorunun çoğunlukla iki yoldan biriyle çözüldüğünü hatırlayabilirsiniz: hazır bir programcı satın almak veya kendi kendine yapılan bir program yapmak. Yayınlanan bağımsız programcıların tüm şemaları ile, genellikle gerçekçi olmayan bir şekilde katlanırlar - zengin bir şekilde katlanır, daha düşük etkili bir şekilde gerekli. Zvichayno, her gün MK'yi flaşlamak için olduğu gibi, anne "havalı" bir programcıdır. Bununla birlikte, böyle bir prosedüre ihtiyaç duyulursa, saatlerce, bir programcı olmadan yapabilirsiniz. Hayır, açıkçası, düşüncenin gücüyle çalışmayı öğrenenlerin hikayeleri yok. Eşiğinde olabilir, scho rozumіyuchi, yoga programlama modunda bilgi kaydederken ve okurken programcı ile mikrodenetleyici ile etkileşime geçmek gerektiğinden, kullanışlı geniş tanıma yöntemleriyle yönetebiliriz. Qi Koshti, programlayıcının hem yazılım hem de donanım bölümünü değiştirebilir. Donanım kısmı, mikro devre MK ile fiziksel bağlantının sağlanmasından, girişe mantıksal eşitlikler uygulama ve çıkıştan veri okuma yeteneğinden sorumludur. Yazılım kısmı, robota gerekli işlemleri gerektiren bir algoritma sağlayabilir. Ayrıca, bir programlayıcınızın ne kadar "cool" olduğuna bağlı olarak, MC'deki kayıt bilgilerinin kalitesinin saklanamaması da önemlidir. "Buradan" daha "güzel kaydedilmiş" diye bir şey yoktur. Yalnızca iki seçenek vardır: "kayıtlı" ve "kayıtlı değil". Kristalin ortasındaki kayıt işleminin MK'nin kendisi tarafından gerçekleştirildiğini takdir ediyoruz. Yoma yakіsne kharchuvannya'ya (geçiş ve nabız günü boyunca) bakmak ve arayüzü düzgün bir şekilde düzenlemek daha iyidir. Kontrol okumasının sonuçları için af yoksa, her şey yolunda demektir, kontrol cihazını tanıma için yenebilirsin.

Programcıya izin vermeden MK'ye program yazabilmek için USB-RS232TTL port i'yi de değiştirmemiz gerekiyor. USB-RS232TTL dönüştürücü, "referansa" daha az bağlı olan ek bir USB bağlantı noktası için bir COM bağlantı noktası oluşturmanıza izin verir, giriş ve çıkışlarda mantıksal TTL eşittir, böylece voltaj 0 arasındaki aralıkta olur. ve 5 volt (rapor okunabilir "). Böyle bir dönüştürücü, "hükümet"te bir tür anne olmak zorundadır, böylece ne olursa olsun fazla bir şeye sahip olmazsınız. Mantıksal çizgiler varsa, o zaman TTL modumuzda, 5 V'luk bir voltajla yaşayabilen herhangi bir mikro denetleyiciye aracı bağlantı olmadan böyle bir bağlantı noktasına girip çıkabilmeniz için büyük bir COM bağlantı noktasının önüne bir öncelik koymak gerekir. ATtiny ve ATmega dahil. Ancak standart COM portunu geçersiz kılmaya çalışmayın - voltajlar burada -12 ila +12 V (veya -15 ... +15V) aralığında geçersizdir. Bir mikrodenetleyici ile doğrudan temas kabul edilemez!

Programcının işlevlerini uygulayan "Perpetuum M" programı için bir komut dosyası oluşturma fikri, internette bir dizi yayın hakkında bilgi sahibi olduktan sonra Winkla, MK'nin bellenimi için bu diğer çözümlerin nasıl telaffuz edileceği . Deride ciddi nedolіki chi supra-world kıvrımları ortaya çıktı. Programlama şemaları, kişinin kendi mikrodenetleyicisinden intikam almak için sıklıkla geçildi ve aynı zamanda, kshtalt uğruna ciddi bir şekilde verildi: "... ve mikrodenetleyiciyi o programcı için programlamak için, ihtiyacımız var ... doğru - başka bir programcı!". O zaman bir arkadaşa gidip ücretli bir hizmet istemek için ipucu verdiler. Bu amaçlar için önlemde geliştirilmekte olan yazılım güvenliği derecesi de etkilenmedi - işlevsellikle ve ayrıca coristuvach arayüzünün "felaketi" ile ilgili herhangi bir sorun olmadığı kaydedildi. Çoğu zaman, programı nasıl kazanacağınızı göstermek, anlamak gerekir - en basit faaliyetleri oluşturmayı öğrenmek gerekir. Başka bir program uzun ve özenle çalışabilir, ancak MK'de hiçbir şey kaydedilmeyenler hakkında, coristuvach yalnızca tüm bellenimin tamamlanmasından ve saldırgan kontrol okumasından sonra bilinir. Böyle bir sorun var: Koristuvach, desteklenen kristaller listesinden MK'larını seçmeye çalışıyor, ancak yoga listede yok. Bu noktada, program yoluna girmiyor - kural olarak günlük MK'lerin listesi aktarılmadı. Ek olarak, kontrolörün listeden manuel olarak seçilmesi, sanki yalan söylüyormuş gibi, programcının birçok durumda MK'nin tipini belirleyebileceği gibi harika görünüyor. Bütün bunlar bilinen ürünlerin üzerine çamur dökmek için değil, bu yazıda anlatılan "Perpetuum M" programından önce senaryonun ortaya çıkmasının nedenini açıklamak için söyleniyor. Sorun gerçekten gerçek ve acemilerin önünde bizim için çok fazla sorun var, bu yüzden her zaman “duvarı” onarmaya çalışmak zorunda değiliz, böylece mikrodenetleyiciler dünyasındaki ilk işimizi geliştirebiliriz. . Önerilen bir senaryo, diğer programlar tarafından gösterilen küçük bir payla sigortalandı. Robot algoritmasına maksimum "boşluk" uygulandı, coristuvach'ın sınırda basit bir arayüzü, bükülmeyi engellemeyen ve kaybolma şansını mahrum etmeyen ve "oraya itmeyin". Gerekli MK'nin alt bölümün ortasında bulunması için, MK satıcısının sitesinden alınan belgelerden gerekli verileri alarak bağımsız olarak bir yogo açıklaması ekleyebilirsiniz. І, en önemlisi - haklı çıkarmak ve değiştirmek için bir senaryo. Deri bazhayuchy can, bir metin düzenleyicide vodkrivshi, mahkemenin yetkisine göre yogayı büküp düzeltir, tadını temel işlevlerine değiştirir ve yetersizliklerine ekler.

Senaryonun ilk versiyonu Cherry 2015'te oluşturuldu. Bu sürümde, yalnızca kontrolör tipinin otomatik atanması ile yapılandırma bitlerinin ayarlanması ile flash bellek yazma / okuma işlevlerine sahip Atmel'in MK serisi ATtiny ve ATmega için destek uygulanmaktadır. Yazma ve okuma EEPROM uygulanmadı. Komut dosyasına EEPROM okumak, PIC denetleyicileri için destek uygulamak vb. için işlevsellik ekleme planları vardı. uygulanan işlevler yetersiz görünüyor, lütfen utanmayın.Her durumda, gerekli işlevi bağımsız olarak eklemeyi deneyebilirsiniz. MK robotunu programlama modunda daha iyi anlayabilirsiniz, böylece gelecek, kızın kampında arabanın önünde düşünmez, düşünür, düşünceli bir şekilde içine bakar ve neden “demediğini” anlamaz.

2. Programlama olarak MK arayüzü

Іsnuє dekіlka Farklı yollar kontrol cihazını programlama moduna aktarın ve diğer modda onunla pratik yapın. ATtiny ve ATmega є kontrolörleri için en basit uygulama, belki de SPI serisi. O ve acele et.

Ale, sinyallere baktığımda, gerekli SPI kalıplama, bir takım muhafızlar eklememiz gerekiyor. Mikrodenetleyici yapılandırılabilir. Anahtarlama, mikro devrenin gücünün eylemlerini projenin ihtiyaçlarına göre değiştirmenize izin veren kshtalt geçiş anahtarlarının maliyeti. Fiziksel olarak, enerjiden bağımsız hafızanın ortasında, sessizdir, örneğin program kaydedilmektedir. Fark, çok az olmaları (ATmega için üç bayta kadar) ve kokunun bellek olsun, adres alanına girmemesi gerçeğinde yatmaktadır. Konfigürasyon verilerinin kaydedilmesi ve okunması, MK'nin programlama moduna aynı komutlarla tamamlanır. Aynı zamanda, SPI kullanma yeteneğine ne tür yapılandırılabilir verilerin eklenebileceğini not etmek önemlidir. Şarkı değerleri için, SPI'nin yenemeyeceği görünebilir. Böyle bir mikrodenetleyiciye ihtiyacınız varsa, bu makalede önerilen yöntem yardımcı olmayacaktır. Bu durumda, programlama modunu iyileştirecek programlayıcının konfigürasyon bitlerini değiştirebilir veya mikrodenetleyiciyi değiştirebilirsiniz. Ancak bu sorun, MK'de kim yaşıyorsa daha az sessizdir, ancak sessizdir, kiminle “kendinizi kazamazsınız”. Sağ tarafta, yeni MK'ler, SPI anahtarını geçersiz kılmamaları için yapılandırılabilir bitleri ayarlanmış olarak gönderilir. "Perpetuum M" programı için komut dosyası programlayıcısının test edilmesinin sonuçlarıyla onaylandı, ilk kez birkaç farklı MK'yi (ATmega8, ATmega128, ATtiny13, ATtiny44) başarıyla flaşladılar. Bıyıklar yeniydi. Pochatkov'un konfigürasyon bitlerinin ayarı, SPI versiyonuna uymayan belgeleri doğruladı.

Yukarıda söylenenler üzerine Zvajayuchi, böyle bir yaşama saygı duyun. SPIEN biti bariz bir görünüm sağlar veya zaboraє SPI vikoristannya; RSTDISBL biti, mikro devrenin değişikliklerinden birini (ses aralığının arkasında) "skid" sinyaline girişte değiştirmek veya değiştirmemek için değiştirilebilir (bu bitte yazılan değer bırakılmalıdır). Modumuzda "skid" girişi gereklidir (bu nedenle MK'yi SPI üzerinden programlama moduna aktarmak mümkün değildir). Saat sinyalini ayarlamak için başka bir CKSEL grubu tanımlayın. Koku, SPI frekansını değiştirmez, ancak annenin onu kullanması da gereklidir, bu nedenle daha yüksek bir saat darbesi frekansıyla veya frekans, belirli bir hız için izin verilen SPI hızından düşükse, hiçbir şey iyi değildir. görülen. Yeni MK'de ses, dahili RC jeneratörünü kullanın, şarkıyı ayarlamak için CKSEL gruplarını yenin. Tamamen bağımsızız - bizim tarafımızdan katkı maddeleri olmadan güvende tutuyoruz. Kuvars rezonatörünü lehimleyin ve orijinal jeneratörün bağlanmasına gerek yoktur. Eğer öyleyse, daha fazla kırbaçlamanın intikamını almak, savaşı tempolu, açıkçası kırbaçlama noktasına getirmek için atanır. Bu durumda, bir kuvars rezonatörünün veya bir saatli ses üretecinin MK'sine bağlanmanız gerekebilir. Ale, makale çerçevesinde, korkmuş gibi bana görünmüyor. Bu statüde olması gereken programlama için MC bağlantısını uygulayın, en basit adımda rozrahovani.

mal. 1. Programlama modunda SPI üzerinden veri alışverişi

Şimdi MK ATmega128A'nın belgelerinden alınan küçük 1'e inelim. Yeni bir göstergede, MK'nin bir baytını iletme ve bir saatte MK'nin bir baytını alma süreci. Bir bachimo, vicoristo gibi süreci rahatsız eden ve SCK girişinden mikrodenetleyiciye programlayıcı gibi aynı saat darbeleri, SPI programlama modunda böyle bir rolü olan mikroçip tasarımlarından biridir. İki sinyal hattı daha, her saat için bir bit olmak üzere verilerin alınmasını ve iletilmesini sağlar. MOSI girişi vasıtasıyla veriler mikrodenetleyiciye gider ve MISO çıkışından okunan veriler alınır. SCK'den MISO ve MOSI'ye çizilen iki noktalı çizgiye saygı gösterin. Mikrodenetleyicinin MOSI girişindeki veri bitlerini "taklit edip etmediğini" ve MISO girişine kendi veri bitini ekleyip eklemediğini gösterecektir. Her şeyi bitirmek kolaydır. MK'yi programlama moduna girmek için ayrıca bir RESET sinyaline ihtiyacımız var. Sıcak tel GND'yi ve canlı VCC'yi unutmayın. SPI bellenimi için mikrodenetleyiciye toplam 6 kablo bağlamanız gerektiğini çıkarmak kolaydır. Aşağıda rapora bir göz atalım ama şimdilik SPI programlama modunda MC'den veri alışverişinin 4 baytlık paketler halinde gönderildiğini söyleyelim. Dış görünüm paketinin ilk baytının komut kodlaması altında girilmesi daha önemlidir. Diğer bayt birinci ile aynıdır, komut kodu veya kısmi bir adres ile devam ettirilebilir veya daha önemli bir değer olabilir. Üçüncü bayt, iletim adresinden daha önemlidir, ancak zengin komutlar için daha önemli bir değere sahip olabilir. Dördüncü bayt ses veri iletir veya daha önemli olabilir. Bazı komutlar için dördüncü baytın aktarımından sipariş, MK'den olduğu gibi veriler alınır. Dış görünüm komutunun ayrıntıları, "SPI Seri Programlama Komut Seti" başlıklı tabloda kontrolör belgelerinde bulunabilir. 32 bitlik paketler dizisinden gelen impulsların denetleyicisi ile olan tüm alışverişi, önemli ölçüde daha az olmakla birlikte, bir bayttan üç fazla çekirdek bilgisi cilt etiketine iletilir. Tse optimal bile değil, ama aceleyle kötü yapılmış.

3. Programlama için MK'yi bağlama

SPI arayüzünü düzenlemek ve MISO çıkışından veri okumak için mikrodenetleyicinin girişlerine gerekli tüm sinyallerin sağlandığından emin olmak için programlayıcıyı bağlamayın. Harika bir USB-RS232TTL dönüştürücü yardımıyla kurulumu kolaydır.

İnternette, genellikle yanlış olan, onlarla ciddi bir şey yapılamayan dönüştürücüler hakkında bilgi bulabilirsiniz. Ancak daha fazla dönüştürücü modeli var, böyle bir düşünce bir af. Bu nedenle, satılık dönüştürücüler var, bunların hepsinin mevcut olmadığı, aynı standart COM portuna (örneğin, sadece TXD ve RXD) bağlı oldukları, ayrılamayan herhangi bir tasarımla (mikro devre) mümkün olabilir. plastikle doldurulur - konektörlerden geçmek imkansızdır). Ama yine de varto yapma. Bazı durumlarda, kabloları doğrudan mikro devreye bağlayarak bağlantı noktasına giriş ve çıkış yapmak mümkündür. Böyle bir "rafine" dönüştürücünün ucu küçük 2'de gösterilmiştir (çip PL-2303 - "" makalesinde її vysnovkіv'nin tanınması hakkında bir rapor). Bulunan modellerden biridir, ancak bağımsız tasarımlarda galip geldiğinde kendi avantajları olabilir. Sonunda COM bağlantı noktası gibi standart dokuz pimli bir sokete sahip geniş ve tamamen işlevsel adaptör kabloları. Muhteşem COM portunda, koku artık TTL'ye eşit değil ve eski yazılım güvenliğinden ve eski eski eşyalardan kaynaklanan tutarsızlık. Ayrıca, CH34x çipi üzerindeki kabloların, çeşitli aşırı testlerde, PL-2303 adaptörlerine kıyasla zengin bir şekilde üstün ve kararlı olduklarını gösterdiği de görülebilir. Vtіm, harika bir victoria ile fark anılmaz.

Bir USB-RS232TTL dönüştürücü seçerken, sürücünün galip gelen işletim sisteminin sürümüyle uyumluluğuna da dikkat etmelisiniz.

ATtiny13, ATtiny44, ATmega8 ve ATmega128: Birkaç farklı MK modelinin uygulamasına bir mikro denetleyici ve bir USB-RS232TTL dönüştürücü kurma ilkesine bir göz atalım. Küçük resim 3, böyle bir saldırının şematik bir diyagramını göstermektedir. RS232 sinyallerinin (RTS, TXD, DTR ve CTS) tanınmamasına şaşırabilirsiniz. Ale bu konuda çalkantılı değil: "Perpetuum M" programı, aracı olmadan onlarla çalışmak üzere tasarlanmıştır - çıkışlardaki değerleri ayarlayın ve girişi okuyun. Her durumda, CH34x ve PL-2303 mikro devrelerindeki geniş çapta genişletilmiş USB-RS232TTL dönüştürücüler böyle bir olasılık sağlar - altüst olur. En popüler dönüştürücülerde sorun yoktur, ancak bağlantı noktasına erişim tuşları standart Windows işlevleri tarafından bozulur.

Ana devrede gösterilen dirençler, prensip olarak kurulamaz, aksine kurulamaz. Yake їхнє tanıma? Vikoristovoi TTL "BAĞLANTI ÜZERİNDEKİ IVSKI VIDIS I P'yatnutny Kharchuvannya Mikrontroller, Logichny Rivniv'in Nefosu Mi Tim -Loggennya - işaret edildiği gibi. , nerede düşemez ve her durumda olamayacakları kapatın kapalı. orijinal çalışma moduna geçmek için mikrodenetleyici ve dönüştürücünün çıkışına (RTS, TXD veya DTR) bağlı olduğunu ve ayrıca MK programında açıkça yazılmış olan çıkış haline geldiğini öğrenebilirsiniz. daha kötü bir çıktıya sahip olacak, doğrudan "savaşmak" zorunda olduğunuzda iki gibi - farklı mantıksal eşitlikler kurmaya çalışın.Böyle bir "kavga" "programlanabilir", ancak hiçbir şeye ihtiyacımız yok.

Üç direncin derecelendirmeleri yalnızca 4,3 kOhm seviyesinde seçildi. Mikrodenetleyicinin girişi olan dönüştürücünün çıkışını bağlamak gerekir. Dirençlerin doğruluğu bir rol oynamaz: Opirlerini 1 KΩ olarak değiştirebilir veya 10 KΩ'a yükseltebilirsiniz (alternatif olarak, başka bir durumda, MK yolunda daha fazla kablo olduğunda kayma riski daha yüksektir) . Peki, dönüştürücünün girişini (CTS) - mikrodenetleyicinin (MISO) çıkışını bağlamadan önce, 100 Ohm'luk bir destek direnci vardır. Bu, vicorous dönüştürücünün girişinin özellikleri ile açıklanmaktadır. Bir saat boyunca, PL-2303 mikro devresindeki vikoristany dönüştürücüyü deneyin, bıyığa göre girin, hissedilir derecede düşük bir destekle (yaklaşık birkaç yüz ohm) hayatın artısına kadar çekin. "Asansörü öldürmek" için, bu kadar küçük bir desteğe sahip bir direnç koyma şansım oldu. Vtіm, yoga önüne konamaz. Dönüştürücüde girişi girin. Bir çıkış olamazsınız ve o zaman çıkışların çatışması herhangi bir gelişme için olmayacaktır.

Bir mikroçip olarak, ana akım VCC'nin uygulanmasında bir sonraki adım olan analogdan dijitale dönüştürme (örneğin, ATmega8 veya ATmega128) için AVCC devreleri olabilir. Aktif mikro devreler birden fazla VCC ömrüne veya birden fazla GND'ye sahip olabilir. Örneğin, ATmega128'de 3 GND döngüsü ve 2 VCC döngüsü vardır. Post-yny tasarımında, tek katmanlı visnovkaların kendi aralarında olması daha olasıdır. Bizim durumumuzda, bir saatlik programlama için bir VCC ve GND kablosu kullanabilirsiniz.

Ve eksen bir ATtiny13 bağlantısına benziyor. Küçük resim, SPI aracılığıyla bir saatlik programlama için vykoristovuyutsya olan vysnovkіv'nin tanınmasını gösterir. Fotoğraftaki sıra - Timchas'ın bağlantısı gibi gerçek görünüyor.


Ciddi olmadığını söyleyebiliriz - ilanlarda. Ale, sen ve ben makul insanlarız. Metamız, diğer kaynaklardan en az bir saat kullanarak ve kimoların önünde gösteriş yapmaya değil, mikrodenetleyicinin nasıl programlanacağına odaklanmıştır. Yakіst kiminle acı çekmez. "İlanlarda" yöntemi oldukça etkili ve doğrudur. Denetleyicinin bellenimi bir kerelik bir prosedürdür, bu nedenle onu "strasse" ile örtmenin bir anlamı yoktur. Bellenimi değiştirmek için aktarıyorsanız, denetleyiciyi devreden çıkarmadan (bitmiş sürümde), kurulumda bir saatlik hazırlık için korunursunuz. Soketlerin takılı olduğu ses (RESET, SCK, MOSI, MISO, GND) ve MK, karta kurulumdan sonra yanıp sönebilir. Ale tse zaten yaratıcı vyshukuvannya. Peki, en basit büküm bakalım.

Şimdi ATtiny44 MK'ya geçelim. Burada her şey hemen hemen aynı. Yeni başlayanlar için azar azar ve fotoğrafla, bağlantı kurmak önemli değil. ATtiny44'e benzer şekilde, MK ATtiny24 ve ATtiny84'ü bağlayabilirsiniz - vysnovkіv'in tsієї trіytsі zbіgaєtsya'da tanınması.


Yoga programlama için zamana dayalı kontrolör bağlantısının bir başka örneği de ATmega8'dir. Burada daha fazla visnovkіv var, ancak aynı ilke tellerin fışkırmasıdır ve eksen, denetleyicinin bilgileri "doldurması" için zaten hazırdır. 13'e giden fotoğraftaki siyah tel Zayviy, programlamaya katılmıyorum. MC'nin programlama modundan çıkışından sonra znyattya ses sinyali için Vіn atamaları. Bunun nedeni, "Perpetuum M" senaryosunun bir müzik ekranı programı için MK'den indirilmiş olmasıdır.


Genellikle farklı durumlarda bir denetleyici verilir. Aynı zamanda, cilt korpusunun visnovkіv'inin tanınması kendi yolunda bölünmüştür. Kontrol cihazınızın durumu küçük bir resimdekine benzemiyormuş gibi, MK bayisinin web sitesinden edinebileceğiniz gibi, bağlantı parçalarının tanınmasını teknik belgelerden netleştirebilirsiniz.

Resmi tamamlamak için, çok sayıda "düşük" MK mikro devresinin bağlantısına bakıyoruz. 15'te görülen fotoğraftaki siyah bir dart ataması, ATmega8'deki ile aynıdır.


Ymovіrno, fikrinizi zaten değiştirdiniz, her şeyi bitirmek çok kolay. Kim mikro devrelerde rahuvati visnovki yapabilirse (yılın okuna karşı kazıkta işaretler gibi), o kişi bunu çözecektir. Ve doğruluğu unutma. Mikro devreler düzenli olmayı sever ve affedilmez ortamı kendileri için affetmez.

Öncelikle yazılım kısmına gidin, ayarları USB-RS232TTL dönüştürücü sürücüsünün doğru şekilde yüklenmesi için değiştirin (Windows Aygıt Yöneticisini ters çevirin). Dönüştürücü bağlantısının saati olan sanal COM bağlantı noktasının numarasını hatırlayın veya not edin. Bu numara, komut dosyasının metninden önce girilmelidir, aşağıda okuyun.

4. Senaryo - "Perpetuum M" için programcı

"Programcının" donanım kısmından kurtulduk. Bu zaten pіvpravi. Şimdi program bölümünden artık rozіbratisya yok. Viconuvatime programı "Perpetuum M" nin, gerekli tüm fonksiyonların mikrodenetleyici ile etkileşim halinde uygulandığı komut dosyası kontrolleri altındaki rolü.

Arşivi komut dosyasıyla birlikte perpetuum.exe programının bulunduğu klasöre açın. Bu durumda, perpetuum.exe dosyasını çalıştırdığınızda, ekranda bir dizi "MK AVR Programcısı" olacak olan yüklü komut dosyalarının bir listesini içeren bir menü görüntülenecektir (bir ve aynısı). Aynı sıraya ihtiyacımız var.

Komut dosyası, "Programmer MK AVR.pms" dosyasındaki PMS klasöründe bulunur. Bu dosya, Windows Not Defteri penceresinde harika bir metin düzenleyicinin ihtiyaçları için gözden geçirilebilir, düzenlenebilir ve düzenlenebilir. Komut dosyasını değiştirmeden önce, ayarlanan bağlantı noktasıyla ilgili metinde değişiklikler yapmanız gerekecektir. Windows eklenti dağıtıcısı ile kazanılacak bağlantı noktasının adını netleştirmek ve gerekirse "Im'yaPort="COM4" satırında uygun bir düzeltme yapmak için; - yerine 4 rakamı başka bir rakam olabilir. Ayrıca, USB-RS232TTL dönüştürücünün farklı bir modeline sahipseniz, sinyal inversiyon ayarlarını değiştirmeniz gerekebilir ("Yüksek" kelimelerinden başlayan komut satırı satırları). USB-RS232TTL dönüştürücü ile ters çevrilmiş sinyalleri, talimatlarda bulunan uygulamalardan biri yardımıyla Perpetuum M programına (port ile çalışmak için ayrı işlevler) dönüştürmek mümkündür.

MK_AVR klasörünün ekleri, destek denetleyicilerinin açıklamalarını içeren dosyalara sahiptir. Aralarında gerekli bir denetleyici görünmüyorsa, gerekli olanı analoji ile bağımsız olarak ekleyebilirsiniz. Her seferinde dosyalardan birini alın ve bir metin editörünün yardımı için gerekli verileri mikrodenetleyicinin belgelerinden alarak girin. Golovne - saygılı olun, verileri af olmadan girin, aksi takdirde MK programlanmayacak veya yanlış programlanacaktır. Mevcut sürüm 6 mikro denetleyiciyi destekler: ATtiny13, ATtiny24, ATtiny44, ATtiny84, ATmega8 ve ATmega128. Komut dosyası, bağlı denetleyicinin otomatik olarak tanınmasını uygular - manuel olarak ayarlamak gerekli değildir. Tanımlanan MC tanımlayıcısının varlığı nedeniyle, en son açıklamalar arasında, denetleyicinin tanınamadığı görülmektedir.

Bir komut dosyası içeren arşivde ek bilgiler de yer almaktadır. "inc-files of AVR controllers" klasöründe geniş bir kontrolör açıklama dosyaları koleksiyonu bulunur. MK için kişisel programlar yazarken Qi dosyaları seçilir. Ayrıca dosyaları Assembler'daki programla temizlemek için "MusicBox_..." klasörlerini de temizleyin ve ATtiny13, ATtiny44, ATmega8 ve ATmega128 için bellenim ile MK'ye yüklenmeye hazır. Bu makalede önerildiği gibi, programlama için MK'lerden birini zaten bağladıysanız, bir kerede yanıp sönebilirsiniz - bir müzik ekranı göreceksiniz. Aşağıda hakkında.

"Programmer MK AVR" satırında scriptler menüsünü seçtiğinizde script çalışmaya başlar. Bağlantı noktasını açtığınızda, programlama moduna geçmek için MC'ye bir komut gönderin, başarılı geçiş hakkında MC'den bir onay alın, MC tanımlayıcısını sağlayın ve bu MC'nin açıklamasını ortasındaki üçüncü tanımlayıcıdan arayın. açıklamaları olan dosyalar. Tam açıklamayı bilmiyorsanız, tam açıklamayı görürsünüz. Açıklama bulunur bulunmaz, programlayıcının menüsü daha fazla gösterilir. Küçük olanın 8 ekran görüntüsünü alabilirsiniz. Bunu çözmek kolay değil - menü daha da basit.

Komut dosyasının ilk sürümü, gelişmiş bir programcının işlevselliğine sahip değildir. Örneğin, EEPROM'a okuma ve yazma yeteneği yoktur. Ve komut dosyasını bir metin düzenleyicide görürseniz, çoğunlukla yenide uygulanmasına rağmen, zaten küçük bir genişleme olduğunu söyleyebilirsiniz. Ekstra günlük işlevler ekleyenlerden bahsetmek yeterli değil, o kadar kolay ve karmaşık değil - dil daha akıcı, küçük bir programda birçok işlevi uygulamanıza izin veriyor. Daha fazla vipadkіv vystachit navіt funktsіy için Ale.

İşlevsel takas işlemleri, komut dosyasının metninde açıklanmıştır:
//sıfır adresten kayıt uygulaması (Genişletilmiş Segment Adres Kaydı dikkate alınmaz, LOAD OFFSET - tezh)
//HEX dosyasındaki kayıtların sırasının sırası ve sürekliliği kontrol edilmez
//sağlama toplamı revize edilmedi
Maliyet, MK için ürün yazılımı kodunun alındığı HEX dosyasıyla çalışmaktır. Dosya oluşturulmamışsa, sağlama toplamının yeniden kontrol edilmesi söz konusu değildir. Yakshcho kreasyonları - senaryo tse viyaviti uğruna içine girmeyin. Başka bir değiş tokuş yapmanıza gerek yok, yine de ayrılmaları gerekiyor.

5. Müzik ekranı - pochatkіvtsіv için basit bir virіb

ATtiny13, ATtiny44, ATmega8 veya ATmega128 mikro denetleyicilerinden birine sahipseniz, bunu kolayca bir müzik ekranına veya bir müzik broşürüne dönüştürebilirsiniz. MK'ye bellenimi yazmanın yeterli olduğu kişi için - chotiroh'lardan biri, bir komut dosyasıyla tek bir arşivde "MusicBox _..." klasörlerine yakі yerleştirme. Firmware kodları ".hex" uzantılı dosyalardan alınır. ATmega128'in böyle bir virobu için zaferi, açıkçası, ATmega8 gibi "yağlı". Ale tse deneyleri test etmek için bayat olabilir, aksi halde öyle görünüyor - birincil amaçlar için. Montajcıdaki program metinleri de eklenir. Programlar sıfırdan yaratılmadı - A.V. Belov'un "amatör radyo pratiğinde AVR mikrodenetleyicileri" kitabından müzik ekranları programı temel alındı. Hafta sonu programı bir dizi önemli değişikliği kabul etti:
1. Cilt bakım ürünleri için uyarlanmıştır MK: ATtiny13, ATtiny44, ATmega8 ve ATmega128
2. düğmeler devre dışıdır - denetleyiciye hiçbir şeyin bağlanması gerekmez, canlı ve seslidir (melodiler sonsuz bir döngüde tek tek çalınır)
3. Derin notanın önemsizliği değiştirildi, notalar arasındaki duraklamanın önemsizliği müzikal ritim tarafından bozuldu.
4. Sekiz melodi dahildir, kitap versiyonuna dahil değildir
5. öznelden: algoritmayı optimize etmek ve kolayca benimsemek için eylemleri "iyileştirme"

Bazı melodilerde sahtelik hissedilir ve özellikle ortadaki "Gülüşmeler"de kaba aflar duyulur. Kitaptan alınan kod melodileri (daha kesin olmak gerekirse - kitabın yazarının sitesinden bir kerede aynı asm dosyasından alınmıştır) ve değişikliği tanımadı. Her şeye çağrı, ezgilerin kodlanmasında af var. Ama bu bir sorun değil - müzikle "arkadaş" kim olursa olsun, herkesin bunu anlaması ve düzeltmesi kolaydır.

ATtiny13'te, notaların oluşturulması için 16 bitlik bir lichnik kullanılmasıyla, 8 bitlik notaların kopyalanması mümkün oldu, bu da notaların sesinin doğruluğunda bir azalmaya yol açtı. Alya kulaktan pek bir şey hatırlamaz.

Chodo yapılandırma bitleri. Їх nalashtuvannya vydpovidati olabilir Yeni bir mikrodenetleyici olacağım. Mikrodenetleyiciniz daha önce burada galip geldiği için, yapılandırılabilir bitlerin standardını gözden geçirmek ve gerekirse yeni bir mikrodenetleyici kurmadan önce bunları güncel hale getirmek gerekir. Yeni mikrodenetleyicinin konfigürasyon bitlerini tüm MK dokümantasyonundan ("Sigorta Bitleri" bölümü) tanıyabilirsiniz. Vignatok, ATmega128 olacak. Mevcut MK, eski ATmega103 ile toplama modunu açan M103C biti olabilir. M103C bitinin etkinleştirilmesi ATmega128'in kapasitesini büyük ölçüde azaltır ve yeni MK'de bu bit aktiftir. Etkin olmayan bir sersemletmeden M103C'yi düşürmeniz gerekir. Konfigürasyon bitlerinin işlenmesi için, komut dosyası programlayıcı menüsünün uygun bölümünü seçin.

Müzik ekranının şeması pek mantıklı değil: sadece bir mikrodenetleyici, yeme ve içme var. MK'nin programlanması sırasında beni öldürdükleri için yemek böyle servis ediliyor. Ses üreten cihaz, ana kablo (GND denetleyici konektörü) ile sayısı dosyada program derleme kodu (*.asm) ile görülebilen MK konektörlerinden biri arasına bağlanır. MK için cilt programının metninin koçanı üzerinde, yorumlarda bir satır var: "XX'de bir ses sinyali oluşuyor". Komut dosyası programlayıcı tamamlandığında, mikro denetleyici programlama modundan çıkar ve orijinal çalışma moduna geçer. Bir anda, melodilerin yaratılması başlar. Ses ve ses monitörünü bağlayarak değiştirebilirsiniz. Ses, SPI'de ayarlanmayan çıkıştan alındığından, yalnızca bu durumda kristalin programlanmasını açmaktan ses mühendisini mahrum bırakmak mümkündür, aksi takdirde çıkış için ek kapasite değiştirilebilir.

  • Mikrodenetleyicilerin programlanması
    • öğretici

    Saygı Resmi - xkcd

    Kendine ıssız bir adada ne harcadığını göster. Ve mikrodenetleyiciyi ömür boyu programlamanız gerekir. Şimdi, uyuyor musun? Diyelim ki, acil durum radyo işaretini, siparişe keskin bir şekilde düşme şansı olmadan onarmak için.

    Montaj dersini henüz unutmamak adına piska üzerine bir çubuk ile programı yazdık. Yararlı konuşmaların ortasında, kontrolör için belgelerin dağıtımını görmek bir diva gibi görünüyordu (peki, törpüde bile anlamadılar!), Ve program çok uzakta makine koduna çevrildi. Kayıp aptal - kontrolöre її yanıp söner. Ale, 500 kilometrelik bir yarıçap içinde, bilgisayarlar hakkında ne kadar konuşursan konuş, uygun bir programcı yok. Sadece biraz ömrünüz (bir pil patates ve hindistancevizi) ve birkaç shmatkiv dartınız var.

    Çıplak elle MK'yi pratik olarak nasıl flaş edebilirsiniz?

    Yak pіddolіdniy vstupatime MK ATtiny13 şirketi Atmel. Komutların kodları birkaç kişi tarafından kontrol edilebilse bile, pratik olarak AVR ailesinin bir denetleyicisi olarak çalışan teknik açıklanmaktadır.

    arayüz

    AVR bellenimi için en geniş ve en uygun arayüz є SPI(Seri çevre arayüzü). SPI üzerinden bağlantı için her türlü chotiri, toprak gerekir:
    • SCK- tüm veri alışverişi işlemlerini senkronize eden saat sinyali;
    • MOSI(Master Out Slave In) - kablolu binadan slave'e veri hattı;
    • MİSO(Master In Slave Out) - led ilavesinden önde gelene veri satırı, navpak;
    • SIFIRLA- SPI yanıp sönmeyi etkinleştirmek için, tüm visnovok'a mantıksal bir "0" uygulamanız gerekir.
    Bu sırayla, üç sinyal formüle etmemiz ve (neobov'yazkovo) birini okumamız gerekiyor. Eksen şöyle görünür, bunun için en basit şema:


    mal. 1. En basit SPI bağlantı şeması.

    Size kolaylık sağlamak için, giriş sinyallerinin bir göstergesini ekleyebilirsiniz. Şema katlanır, ancak üstte değil:


    mal. 2. Sinyallerin gösterim şeması.

    çamurda Zakhist

    Yazık, sadece SPI sinyalleri oluşturmak için bükülmüş düğmeler, iyi bir sonuç elde edilemez. Bunun nedeni, denildiği gibi kabul edilemez bir mevcudiyet içinde olmasıdır. bryazkit kişileri. Mekanik kontaklar kapatıldığında, birbirine yapışırlar, birer birer ve çaçadan bir dürtü gelir. İsrafı boğmak için, birkaç mantıksal öğe içeren basit bir şema seçilmelidir:


    mal. 3. Boğucu çamur için RS tetikleyici.

    Bu, anahtarın alt kontağı açıldığında "1" kampına geçen ve çamurdaki darbelerin kararını görmezden gelen RS tetikleyicisidir. Üst kontak kapandığında yani düğme bırakıldığında tetik tekrar "0"a düşürülür.

    "Bach, ben meteliksizim!" - der okuyucu, - “Issız bir adada oturuyorum. Burada tetikleyicileri nereden alabilirim? Güzel, elektronik devreler olmadan kirlenebilirsin. "Kuru" kontağı ıslak olanla değiştirmek daha iyidir. İki elektrot, iletkenin anavatanına indirilen bir vimikachem görevi görecektir.

    MOSI ve RESET sinyalleri, SCK girişinde bryazkot'un boğulmasını etkilemez: burada değer, önden değil, yalnızca titreşim anındaki sinyale eşit olabilir.

    SPI nasıl kullanılır



    mal. 4. SPI robotunun zaman-saat diyagramı.

    SPI ¾ senkron arayüz: tüm işlemler, ana cihaz tarafından titreşen saat sinyalinin (SCK) kenarları tarafından senkronize edilir. Maksimum iletim hızı, kontrolörün saat frekansının 1/4'ü değeri ile sınırlıdır. Minimum hızda değişiklik olmaz: saat sinyali olmadan veri alışverişi “donar” ve arayüz uzun süre statik durumda kalabilir.

    SPI iletimi, cilt tarafı başına saat başına bir bit olacak şekilde tam çift yönlü modda gerçekleştirilir. SCK sinyalinin yükselen kenarında, öncü sinyal MOSI hattından bir ölü vuruşu okur ve düşen kenarda, MISO hattındaki hücum vuruşunu gösterir. Vay, şekil 4'e saygı.

    Firmware Protokolü

    Programcının MK'den aldığı tüm bilgiler, 32-bit komutların düzeltilmesinden ve kontrolörün yanıtlarının alınmasından oluşur. Komutların en son çevirisi veri sayfasındadır, ancak burada bitti, MK'nin bellenimi için hangi işlemlerin gerekli olduğu:
    1. Kontrolörün programlama moduna geçirilmesi;
    2. (isteğe bağlı) Bir kimlik okuyucu ekleyeceğim;
    3. silme;
    4. flaşa yaz;
    5. (isteğe bağlı) Kaydedilenlerin yeniden kontrol edilmesi;
    Rozhnemo deri timsah raporu.

    Programlama modu farkındalığı

    RESET ayağına "0" uygulanarak programlama modu açılır. Ale є deyaki ince. Atmel, RESET ve SCK bıyıklarında düşük bir oran önerir ve ardından gıda kontrolörüne besler. Hal böyle olunca böyle bir ihtimal yok, eğer hayat açıksa SCK'ye “0” ve ardından RESET'e pozitif bir dürtü uygulamak gerekiyor:


    mal. 5. MK'nin programlama moduna aktarılması.


    mal. 6. "Program Etkinleştir" komutu.

    olarak bilinen Biti x, yakimi olabilir. Üçüncü baytın iletildiği saatte, denetleyici başka bir baytı geri göndermekten suçludur ( 01010011 ). Anlaşıldığı üzere, her şeyin yolunda olduğu, komutun kabul edildiği, denetleyici daha fazla talimat olup olmadığını kontrol ettiği anlamına gelir. Uyanır uyanmaz MK'yi yeniden değerlendirmeniz ve koçan üzerinde denemeniz gerekiyor.

    tanımlayıcı doğrulama


    mal. 7. "İmza Baytını Oku" komutu.

    Her şeyden önce, MK bilmecesine yazın, tekrar gözden geçirmeniz gerekiyor, belki aynı modele ihtiyaç vardır. Denetleyicinin dış görünüm modeli, geçerli bir üç baytlık tanımlayıcıya (İmza) sahip olabilir. Yogayı zihin komutlarıyla okuyabilirsiniz
    00110000 000xxxxx xxxxxxbb xxxxxxxx
    Milletvekili bb(komutun üçüncü baytı) 00 tanımlayıcının ilk baytı için, 01 - diğeri için 10 - Üçüncüsü için. Tanımlayıcının son baytı, komutun 4. baytı gönderildiğinde bir sonraki saat için kontrolörün iletimleri olacaktır.

    ATtiny13 için, tanımlayıcının değeri daha yenidir 00011110 10010000 00000111 (0x1E 90 07).

    Kontrolörün saflaştırılması

    mal. 8. "Çip Silme" komutu.

    Çok yakında, MK'nin hafızası, Chip Erase'in isteğiyle sanki silinecek.
    10101100 100xxxxx xxxxxxx xxxxxxx
    Bu komut, Flash ve EEPROM'u silecek (ortadakilerin tümü FF olacaktır), ayrıca kilitli savaşları kaldıracak, böylece pis koku yüklenecektir.

    Flash belleğe yaz

    ATtiny13'teki program belleği (Flash), 512 çift baytlık kelimedir (1K bayt). Word'ün adresleri 9 bit olabilir. Flash bellek kenarlara bölünmüştür, cilt tarafı 16 satır olabilir (toplamda 32 kenar). Flaşla kayıt iki aşamada gerçekleştirilir.

    Verileri, Program Belleği Sayfasını Yükle komutunun seçildiği sayfanın arabellek tarafına koymak gerekir.
    01000000 000xxxxx xxxxbbbb iiiiiiiii- kelimenin genç baytını yakalamak için, bu 01001000 000xxxxx xxxxbbbb iiiiiiiii- Zavantazhennya kıdemli için.
    3. takımın 4 genç çocuğu bbbb- yandaki kelime adresleri, iiiiiiiii- Bayt yakalayın. Sözcüğün en genç baytı ilk kez suçlanacak ve daha sonra aynı sözcüğün kıdemli baytı.

    mal. 9. "Program Belleği Sayfasını Yükle" komutunu verin.

    Yan arabellek yakalandığından, Program Belleği Sayfası Yaz komutunu yazmanız gerekir. 01001100 0000000a bbbbxxxx xxxxxxxx Tarafı kesintisiz olarak kontrolörün hafızasına kaydetmek için.
    Başka bir baytın düşük biti ve üçüncü baytın yüksek biti 4 bir:bbbb- kayıt için tarafın beşinci numarası.

    mal. 10. "Program Hafıza Sayfası Yaz" komutunu verin.

    Her şey kafa karıştırıcı görünüyor, ancak katlanabilir bir şey yok. Program belleğinin herhangi bir baytının adresleri 10 bit olarak saklanır: ppppp:bbbb:w, de
    pppp- taraf numarası ("Program Hafıza Sayfası Yaz" komutuyla kazanan);
    bbbb- yandaki kelime adresi (Program Hafıza Sayfası Yükle komutunda);
    w- kelimenin yüksek veya düşük baytını gösteren bit (Program Belleği Sayfasını Yükle komutunun ilk baytının şifrelenmesi).

    flaş okuma


    mal. 11. "Program Belleğini Oku" komutu.

    Bellenim MK'ye yazıldıktan sonra, kötü bir şekilde kopyalanmadı, verilerin bütünlüğünün herhangi bir yeniden doğrulanmasının parçaları galip gelmedi. Yeniden yazmanın tek yolu, tüm flash belleği okumak ve orijinaliyle karşılaştırmaktır.

    Programın hafızasını okumak, ona yazmak daha kolaydır. Vikonuetsya bayt bayt okuyarak storіnkovu organіzatsіyu'yu unutun. Program Belleğini Oku komutu şöyle görünür:
    00100000 0000000a bbbbbbbb xxxxxxxx- bir kelimenin en küçük baytını okumak için 00101000 0000000a bbbbbbbb xxxxxxxx- yaşlılar için.
    Başka bir baytın düşük biti ve üçüncü baytın tamamı a:bbbbbbbb- hafızadaki kelimenin adresi. Komutun 4. baytının iletimi sırasında bayt okumaları döndürülür.

    Programlamanın tamamlanması

    Belki de en basit operasyon. Programlamayı tamamlamak ve MK'yi çalışma moduna geçirmek için RESET için “1” mantıksal değerini uygulamak yeterlidir. Kontrolör yeni programdan sonra başlayacak ve çalışacaktır.

    Uygulama

    Pratikte iyi bilgi edinme zamanı geldi. Deneyin kurbanı - ATtiny13 - prototip panosuna gömülür, sinyal formunun seçimini emanet edin, her şey hazır:


    mal. 12. Deneysel şema.

    Shitimeme programı "hiçbir yerde daha kolay" gibi:
    ldi R24, 0x02 DDRB çıkışı, R24 PORTB çıkışı,R24 L1: rjmp L1
    Tek yapmanız gereken, her bacak için bir PB1 görmek ve hiç bitmeyen bir döngüye girmek. Makine kodlarında birkaç kelimeden daha azını alır:
    E082BB87BB88CFFF
    Denetleyicide їх yanıp sönmesi için aşağıdaki komutları yazmanız gerekir:
    1010 1100 0101 0011 0000 0000 0000 0000 // program etkinleştir 1010 1100 1000 0000 0000 0000 0000 0000 // çip silme 0100 0000 0000 0000 0000 0000 1000 0010 // addr.0000 düşük bayt yükle 82 0100 1000 0000 0000 0000 0000 1110 0000 / /) // Addr.0010 Low Byte 88 0100 1000 0000 0000 0000 0010 1011 1011 // Load Addr.0010 High Byte BB 0100 0000 0000 0000 0011 1111 // Load Addr.0011 Low Byte FF 0100 1000 0000 001111 1111 // addr.0011 yüksek bayt yükle CF 0100 1100 0000 0000 0000 0000 0000 0000 // sayfa yaz
    Başlat tuşu, hadi gidelim!