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 

Programsko izvajanje SPI?

 
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> Osnove programiranja AVR-jev
Poglej prejšnjo temo :: Poglej naslednjo temo  
Avtor Sporočilo
upornik
Član
Član



Pridružen-a: Ned 09 Jan 2005 22:35
Prispevkov: 261
Aktiv.: 1.10
Kraj: Celje

PrispevekObjavljeno: Ned Jul 20, 2008 12:14 am    Naslov sporočila:  Programsko izvajanje SPI? Odgovori s citatom

Lep pozdrav!

Trenutno se ukvarjam s serijskim prenosom podatkov med enim modulom in AVR-jem. Ker so za omenjeni modul že napisane nekatere funkcije za serijski prenos podatkov v datasheetu samega modula, bi v svojem programu rad uporabil kar te.
Zanima me sledeče; funkcija je napisana tako, da v bistvu sploh ne koristi hardware-a SPI, ampak je serijski prenos podatkov izveden programsko.Za prenos 16 bitnega podatka izgleda nekako tako:

Koda:
#define SCK 7 // SPI clock
#define SDO 5 // SPI Data output (module's side)
#define SDI 6 // SPI Data input (module's side)
#define CS 4 // SPI SS (chip select)


Koda:
unsigned int writeCmd(unsigned int cmd) {
unsigned char i;
unsigned int recv;
recv = 0;
LO(SCK);
LO(CS);
for(i=0; i<16; i++) {
if(cmd&0x8000) HI(SDI); else LO(SDI);
HI(SCK);
recv<<=1;
if( PINB&(1<<SDO) ) {
recv|=0x0001;
}
LO(SCK);
cmd<<=1;
}
HI(CS);
return recv;
}


Zanima me sledeče:
Ali lahko jaz sedaj SDI,SDO in SCK povežem z katerimkoli I/O pini mikrokrmilnika, ali morajo biti vseeno povezani z MOSI,MISO in SCK, čeprav ne uporabljam vmesnika SPI? Namreč, v datasheetu je modul vseeno povezan z MOSI,MISO in SCK, čeprav se serijski prenos vrši programsko, meni pa bi bolj ustrezalo, da bi lahko modul povezal z drugimi I/O pini krmilnka, saj že imam na MOSI,MISO in SCK vezane druge naprave in bi se s tem izognil določenim komplikacijam.

Hvala za pomoč!
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo
Sokrat
Član
Član



Pridružen-a: Čet 25 Avg 2005 11:00
Prispevkov: 5584
Aktiv.: 23.57

PrispevekObjavljeno: Ned Jul 20, 2008 10:39 am    Naslov sporočila:   Odgovori s citatom

S katerimikoli, saj pine poganja tvoja koda in ne HW SPI modul. Seveda mroajo biti pini ustrezno nastavljeni (vhod/izhod).
_________________
Ka ti bo pa torba ce si kupu kolo ?
Nazaj na vrh
Skrit 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 -> Osnove programiranja AVR-jev Č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: 493 dni


Powered by phpBB © 2001, 2005 phpBB Group