Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Nedoumica oko OLED-a

[es] :: Elektronika :: Mikrokontroleri :: Nedoumica oko OLED-a

Strane: 1 2

[ Pregleda: 5032 | Odgovora: 39 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

korak
Nis

Član broj: 125522
Poruke: 622
*.exe-net.net.



+7 Profil

icon Re: Nedoumica oko OLED-a27.05.2021. u 15:50 - pre 34 meseci
Nisam se do sada javljao, radio sam nešto u solid vorksu, pa zadnjih dana poslužih se jednom od jednostavnijih biblioteka koje ste mi preporučili - hvala za to.

Šaljem celu sliku iz bafera na 400kHz po kodu koji sam generisao procesor-ekspertom i to radi korektno bez potrebe za vremenskim zadrškama, što ne znači da ih nema. Najviše sam potrošio vremena da protokol usaglasim sa generisanim kodom.

Sve je u redu ali...

OLED radi u modu 132x64 i to nije problem. Problem je što u koloni 129 ima dve tačke koje ne mogu da se upale, a u koloni 130 ima 24 tačaka koje ne mogu da se ugase. Dakle, kao OLED 128x64 on je ispravan, pod uslovom da maskom sakrijem kolone do 132.

Mislim da ovome nema leka OLED je neispravan. Šta vi mislite?

Možda nisam u pravu?
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.dynamic.sbb.rs.

Sajt: mysql.rs


+2377 Profil

icon Re: Nedoumica oko OLED-a28.05.2021. u 01:09 - pre 34 meseci
tesko da mozemo da znamo ovako napamet, valjda imas jos jedan oled, zamenis, pa ako isti pixeli ne rade i na drugom def je do tvog koda :D ... a desi se da neki pixeli umru
 
Odgovor na temu

korak
Nis

Član broj: 125522
Poruke: 622
*.exe-net.net.



+7 Profil

icon Re: Nedoumica oko OLED-a28.05.2021. u 01:35 - pre 34 meseci
Imam još jedan, pa ću ga probati. On je na drugoj istoj pločici kod koje nešto ne valja sa konektorom za napajanje. Nisu mi tu klješta za kvečovanje pa će proba kasniti.

Videćemo.
 
Odgovor na temu

korak
Nis

Član broj: 125522
Poruke: 622
*.exe-net.net.



+7 Profil

icon Re: Nedoumica oko OLED-a28.05.2021. u 20:39 - pre 34 meseci
Sada je sve u redu. Šaljem svih 1056 bajta (132x64). Bila je moja trivijalna greška.

Merio sam vreme slanja 1056 bajtova u OLED, i ono iznosi 38.6ms na I2C brzini od 378kHz što je oko 26 slika u sekundi. Gledajući kod ne vidim mogućnost za neko osetnije ubrzanje. Ali to znači da bi polovinu ekrana osvežavao 52 puta u sekundi, što bi omogućilo glatku animaciju.

Čini mi se da je ovo dobro, šta kaže vaše iskustvo?

Zahvaljujem svima na pomoći.


 
Odgovor na temu

goran_68

Član broj: 89012
Poruke: 932
*.dynamic.isp.telekom.rs.



+81 Profil

icon Re: Nedoumica oko OLED-a28.05.2021. u 22:07 - pre 34 meseci
Možeš da ideš i na SPI OLED ako ti treba više FPS.
gorankg
 
Odgovor na temu

korak
Nis

Član broj: 125522
Poruke: 622
*.exe-net.net.



+7 Profil

icon Re: Nedoumica oko OLED-a28.05.2021. u 23:43 - pre 34 meseci
Da tako je, od svih mogućíh komunikacija najsporija je I2C (400kHz), ali OLED ja na modulu koji ima izvedena samo 4 pina: napajanje, masa, podaci i klok. Nemam izbora.

Super si me naveo da ubuduće tražim sa SPI jer je ciklus kloka 100ns (brzina 10M bita po sekundi) a ne da se zezam sa ciklusom kod I2C od 2.5us i samo 0.4 M bita po sekundi.

Hvala, pozdrav.
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.com
Via: [es] mailing liste

Sajt: mysql.rs


+2377 Profil

icon Re: Nedoumica oko OLED-a29.05.2021. u 06:03 - pre 34 meseci
taj isti drajver koji je na tom oledu ima i spi i parallel, nego je taj
flat kabl njegov ultra smor za rad, malo ga pregrejes raspadne se pa
ljudi krenuli da prave te breakout plocice za njih koje su prvo bile
spi, pa spi+i2c pa u zadnje vreme samo i2c .. mislim da jos uvek mozes
da nadjes spi i spi+i2c verzije ..

elem, ove sto ja teram, nijedan nema double buffering sto je za finu
animaciju neophodno, i sa double bufferingom 26fps je ultra smooth, ali
bez double bufferinga 26fps je na zalost "krzavo" ako radis neku
animaciju, ali je skroz dovoljno za prikazivanje raznih statusa i
informacija... ako ces da guras animaciju mora uzmes spi ili paralelnu
verziju
 
Odgovor na temu

korak
Nis

Član broj: 125522
Poruke: 622
*.exe-net.net.



+7 Profil

icon Re: Nedoumica oko OLED-a29.05.2021. u 13:59 - pre 34 meseci
Da jasno mi je. Malo sam razočaran da je teško naći OLED modul sa SPI komunikacijom.

Pozdrav.
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.dynamic.sbb.rs.

Sajt: mysql.rs


+2377 Profil

icon Re: Nedoumica oko OLED-a29.05.2021. u 14:11 - pre 34 meseci
ako ga skines sa tog breakout board-a na tom flatu imas i SPI i PARALLEL :)

