Kazalo po Svet elektronike forumu Svet elektronike
Revija za prave elektronike
 
AlbumAlbum   Pomoč pogostih vprašanjPomoč pogostih vprašanj   IščiIšči   Seznam članovSeznam članov   Skupine uporabnikovSkupine uporabnikov   Registriraj seRegistriraj se 
 Tvoj profilTvoj profil   Prijava za pregled zasebnih sporočilPrijava za pregled zasebnih sporočil   PrijavaPrijava 

GLCD z ST9720 kontrolerjem
Pojdi na stran 1, 2, 3  Naslednja
 
Objavi novo temo   Odgovori na to temo    Kazalo po Svet elektronike forumu -> Digitalna elektronika
Poglej prejšnjo temo :: Poglej naslednjo temo  
Avtor Sporočilo
protoncek
Profesionalec


Pridružen/-a: Sob Maj 2007 9:25
Prispevkov: 303
Kraj: Mengeš

PrispevekObjavljeno: Pet Apr 13, 2012 8:11 pm    Naslov sporočila: GLCD z ST9720 kontrolerjem Odgovori s citatom

V roke mi je prišel grafični LCD128x64 z omenjenim kontrolerjem ( kitajski). Ker v bascomu ne najdem knjižnice zanj sklepam da ga nativno ne podpira, kaj? Sicer sem na mcs forumu našel en testni program, kjer pa uporablja direktno komunikacijo. Načeloma je kontroler zanimiv zato,ker ima tudi serijsko komunikacijo in bi ga tako lahko uporabil na avr-ju z manj pini. Je kdo že kaj delal s tem? Drugače bo treba v roke pljunit in naštudirat...
_________________
http://www.protoncek.com
Nazaj na vrh
Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran
Silvo
Profesionalec


Pridružen/-a: Tor Jan 2004 19:06
Prispevkov: 234

PrispevekObjavljeno: Pet Apr 13, 2012 9:17 pm    Naslov sporočila: Odgovori s citatom

Zanimiv kontroler. Si gledal tale datashet? V tekst modu je sorazmerno lahko zagnati. Malo bolj komplicirano bo kracanje v grafičnem načinu.
Nazaj na vrh
Poglej uporabnikov profil Pošlji zasebno sporočilo
protoncek
Profesionalec


Pridružen/-a: Sob Maj 2007 9:25
Prispevkov: 303
Kraj: Mengeš

PrispevekObjavljeno: Sob Apr 14, 2012 8:26 am    Naslov sporočila: Odgovori s citatom

Ja, sem gledal in imaš prav. Tisti demo program iz MCS foruma napiše gor en tekst ter nariše par krogov, tako da osnovo imam. Sicer me pa skoraj bolj zanima serijski način, ampak ker tukaj nisem preveč doma sploh ne vem, kaj je to za en protokol. Bom prvo poskusil npr. Z I2C, ki ima isto data line in clk line. Zanimivo bi bilo namreč poganjati grafični zaslon npr. Z kakšnim tiny-em...
Načeloma se mi itak (zaenkrat) ne gre toliko za kracanje. Njem, ampak bolj to da bi pisal gor z različnimi fonti, kar bo pa, če prav razumem treba v grafičnem načinu. On ima namreč font 16x8 vgrajen, ter kitajske zanke in to je to. Razen če ga porabim kot 6x 16 (ali nekaj takega) znakovni LCD.

_________________
http://www.protoncek.com
Nazaj na vrh
Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran
Silvo
Profesionalec


Pridružen/-a: Tor Jan 2004 19:06
Prispevkov: 234

PrispevekObjavljeno: Sob Apr 14, 2012 1:12 pm    Naslov sporočila: Odgovori s citatom

Koliko gledam datashet je serijska komunikacija čisto preprosta. Ni pa I2c. Bolj je podobna SPI. Komunikacija je le v smeri CPU->LCD. Displej ne vrača nič, tako da kaka namenska I2c rutina ne bo delala. Nisem se poglabljal v podrobnosti - tako na hitro bi rekel, da bi morda celo delal hardverski SPI. V tekst načinu boš lahko uporabil le vgrajeno kodno tabelo. Vse ostalo bo potrebno delati v grafičnem načinu. Tukaj pa bo šlo precej po programskem pomniliku mirkokontrolerja tako, da v navezi z kakim malčkom lahko pozabiš na grafični način.
Nazaj na vrh
Poglej uporabnikov profil Pošlji zasebno sporočilo
protoncek
Profesionalec


Pridružen/-a: Sob Maj 2007 9:25
Prispevkov: 303
Kraj: Mengeš

PrispevekObjavljeno: Sob Apr 14, 2012 3:34 pm    Naslov sporočila: Odgovori s citatom

Ja, nekaj sem se že ukvarjal s serijsko komunikacijo, pa zaenkrat neuspešno...nisem nikjer sploh zasledil kakšna je lahko največja hitrost, če je sploh pomembno. Delal sem pa kar direktno ukaze (v bascomu) po sistemu set port.x -- reset port.x. Na osciloskopu sem lepo dobil zaporedje uro in ukaze, samo LCD zaenkrat ne =be žive sile. No, serijska komunikacija je itak bolj izziv kot uporabnost, ker, kot imaš prav, itak rabim večji kontroler zaradi spomina, če nič drugega.
Zdaj sem v paralelnem načinu prišel do tega da lahko pišem gor z vgrajenim fontom ter narišem kakšno črto in krog torej za silo ga lahko porabim kot 4x16 LCD.
Zgrešen nakup pač, vidim...kitajci nič ne pišejo, kateri kontroler je. Saj me je izučilo. Zdaj bom vedno gledal, da piše KS107/108. Mi je bolj všeč.

_________________
http://www.protoncek.com
Nazaj na vrh
Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran
Silvo
Profesionalec


Pridružen/-a: Tor Jan 2004 19:06
Prispevkov: 234

PrispevekObjavljeno: Sob Apr 14, 2012 4:49 pm    Naslov sporočila: Odgovori s citatom

Na 44-ti strani imaš timing diagrame. Gre kar visoko TSLW =300nS TSHW=300ns (zgornja meja ni limitirana) max 1.6Mhz
Nazaj na vrh
Poglej uporabnikov profil Pošlji zasebno sporočilo
protoncek
Profesionalec


Pridružen/-a: Sob Maj 2007 9:25
Prispevkov: 303
Kraj: Mengeš

PrispevekObjavljeno: Sob Apr 14, 2012 5:06 pm    Naslov sporočila: Odgovori s citatom

Aha...no, jaz sem imel gotovo nižjo frekvenco. Sicer imam kristal 10MHz, ampak sem vmes dajal pavze - poskušal sem od 1 do 10 mikrosekund, pa še bascom itak ni tako hiter, torej je bilo krivo kaj drugega. Očitno sem pri inicializaciji pozabil kakšen string. Se bom še malo pozabaval z njim.
_________________
http://www.protoncek.com
Nazaj na vrh
Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran
Silvo
Profesionalec


Pridružen/-a: Tor Jan 2004 19:06
Prispevkov: 234

PrispevekObjavljeno: Sob Apr 14, 2012 6:12 pm    Naslov sporočila: Odgovori s citatom

Ne izgleda komplicirano.
Najprej ga moraš hrdware dati v serijsko komunikacijo.
To storiš tako, da potegneš pin PSB na dol.

Sledi izbira vodila CS na gor. Data linijo (SID) postaviš željeno stanje nato "togglaš" CLK. Tako pošlješ vseh 24 bitov. Začneš z sinhorniziaciskimi biti (5x togglaš CLK z visokem SID-om) in tako naprej... Na koncu spustiš CS. (glej diagram na stani 26.) Najprej probaj vkljuciti kursor ter ga vključit, da utripa. Tako boš videl, če tvoja procedura dela.
Nazaj na vrh
Poglej uporabnikov profil Pošlji zasebno sporočilo
protoncek
Profesionalec


Pridružen/-a: Sob Maj 2007 9:25
Prispevkov: 303
Kraj: Mengeš

PrispevekObjavljeno: Sob Apr 14, 2012 9:15 pm    Naslov sporočila: Odgovori s citatom

Ne dela nič...jutri naprej...
V glavnem, poskušam prižgati kursor in vključiti utripanje.
Zdaj npr. sploh nisem več prepričan, ali moram tisti start byte poslati VEDNO pred vsakim ukazom ali samo prvič...nikjer ni točno zapisano..
Mislim: ali start byte - 1 ukaz, startbyte, 2. ukaz.....
ali takole:
startbyte, 1.ukaz, 2.ukaz....
v glavnem ne dela ne na prvi ne na drugi način.
Vedno bolj se mi zdi da bo treba ta GLCD prodati naprej (imam dva kosa) nekomu, ki se bolj spozna na serijsko komunikacijo...ali pa uporabiti paralelno.
Kakorkoli že, hvala zaenkrat za vso pomoč do sedaj!

_________________
http://www.protoncek.com
Nazaj na vrh
Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran
Silvo
Profesionalec


Pridružen/-a: Tor Jan 2004 19:06
Prispevkov: 234

PrispevekObjavljeno: Sob Apr 14, 2012 11:04 pm    Naslov sporočila: Odgovori s citatom

Vsak paket je dolžine 24 bitov. Vedno pošlješ sinhro bite. Ko je paket zaključen spustiš CS na nizko. Žal ti z bascomom ne znam pomagat. Lahko pa ti spišem tole v assemblerju. Povek kateri mikrokotroler imaš zraven ter s katerimi pini imaš zvezan displej.
Nazaj na vrh
Poglej uporabnikov profil Pošlji zasebno sporočilo
protoncek
Profesionalec


Pridružen/-a: Sob Maj 2007 9:25
Prispevkov: 303
Kraj: Mengeš

PrispevekObjavljeno: Ned Apr 15, 2012 8:19 am    Naslov sporočila: Odgovori s citatom

No, če ti ni pretežko, bi si s tem seveda pomagal, ker asemblerja ne znam ravno...poleg tega je v bascom možno vstavljati tudi dele strojne kode. Nenazadnje bo v primeru delovanja mogoče primerjati timing strojne kode in po tem prirediti bascom. Trenutno delam z mego 644P, ker sem jo ravno imel v razvojni plošči, lahko pa tudi za mego32, jo imam tudi doma. Vezava niti ni pomembna, trenutno imam data na b.0, clock na b.1 in cs na b.2 , lahko pa vežem kamorkoli, tako da ni panike.
Obstaja pa seveda možnost da so kitajci kaj "pozabili" zvezati in serijska komunikacija sploh ne dela... Crying or Very sad
EDIT:ja, še to : kristal imam trenutno 10MHz, če je to kaj važno. Lahko pa dam kaj drugega notri...

_________________
http://www.protoncek.com
Nazaj na vrh
Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran
Silvo
Profesionalec


Pridružen/-a: Tor Jan 2004 19:06
Prispevkov: 234

PrispevekObjavljeno: Ned Apr 15, 2012 10:45 am    Naslov sporočila: Odgovori s citatom

Ne pozabi na pin PSB! V kodi sem ga definiral kot PB3. Načeloma clock ne bi smel imeti kakega vpliva. Proceduro sem spisal v makro, ki prejme tri parametre 1,2 ter 3 byte. Tisto pavzo vmes sem dal za vsak slučaj. Če bo delalo jo lahko probaš vreči ven. V glavi sem definiral pine. Lahko jih menjaš poljubno. Seveda je potem potrebno kodo prevesti.

Koda:
;test displej ST9720 kontroler txt mode


#include "M32def.inc"

.def tmp=r16
.def stevec=r17

;------------------------------
;tole prilagodi za tvoj priklop
.equ PinPsb=3
.equ PinCs=2
.equ PinClk=1
.equ PinSid=0

#define Port portb
#define Izhodi ddrB
;------------------------------


#define PSB Port,PinPsb
#define CS Port,PinCs
#define CLK Port,PinClk
#define SID Port,PinSid

.macro SetIzhod
   sbi Izhodi,PinPsb
   sbi Izhodi,PinCs
   sbi Izhodi,PinClk
   sbi Izhodi,PinSid
.endm



.macro NaLcd
   ldi stevec,8
   sbi CS                  ;vkop vodila
   ldi tmp,@0
   rcall Poslji
   ldi tmp,@1
   rcall Poslji
   ldi tmp,@2
   rcall Poslji
   cbi CS
.endm
   
      

.org 0x0
   rjmp GlProg


.org 0x030

Poslji:
   ldi stevec,8
NiKonec:
   lsl tmp
   cbi SID
   brcc NaClk
   sbi SID
NaClk:
   cbi CLK
   nop
   nop
   sbi CLK
   dec stevec
   brne NiKonec
   ret


   GlProg:
      ldi tmp,low(ramend)
      out SPL,tmp
      ldi tmp,high(ramend)
      out SPH,tmp                                                ;sklad

      SetIzhod                                                   ;definiranje potrebnih pinov kot izhod
      cbi PSB                                                      ;vklop serijske komunikacije
      sbi CLK
      NaLcd 0b11111000,0b00110000,0b00000000      ;8 bitni interface, txt mode, basic instruction set
      rcall Pavza50uS
      NaLcd 0b11111000,0b00000000,0b11110000      ;displej on cursor on bliknk on
      rcall Pavza50uS
      NaLcd 0b11111000,0b00000000,0b00010000      ;clr displej
      sbi PSB
      nop
      rjmp pc-1


;-----------------------------------------------------------
;Pavza 50uS   Oscilator 8Mhz
;-----------------------------------------------------------
Pavza50uS:
   push r20
   ldi r20,129
P_zanka:
   dec r20
   brne P_zanka
   pop r20
   nop
   nop
   ret

Nazaj na vrh
Poglej uporabnikov profil Pošlji zasebno sporočilo
protoncek
Profesionalec


Pridružen/-a: Sob Maj 2007 9:25
Prispevkov: 303
Kraj: Mengeš

PrispevekObjavljeno: Ned Apr 15, 2012 12:08 pm    Naslov sporočila: Odgovori s citatom

JUHU!!! dela!
Sicer sem se malce "zlagal"...nimam na voljo mege32, (je šla v nek projekt Crying or Very sad ) ampak 16-ko, pa sem popravil v AVR studiu in kursor veselo utripa!! Very Happy
Zdaj pa naprej. Mogoče se še malo poglobim v kodo, saj ni tako komplicirano, kot vidim. Včasih, ko sem še Z80 malce programiral mi je bolj kot razumevanje kode delalo težave projektiranje samega programa - mislim - "pogruntati" je treba mariskaj, npr. kako množiti, deliti, pogojne stavke...
Zaenkrat najlepša hvala! Bom poročal, če bo kaj spremembe.

_________________
http://www.protoncek.com
Nazaj na vrh
Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran
Silvo
Profesionalec


Pridružen/-a: Tor Jan 2004 19:06
Prispevkov: 234

PrispevekObjavljeno: Ned Apr 15, 2012 1:00 pm    Naslov sporočila: Odgovori s citatom

Sedaj dalje sploh ni problem. Kodo načeloma lahko na enak način spišeš tudi v tvojem jeziku. V zanki pošlješ tiste tri byte ter toglaš CLK. Šlo bo le nekoliko bolj po programskem pomnilniku.

Sedaj poskusi spravit karakter iz kodne tabela na ekran.
Lahko koristiš kar obstoječi makro.

RS=1 RW=0 Karatker "A" se nahaja v kodni tabeli 4high 1low
dopišeš obstoječi kodi:
Koda:

NaLcd 0b11111010,0b01000000,0b00000001


pa bi mogel zleteti "A" na displej.
Nazaj na vrh
Poglej uporabnikov profil Pošlji zasebno sporočilo
protoncek
Profesionalec


Pridružen/-a: Sob Maj 2007 9:25
Prispevkov: 303
Kraj: Mengeš

PrispevekObjavljeno: Ned Apr 15, 2012 1:47 pm    Naslov sporočila: Odgovori s citatom

Ja, res je. Čisto lepo piše tekst.
Kot sem do sedaj uspel ugotoviti je res očitno vse v timingu. Namreč, v bascomu sem zadevo napisal točno po tvoji predlogi in zadeva deluje, a samo če imam pod kontrolo tudi PSB bit. Če ga vežem fiksno na maso (vklop serijske komunikacije), je LCD mrtev, medtem ko strojna koda deluje tudi če je PSB stalno na masi in tudi če je CS stalno na plusu. Poleg tega mi v bascomu zaenkrat deluje le vklop utripanja kurzorja, tekst pa še ne. Ampak zaenkrat se še raje igram s strojno kodo Very Happy Tisti timing bom že pogruntal, drugače bom pa na en način to strojno kodo vgradil v bascom.
ja, timing je hudič... Twisted Evil

_________________
http://www.protoncek.com
Nazaj na vrh
Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran
Pokaži sporočila:   
Objavi novo temo   Odgovori na to temo    Kazalo po Svet elektronike forumu -> Digitalna elektronika Časovni pas GMT + 1 ura, srednjeevropski - zimski čas
Pojdi na stran 1, 2, 3  Naslednja
Stran 1 od 3

 
Pojdi na:  
Ne, ne moreš dodajati novih tem v tem forumu
Ne, ne moreš odgovarjati na teme v tem forumu
Ne, ne moreš urejati svojih prispevkov v tem forumu
Ne, ne moreš brisati svojih prispevkov v tem forumu
Ne ne moreš glasovati v anketi v tem forumu
You cannot attach files in this forum
You cannot download files in this forum


Powered by phpBB © 2001, 2005 phpBB Group