Mündəricat:

AVR Assembler Dərsliyi 8: 4 Addımlar
AVR Assembler Dərsliyi 8: 4 Addımlar

Video: AVR Assembler Dərsliyi 8: 4 Addımlar

Video: AVR Assembler Dərsliyi 8: 4 Addımlar
Video: MKS SGEN L V1.0 - DRV8825 2024, Iyul
Anonim
AVR Assembler Dərsliyi 8
AVR Assembler Dərsliyi 8

Tutorial 8 -ə xoş gəldiniz!

Bu qısa dərsdə, prototipləşdirmə komponentlərimizi ayrı bir "çap edilmiş" bir elektron lövhəyə necə köçürməyimizi göstərmək üçün montaj dili proqramlaşdırmasının yeni aspektlərini təqdim etməkdən bir az yayınacağıq. Səbəbi budur ki, bu anda əsas prototipləşdirmə çörək taxtamız o qədər çip, tel, düymə və LED -lə doludur ki, yeni şeyləri sınamaq çətinləşir və nəticədə komponentləri öz lövhələrinə köçürmək məcburiyyətindəyik., indi də başlaya bilərik. Yəqin ki, bir çoxlarınız bu təlimatda əhatə edəcəyimiz şeyləri artıq bilirsiniz və buna görə də bu Dərsliyə sadəcə kodlaşdırmada rahatlaşdırıcı bir fasilə kimi baxa bilərsiniz.

Beləliklə, bu gün ATmega328P zar silindrimizi və onu müşayiət edən zər cütlərini, ana lövhəmizlə əlaqə qurmaq və onu gücləndirmək üçün əlaqələri olan xarici lövhəyə köçürəcəyik. Bunun xaricində, zarların naqilləri və işləməsi həmin komponentin tərkibində olacaq.

Yəqin ki, son məqsədimizin bunu yol boyu qurduğumuz hər bir komponentlə etmək olduğunu əvvəlcədən təxmin edə bilərsiniz ki, bitirdikdən sonra hamısını görmədən düymələrə basaraq işləyəcək gözəl görünüşlü bir paketə gizlədə bilək. tellərin və daxili işlərin.

Bu təlimatın çox hissəsini bir dövrənin dizaynı, bir prototip lövhəsinin xəritələşdirilməsi və bir yerdə lehimləmə kimi fiziki tapşırıqları yerinə yetirmək üçün sərf edəcəyik, amma hər şeyi hərəkət etdirdikdən sonra etməli olduğumuz bir az proqramlaşdırma var. Səbəb, nəticədə əsas "master" nəzarətçimizlə bu dərsliklər seriyasında ümumi layihəmizin komponentlərini təşkil edən bütün "kölə" nəzarətçilər arasında ünsiyyət qurmaq üçün 2 telli Serial İnterfeysdən istifadə etməyimizdir. Xatırladığınız kimi, Tutorial 6 -da, zar rulonlarımızı zar silindrindən (Tutorial 4) 8 LED -də ikili şəkildə zar yuvarlamasının nəticəsini göstərən Qeyd Analizatoruna (Tutorial 5) çatdırmaq üçün bir növ Morze Kodu növü üsulu icad etdik.. Yaxşı ki, istifadə etmək qərarına gəldiyim bir "öz rolunu oynayın" ünsiyyət üsulu idi, çünki o vaxt 2 telli serial ünsiyyətə girmək üçün çox tez idi. İndi demək olar ki, serial ünsiyyətinin ən sonuna girməyə hazırıq və bunu 10-cu dərsdə edəcəyik, amma hələlik gələcək inkişafı gözləməli və ikisini boşaltmaq üçün LED lövhələrimizi yenidən bağlamalıyıq. serial ünsiyyət üçün lazım olan pinlər.

Bunlar ATmega328P üzərindəki SCL və SDA pinləridir. Analog-rəqəmsal çevrilmələrdə istifadə edildikdə ADC5 və ADC4 adlandıqlarını, "Pin dəyişdirmə kəsilməsi" pinləri olaraq istifadə edildikdə PCINT13 və PCINT12 adlandırıldıqlarını və nəhayət ümumiyyətlə PC5 və PC4 adlandırdıqlarını pinout diaqramından görə bilərsiniz. sadəcə PortC -də sancaqlar hesab edildikdə. Bu iki sancağı müxtəlif səbəblərə görə zar silindrimizin bir hissəsi olaraq istifadə etdiyimiz üçün (əsas olanlar kodlamanı asanlaşdırdı və lövhədəki LED-lərin bağlanmasını asanlaşdırdı) indi kodumuzu dəyişdirməli və bir az sonra yenidən bağlamalı olacağıq. gələcək ünsiyyət üçün bu sancaqları azad edin.

Beləliklə, layihələndirmə, kəsmə, məftil çəkmə və lehimləmə işlərinə başlayacağıq. Sonra yeni qurğumuzla işləmək üçün zar silindrini yenidən yazacağıq və nəhayət hələ də işlədiyinə əmin olmaq üçün sınayacağıq.

Bu Dərsliyi tamamlamaq üçün aşağıdakı maddələrə ehtiyacınız olacaq:

  1. Həmişə təkrar etməyi dayandıracağım standart şeylər: prototip lövhəniz, məlumat cədvəlinizin surəti və təlimat dəsti və beyinləriniz.
  2. Kabelsiz bir dövrə PCB lövhəsi bu kimi: https://www.ebay.com/itm/191416297627 Bu lövhənin Measure Explorer 103RAWD versiyasını istifadə edəcəyəm: https://www.ebay.com/itm/103RAT -circuit-proto-proto … çünki əlimdə bir dəstə var, amma yuxarıda bağladığım 103RAW-0 versiyası da yaxşı işləyəcək.
  3. Qayçı, tellər, lehim, lehimləmə dəmiri, "kömək əlləri" və ya hər hansı bir şey tutmaq üçün və s. Və s. Yenə buradan bu əşyaları siyahıya almağı dayandıracağam. Bu Dərsliklərdə həqiqətən bu qədər qazanmısınızsa, ehtimal ki, bütün bunları artıq əldə etmiş olacaqsınız.

AVR montajçı dərslərimin tam kolleksiyasına bir link budur:

Addım 1: Bir əlaqə diaqramı hazırlayın

Bağlama Şeması Dizaynı
Bağlama Şeması Dizaynı
Bağlama Şeması Dizaynı
Bağlama Şeması Dizaynı
Bağlama Şeması Dizaynı
Bağlama Şeması Dizaynı

Measure Explorer lövhələrinin ən maraqlı tərəfi odur ki, bir az vaxt ayırsanız və əvvəlində hər şeyi xəritəyə salsanız, sonunda özünüzü bir çox tel bağlaya bilərsiniz. Beləliklə, bir şeyi lehimləməyə başlamazdan əvvəl bir az vaxt ayıraraq dizaynımızı tərtib etməyə başlayacağıq. Bu cür lövhə ilə bir dəstə birləşdirici tel kəsmək məcburiyyətindəsiniz, bu o qədər də asan deyil, amma nəticədə ən az dolaşıq telləri olan çox gözəl bir yığcam lövhədir. Etməyimiz lazım olan ilk şey, dizayn etməkdir lövhəyə uyğun şəkildə dövrə vurun. Bunu etmək üçün gözəl bir yol, lövhənin xəritəsini yükləmək və sonra işləyən birini tapana qədər fərqli dizaynlarla oynamaqdır. İşdə ME-PB-103RAWD https://www.bluemelon.com/photo/3483513-T800600-j.webp

Addım 2: lövhədəki dövrəni kəsin

Lövhədəki dövrəni kəsin
Lövhədəki dövrəni kəsin
Lövhədəki dövrəni kəsin
Lövhədəki dövrəni kəsin
Lövhədəki dövrəni kəsin
Lövhədəki dövrəni kəsin

Əvvəlcə bir çəngəl götürün və əvvəlki addımda təsvir etdiyiniz düzeni istifadə edərək, sxeminizi lövhəyə çəkin. Yəni telləri təmsil etmək üçün xətlər çəkin. Komponentlər baxımından heç nə çəkməyin, yalnız ilk şəkildə göstərildiyi kimi birləşdirən tellər. Diqqət yetirin ki, yıxdığınız zaman (və mənim kimi bir şey olsanız, bu addımlarda hər şeyi dəfələrlə yıxacaqsınız) bir silgi istifadə edərək xətti silə bilərsiniz. Bunu lövhənin hər iki tərəfi üçün edin.

Sonra xətlər ətrafındakı əlaqələri kəsməlisiniz. Lövhəyə yaxından baxsanız, hər bir pin çuxurunun lövhənin hər iki tərəfindəki 4 bitişik olana bağlı olduğunu görürsünüz ki, işə başladığınız zaman lövhədəki bütün deliklər bir -birinə bağlanır. Beləliklə, telləri təcrid etmək üçün hər iki tərəfini kəsməlisiniz. Bu kəsmənin ən çox yayılmış yolu Exacto bıçağıdır. Ancaq Exacto bıçaqlarını yeyirəm və yəqin ki, özümü kəsərdim. Buna görə nazik bir kəsici alət əlavə ilə bir Dremel istifadə edirəm. Kaş ki, ən yaxşı işləyəcəyi üçün kəskin bir nöqtəyə çatan bir növ daşlama əlavəsi olsaydı - amma buna bənzərim yoxdur, buna görə də kəsmə mişarından istifadə etdim. (Qeyd əlavə edildi: Bu layihəni bitirdikdən sonra gördüm ki, Dremels üçün daha kiçik "ağır iş kəsmə təkəri" başlıqları ən yaxşı işləyir, kiçik zımpara dairələrinə bənzəyirlər və diametri daha kiçik olmaları istisna olmaqla burada göstərilən kəsici alət kimi işləyirlər. kəsdiyiniz yeri görmək və idarə etmək daha asandır)

Yolda lövhəni işığa qədər tutmaq və tellərin əslində kəsildiyindən əmin olmaq faydalıdır. Lövhənin hər iki tərəfində əlaqələrin olması sizi əsəbiləşdirə bilər, buna görə də kəsmə prosesini digər tərəflə təkrar etməlisiniz, amma düşünürəm ki, bitirdikcə bunun mahiyyətini görəcəksiniz. Kəsilməməli olan telləri kəsərkən çox səhvlər etdim və digər tərəfin hələ də bağlanması gözəl görünür.

Dövrəni lövhəyə kəsmək üçün bir az vaxt və səbr lazım olacaq, amma yaxşı öyrəndikdən sonra bir növ əyləncəlidir.

Addım 3: Komponentləri lehimləyin və sınayın

Komponentləri lehimləyin və sınayın
Komponentləri lehimləyin və sınayın
Komponentləri lehimləyin və sınayın
Komponentləri lehimləyin və sınayın
Komponentləri lehimləyin və sınayın
Komponentləri lehimləyin və sınayın

İndi elektrik lövhənizdəki bütün telləri ayırdığınız üçün fərdi komponentləri lehimləməyə başlaya bilərsiniz.

Əvvəlcə zarlardan birinin LED -lərini lehimlədim, sonra çörək lövhəmdən müsbət və mənfi açarları götürdüm və bir -birindən təcrid olunduqlarından və işlədiklərindən əmin olmaq üçün hər bir LED üçün əlaqələri sınadım.

Eyni şəkildə digərləri də ölür.

Sonra rezistoru hər ölümə və lövhənin arxasındakı 10K rezistora bağlayın.

Sonra kristal osilatoru, 22 pf qapaqları, düymələri və ATmega328P -ni bağlayın. Bir çip yuvasını lehimləmək və sonra ATmega328P -ni ona daxil etmək istəyə bilərsiniz ki, istəsəniz onu çıxarıb başqa bir şeydə yenidən istifadə edə bilərsiniz. Çipimi yalnız lövhəyə lehimlədim, çünki nəhayət bütün bu dərsliklər ilə nələr qurduğumuzu bilirəm və çipi çıxarmaq istəməyəcəyim qədər bəyənəcəyimi bilirəm.

Lövhənin arxasına baxaraq başlıqları necə bağladığımıza diqqət yetirin. Uzun pin başlıqlarından istifadə etdim və lövhədən yapışmamaları üçün onları horozontal əydim. Bu, nəticədə lövhəni bir konteyner ilə düymələr və LED -lər səviyyəsinə qədər əhatə edə bilərəm və başlıqlara mane olmuram. Tx, Rx üçün bir başlığımız var, çipi proqramlaşdıra bilərik, SDA, SCL üçün bir başlığımız var, beləliklə daha sonra 2 telli ünsiyyətdən istifadə edə bilərik. və lövhənin digər tərəfində AVCC, AREF, GND üçün 3 pinli başlığımız var. Çipdə birləşdirilmiş bütün torpaq pinləri və VCC pinləri var, buna görə yalnız bir güc girişinə ehtiyacımız var.

Nəhayət, hər şey telli olduqdan sonra, hər iki zəri yalnız 9 sancaqla idarə edə biləcəyimiz üçün, çörək taxtasında etdiyimiz kimi 1 ölmək üçün 2 tel kəsirik.

İndi bu yeni quruluşu idarə edə bilməsi üçün kodumuzu dəyişdirməliyik.

Addım 4: Montaj Kodu və Video

Mən montaj kodunu və əməliyyatda olan zar silindrinin videosunu əlavə etdim. Etdiyim hər şey Tutorial 6 -dan zar silindrimizin kodunu götürmək, sancaqları yeni nizama uyğun olaraq dəyişdirmək və yazacağımız üçün ünsiyyət alt proqramını silmək idi. Tutorial 10. növbəti dəfə yenidən klaviaturamızı sındıracağıq və 7 seqmentli displeyləri necə idarə edəcəyimizi öyrənəcəyik.

Tövsiyə: