Mündəricat:

AVR Mikrokontrolör Proqramlaşdırması üçün Extreme Burner istifadə: 8 addım
AVR Mikrokontrolör Proqramlaşdırması üçün Extreme Burner istifadə: 8 addım

Video: AVR Mikrokontrolör Proqramlaşdırması üçün Extreme Burner istifadə: 8 addım

Video: AVR Mikrokontrolör Proqramlaşdırması üçün Extreme Burner istifadə: 8 addım
Video: #1 JavaScript proqramlaşdırması üçün lazım olan təchizatı qurmag ( İlk addımlar ) 2024, Iyul
Anonim
AVR Mikrokontroller Proqramlaşdırması üçün EXTREME Burner istifadə edir
AVR Mikrokontroller Proqramlaşdırması üçün EXTREME Burner istifadə edir

Bütün AVR istifadəçi qardaşlığınız və axına yeni girənlər, bəziləriniz PIC mikrokontrolörlərindən, bəziləri ATMEL AVR -lərdən başladınız, bu sizin üçün yazılmışdır!

Bir USBASP aldınız, çünki Atmega cihazınızdakı ROMu və ya bəlkə də ATTINY aralığını yandırmaq ucuz və təsirli. Açıq mənbə USB-ASP-nin Çin klonları olduğu üçün bunları 5 dollardan aşağı əldə edə bilərsiniz! AVRdude onları proqramlaşdırmaq üçün bir proqramdır.

Şübhəsiz ki, Atmel Studio -dan istifadə edərək bir Hex faylının necə yaradılacağını bilirsiniz (hələ də ən son v7 əvəzinə AVR Studio v4.19 istifadə edirəm, çünki mənim tək tək nüvəli CPU noutbukumda daha sürətli və daha sürətlidir)/ Netbook və WINAVR yükləyirsinizsə bunu oxuyursunuz.. DotNet -də yazılan hər şey YAVAŞ işləyir! və sonrakı versiyalar dizüstü kompüterinizin tısbağa kimi işləməsini təmin etmək üçün hazırlanmışdır! Studio v4.19 -dan AVR mikrokontrolörləri üçün ATMEL -dən Studio -nun ən böyük versiyasını istifadə edə bilərsiniz, sonrakı fişlər üçün həqiqətən ehtiyac duyduğunuz zaman 7 -ci versiyaya keçə bilərsiniz və noutbukda vaxtınızı daha məhsuldar edərək gözləmək əvəzinə işləyə bilərsiniz! Tövsiyə etdiyim budur.

Bir Hex faylı ilə bir Atmega proqramlaşdırmaq üçün tipik bir AVR dost komanda xətti belə işləyir:

FLASHA YAZ: AVRdude -s -c avrisp -p t44 -P usb -U "flash: w: D: / ARDUINO / pwmeg1.hex: a"

burada pwmeg1.hex, Lingo mikrokontrolöründəki "hədəf MCU" ya "yandırılacaq" və ya "yanıb -sönəcək" Intel hex sənədidir

Yadda saxlamaq lazım olan bir şeydir! Bir toplu iş faylını yaza və onu Windows -da əmr satırında işlədə bilərik, buna da write_flash.bat. Eynilə qoruyucuları oxumaq üçün başqa bir ağız dolusu yadda saxlamaq lazımdır! Darıxdırıcı olur.

oxumaq üçün flash + eeprom: AVRdude -s -c avrisp -p t44 -P usb -U "flash: r: D: / ARDUINO / pwmeg1.hex: i" -U "eeprom: r:: i"

Çözüm, Bitburner, Khazama proqramçısı kimi demək olar ki, oxşar olan AVRdude üçün istifadəçi dostu GUI ön alətlərindən birini istifadə etməkdir. eXtreme Burner. Pulsuz istifadə etmək vasitəsini istifadə etdim: eXtreme Burner çox yönlü, etibarlıdır və bu dərslik bununla bağlıdır. Arxa planda AVRdude -ə verilən əmrləri istifadə edərək, onaltılıq faylınızı / proqramınızı MPU -ya yandıra bilməz, həm də yeni başlayanları AVR proqramlaşdırma ilə tez -tez qarışdıran mürəkkəb bir mövzu olan FUSES -i təyin etməyə kömək edə bilər. Burada keçə biləcəyiniz və ya fırçalaya biləcəyiniz FUSES mövzusunda əla bir dərsliyə bir bağlantı var. Bir xəbərdarlıq sözü: ATMEL, 'defolt' vəziyyətini (təyin olunmamış və ya proqramlaşdırılmamış vəziyyətini) göstərmək üçün '1' FUSE bit vəziyyətini və proqramlaşdırılmış və ya qurulmuş və ya aktivləşdirilmiş vəziyyətini göstərmək üçün '0' istifadə edir! Bu, PIC mikro nəzarətçisindəki FUSE bitləri ilə etdiyinizin tam əksidir. Daxili RC saatını xarici kristal olaraq dəyişdirmək kimi saat qoruyucu hissələrini dəyişdirərkən diqqətli olun, çünki bu, xarici kristal qurulmadan çipə qoşulmaqda problemlər yaradacaq. Eyni şəkildə SPIEN və RESET DISABLE kimi kritik sigorta bitlərinin vəziyyətini dəyişərkən diqqətli olun (ISP / SPI rejimində USB-ASP ilə MCU ilə ünsiyyətə davam etmək istəyirsinizsə, bunlar həmişə SPIEN = 0 və RESET DISABLE = 1 olaraq təyin olunmalıdır. ! Bunu açarsanız, AVR -ni "açmaq" üçün Yüksək Gərginlikli bir proqramçıya ehtiyacınız olacaq.

"Sığortaçılar nədir" və "nə edirlər" deyə düşünürsünüzsə? Bu əla yazını oxuyun:

Başqa bir mövzu, 1Mhz -dən 16 və ya 20Mhz -ə qədər olan AVR MPU'nuzun Saat sürətini necə təyin etməkdir. Düzgün tərtib edildikdə AVR -in AA batareyalarını 3 ay ərzində tükəndirə biləcəyi xüsusi bir ow güclü aşağı tezlikli 31.25kHz kristal seçimi də var!

Bunların hər ikisi, Saat Sigortası bitləri (həm tezlik, həm də saat daxili RC/xarici kristal və digər Fuse bitləri) eXtreme Burner -dəki FUSES nişanı vasitəsilə təyin edilə bilər. Əvvəlcə ROM -u oxuduğunuzu və sonra eXtreme Burner -dən istifadə edərək hex faylını necə yandıracağınızı göstərəcəyik. Əlbəttə ki, onlayn AVR qoruyucu veb saytlarından da istifadə edə bilərsiniz, amma izah etdiyim seçim siz də hər yerdə oflayn olduğunuzda istifadə edilə bilər.

Addım 1: Ayarlar:

Ediləcək parametrlər
Ediləcək parametrlər
Ediləcək parametrlər
Ediləcək parametrlər
Ediləcək parametrlər
Ediləcək parametrlər
Ediləcək parametrlər
Ediləcək parametrlər

Şəkillər işə başlamazdan əvvəl ediləcək AYARLARI göstərir. (yalnız bir dəfə). 'Hardware settings' alt menyu maddəsi altında, 375Hz seçirik, çünki ATMEL fabrikindəki MCU-nun əksəriyyəti daxili RC osilatorunda 1 Mhz CPU saatının Varsayılan ayarlarına qurulmuşdur. İnternet provayderinin sürəti F_cpu Rübüdür. Bu bizə ən yaxın sürəti 375 Khz verir, daha aşağı sürətlə gedə bilərsiniz, çox da fərq etməz. Varsayılan olaraq buraxaraq əlaqə qurmağa cəhd edə bilərsiniz və "hamısını oxuyun" yaza bilərsiniz, əgər uğursuz olarsa, bura gəlib sürəti dəyişdirə bilərsiniz.

Çünki əlaqə qura bilmirsinizsə (proqramçı pəncərəsində "çiplə əlaqə qura bilmir, SCK bilmir" mesajı veriləcək), kompüterinizdən gələn saat siqnalının oxumağa çalışdığınız çiplə sinxronizasiya oluna bilməməsi deməkdir. proqram)., CPU saatının sürətini dəyişə və ya sürətini və növünü dəyişdirə bilməyəcəksiniz! Beləliklə, əlaqə hər şeyin əsasını təşkil edir! Spielberg filmlərində gördüyünüz kimi "İLK KONTAKT" kimidir. Buna müvəffəq olsanız, sigortaları müvafiq olaraq proqramlaşdıraraq MCU'nuzun saat sürətini artıra bilərsiniz və daha sonra qoşulmaq üçün daha yüksək bir sürət istifadə edə bilərsiniz.

Burada verilən hardware parametrləri anlarından keçin, sonra cihaz tipini də (proqramlaşdırmağa çalışdığınız çipi, model nömrəsini) təyin edin.

Addım 2: Cihazınızın növünü təyin edin

Cihaz Tipinizin Ayarlanması
Cihaz Tipinizin Ayarlanması
Cihaz Tipinizin Ayarlanması
Cihaz Tipinizin Ayarlanması
Cihaz Tipinizin Ayarlanması
Cihaz Tipinizin Ayarlanması

ekran görüntüsünə baxın, Şəkil 1, "ATTINY44A" qurduq. Bu, UART -dan başqa 14 pinli Mikrokontrollerdir. Bu yaxınlarda SSU versiyasını istifadə edirəm. Extreme burner stok versiyasını quraşdırmısınızsa, cihaz seçimi açılan siyahısında Attiny44A görməyəcəksiniz, bu məqsədlər üçün Attiny44A proqramlaşdırmaq üçün istifadə edə biləcəyimiz bir Attiny44 görürsünüz və bu açılan siyahıda yoxdur., digər göstərişli "Hacking eXtreme Burner" ı oxuyun.

Atmega88PA-AU-nu eXtreme Burner ilə də istifadə edirəm, amma bu Təlimat kitabında hər yerdə "Attiny44A" dan bəhs edirik. İndi kiçik 7 mm kvadrat SMD çipinin çörək taxtası versiyasını necə hazırlayırsınız və proqramlarınızla sınayırsınız? (çip ölçüsünü göstərən şəkillərə baxın), Bunun üçün Attiny44A-SSU və ATmega88PA-AU istifadə edərək Breadboard-a uyğun Plug-in Modullarını necə düzəltməyimi göstərdiyim digər göstərişlərimə baxın.

Bu texnikanı öyrəndikdən sonra SMD və ya DIL paketindən asılı olmayaraq maraqlandığınız hər hansı bir çipi yoxlaya biləcəksiniz. Məsələn, oxşar şəkildə 32 pinli 0.8mm pinli Quad paketində (Atmega88A) gələn bir SMD çipindən də istifadə etdim!

. Ya da bu Təlimat üçün Attiny44A -nın 28pin DIL versiyasını və ya AVR proqramlaşdırması üçün eXtreme Burner -i sınamaq üçün istifadə etdiyiniz hər hansı AVR -dən istifadə edə bilərsiniz.

Addım 3: BÜTÜN OXUYUN və ya OXUŞUNU oxuyun

Hamısını oxuyun və ya oxuyun
Hamısını oxuyun və ya oxuyun
Hamısını oxuyun və ya oxuyun
Hamısını oxuyun və ya oxuyun

