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 

Branje 10-bit podatka v bascom 8051

 
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
muc82
Neznanec
Neznanec



Pridružen-a: Čet 13 Feb 2014 7:43
Prispevkov: 3
Aktiv.: 0.02

PrispevekObjavljeno: Tor Sep 16, 2014 9:34 pm    Naslov sporočila:  Branje 10-bit podatka v bascom 8051 Odgovori s citatom

Lepo pozdravljeni,

Imam 10-bitni A/D pretvornik MCP3008, katerega bi rad bral z Atmelovim krmilnikom AT89C4051 preko bascom 8051 programa. Krmilnik bo dovolj za to nalogo.
Ne vem kako naj si sploh nastavim sistem branja teh 10-ih bitov. Ker lahko operiram z byti vem da moram podatek shranit v dva byta in potem to pretvorit, ampak si nekako ne morem nastavit enega pametnega sistema tega branja. Komunicirata preko SPI vodila. A ima kdo kakšen predlog?
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
igo
Član
Član



Pridružen-a: Sre 11 Okt 2006 19:11
Prispevkov: 3638
Aktiv.: 17.11

PrispevekObjavljeno: Tor Sep 16, 2014 11:31 pm    Naslov sporočila:   Odgovori s citatom

Vprašanje je precej na široko zastavljeno.

V osnovi imaš 24-bitna okna (3x8).
MCU oddaja CS' , SCLK in Din (v smeri proti MCP), sprejema pa Dout (podatek iz MCP).
Če je ni na spletu, boš moral zanko sestaviti sam.
Pripraviš si 4 bite (SGL/DIF3, D2,D1,D0) oziroma v nek števec shraniš 0x00 ali 0x08
in začneš zanko.

X1z:
CS = 0
7x (
SCLK=1
SCLK=0
)
Din=1 (start)
nato pošlješ 4 bite, ki si si jih pripravil že prej (pazi, da pri pomikanju registra ohraniš njegovo prvotno vrednost -> pomikaj kopijo).
Nato le še v zanki oddajaš uro in bereš vhod
12x(
SCLK=1
SCLK=0
beri in shrani Dout pin
)
ko končaš za en AD vhod, daš
CS=1
shraniš prebrano 16-bitno spremenljivko (zgornjih 6 bitov je pač enakih '0' ),
povečaš števec za 1 (naslednji vhod) in ponoviš zanko od X1z še 7-krat.

V glavnem sem tole povzel po hitrem preletu skozi datasheet, SPI mode 0.0..

S 16-bitnimi rezultati potem počneš, kar želiš.

_________________
Teoretično je praksa posledica teorije, praktično je pa ravno obratno. (igo 2001)
LP, Igor
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-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: 48 dni


Powered by phpBB © 2001, 2005 phpBB Group