Fórum témák

» Több friss téma
Fórum » Karakteres LCD-k meghajtása, vezérlése
Lapozás: OK   13 / 17
(#) Skori válasza benjami hozzászólására (») Jan 22, 2021 /
 
Azért lenne rá ötletem, de ebbe tényleg nem érdemes belemenni.
(#) benjami válasza Skori hozzászólására (») Jan 22, 2021 /
 
Csináld meg egy mikrokontrollerrel. A bemenő oldalán viselkedjen úgy mint ha egy karakteres kijelző modul lenne, a kimenetére meg köss egy grafikus kijelzőt.
(#) Skori válasza benjami hozzászólására (») Jan 22, 2021 /
 
Meg lehetne oldani, de minek?
Bár valami hasonlót tervezek, de annak már nem sok köze lesz a HD44780-hoz. Régebben összedobtam egy ESP32-re épülő netrádió projektet, VS1053 MP3 dekóderrel, és IL9341 kijelzővel Bővebben: Link. Működött is, de amikor sok adatot írt a kijelzőre akkor néha megakadt a hang. Ehhez tervezek egy olyan megoldást, hogy az ESP soros kimenetét olvassa egy másik MCU (STM32), és hajtja meg a grafikus LCD-t. Így az ESP-től ez nem vesz majd el erőforrást. A rádió kezelőszerveinek kezelését szintén az STM-re bízom majd.
(#) Bakman válasza Skori hozzászólására (») Jan 22, 2021 /
 
Miért nem raksz rá egy Nextion HMI-t? Annak UART csatolója van, megspórolhatsz egy csomó programozást. Drágának sem mondanám.
(#) nagym6 válasza Bakman hozzászólására (») Jan 22, 2021 /
 
Végül is a karakterkészlet menet közben is csereberélhető, és nem grafikákra van ez a kijelző, csak mi szórakozgatunk ilyennel.
(#) Skori válasza Bakman hozzászólására (») Jan 22, 2021 /
 
Ennek több oka is van.
- Az ILI9341 + BluePill(STM32) nagyon olcsó, a Nextion-hoz képest filléres dolog.
- Szeretek alkotni, programozni, + ismerkedni szeretnék kicsit jobban az STM32 fejlesztő környezetével.
- Szeretnék kezelőszerveket is használni, és még nem tudom mit: nyomógombok és/vagy rotációs enkóderek, és én akarom ezeknek a viselkedését is meghatározni.
- Érintőképernyőt nem akarok egyelőre, bár használok pl. okostelefont, de nem akarom feltétlenül ezt a trendet másolni. Szeretek gombokat nyomogatni, meg tekerőket tekerni
Ellenkező esetben simán használhatnám mondjuk egy régebbi telefonomat netrádió helyett - de abban semmi alkotás nem lenne. Így viszont lesz egy egyedi eszközöm, ami olyan amilyennek én akarom.
Egy hasonló netrádiót már építettem, és be is dobozoltam, abban a BluePill egy karakteres LCD-t hajtott meg, és ESP8266+ VS1053-ra épült. Bővebben: Link
(#) majkimester válasza Skori hozzászólására (») Jan 26, 2021 /
 
Vannak olyan grafikus kijelzők, amik T6963C vagy azzal kompatibilis IC-vel vannak szerelve. Noha ezek grafikusak, van beepített 128 karakteres CGROM, és elméletileg lehet definiálni mellé másik 128 karaktert. Azaz akár full karakteres kijelzőként is használható, bár több vezeték kell a csatlakoztatáshoz.
(#) Jonni hozzászólása Márc 2, 2021 /
 
Kíváncsi lennék a véleményetekre. Arduino nanora kötöttem egy 40x2 LCD-t (12, 11, 5, 4, 3, 2 lábakra) ez ugye 6 lábat foglal el de kapható I2C lcd meghajtó is ami csak 2 lábat foglal. A kérdésem az , hogy az i2c nem lassítja a rendszert/kijelzést? Valahol azt olvastam, hogy sokkal lassabb igaz ez? A kódba is valamit még variálni kell az i2c miatt + van nekem ott egy RTC is ami szintén sda/scl lábakat kér.
A hozzászólás módosítva: Márc 2, 2021
(#) mateatek válasza Jonni hozzászólására (») Márc 2, 2021 / 1
 
Igaz is, meg nem is.
Alap I2C órajel mellett fele olyan lassú, mint a hagyományos, általad használt bekötés. De ha az I2C busz órajelét emeled, akkor gyorsabb, sokkal gyorsabb tud lenni, akár 2-3-szor is, mint a hagyományos.
(#) Jonni válasza mateatek hozzászólására (») Márc 2, 2021 /
 
Köszi. És azt meg tudnád írni, hogy hogy kell az órajelet megemelni?
(#) mateatek válasza Jonni hozzászólására (») Márc 2, 2021 / 1
 
A Wire.setClock() függvénnyel tudod a legkönnyebben állítani. A zárójelbe kerül az órajel sebessége. Addig kell emelni, amíg még stabilan működik. Persze magas órajelnél már sok minden számít. A felhúzó ellenállás értéke, a vezetékezés módja, stb.
A hozzászólás módosítva: Márc 2, 2021
(#) Jonni válasza mateatek hozzászólására (») Márc 2, 2021 /
 
Szuper. Köszi. Teszek egy próbát
(#) Jonni válasza mateatek hozzászólására (») Márc 2, 2021 /
 
Az lehetséges ha megnövelem az órajelet akkor melegedni fog ?
(#) mateatek válasza Jonni hozzászólására (») Márc 2, 2021 / 1
 
Nem tapasztaltam ilyen jellegű dolgot.
(Ez nem olyan jellegű órajel növelés, mint amikor az AMD Duront felhúztuk, hogy gyorsabb legyen)
(#) Bakman válasza mateatek hozzászólására (») Márc 2, 2021 /
 
Miért gyorsabb az I2C mint a direkt LCD hajtás? Vannak minimális idők a kijelző adatlapjában amiket be kell tartani, onnantól pedig attól függ, tud-e a kontroller ilyen gyors lenni.
(#) Skori válasza Jonni hozzászólására (») Márc 2, 2021 /
 
Esetleg olvasd el ezt is, ugyan nem i2c, de LCD meghajtás 3 vagy csak 2 vezetékkel: Bővebben: Link
(#) mateatek válasza Bakman hozzászólására (») Márc 2, 2021 /
 
Ha jól tudom, akkor az LCD-ből ki lehet olvasni azt, hogy szabad, vagy foglalt. A hagyományos használat ezt nem teszi, inkább várakozik, hogy biztosan szabad legyen, amikor adatot küld. Az I2C úgy tudom használja ezt. Ha szabad, akkor küld neki adatot, ha van mit.
De egyszerűen kipróbálható egy sebesség teszt írásával és kipróbálásával. Én kipróbáltam.
(#) Bakman válasza mateatek hozzászólására (») Márc 2, 2021 /
 
Ha a mellékletben található I2C illesztőre gondolsz, akkor ez már csak fizikailag sem lehet gyorsabb, mint a PCF8574-es IC kihagyása és a kijelző direkt hajtása. Igaz, utóbbi esetben ha valóban gyors kijelzést szeretnél, érdemes nyolc bites üzemmódban használni a kijelzőt, a kontrolleren pedig direkt vezérelni a kimeneteket (az Arduino függvények/könyvtárak kihagyása szükséges hozzá, azok nagyon lassúak). Cserébe több láb lesz dedikáltan a kijelző részére fenntartva.

I2C-LCD.jpg
    
(#) mateatek válasza Bakman hozzászólására (») Márc 2, 2021 /
 
Valamikor régebben csináltam egy tesztet ezzel a kérdéssel kapcsolatban. Hagyományos kontra I2C LCD sebesség. A mérések eredményét az "Arduino" topikba fel is tettem.
(#) mateatek válasza Bakman hozzászólására (») Márc 2, 2021 /
 
Nem akarok ezen vitázni. Írjál egy 5 soros Arduino-s programot rá. Írassál ki valamit és mérjed meg így, meg úgy az ehhez szükséges időt.
(#) mateatek válasza Bakman hozzászólására (») Márc 2, 2021 /
 
(#) Pethical válasza mateatek hozzászólására (») Márc 2, 2021 /
 
Azért lehet gyorsabb az i2c, mert az arduino lábanként állítja a kimenetet, 4 bites módban meg két csomagban megy ki az adat. Ha viszont rendesen írja az ember a portot egyben, akkor nem lehet gyorsabb.
(#) mateatek válasza Pethical hozzászólására (») Márc 2, 2021 /
 
A 8 bites módot nem mértem sosem. Külföldi fórumokon olvasottak alapján ott is az I2C nyer, de csak 1-2 százalékkal. Meg nem mondom már, hogy hol olvastam.
Illetve az sem mindegy, hogy a kismillió könyvtár közül melyiket használjuk.
(#) mateatek válasza Pethical hozzászólására (») Márc 2, 2021 /
 
Az alap 8 bites mód sem figyeli a kijelző foglaltságát. Ott is időzítve van a kód, hogy kivárja, amíg az kiír. Mégpedig a 3.3 voltos LCD-k lassabb órajeléhez állítva.
A leggyorsabb mód az a 8 bites mód, ahol is a busy flag le van kérdezve. De az alap 8 bites alkalmazásnál írásra van kötve fixen az RW láb. Az I2C-nél nem ott van, ott az illesztő IC-re van kötve. Rá fogok nézni, hogy használja-e.
(#) Skori hozzászólása Márc 2, 2021 /
 
Nekem az a tapasztalatom, hogy ezekre a karakteres LCD kijelzőkre kb 40...50µsec alatt lehet kiírni egy karaktert. Akár 4 bites, akár 8bites módban van, ebből a szempontból csak annyi a különbség, hogy 4bites módban, az E lábra két impulzus kell. Ha gyorsabban írjuk a kijelzőt akkor elhagy karaktereket. Az i2c buszt hiába gyorsítjuk, a kijelzőre akkor sem lehet gyorsabban írni. Ennek egyedül akkor lehet értelme, ha az i2c-t fogadó MCU puffereli az adatokat, tehát akár nagy sebességgel is fogadja, és tárolja addig amíg ki tudja írni a kijelzőre. Nem tudom hogy ezek a kínai átalakítók ilyenek-e.
A sima léptetőregiszteres megoldás amit használok, soros-párhuzamos konverzióra, kijelzőmeghajtóként, szintén sokkal gyorsabban kezelhető mint a kijelző, ott is be kellett állítani a szoftverben, hogy ne írja a kijelzőt 50µs/karakter sebességnél gyorsabban.
(#) majkimester válasza Skori hozzászólására (») Márc 3, 2021 / 3
 
A kínai I2C átalakítón PCF8574T van, ami egy 8 bites I2C IO expander. Mivel 8 sima IO kimenete van, ebből adódik is, hogy 4 bites módban lehet vele kezeli az LCD-t, a többi láb megy az RS, R/W, E és háttér ki/be kapcsolására.

Kapcsolási rajz

Ezzel ugyanúgy a 40...50µsec karakteridő érhető el.

Egyébként régi típusú kijelzőkön, amiken még nem fekete plecsnik az IC-k, A vezérlő lábáról lekövethető melyik a oszcillátor ellenállása. Például nemrég KS0066-nál cseréltem a gyárilag beépített 120 kOhm-ot az adatlap ajánlása szerinti értékre (3V: 75 kOhm vagy 5V: 91 kOhm), amivel a névleges 270 kHz-es órajel előáll. Enélkül sokkal lassabban működött. (Az újabb plecsnis kijelzőkön is ott lesz az RF 91kOhm)

Ha valaki nagyon gyors frissítést szeretne elvileg 400kHz-ig is el lehetne menni, de az az alkatrészek szórása miatt használják a névleges 270kHz-et.
(#) Skori válasza majkimester hozzászólására (») Márc 3, 2021 /
 
Sajnos azok a kijelzők amik nekem vannak, nem működnek 3V-ról. Nem a vezérlő része nem megy, hanem az LCD panelnek nem elég a 3V - tehát nem lehet a kontrasztot beállítani (5V táp esetén is közel maximumon van a poti).
Amúgy köszi a rajzot, megint tanultam valamit.
Ilyen karakteres kijelző tuningolásának már nem állnék neki. Ezeknek a legnagyobb előnye, hogy egyszerű és olcsó. De ha annál több kell, mint amit egy ilyen kijelző tud, akkor célszerűbbnek gondolom egy modernebb kijelző használatát. Abból a kis panelből amit használok a kijelző vezérlésére (74HCT595-el, pl. a forrasztóállomáshoz is), gyártattam egy maréknyit, ami az összes ilyen kijelzőmhöz elegendő lesz, és még maradni is fog belőle
A hozzászólás módosítva: Márc 3, 2021
(#) majkimester válasza Skori hozzászólására (») Márc 3, 2021 / 1
 
Én sem akarom tuningolni, csak a standard időzítésre állítottam be a régi kijelzőt.

Viszont esetleg Kovidivi projektjében lehet értelme. Bár a kék-fehér kijelzőknél maga az LCD szegmensek nagyon lassan váltanak.
(#) Jonni válasza Skori hozzászólására (») Márc 5, 2021 /
 
Köszönöm mindenkinek a válaszokat!

Egyelőre nem váltok i2c-re hiába foglal sok lábat a 4bites meghajtás.
Skori olvatam az írást a weboldaladon. Hosszan részletezed a technikáját és nagyra tartom a munkádat de a szoftveres része mintha elbonyolítaná az egészet.
(#) Skori válasza Jonni hozzászólására (») Márc 5, 2021 /
 
A hardverfüggő része a szoftvernek gyakorlatilag egyszerűbb, mint sima 4 vagy 8 bites meghajtás esetén. Utóbbi esetben ugyanis bitenként kell a lábakat beállítani, a léptetőregiszter esetében viszont egy ciklus ki tudja léptetni a biteket.
Igaz, hogy a sima LCD meghajtás meg van írva az Arduino-ban (és néhány egyéb fejlesztőkörnyezetben is) ezért nem is látszik, hogy van megoldva, csak használni kell.
A magasabb szintű függvények (amik már nem bit, hanem bájt szintűek) pedig kb. ugyanolyanok, hiszen ezen a szinten már nincs különbség a kijelző vezérlésében.
Persze megint csak az a helyzet, hogy az egyik esetben csak használsz pl. egy init() függvényt, a másik esetben meg látszik is, hogy mit csinál az init() (azt amit a kijelző adatlapján is leírnak, hogy az inithez kell).
Eredetileg ESP8266-ra készült ez az egész, mert annak kevés I/O lába van, és érdemes takarékoskodni vele, de azóta sokféle MCU-val kipróbáltam. De természetesen nem kötelező használni, ez csak egy lehetőség, annak aki használni szeretné.
Következő: »»   13 / 17
Bejelentkezés

Belépés

Hirdetés
Lapoda.hu     XDT.hu     HEStore.hu
Az oldalon sütiket használunk a helyes működéshez. Bővebb információt az adatvédelmi szabályzatban olvashatsz. Megértettem