USBasp -ı dizüstü kompüterinizin USB portuna qoşun, güman edirəm ki, proqramçınızla birlikdə gələn və düzgün aşkarlanan düzgün sürücüləri yükləmisiniz. USB portuna qoşulduqda, pəncərələrin başlanğıc menyusunda 'Cihazlar və Yazıcılar' altında görünməlidir! Hədəf çipinizi USBasp ilə lövhəyə qoşun (6 pinli və ya 10 pinli kabel istifadə edərək müvafiq SDI // ISP pinləri, yəni pinlər arasında bağlanmalıdır: MOSI, RESET, MISO, SCK, Vcc, Ground).

Xtreme Burner -in MENÜSÜNDƏN BÜTÜN OXUYUN. Əldə etdiyimiz şəkillərə və mesajlara baxın. Əvvəlcə ekranınız brülörün İlk TAB -da ROM üçün 'FF' göstərdi, hamısını oxuduqdan sonra çipdəki əsl ROM məzmununu göstərəcək. Təzə bir çip və ya silinmiş bir çip istifadə etsəniz, "Hamısını oxuyun" dan sonra məzmunda FF görürsünüz. Proqramlaşdırılmamış bir çip yaddaşında 'FF' göstərəcək, EEPROM da (proqramçının ikinci sekmesi), son sekmesinde FUSES göstərilir.

Hamısını oxuduqdan sonra 3 nişanı çipdə olan düzgün məlumatları göstərəcəkdir. Bundan əvvəl olmazdı, buna görə hər şeyi bağladığınız anda əvvəlcə hamısını oxuyun.

Addım 4: Flash -a yazın (Hex faylınız çipdəki ROM -a daxil oldu)

Flash -a yazın (Hex faylınız çipdəki ROM -a daxil oldu)
Flash -a yazın (Hex faylınız çipdəki ROM -a daxil oldu)
Flash -a yazın (Hex faylınız çipdəki ROM -a daxil oldu)
Flash -a yazın (Hex faylınız çipdəki ROM -a daxil oldu)
Flash -a yazın (Hex faylınız çipdəki ROM -a daxil oldu)
Flash -a yazın (Hex faylınız çipdəki ROM -a daxil oldu)

Yuxarıdakı MENU çubuğundakı ilk simvolu tıkladığınızda açılan Gözdən keçirmə dialoqundan istifadə edərək bir fayl seçin. Şəkildə gördüyünüz kimi bir fayl seçdik. Onaltılıq faylını (intel hex formatı) seçdikdən sonra "heç bir fayl yüklənməmişdir" göstərən Menyu çubuğu yüklədiyiniz fayl adına dəyişdi.

İndi proqram menyusundan bir Yazma Flaşı buraxın. Mesajlar sizə baş verənləri göstərəcək. şəkillərə baxın.

Uğurlu bir yazdıqdan sonra, proqramınızın və ya altıbucaqlı faylın tərkibində təzə və ya silinmiş ROM dəyişikliyini qeyd edən 'FF' yazısını görürsünüz. Faylınızın ROM -da tutduğu baytların ölçüsü və ya sayı, indi çaldığınız hədəf çipinizin əsl ROM məzmununu göstərən bu ekrana baxaraq sizə də məlumdur.

Doğrulama addımı, ilk addımda etdiyimiz AYARLARA uyğun olaraq çipi oxuyaraq da edilir. Doğrulamanın da uğurlu olduğu mesajlarda görülür.

Addım 5: QEYDİYYATLAR: EXTREME Burner -də onları necə qurmaq olar

QEYDİYYATLAR: Extreme Burner -də onları necə qurmaq olar
QEYDİYYATLAR: Extreme Burner -də onları necə qurmaq olar

BÜTÜN READ oxuduqda sigortalar çipdən oxundu. BU İLK şəkil fuses-j.webp

İndi bəlkə də onları başqa bir şeyə dəyişmək lazımdır. Sigortalar, eXtreme Burner ekranınızdakı son TAB -da 4 qutudan ibarətdir. Yəni DÜŞÜK FUSE BYTE, HIGH FUSE BYTE, EXTENDED FUSE BYTE, LOCK FUSE BYTE və CALIBRATION BYTE. bu qaydada göstərilir.

Sadəcə bir ONLINE qoruyucu kalkulyatordan istifadə edə və onları da olduğu kimi doldura bilərsiniz

eleccelerator.com/fusecalc/fusecalc.php?

Və ya sizin üçün bunu etmək üçün eXtreme burner istifadə edə bilərsiniz. İstənilən vaxt offline olaraq: Hər növ qoruyucu baytın altındakı DETAYLAR düyməsini tıkladığınızda görünən açılan siyahıdan seçin. AYRINTILAR ekranındakı hər hansı bir xətti iki dəfə vurun və SET -dən CLEARED -ə dəyişdiyini seyr edin və siçanınızın hər sətrini vuraraq vəziyyətini dəyişin. Yuxarıdakı qutudakı Sigorta Baytı buna uyğun olaraq dəyişəcək.

"Sığortaçılar nədir" və "nə edirlər" deyə düşünürsünüzsə? Bu əla yazını oxuyun:

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

Addım 6: Extreme Burner Sigorta Kalkulyatorundan istifadə edərək Sigortaların qurulması

Fövqəladə Burner Sigorta Kalkulyatorundan istifadə edərək qoruyucuların qurulması
Fövqəladə Burner Sigorta Kalkulyatorundan istifadə edərək qoruyucuların qurulması
Fövqəladə Burner Sigorta Kalkulyatorundan istifadə edərək qoruyucuların qurulması
Fövqəladə Burner Sigorta Kalkulyatorundan istifadə edərək qoruyucuların qurulması
Fövqəladə Burner Sigorta Kalkulyatorundan istifadə edərək qoruyucuların qurulması
Fövqəladə Burner Sigorta Kalkulyatorundan istifadə edərək qoruyucuların qurulması

Sigorta baytlarının hər biri üçün görünən Ətraflı Ekranı görə bilərsiniz (LOW, HIGH, EXTENDED, LOCK və Calibration). Daxili RC osilatoruna tətbiq olunan AVR -də kalibrləmə məlumat baytını göstərdiyi üçün Kalibrləmə baytı dəyişməz qalmalıdır. LOCK baytı ümumiyyətlə FF -dir (yuxarıdakı şəkillərdə müzakirə edilmir), çünki öyrənmə mərhələsində Flash və ya EEPROM -u bağlamayacaqsınız. Yalnız DÜŞÜK, YÜKSƏK və UZATILAN baytları dəyişərdiniz. Ehtiyatlı ol !

SPIEN bitini 1 -ə dəyişsəniz (AVR mikrokontrolörlərində proqramlaşdırılmamış vəziyyət 1 -dir) USBASP və ya hər hansı bir proqramçıdan istifadə edərək çipinizlə əlaqə qura bilməzsiniz! Varsayılan vəziyyət, hər bir qoruyucu bit üçün ekranda da göstərilir. Bu, ISI proqramlaşdırma üçün SPI rejimindən istifadə etməyə icazə vermək üçün SPIEN default -un hər zaman 0 (proqramlaşdırılmış vəziyyət) olduğunu bildirir. Debug-tel və ya DW biti SPIEN 0 olaraq təyin edildikdə həmişə 1 qalır (proqramlaşdırılmamışdır). Bu da onun standart vəziyyətidir. Ayrıca, Genişləndirilmiş Fuse bitlərində, hədəf çipinizi proqramlaşdırmaq üçün USB-ASP-dən istifadə edirsinizsə (ARDUINO-dakı kimi bootloader ROM-dan istifadə etməsəniz) 'Self Programming Enable ' 1 '(proqramlaşdırılmamış) olmalıdır.

Daxili RC və ya xarici kristal seçmək üçün SAAT bitlərini (3 ədəd) dəyişə bilərsiniz. Normalda, xarici kristalın sərbəst buraxılmasının AVR layihələriniz üçün PORT pinləri kimi istifadə olunmasını tələb edən 2 əlavə sancaq əldə etməyə imkan verən daxili RC üçün buraxıram. Layihənizdə yüksək dəqiqlik vaxtına ehtiyacınız olduqda ümumiyyətlə xarici kristal lazımdır. Daxili RC öyrənənlər üçün kifayətdir.

Bir qayda olaraq, bəzi qoruyucu birləşmələrə qərar verdiyiniz zaman onu dəyişdirməyəcəksiniz. Birdəfəlik olardı. Yalnız ROM və ya bəzən EEPROM -u yandıracaqsınız. EEPROM -un yanıb -sönməsi üçün ayrı bir proqram. WINAVR / ATMEL studiyanız tərəfindən hazırlanmışdır. Əks təqdirdə, EEPROM istifadə edilmədən qalır və EEPROM -un 'VERİ VƏZİYYƏTİ YOX' olduğunu göstərən 'FF' məlumatları ilə doldurulur.

Addım 7: Sigorta bitlərinin son dəyəri

Sigorta bitlərinin son dəyəri
Sigorta bitlərinin son dəyəri

Bütün Fuse bitlərini qurduqdan və istifadə etdiyiniz DETAILS qutularını bağladıqdan sonra proqram tərəfindən hesablandığı kimi Fuse bitlərinin dəyərini görə bilərsiniz (şəkilə bax). Menyudan istifadə edərək "Yazma Sigortaları" buraxmaq qalır. Və müvəffəqiyyətli bir yazını bildirən mesajlara baxın. Daha sonra menyudan BÜTÜN READ oxuya bilərsiniz və burner ekranının son TAB -da oxunan sigortaların çipə yazmaq istədiyiniz şeylə üst -üstə düşdüyünü yoxlaya bilərsiniz. (Sigorta yoxlaması).

Bu təlimatın başlanğıcında SİTARİFLƏRİ oxuduğumuzda, ekranda burada gördüyümüz FUSE dəyərlərinin eyni olduğunu görürsünüz! Bunun səbəbi, tez -tez istifadə etdiyim qoruyuculardır və bəzi layihələr üçün tezliyi 1 Mhz -dən 4 Mhz -ə dəyişmədikcə MCU -ya quraşdırdıqdan sonra nadir hallarda dəyişirəm. AVR maksimum 20Mhz -ə təyin edilə bilər (bəzi çiplər yalnız 16Mhz -ə qədər). F_cpu üçün təyin etdiyiniz tezlik də çipi təchiz etdiyiniz Gərginliyə bağlıdır! Məsələn, çipiniz 1.8V Vcc -dən 5.5V -ə qədər Vcc -də işləyirsə (məlumat vərəqinə baxın), yalnız 1.8V verdiyiniz təqdirdə Çipinizi 20 mhz -də işə salacağını gözləməzdiniz! ondan çox şey gözləyirsən! Məlumat vərəqindəki bir cədvəl, frekansın hansı fiqurda hansı gərginliyi üstələdiyini bildirir. Çip işləmə tezliyiniz nə qədər yüksək olsa, o qədər çox istilik və daha çox enerji istehlak edir. Tezliyi bir heyvanın ürək döyüntüsü kimi düşünün. Yüksək eşitmə sürətinə malik olan sinek quşu, ürək döyüntüsü çox aşağı olan balinaya və ya filə nisbətən dəqiqədə daha çox enerji yandırır! Ancaq sonra daha qısa müddətdə daha çox şey edə bilər. MCU eynidir.

Addım 8: Bitirin

İndi eXtreme burner -dəki bütün addımları tamamladınız, bir çipin ROMunu oxudunuz, bir HEX Faylını açdınız və çipə yandırdınız və flaşın yaxşı olduğunu yoxladınız, qoruyucuları necə qurub çipə yandıracağınızı da öyrəndiniz..

Hər hansı bir sualınız varsa, təlimatı aydınlaşdırmaq üçün cavablandırmaqdan və ya dəyişdirməkdən məmnun olarıq.

Bəzi çiplər üçün girişin menyudakı çip seçimi açılan siyahısında olmadığını görə bilərsiniz. Yoxsa yazma səhvləri ilə üzləşə və səhvləri yoxlaya bilərsiniz. Belə hallarda problemi həll etmək üçün zəhmət olmasa digər göstərişli "Hacking eXtreme Burner" ı oxuyun.

Xoşbəxt proqramlaşdırma.

Tövsiyə: