Mündəricat:

Bus Pirate üçün HD44780 LCD -dən I2C Adaptör Kartı: 9 addım
Bus Pirate üçün HD44780 LCD -dən I2C Adaptör Kartı: 9 addım

Video: Bus Pirate üçün HD44780 LCD -dən I2C Adaptör Kartı: 9 addım

Video: Bus Pirate üçün HD44780 LCD -dən I2C Adaptör Kartı: 9 addım
Video: ЗАПРЕЩЁННЫЕ ТОВАРЫ с ALIEXPRESS 2023 ШТРАФ и ТЮРЬМА ЛЕГКО! 2024, Noyabr
Anonim
Bus Pirate üçün HD44780 LCD -dən I2C Adaptör Kartına
Bus Pirate üçün HD44780 LCD -dən I2C Adaptör Kartına
Bus Pirate üçün HD44780 LCD I2C Adapter Board
Bus Pirate üçün HD44780 LCD I2C Adapter Board

HD44780 çipsetinə əsaslanan ucuz xarakterli LCD -lər müxtəlif ölçülərdə olur: 2x16, 4x20 və s. Bu ekranlar 4bit və 8bit paralel olaraq iki standart interfeys rejiminə malikdir. 8bit üçün 11 məlumat xətti, 4 bit üçün isə 7 (yalnız yazmaq üçün 6) tələb olunur. Bəzi LCD -lər, Hack a Day -da əhatə etdiyim VFD kimi əlavə serial məlumat rejimini dəstəkləyir. Avtobus Piratında yalnız 5 voltluq tolerant G/Ç pinləri var, buna görə LCD -ni idarə etmək üçün kifayət qədər sancaqlar olan kiçik bir adapter lövhəsi hazırladıq. Bus Pirate, adapter panelini LCD interfeys kitabxanası vasitəsilə idarə edir. Bus Pirate HD44780 xarakterli LCD adapter lövhəsi və interfeys kitabxanası haqqında oxumağa davam edin. Dünyada göndərmə də daxil olmaqla təxminən 15 dollara Seeed Studio tərəfindən istehsal olunan PCB -lərə, dəstlərə və ya yığılmış dəstlərə sahib ola bilərəm. Bəzi formatlaşdırma elementlərini və HTML cədvəllərini Təlimatlandırıma daxil edə bilmədim, orijinal yazını Dangerous Prototypes -də görə bilərsiniz. blog.

Addım 1: Avadanlıq

Avadanlıq
Avadanlıq
Avadanlıq
Avadanlıq
Avadanlıq
Avadanlıq

Bu yazıda HD44780 əsaslı LCD üçün I2C adapter lövhəsini təsvir edirik. Bunu Bus Pirate universal serial interfeysi ilə nümayiş etdiririk. I2C əsaslı HD44780 interfeys kitabxanası üçün Bus Pirate mənbə kodu ictimaiyyətə məxsusdur, buna görə öz layihələrinizə uyğunlaşmaq pulsuzdur. HardwareFull ölçülü dövrə görüntüsü [PNG]. Dövrə və PCB Cadsoft Eagle -in pulsuz versiyası ilə hazırlanmışdır. Dizayn sənədləri Bus Pirate SVN -dən yüklənə bilər. Adapter lövhəsini istifadə etməzdən əvvəl, LCD -nin məlumat cədvəlini adapterin çıxışı ilə yoxladığınızdan əmin olun. Bütün LCD -lər eyni deyil. PCF8574 I/O genişləndiricisi IC Bu, iki telli I2C interfeysi ilə idarə olunan sadə 8 G/Ç genişləndirici çipidir. I2C interfeysi JP1 başlığından əldə edilə bilər. PCF8574 2,5 ilə 5 volt arasında işləyir. I/O pinləri təchizat gərginliyində işləyir, buna görə də 5 voltla qidalandırsaq, 5 voltlu LCD ilə əlaqə qurur. C1 (0.1uF), IC -ni enerji təchizatı dalğalanmalarından ayırır. PCF8574 -ün bir pimi, cərəyan məhdudlaşdırıcı R2 (1000 ohm) vasitəsilə 3 mm LED (LED1) idarə edir. LED işıqları, Bus Pirate ilə adapter arasındakı uğurlu ünsiyyəti göstərir. PCF8574, LED -i enerji ilə təmin etmək üçün kifayət qədər cərəyan verə bilmir, buna görə də LED -i 5 voltluq təchizatdan və torpağı dəyişdiririk. LCD Adapter lövhəsi 4 bit paralel interfeys rejimində HD44780 əsaslı bir xarakterli LCD ilə əlaqə qurur. 4 bitlik interfeys pinləri - RS, RW, EN və D4 -D7 - PCF8574 I/O pinlərinin yeddisinə bağlıdır. Adapteri bir LCD -yə bağlamaq üçün 0,1 "kişi pin başlığı istifadə etməyi sevirik, tez bir test üçün kifayət qədər əlaqə yaratmaq üçün LCD -ni sancaqlara söykəyə bilərsiniz. Trimmer rezistoru R1 (10K), pin 3 -ə kontrast tənzimləmə gərginliyi təmin edir. LCD başlığı. Çox fərqli arxa işıq üslubları olduğu üçün arxa işıq sancaqlarını bağlamadıq. LED arxa işığın enerjisini təmin etməsi mənfi gərginlik tələb edən bir ekrana zərər verə bilər. Enerji təchizatı Əksər LCD -lər 5 volt tələb edir, Başlıq JP2. Bus Pirate-in çəkmə müqavimətçilərini birləşdirmək üçün ikinci bir enerji təchizatı pinini təqdim etdik. PCB Dövrə və PCB, Cadsoft Eagle-in pulsuz versiyası ilə hazırlanmışdır. Dizayn sənədləri Bus Pirate SVN-dən yüklənə bilər. PCB tək keçidli telli (qırmızı rəngdə göstərilmişdir) birtərəfli, hamısı deşikli dizayn. Seeed Studio tərəfindən dünya üzrə göndərmə də daxil olmaqla təxminən 15 dollara PCB, dəst və ya yığılmış dəstlərə sahib ola bilərik, burada daha çox. Partlist Part Value (hamısı kobud çuxurlu) C10.1uF/10 volt+R110000 (10K) ohm tək dönmə kəsici/potansiyometr, 6mmR21000 (1K) ohm müqavimət, 1/4 vatLED13mm (T1) LED, qırmızıJP1+JP20.1 "kişi başlığı, 5 pinliIC1PCF8574N, 8bit IC1I üçün I2C G/Ç genişləndiricisi DIP16ICS116 pinli DIP yuvası Təlimatlandırmaya bəzi formatlaşdırma elementləri və HTML cədvəlləri daxil edə bilmədi, orijinal yazını Dangerous Prototypes blogunda görə bilərsiniz.

Addım 2: Bağlantılar

Əlaqələr
Əlaqələr

Cihaz: HD44780 xarakterli LCD. Avtobus: 4 bit paralel, PCF8574 I2C adapter lövhəsi ilə. Güc tələbləri: 5 volt. İstinadlar: nümunə məlumat cədvəli [PDF], HD44780 əmr istinadı, HD44780 LCD uber-site. Bu nümayiş üçün Bus Pirate sessiya qeydini tamamlayın. Bus Pirate universal seriya interfeysinin LCD kitabxanası üçün adapter hazırladı, lakin I2C protokolunu bilən hər şeylə işləyəcək. I2C-> HD44780 tətbiqi nümunəsi üçün Bus Pirate mənbə koduna nəzər salın. Bus Pirate-i cədvəldə göstərildiyi kimi adapter lövhəsinə qoşun. Adapter lövhəsi olmadan izlədiyiniz təqdirdə cədvəldə PCF8574 IC -nin xam bağlantıları da göstərilir. Adapteri LCD üçün kifayət qədər enerji təchizatı ilə birləşdirin, ümumiyyətlə 5 volt. Adapter və Bus Pirate arasındakı I2C bağlantısı 2 ilə 10K arasında çəkmə müqavimətləri tələb edir. Budur, çəkilmə ilə qarışıq gərginlik və Bus Pirate-in bortda çəkmə rezistorları haqqında daha çox məlumat. Bəzi formatlama elementlərini və HTML cədvəllərini Təlimatlandırmaya daxil edə bilmədim, orijinal yazını Dangerous Prototypes blogunda görə bilərsiniz..

Addım 3: Addım 1. Kitabxananı qurun

Addım 1. Kitabxananı qurun
Addım 1. Kitabxananı qurun

Interfacing Adapter dizaynını və onu Bus Pirate -ə necə bağlamağı öyrəndik, indi nəhayət LCD -yə bir şey yazmağın vaxtı gəldi. HiZ> m <<11 <<1 <<W <

p <<2 <<v <<< gərginlik hesabatı alın VOLTAJ MONİTORU: 5V: 4.9 | 3.3V: 3.3 | VPULLUP: 5.0 <<Bus Pirate terminalında 'm' düyməsini basın və LCD kitabxanasını seçin. Hal-hazırda yalnız bu maddənin birinci yarısında təsvir olunan PFC8574 adapterindən istifadə edərək HD44780 xarakterli LCD-ləri dəstəkləyir (seçim 1). Güc qaynaqlarını (böyük 'W') və çəkmə rezistorlarını (menyu 'p') aktivləşdirin. Gərginlik monitorunu yoxlayın (menyu 'v') və çəkmə gərginliyinin (Vpullup) 5 volt ətrafında oxuduğundan əmin olun.

Addım 4: Addım 2. Sıfırla və Başlanğıc

Addım 2. Sıfırlama və Başlama
Addım 2. Sıfırlama və Başlama
Addım 2. Sıfırlama və Başlama
Addım 2. Sıfırlama və Başlama

Bu cədvəldə HD44780 LCD-ni idarə edən tək baytlı əmrlər təsvir edilmişdir, burada ətraflı bir istinad var. Bu əmrlər Bus Pirate əmr satırından daxil edilə bilər, lakin əksəriyyətinin vaxta qənaət etməsi üçün makrolar hazırladıq. LCD> (0) <<< makro menyu göstər 0 <LCD -ni sıfırlayın 2. LCD -ni işə salın <<< LCD -ni sıfırlayın və işə salın 3. LCD -ni təmizləyin <<< LCD -ni silin, kursoru 04 -ə qaytarın. (4: 0) <<< imleç postunu təyin edin 5. Test mətnini yazın <<Macro 0, hər hansı bir Avtobus Pirate rejimi üçün makro menyusunu göstərir. 1 <<< tək sətirli ekran2. Çoxlu <<2 'RESET <<< makrosu 2, sıfırlama ardıcıllığını ehtiva edir INIT <<Başlanğıc LCD makrosu (2), ekranı 4 bitlik interfeys rejimi üçün konfiqurasiya edir, kursorun göstərilməsini təmin edir və bir neçə digər faydalı variantları təyin edir. Ekran sətirlərinin sayını konfiqurasiya edin, tək sətirli ekran üçün 1 və ya digər bütün ekranlar üçün 2 seçin. Başladıqdan sonra, küncdə görünən bir imleci ilə ekran aydın olmalıdır. İşə yaramırsa, I2C bağlantısını, çəkmə rezistorlarını və enerji təchizatını yoxlayın, sonra yenidən cəhd edin. HD44780 LCD-lərin 4bit və ya 8 bitlik interfeys rejimi üçün işə salınmadan əvvəl xüsusi siqnal ardıcıllığı ilə sıfırlanması lazımdır. Makro 1 bu ardıcıllığı yaradır. Makro 2 sıfırlama ardıcıllığını ehtiva edir, buna görə makro 2 -dən əvvəl makro 1 -dən istifadə etməyə ehtiyac yoxdur.

Addım 5: Addım 3. Test personajlarını yazın

Addım 3. Test personajlarını yazın
Addım 3. Test personajlarını yazın
Addım 3. Test personajlarını yazın
Addım 3. Test personajlarını yazın

LCD> (6:80) <<Yazma nömrələri makrosu LCD -ni 0 ilə 9 arasındakı test nömrələri ilə doldurur. İki nöqtədən sonra gələn rəqəm Bus Pirate -ə neçə test nömrəsi yazacağımızı bildirir, biz 4x20LCD istifadə edirik, buna görə doldurmaq üçün 80 ədəd yazırıq. Kursorun 0 'mövqeyində, ilk' 0 'altında bitdiyinə diqqət yetirin. LCD> (7:80) <<Yazı simvolları makrosu LCD -ni ASCII simvolları ilə doldurur, iki nöqtədən sonra miqdarı daxil edin. Diqqət yetirin ki, yumruq xətti üçüncüsündə, üçüncüsü ikincidə, ikincisi isə sonda davam edir. Simvollar bir sətirdən digərinə keçmədiyindən simvollar davamlı deyil. Bu barədə bir az sonra daha çox danışacağıq.

Addım 6: Addım 4. LCD -ni təmizləyin

Addım 4. Təmiz LCD
Addım 4. Təmiz LCD

LCD> (3) <<Şəffaf LCD makrosu, ekranı silən və kursoru birinci mövqeyə qaytaran HD44780 əmrini göndərir. Bu bölmənin əvvəlindəki əmr cədvəlinə baxın. Arayüzü komanda rejiminə ([) qoymaq və HD44780 aydın ekran əmrini (0b00000001) makro olmadan göndərmək üçün Bus Pirate -ə '[0b1' 'daxil edin.]

Addım 7: Addım 5. Mətn yazın

Addım 5. Mətn yazın
Addım 5. Mətn yazın
Addım 5. Mətn yazın
Addım 5. Mətn yazın

LCD> (8) <<< istifadəçi mətni daxil edin Kursor mövqeyinə daxil etmək üçün mətn daxil edin. HD44780 LCD demo <<4 -cü addımda LCD silindikdən sonra kursor birinci blokda yerləşdirilir. İmleci ilk simvola keçirən makro ilə də təyin edə bilərik (4: 0). Kursor makrosuna mətn daxil etmək mətn daxil etməyi xahiş edir və sonra enter düyməsini basdıqda onu LCD -yə kopyalayır. LCD> (4: 0x40) <& lt

LCD> (8) <<< mətn daxil edin Kursor mövqeyinə daxil etmək üçün mətn daxil edin. Bus Pirate v2go <<İkinci sətrə yazmaq bir az daha mürəkkəbdir, əslində 4x20 LCD -də 64 -cü xarakterdən başlayır. 1 -ci sətrin sonundan (xarakter 20) yazmağa davam etsəniz, üçüncü sətrin əvvəlində sona çatacaqsınız! Bu səhifədə əksər simvollu LCD ölçüləri üçün gözəl bir yaddaş xəritələri toplusu var. Birincisi, kursoru ikinci sətirdə yerləşdiririk (4: 0x40). Daha sonra, 'mətn daxil et' makrosu girişimizi tutur və onu LCD -yə kopyalayır. Firmware v2.0+ <<< bunu yazdıq Kursor mövqeyinə daxil etmək üçün mətni daxil edin.Bus Pirate eyni sətirdə birdən çox makro qəbul edir, buna görə bütün ekran bir anda yazıla bilər. Son iki sətirə tək sintaksis xətti ilə yazdıq. '(3) (4: 0) (8) (4: 0x40) (8) (4: 0x14) (8) (4: 0x54) (8) 'LCD -ni silmək və dörd sətrin hamısını bir sintaksis girişi ilə yazmaq.

Adım 8: Addım 6. LCD -dən oxu

Addım 6. LCD -dən oxu
Addım 6. LCD -dən oxu

Bus Pirate və LCD adapter lövhəsi LCD -dən oxuya bilər. Yazdığımız mətni ekrana (DDRAM) oxuyacağıq, ancaq doğru ünvanı təyin edərək parametrləri və xüsusi xarakterli ram (CGRAM) oxuya bilərsiniz. LCD> [0b10000000 '' '] HD44780 RS DÜŞÜK, ƏMR MODU <<< qeydiyyatdan keç pin aşağı CMD YAZ: 0x80 <<Əvvəlcə Bus Pirate -ə məlumatların LCD əmr reyestrinə ([) göndərilməsini söyləyirik. Sonra, oxunan göstəricini DDRAM -ın əvvəlinə (xxxxxxx = 0000000) təyin etmək üçün müəyyən edilmiş DDRAM ünvan əmrindən (0b1xxxxxxx) istifadə edirik.] LCD>] rrrrrr <<< məlumat yaddaşını oxumaqHD44780 RS YÜKSƏK, VERİ MODU <<< qeyd seçimi pin yüksək SIRA: 0x48 <<< 'H'OXU: 0x44 <<<' D'OXU: 0x34 <<< '4'OXU: 0x34 <<<' 4'OXU: 0x37 <<< '7'OXU: 0x38 < << '8'OXU: 0x30 <<<' 0'LCD> Nəhayət, Avtobus Piratına məlumat yaddaşından (]) oxumasını söyləyin və sonra bir neçə bayt (rrrrrrr) oxuyun. "HD44780" ə sahibik, 5 -ci addımda ekrana yazdığımız mətn. Yeddi baytı oxumaq üçün r: 7 qısa yolundan da istifadə etməlisiniz, lakin indiki proqram təminatında işləmir - bunu əvvəlcədən düzəldəcəyik. növbəti buraxılış.

Addım 9: Daha çox iş

Daha çox iş
Daha çox iş

StepThe HD44780 xarakterli LCD adapteri Bus Pirate üçün lazımlı bir aksesuardır. Sürətli bir test və ya daha inkişaf etmiş bir məntiq inkişafı üçün istifadə edilə bilər. LCD-lərə əlavə olaraq, səkkiz 2.5 volt-5 voltluq I/O pinləri digər yüksək pin saylı Bus Pirate tətbiqləri üçün faydalı ola bilər. PCB, dəstlər, və ya Seeed Studio tərəfindən dünya çapında göndərmə də daxil olmaqla təxminən 15 dollara istehsal edilən yığılmış dəstlər, bura daxil ola bilərəm. Bəzi formatlama elementlərini və HTML cədvəllərini Təlimatlandırmaya daxil edə bilmədim, orijinal yazını Dangerous Prototypes blogunda görə bilərsiniz.

Tövsiyə: