Mündəricat:

AVR/Arduino Raspberry Pi ilə yanıb -sönür: 3 addım (şəkillərlə)
AVR/Arduino Raspberry Pi ilə yanıb -sönür: 3 addım (şəkillərlə)

Video: AVR/Arduino Raspberry Pi ilə yanıb -sönür: 3 addım (şəkillərlə)

Video: AVR/Arduino Raspberry Pi ilə yanıb -sönür: 3 addım (şəkillərlə)
Video: Sıfır xətti olmayan yuvada səssiz zigbee rölesi, quraşdırma xüsusiyyətləri, kondansatörün 2024, Noyabr
Anonim
Raspberry Pi ilə AVR/Arduino yanıb -sönür
Raspberry Pi ilə AVR/Arduino yanıb -sönür

Sistem içi proqramçı (ISP), bir çox mikro nəzarətçini proqramlaşdırmaq üçün istifadə edə biləcəyiniz bir cihazdır, məsələn, Arduino Uno-nun beyni olan ATMega328p. USBtinyISP kimi bir şey ala bilərsiniz və ya bir Arduino istifadə edə bilərsiniz. Bu təlimat sizə bir Raspberry Pi -ni ISP olaraq necə istifadə edəcəyinizi göstərəcək.

Arduino IDE -nin fişləri flaş etmək üçün başlıq altında istifadə etdiyi avrdude proqramı bir çox proqramçı ilə birlikdə istifadə edilə bilər. Seçimlərindən biri, Pi'nin genişləndirici portundakı SPI pinlərindən istifadə etməkdir. Müvafiq əlaqələri necə quracağınızı, perfboardda sadə bir dövrə quracağınızı izah edəcəyəm ki, hər dəfə bir çip yandırmaq istədiyiniz zaman naqilləri təkrar etməyəsiniz və avrdude -ni necə qurub istifadə edəsiniz. Arduino IDE istifadə edərək ATmega və ya ATtiny kimi bir AVR çipinə bu metoddan istifadə edərək proqramların necə qurulacağını da göstərəcəyəm.

Lazım olan şeylər:

  • Ən son Raspbian quraşdırılmış Raspberry Pi
  • 40 pinli kişi başlıq yuvası (və ya daha köhnə bir Pi varsa 26 pinli)
  • Pi -yə qoşulmaq üçün IDE kabeli
  • 16 MHz kristal rezonator
  • 22 pF kondansatörler (2)
  • Proqramçı statusunu göstərmək üçün LED (1)
  • 8, 14 və/və ya 28 pinli IC yuvası, hansı fiş fişini yandırmaq istədiyinizə görə
  • Bir az lövhə, tel, lehim

Addım 1: Cobbler Əlavəsi qurmaq

Cobbler Əlavəsi qurmaq
Cobbler Əlavəsi qurmaq
Cobbler Əlavəsi qurmaq
Cobbler Əlavəsi qurmaq
Cobbler Əlavəsi qurmaq
Cobbler Əlavəsi qurmaq

Dörd telli serial olaraq da adlandırılan Serial Periferik İnterfeysi (SPI), tək bir master cihazı ilə bir və ya bir neçə qul cihazı arasında ünsiyyət qurmağın bir yoludur. Bunu fişləri flaş etmək üçün istifadə edəcəyik, ustası Pi, qul isə çipdir. Pi ilə çipiniz arasında aşağıdakı əlaqələri quracaqsınız (hansı pinlərin olduğunu bilmək üçün müxtəlif AVR və Pi genişləndirmə portları üçün yuxarıdakı pinoutlara baxın):

  • MOSI (master-out-slave-in) pinlərini bir-birinə bağlayın
  • SCLK (paylaşılan saat) pinlərini birlikdə bağlayın
  • Pi-ni çipdən gözlənilməz yüksək gərginliklərdən qorumaq üçün MISO (qulluqdan çıxma) pinlərini 220 Ohm rezistorla birləşdirin.
  • Pi üzərindəki GPIO 25 -i birbaşa çipdəki RESET pininə qoşun. Proqramlaşdırma zamanı Pi bu pimi aşağı çəkir, buna görə proqramlaşdırma zamanı onu yüksək saxlamaq üçün 10K müqavimət və proqramlaşdırma zamanı bizə gözəl vizual rəy vermək üçün müsbət gərginliyə işləyən 1K qoruyucu rezistoru olan bir LED istifadə edirik.

Yer və güc (3.3V) pinlərini Pi ilə proqramlaşdırmaq istədiyimiz çiplər arasında bağlayırıq. Bilmirsinizsə, Raspberry Pi -nin pinləri 5V -ə dözümlü deyil - üzərində 3.3V -dən çox görünsə zədələnəcək. Proqramlaşdırılan çiplərin nədənsə 5V gücünə ehtiyacı varsa, Pi sancaqlarını qorumaq üçün bir səviyyə dəyişdirmə çipindən istifadə edə bilərik, amma 3.3V istifadə edərək heç bir problem yaşamamışam - buna görə onu təhlükəsiz oynamağı və komponentlərə qənaət etməyi məsləhət görürəm.

Nəhayət, çipdəki XTAL sancaqlar arasında 16MHz bir kristal osilator bağlayırıq və onu da bir neçə 22pF kondansatör vasitəsilə yerə bağlayırıq. AVR çipləri fərqli tezliklərdə çalışa bilər və bu tezliyi təyin etmək üçün daxili və ya xarici bir qaynaqdan istifadə etmək üçün də qurula bilər. Çipiniz tezlik mənbəyi olaraq xarici bir kristal istifadə edəcəksə, onsuz yenidən proqramlaşdıra bilməyəcəksiniz. Əks təqdirdə orada olub -olmamasının əhəmiyyəti yoxdur.

Son şəkildəki dövrə sxemini, ayaqqabı əlavənizi taxtaya taxmaq üçün bir bələdçi olaraq istifadə edə bilərsiniz. İstədiyiniz qədər çox və ya bir neçə fərqli IC yuvasına sahib ola bilərsiniz, yalnız uyğun pinləri Pi və kristal ilə paralel olaraq bağlayın. N. B. bir prototipim şəklini bələdçi olaraq istifadə edirsinizsə, unutmayın ki, əlaqəsiz səbəblərdən Pi üzərindəki sancaqlara daxil ola biləcəyim üçün əlavə başlıqlar və rozetkalar əlavə etdim.

Addım 2: Avrdude qurmaq və istifadə etmək

Avrdude qurmaq və istifadə etmək
Avrdude qurmaq və istifadə etmək
Avrdude qurmaq və istifadə etmək
Avrdude qurmaq və istifadə etmək
Avrdude qurmaq və istifadə etmək
Avrdude qurmaq və istifadə etmək
Avrdude qurmaq və istifadə etmək
Avrdude qurmaq və istifadə etmək

Pi -də avrdude qurmaq üçün sadəcə yazın

sudo apt-get avrdude quraşdırın

Daha sonra açılmamışsa, SPI interfeysini aktiv etməlisiniz. Bunu etmək üçün bir əmr satırı yolu var, ancaq Raspberry Pi konfiqurasiya alətindən istifadə etmək daha asandır. Yazın

sudo raspi-config

və SPI -ni açmaq üçün İnterfeys Seçimlərinə keçin.

Çipinizi yandırmaq üçün, Pi -dən olan lent kabelini perfboard dövrəsindəki konnektora daxil edin və çipi uyğun IC yuvasına daxil edin (doğru tərəfə baxdığından əmin olun).

Bir proqramı yandırarkən, çipdəki qoruyucuları düzgün qurduğunuzdan da əmin olmalısınız. Bunlar həqiqətən hansı saat sürətində çalışacağını, çip yazarkən EEPROM -un silinib silinməyəcəyini söyləmək üçün qoyduğunuz çipdəki bitlərdir. Hər biti necə quracağınızı anlamaq üçün tam AVR spesifikasiyasını oxuya bilərsiniz, ancaq engbedded.com/fusecalc saytında təqdim olunan qoruyucu kalkulyatordan istifadə etmək daha asandır. İstifadə etdiyiniz AVR hissə adını seçin və "Xüsusiyyət Seçimi" sahəsində istədiyiniz variantları seçin. Adətən saat parametrlərinin düzgün olduğundan əmin oluram və digər şeyləri standart olaraq qoyuram. Demək olar ki, həmişə "Seri proqramlaşdırma aktivdir" yoxlanılır və "Sıfırla deaktivdir" Yoxlanılmamış qalmaq istəyəcəksiniz - əks halda çipi yenidən proqramlaşdıra bilməyəcəksiniz. Doğru parametrlərə sahib olduğunuzda, "Cari Ayarlar" sahəsini aşağıya fırladıb şəkildəki kimi AVRDUDE arqumentlərini kopyalaya bilərsiniz.

Sigortaları qurmaq üçün əmri daxil edin

sudo avrdude -c linuxspi -P /dev/spidev0.0 -p

hissə adı istifadə etdiyiniz çipə uyğundur. Sudo ardude -c linuxspi -p? Yazaraq hissə adlarının siyahısını tapa bilərsiniz. Proqramınızı flaş etmək üçün cari qovluğunuzda olduğundan əmin olun və daxil olun

sudo avrdude -c linuxspi -P /dev/spidev0.0 -p -U flaş: w:: i

Hər iki əmrdən sonra, çip dəyişdirilərkən LED yanacaq.

Addım 3: Arduino proqramlarını AVR -lərə daxil edin

Arduino Proqramlarını AVR -lərə daxil etmək
Arduino Proqramlarını AVR -lərə daxil etmək
Arduino Proqramlarını AVR -lərə daxil etmək
Arduino Proqramlarını AVR -lərə daxil etmək
Arduino Proqramlarını AVR -lərə daxil etmək
Arduino Proqramlarını AVR -lərə daxil etmək

Bu təlimatın əsas diqqəti, əvvəlcədən tərtib edilmiş proqramları çiplərin üzərinə yazmaqdır, onları necə yazmaq və ya tərtib etmək deyil. Bununla birlikdə Arduino IDE -dən istifadə edərək ikili faylları necə tərtib edə biləcəyinizi və bu metoddan istifadə edərək onları çılpaq AVR çiplərinə necə yükləyə biləcəyinizi izah etmək istədim, çünki Arduino -nu öyrənmək nisbətən asandır və çoxlu dərsliklər və nümunələr var.

Əvvəlcə yanıb -sönəcək AVR çipləri haqqında məlumat əlavə etməlisiniz ki, IDE onlar üçün necə tərtib ediləcəyini bilsin. James Sleeman, github -da mövcud olan bəzi quraşdırma fayllarını çox faydalı şəkildə bir araya gətirdi. Onlardan istifadə etmək üçün Arduino IDE -də "Tercihlər" menyusunu açın və "Əlavə Kartlar Meneceri URLləri" sahəsinin yanındakı qutuyu vurun. Görünən informasiya qutusuna aşağıdakı URL -ləri kopyalayın və yapışdırın:

Sonra "Alətlər" menyusuna gedin və "İdarə Heyəti" alt menyusunda "Lövhələr Meneceri…" seçimini tapın. Lövhələr Meneceri informasiya qutusunda siyahının sonuna doğru diyirləyin və DIY ATmega və DIY ATtiny lövhələrini quraşdırın.

Proqramlarınızı tərtib etmək üçün əvvəlcə "Prosessor" menyusundan düzgün çipi seçdiyinizdən və düzgün İşlemci Sürətindən əmin olun. "Bootloader istifadə edin: Xeyr" seçimini seçin, çünki birbaşa Pi ilə yükləyəcəyik və buna görə də normal olaraq Arduino bootloader tərəfindən alınacaq əlavə yerdən istifadə edə bilərik. İndi "Doğrula" düyməsini basın (onay işareti). Bu, proqramınızı yükləməyə çalışmadan tərtib edəcək (çünki bu addımı özünüz edirsiniz).

Hər şeyin yaxşı getdiyini düşünərək, indi tərtib edilmiş proqramı Pi -yə çatdırmalısınız. IDE onları müvəqqəti bir yerdə gizlədir, çünki proqramları özü yükləmək üçün hazırlanmışdır. Windows -da, istifadəçi qovluğundakı AppData/Local/Temp -də, 'arduino_build' ilə başlayan qovluqdadır.. Hex faylını axtarın - bu sizin proqramınızdır! FTP vasitəsilə və ya USB çubuğu ilə Pi -yə göndərin və işiniz var.

Bunu etmək üçün proqramlarınızı tərtib etmək üçün Windows PC və ya Mac -a sahib olmağınız tələb olunur, sonra onu Pi -yə göndərirsiniz. Bunu Pi -nin özündə etmək həqiqətən gözəl olardı, amma təəssüf ki, Raspbian anbarında mövcud olan Arduino IDE -nin rəsmi versiyası olduqca köhnədir və İdarə Heyətinin meneceri yoxdur. Bu olmadan, çılpaq AVR -lər üçün tərtib etmək üçün uyğun parametrləri əlavə etmək bir az çətindir. Pi -də Arduino -nun daha yeni bir versiyasını tərtib etmək üçün orada dərsliklər var - əgər bunu etmək istəsən, get onları tap! IDE -nin bir çipi IDE -nin özündən (yəni "Yükləmə" düyməsini istifadə edərək) yanıb -sönməsi üçün linuxspi proqramçıdan istifadə etməsinin mümkün olacağını düşünürəm, amma bu mənim səbr və bacarıq səviyyəmdən kənardır - əgər bilirsinizsə bir şəkildə, şərhlərdə yazın! Nəhayət, proqramları birbaşa AVR-C-də yaza və Raspberry Pi-də tam bir AVR inkişaf etdirmə platforması verərək avr-gcc ilə Pi üzərində tərtib edə bilərsiniz. Bunun bir azını etdim və bu yola getmək istəyirsinizsə, sizi salamlayıram. Yanıp sönün!

Tövsiyə: