www.elektronik.si Seznam forumov www.elektronik.si
Forum o elektrotehniki in računalništvu
 
 PomočPomoč  IščiIšči  Seznam članovSeznam članov  SkupineSkupine  StatisticsStatistika  AlbumAlbum  DatotekeFilemanager DokumentacijaDocDB LinksPovezave   Registriraj seRegistriraj se 
  PravilaPravila  LinksBolha  PriponkePriponke  KoledarKoledar  ZapiskiZapiski Tvoj profilTvoj profil Prijava za pregled zasebnih sporočilPrijava za pregled zasebnih sporočil PrijavaPrijava 

Zanimiv čip - SAA1064

 
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> Komponente in podsklopi
Poglej prejšnjo temo :: Poglej naslednjo temo  
Avtor Sporočilo
Silvo
Moderator
Moderator



Pridružen-a: Pon 24 Feb 2003 17:09
Prispevkov: 14673
Aktiv.: 61.96
Kraj: Koroška-okolica Dravograda

PrispevekObjavljeno: Čet Jan 29, 2009 7:09 pm    Naslov sporočila:  Zanimiv čip - SAA1064 Odgovori s citatom

Glede na tole debato sem sem sklenil, da si spišem še procedurce za AVR. Poiskal sem testni displej, katerega sem uporabljal pri pisanju PIC aplikacij.

Mogoče nekaj osnovnih podatkov o čipu.
Gre za philipsov driver za štiri 7 segmentne led displeje s skupno katodo. Upravlja se z I2C protokolom (2 pina) Displeji delajo v multiplex načinu. Sam čip skrbi za multipleksiranje. Ne potrebuje uporov v segmente. Za pogon dveh displejev poleg čipa ne potrebujemo ničesar več. Za pogon 4 displejev pa potrebujemo še dva NPN transistorja ter kondenzator 2.7n. "Cukrček" , ki mi je zelo všeč ter se da v praksi velikokrat koristno uporabiti je softwerska nastavitev osvetlitve. Tok na segmentih lahko nastavljamo v mejah od 3-21mA. To je zelo uporabno, če želimo uravnavati osvetlitev glede na svetlobo v prostoru, kjer je displej. (priložena testna aplikacija)

Namerno sem vzel mali 8 pinski mikrokontroler (Tiny13) Displej je priključen na PB0 (SCL) PB1(SDA) . Mikrokotroler poganja notranji oscilator 4.8Mhz. Za tak clock je tudi pisana testna aplikacija. Pri nižjem clocku ne bi smelo biti problemov. Pri višijem pa bo potrebno narediti korekicjo zaradi timingov.

V prilogi fotografije testnega displeja ter filmček, ki prikazuje osvetlitev glede na svetlobo. (kvaliteta ni najboljša - narejeno s fotoaparatom)

Testna koda - pisano v assemblerju. Komentarjev ni dosti - mi vzamejo preveč časa Sad . Če koga kaj zanima- bom odgovoril na forumu. Zato prosim ne pisat pod zasebno.


Koda:
;--------------------------------------------
;testni program
;I2C procedure za SAA1064
;Silvo
;www.elektronik.si
;29.01,09
;-------------------------------------------


#include "tn13def.inc"

.def stev=r1
.def Eni=r2
.def Des=r3
.def Sto=r4
.def Tis=r5


.def tmp=r16
.def Lbiti=r17
.def Hbiti=r18



#define SCL DDRB,0
#define SDA DDRB,1


.equ KontrolniR=0x60         ;kontrolni register SAA1064
.equ Enica=0x62
.equ Dtica=0x61
.equ Stica=0x64
.equ Ttica=0x63

.org 0x0
   rjmp GProg



.org 0x10

TABELA:   //0123456789AbcdEFPHI-
.db 126,40,182,186,232,218,222,56,254,250,252,206,134,174,214,212,244,236,68,128

GProg:
   ldi tmp, low(ramend)
   out SPL,tmp

   ldi tmp,0b00110111      ;
   sts KontrolniR,tmp
   rcall LedInic               ;inicializacija led displeja
   ldi tmp,0b11
   out ADMUX,tmp
   ldi tmp,0b10100011
   out ADCSRA,tmp
   sbi ADCSRA,ADSC

   ldi tmp,1
   sts Ttica,tmp
   ldi tmp,2
   sts Stica,tmp
   ldi tmp,3
   sts Dtica,tmp
   ldi tmp,4
   sts Enica,tmp




Zanka:
   rcall Pavza200mS
   rcall LedInic
   rcall Osvezi
   
   in LBiti,ADCL         ;branje AD vhoda
   in Hbiti,ADCH   
   rcall HexDec   


   mov tmp,Sto
   cpi tmp,4
   breq St1
   cpi tmp,5
   breq St2
   cpi tmp,6
   breq St3
   cpi tmp,7
   breq St4
   cpi tmp,8
   breq St5
      
   
   rjmp Zanka

   St1:
      ldi tmp,0b01010111
      sts KontrolniR,tmp
      rjmp Zanka
   St2:
      ldi tmp,0b01000111
      sts KontrolniR,tmp
      rjmp Zanka
   St3:
      ldi tmp,0b00110111
      sts KontrolniR,tmp
      rjmp Zanka
   St4:
      ldi tmp,0b00100111
      sts KontrolniR,tmp
      rjmp Zanka
   St5:
      ldi tmp,0b00010111
      sts KontrolniR,tmp
      rjmp Zanka




   ;-----------------------------------------------------------
;Pavza 200mS   Oscilator 4,8Mhz
;-----------------------------------------------------------
Pavza200mS:
   push r20
   push r21
   push r22
   ldi r20,182
   ldi r21,223
   ldi r22,5
P_zanka2:
   dec r20
   brne P_zanka2
   dec r21
   brne P_zanka2
   dec r22
   brne P_zanka2
   pop r20
   pop r21
   pop r22
   nop
   ret

;///////////////////////////////////////////////////////
;racunanje

;------------------------------------------------
;protvorba 10 bitne cifre v 4 registre za prikaz
;------------------------------------------------
HexDec:
   clr Eni
   clr Des
   clr Sto
   Clr Tis   
NaTis:
   cpi Hbiti,high(1000)   
   brlo NaSto
   breq Enako
   subi Lbiti,Low(1000)
   sbci Hbiti,0
   subi HBiti,high(1000)
   inc Tis
   rjmp NaTis
Enako:
   cpi LBiti,low(1000)
   brlo NaSto
   subi Hbiti,high(1000)
   subi Lbiti,Low(1000)
   inc Tis
NaSto:
   tst Hbiti
   breq Enako0
   subi Lbiti,100
   sbci Hbiti,0
   inc Sto
   rjmp NaSto
Enako0:
   cpi Lbiti,100
   brlo NaDeset
   subi Lbiti,100
   inc sto
   rjmp Enako0
NaDeset:
   cpi Lbiti,10
   brlo NaEna
   subi Lbiti,10
   inc Des
   rjmp NaDeset
NaEna:
   ret

   


;///////////////////////////////////////////////////////
;----------------------------------------------------
;procedure za displej


;-----------------------------------------------------
;osvezitev displeja
;-----------------------------------------------------
Osvezi:
   rcall StartB
   ldi tmp,0b01110000
   rcall I2cTx
   ldi tmp,1
   rcall I2cTx
   clr XH
   ldi XL,Dtica
NasCif:
   ld tmp,X+
   rcall Znak
   rcall I2cTx
   cpi XL,Ttica+2
   brne NasCif
   rcall StopB
   ret

Znak:
   ldi ZH,high(tabela*2)
   ldi ZL,low(tabela*2)
   add ZL,tmp
   lpm
   mov tmp,r0
   ret


;-----------------------------------------------------------
;inicializacija led displeja
;-----------------------------------------------------------
LedInic:
   rcall StartB      ;start bit
   ldi tmp,0b01110000       ;naslov+vpis
   rcall I2cTx
   ldi tmp,0                     ;vpisoval bom v kontrolni register
   rcall I2cTx
   lds tmp,KontrolniR
   rcall I2cTx
   rcall StopB      ;stop bit
   ret


;//////////////////////////////////////////////////////////////
;i2c procedura

;-----------------------------------------------------------
;procedura pošlje podatek dobljen v tmp na I2C vodilo
;-----------------------------------------------------------
I2cTx:
   push tmp
   ldi tmp,8
   mov stev,tmp
   pop tmp

NasBit:
   rol tmp
   brcs Bit1
   sbi SDA
   rjmp Clock
Bit1:
   cbi SDA
Clock:
   rcall Pavza5uS
   cbi SCL
   rcall Pavza5uS
   sbi SCL
   dec stev
   brne NasBit
   cbi SDA
   rcall Pavza5uS
   cbi SCL
   rcall Pavza5uS
   sbi SCL
   sbi SDA
   ret

StartB:
;--------- start bit
   sbi SDA
   rcall Pavza5uS
   sbi SCL
   ret
;-------

StopB:
;--------stop bit
   cbi SCL
   rcall Pavza5uS
   cbi SDA
   ret


;-----------------------------------------------------------
;Pavza 5uS   Oscilator 4,8Mhz
;-----------------------------------------------------------
Pavza5uS:
   push r20
   ldi r20,4
P_zanka:
   dec r20
   brne P_zanka
   pop r20
   nop
   ret




P1290056.JPG
 Opis:
 Velikost datoteke:  406.93 KB
 Pogledana:  9 krat

P1290056.JPG



P1290057.JPG
 Opis:
 Velikost datoteke:  414.73 KB
 Pogledana:  22 krat

P1290057.JPG



P1290054.ZIP
 Opis:
Film - regulacija osvetlitve

Download
 Ime datoteke:  P1290054.ZIP
 Velikost datoteke:  3.16 MB
 Downloadano:  27 krat


_________________
lp
Silvo
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Obelix
Član
Član



Pridružen-a: Pon 19 Maj 2008 13:59
Prispevkov: 1881
Aktiv.: 9.05
Kraj: Maribor

PrispevekObjavljeno: Pet Jan 30, 2009 9:07 am    Naslov sporočila:   Odgovori s citatom

Vidim, da imaš tudi tiskanino za displej. Si jo pripravljen deliti z nami ?

Lep pozdrav, Andrej
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
BojanR
Član
Član



Pridružen-a: Tor 08 Apr 2008 9:52
Prispevkov: 693
Aktiv.: 3.31
Kraj: Vnanje Gorice

PrispevekObjavljeno: Pet Jan 30, 2009 11:02 am    Naslov sporočila:   Odgovori s citatom

Kakšno leto dni nazaj sem tudi sam uporabil ta driver in mi dela super. Poganjam 1,2 inča visoke Kinghbright visokosvetilne LED displaye. Pa fino je, ker se da regulirat tok. Tako da lahko display sveti z zmanjšano svetilnostjo do interupta, potem pa zasveti v polnem sijaju.


DSC00485.JPG
 Opis:
 Velikost datoteke:  183.59 KB
 Pogledana:  8 krat

DSC00485.JPG


Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo
Silvo
Moderator
Moderator



Pridružen-a: Pon 24 Feb 2003 17:09
Prispevkov: 14673
Aktiv.: 61.96
Kraj: Koroška-okolica Dravograda

PrispevekObjavljeno: Pet Jan 30, 2009 5:17 pm    Naslov sporočila:   Odgovori s citatom

Obelix je napisal/a:
Vidim, da imaš tudi tiskanino za displej. Si jo pripravljen deliti z nami ?

Lep pozdrav, Andrej


Mislim, da je tiskanina celo nekje na forumu. Sicer jo bom skušal poiskati.

_________________
lp
Silvo
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Silvo
Moderator
Moderator



Pridružen-a: Pon 24 Feb 2003 17:09
Prispevkov: 14673
Aktiv.: 61.96
Kraj: Koroška-okolica Dravograda

PrispevekObjavljeno: Pet Jan 30, 2009 5:46 pm    Naslov sporočila:   Odgovori s citatom

V prilogi tiskanina v PDF ter Layout formatu. Mislim, da je dobra, kajti na tej na fotografiji sem delal neke popravke. Elementi niso označeni. (itak ni nič kaj gor) 2x transistor BC847 ter kondenzator 2.7n ter upor 0 Omega (mostič) pri transistorju. Zraven kondezatorja se še prilotajo ustrezni upori za določitev naslova. (glej datasheet). Displej je v enem kosu CA56-11EWA (kupljeni v C*onradu). Morda bi bilo smiselno displejsko ploščo narisat za klasične displeje.


saa1064.zip
 Opis:
Tiv v PDF ter Layout formatu

Download
 Ime datoteke:  saa1064.zip
 Velikost datoteke:  28.5 KB
 Downloadano:  16 krat


SAA1064.pdf
 Opis:
Datasheet

Download
 Ime datoteke:  SAA1064.pdf
 Velikost datoteke:  129.14 KB
 Downloadano:  11 krat


_________________
lp
Silvo
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Pokaži sporočila:   
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> Komponente in podsklopi Časovni pas GMT + 2 uri, srednjeevropski - poletni čas
Stran 1 od 1

 
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
Ne, ne moreš pripeti datotek v tem forumu
Ne, ne moreš povleči datotek v tem forumu

Uptime: 491 dni


Powered by phpBB © 2001, 2005 phpBB Group