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 

AVR -> microwire (eeprom 93C66)

 
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> AVR, LPC900, x51
Poglej prejšnjo temo :: Poglej naslednjo temo  
Avtor Sporočilo
robika
Član
Član



Pridružen-a: Pon 05 Apr 2004 20:55
Prispevkov: 281
Aktiv.: 1.19
Kraj: ajdovščina

PrispevekObjavljeno: Pet Avg 12, 2005 3:34 pm    Naslov sporočila:  AVR -> microwire (eeprom 93C66) Odgovori s citatom

Nikjer ne najdem, da bi imel BASCOM-AVR vkljucene rutine za microwire komunikacijo s serijskim eepromom 93Cx6, kot ima to BASCOM-8051. Nekaj casa so se mi 93C66 valjali po predalckih, zdaj pa ko sem presedlal na AVR-je in sem jih imel namen uporabit, pa dozivim ta hladen tus. Nasel sem rutino v C-ju, ki pa ga ne obvladam, v asemblerju pa tudi nisem kasen macek. Ali lahko kdo naredi asemblersko rutino za vpis "X" na doloceno adreso po prilozenem programcku pisanem v BASCOM-8051. Sama microwire rutina se mi zdi veliko preprostejsa in krajsa kot I2C. Poleg tega pa se lahko vpisujes spremenljivke dolzine tipa word.

'-----------------------------------------------------------------
' MicroWire test file
' please read microwire specs for understanding microwire
'-----------------------------------------------------------------
'CS - chip select
'DIN - data in
'DOUT - data Out
'CLOCK- Clock
'AL - address lines

' 93C46 93C56 93C57 93C66

'----------------------------------------------------------------------------
' Data bits: 8 16 8 16 8 16 8 16
' AL : 7 6 9 8 8 7 9 8

'you could use the same pin for DIN and DOUT
'we use a 93C66 and send bytes not words so AL is 8
$crystal = 12000000
Config Microwire = Pin , Cs = P1.2 , Din = P3.5 , Dout = P3.1 , Clock = P3.4 , Al = 8
Config Lcdpin = Pin , Db4 = P1.4 , Db5 = P1.5 , Db6 = P1.6 , Db7 = P1.7 , E = P1.3 , Rs = P1.2
Config Lcd = 16 * 2 ' konfiguracija LCD display a
Cursor Off
'init pins
Mwinit
'dimension variable used
Dim Pom As Byte
Dim X As Word

Pom = P3 And &B00001101 'ako su sve tri tipke
If Pom = 0 Then 'pritisnute,
Mwwopcode &B10010000000 , 11 'resetiraj brojač
End If

Mwread X , &B110 , 0 , 2
Cls
Do
'enable write to eeprom
'send startbit, opcode (00) and 11 + address

'Mwwopcode opcode, numberOfBits
Mwwopcode &B10011000000 , 11
'the mwwopcode can send a command(opcode) to a device

'write value of X to address 0
'opcode is 01
'we write 1 byte
'Mwwrite var,opcode,address,numberOfBytes
Mwwrite X , &B101 , 0 , 2
Waitms 10

'read back
' mwread var,opcode,address,numberofbytes
Mwread X , &B110 , 0 , 2

Locate 1 , 1 : Lcd X ; " "
X = X + 10

If X = 0 Then
Cls
End If

'disable write
'send startbit, opcode (00) and 00 + address
Mwwopcode &B10000000000 , 11
Loop
End


Lp Robi
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 -> AVR, LPC900, x51 Č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: 492 dni


Powered by phpBB © 2001, 2005 phpBB Group