cak sta vise, ne znam koji breakout imas, na primer gledam ovaj na KP:



ako ja dobro vidim, ti mozes jako lako ovde da pristupis direkt svim pinovima samog cipa ... uporedi to sa SPI verzijom i izvuci SPI direktno na tom oledu koji vec imas i mozes odma da testiras dok sacekas da ti stignu oled breakboard uredjaji iz kine ..

spi verzija:




kako mislis tesko naci ?! ima ih ko g...

gledaj breakboard sa 7 pina:

https://www.aliexpress.com/item/32818944937.html
https://www.aliexpress.com/item/32595065663.html
https://www.aliexpress.com/item/1005001694286868.html
https://www.aliexpress.com/item/32954492866.html
https://www.aliexpress.com/item/32844104782.html
https://www.aliexpress.com/item/4001145494936.html
...


Prikačeni fajlovi
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.dynamic.sbb.rs.

Sajt: mysql.rs


+2377 Profil

icon Re: Nedoumica oko OLED-a29.05.2021. u 14:16 - pre 34 meseci
default svi guraju sada ove IIC posto su jednostavniji i dovoljna je brzina za vecinu stvari, ionako tu ispises neki broj i slicno .. ali SPI nisu nestali, i dalje su tu, jedino nisam vidjao nigde vec neko vreme one SPI+I2C

a ako mislis na KP, ovo su ti uglavnom sve stare zalihe, istrosilo se jbg tokom korone i dok je bio ova moratorijum na slanje ... kao sto vidis sad vec ima i sa free shippingom (mislim da su svi linkovi koje sam ti stavio sa free shippingom za srbistan)
 
Odgovor na temu

goran_68

Član broj: 89012
Poruke: 932
*.dynamic.isp.telekom.rs.



+81 Profil

icon Re: Nedoumica oko OLED-a29.05.2021. u 20:41 - pre 34 meseci
Treba da ja imam negde 0.96 spi+i2c. Komunikaciju biras tako sto se prebaci jedan ili dva otpornika. Oznaceno je sve to na poledjini plocice pa se lako odradi.
Jos da dodam da mozes da menjas i oled refresh rate preko registara mada ne znam da li bi tu nesto dobio.

gorankg
 
Odgovor na temu

korak
Nis

Član broj: 125522
Poruke: 622
*.exe-net.net.



+7 Profil

icon Re: Nedoumica oko OLED-a05.06.2021. u 23:27 - pre 34 meseci
Uz vašu pomoć, napisao sam funkcije koje mi trebaju, još jednom hvala.

Ako nekog interesuje, par informacija, ovaj OLED ima 132x64 tačke, ali "propušta" prve dve i zadnje dve kolone, tako da radi sa 128x64. Prilikom upisa u OLED-ov RAM moraju se upisati sve kolone. Koo. početak je gore levo, što se i očekivalo, ali sam ga ja spustio dole levo. Duplo veći font (12x16) je isti kao i normalan, samo što je svaka tačka predstavljena sa 4 tačke, jeste lakši za čitanje ali je jednako ružan, i staje samo 12 celih karaktera u jednom redu. Pokušaću da ga zamenim fontom 7x13.

Još jednom hvala na pomoći.
 
Odgovor na temu

korak
Nis

Član broj: 125522
Poruke: 622
*.exe-net.net.



+7 Profil

icon Re: Nedoumica oko OLED-a06.06.2021. u 15:18 - pre 34 meseci
Zaboravih, u donjoj funkciji postoji greška zbog koje se ne ispisuje posledji red karaktera duple veličine

Code:

void OLED::draw_bytes(uint_fast8_t x, uint_fast8_t y, const uint8_t* data, uint_fast8_t size, tSize scaling, tColor color, bool useProgmem)
{
    for (uint_fast8_t column = 0; column < size; column++)
    {
        uint8_t b;
        if (useProgmem)
        {
            b = pgm_read_byte(data);
        }
        else
        {
            b = *data;
        }
        data++;
        if (scaling == DOUBLE_SIZE)
        {
            // Stretch vertically
            uint16_t w = 0;
            for (uint_fast8_t bit = 0; bit < 7; bit++)
            {
                if (b & (1 << bit))
                {
                    uint_fast8_t pos = bit << 1;
                    w |= ((1 << pos) | (1 << (pos + 1)));
                }
            }

            // Output 2 times to strech hozizontally            
            draw_byte(x, y, w & 0xFF, color);
            draw_byte(x, y + 8, (w >> 8), color);
            x++;
            draw_byte(x, y, w & 0xFF, color);
            draw_byte(x, y + 8, (w >> 8), color);
            x++;
        }
        else // NORMAL_SIZE
        {
            draw_byte(x++, y, b, color);
        }
    }
}


Umesto

Code:

for (uint_fast8_t bit = 0; bit < 7; bit++)


treba
Code:

for (uint_fast8_t bit = 0; bit < 8; bit++)

 
Odgovor na temu

korak
Nis

Član broj: 125522
Poruke: 622
*.exe-net.net.



+7 Profil

icon Re: Nedoumica oko OLED-a21.06.2021. u 18:44 - pre 33 meseci
Uradih sve što sam hteo, a kursor ostavio za kraj. Ali avaj!

Želim kursor koji blinka, znači da ga direktno unosim u OLED, a ne preko bafera slike. Međudim nikako da proradi ispravno. Teška srca bih se zadovoljio sa kursorom koji ne blinka.

Da li je neko rešio ovaj problem, evo muči me od poslednjeg javljanja. Ako neko može pomoći, a treba mu kod, objaviću ga.

Pozdrav.
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.com
Via: [es] mailing liste

Sajt: mysql.rs


+2377 Profil

icon Re: Nedoumica oko OLED-a21.06.2021. u 18:54 - pre 33 meseci
ja koliko znam ti drajveri nemaju kursor, znaci mora crtas i brises
kursor sam, rucno, idealno ga rokas sa xor-om pa ne mora cuvas sta je
bilo ispod kursora
 
Odgovor na temu

korak
Nis

Član broj: 125522
Poruke: 622
*.exe-net.net.



+7 Profil

icon Re: Nedoumica oko OLED-a21.06.2021. u 19:13 - pre 33 meseci
Da nemaju kursor.

Po ugledu na funkciju koja ispisuje karakter, napisao sam funkciju za kursor, samo što umesto karaktera xor-ujem sa 0xff tu poziciju u baferu slike. Doduše još nisam taj xor upisao u bafer slike, što na kraju treba da bude, jer se javili problemi, meni neobjašnjivi.

Kao poziciju kursora zadajem blok i broj kolone, međutim dobijem ispis "kursora" duž celog bloka, od prve do zadnje kolone.

Vrlo čudno, ili pravim neki glupi previd, ili nešto ne znam, a ne tvrdim da znam.

Pozdrav.
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.com
Via: [es] mailing liste

Sajt: mysql.rs


+2377 Profil

icon Re: Nedoumica oko OLED-a21.06.2021. u 19:32 - pre 33 meseci
bem li ga, ja sam samo jednom tako nesto radio sa kursorom i tu sam imao
bafer na mcu u koji sam crtao a taj bafer sam tuko na lcd sa 12fps ...
ali ne verujem da ti to resenje za ista radi posao... da me ubijes sto
sam to radio, nije bio oled uopste nego neki tft ali ista prica
 
Odgovor na temu

korak
Nis

Član broj: 125522
Poruke: 622
*.exe-net.net.



+7 Profil

icon Re: Nedoumica oko OLED-a21.06.2021. u 20:21 - pre 33 meseci
Nadam se da se neko ovim bavio, i da je voljan da pomogne.

Inače imam blinkanje iz bafera, ali onda prenosim celu slku, a to je 38ms, umesto u jednom bloku da prenesem 6 bajtova.
 
Odgovor na temu

mikikg
System administrator
Srbija

Član broj: 3779
Poruke: 5059
*.dynamic.sbb.rs.

Sajt: yu3ma.net


+505 Profil

icon Re: Nedoumica oko OLED-a26.06.2021. u 09:43 - pre 33 meseci
@korak

Evo prakticno SPI OLED displej za neke tamo Audio potrebe (nebitno), taj displej se osvezava u tom primeru negde oko 85 do 120FPS, zavisi sta iscrtavam na ekranu, tehnicki moze da ide do nekih 300FPS ali pod uslovom da osvezavas vrlo mali broj piksela recimo samo da napises "FPS=%d" na praznom ekranu sa najmanjim fontom :)

"sprintf" jeeeeedeeee resurse, tu se gubi najvise vremena, sve sam analizirao, moze da se zameni sa nekim malo brzim funkcijama ali generalno dodjes u situaciju ili da cukas nesto custom po kodu da bi ubrzao FPS koji i ne mozes da vidis ili da uzmes standardnu sprintf() funkciju i da nakucas lepo sta ti treba ...

Blinkanje kurzora se radi u screen-buffer-u, gde bi drugo to radio, ekran se osvezava sa 60+ FPS u svakom slucaju a blink je recimo na 0.3sec, to mora na SW nivou da se resava kao i sve ostalo sto se tice displeja ...




Site about Software Defined Radio – SDR
http://yu3ma.net/
https://github.com/yu3ma
On-line LM317 kalkulator
 
Odgovor na temu

korak
Nis

Član broj: 125522
Poruke: 622
*.exe-net.net.



+7 Profil

icon Re: Nedoumica oko OLED-a27.06.2021. u 16:37 - pre 33 meseci
Nažalost moj modul sa OLED-om vezan je sa I2C na 400kHz, i celu sliku 128x64 prebacim za 38ms, strašno dugo vreme. Ne isplati se da zbog blinkanja kursora prebacujem celu sliku.

Pre par dana sam rešio ovaj problem, tako što blinkanje pravim u baferu slike, a u OLED šaljem samo to parče slike u trenucima kada je promena kursora. Funkcionalno je testirano, troši oko par ms, sada treba da poradim malo na optimizaciji i sinhronizaciji odnosno da prekid blinkanja bude kada je kursor ugašen, što ne smatram nekim velikim problemom. Ima tu i još nekih poslova, upis novog znaka treba da bude kada je kursor ugašen i slično tome.

Inače imam dva bafera slike sa namerom da lakše prikazujem složene podatke. Možda mi namera i nije racionalna, ali videću.
 
Odgovor na temu

[es] :: Elektronika :: Mikrokontroleri :: Nedoumica oko OLED-a

Strane: 1 2

[ Pregleda: 5032 | Odgovora: 39 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.