Radim projekt digitalni senzor temperature u bascomu pa bi mi trebala pomoć pošto sam početnik.
Uglavnom dijelovi koje koristim : LM35- senzor temperature, MCP3004 ADC i MCU AT89S52.
Nije mi baš jasna SPI komunikacija između slave(ADC) i mastera(MCU) pa bi bilo super ako neko može objasniti na nekom primjeru , šta šalje/prima slave,a šta master? S obzirom da ovaj ADC ima 10 bitnu rezoluciju kako dobiti samo taj 10 bitni podatak,a ostale bitove iz komunikacije zanemariti?
Radim softverski SPI..
Ima primjera prilično na netu, pogledaj primjer lm35 i atmega32. Ako baš insistiraš na SPI onda helper od bascoma mada (osim ako nije kakav seminarski ili sličan rad) radije koristio čip sa ADC pa riješio kao u prvom linku.
Hvala puno na odgovoru
Ima dosta po netu ali jako malo projektata u baskomu i realizirano softverskim SPIom...Meni treba baš realizacija s ovim komponentama
MCU šalje : [0 0 0 0 0 0 0 sb] [s D2 D1 D0 x x x x ] [x x x x x x x x]
MCU prima: x1=[? ? ? ? ? ? ? ?] x2=[ ? ? ? ? ? 0 b9 b8] x3=[b7 b6 b5 b4 b3 b2 b1 b0]
Izvinjavam se tek sam se vratio s puta pa nisam mogao odgovoriti ranije. Nisam baš siguran. SPI koristim samo da bih programirao kontroler a tu mi teorija baš i ne treba puno Msm da bi ovdje mogao biti razumljivo objašnjenje za vaš problem. Istina pisano je u C-u ali nije problem, ako ne bude jasno kad uhvatim vremena, "prevest" ćemo u Bascom. Dosta naredbi je identično. Sretno.
Na tom linku je riječ od mikrokontrolerima koji imaju hardverski SPI port (SPI registre), dok at89s51 podržava samo ISP (što ste naveli da samo koristite ).
p.s. na što ste mislili pod "nisam siguran" ? Na način kako dobiti 10bit rezuliciju ili to dali je dovoljno poslati samo 5 bitova za početak komunikacije? ili oboje
Nisam siguran zato što se teorija učila davno a kako rekoh, uglavnom koristim kontrolere koji imaju hardverski riješen SPI pa se time ne bakćem. Nadam se da će se javiti neko ko je radio sa navedenim MCU i problemem. Možda naleti KIZO ili da ga zamolite preko PM. Znam da je jako dobar po ovom pitanju. Pozz.
Evo samo da javim da sam uspio debugirati problem sa SPI komunikacijom i da sada to radi ok, barem u simulatoru..
Sada imam sljedeći problem/pitanje ... Rezultat bi trebao prikazati na multiplexirani 4x7 segment display-e sa zajedničkom katodom.
Radio sam po shemi na slici(http://www.circuitstoday.com/wp-content ... o-8051.png), testirao u simulatoru i to radi ok...
Međutim nije mi jasno kako po ovoj shemi to uopće može raditi u praksi? jer za uključiti pojedini segment potrebno je prema vani izvući struju cca 20 mA,a u datasheetu od MCU 89s51 piše da je source current jako mala pa ispada da je s njom nemoguće pogoniti display na ovaj način..Jesam li nešto pobrkao ili?
Ova shema na linku nije izvediva u praksi jer kod mikrokontrolera AT89S51 svaki port može izvući 15mA što mi je nedovoljno za napajanje display-a. Znači trebao bi strujno pojačanje za svaki pin(P1.0 - P1.7)na kojemu je spojen display.. postoji li neki gotovi chip da sad ne stavljam na svaki pin otpornik i pnp tranzistor?
Možeš staviti neki buffer iz ULNxx serije, npr ULN2003. Tada ćeš trebati napraviti preinake, uzeti displej sa zajedničkom anodom i staviti tranzistore kao emiterska slijedila u pozitivnu granu prema zajedničkim anodama. Na softu ne bi trebao ništa mijenjati.
Cezare, star sam i nemoćan, ali poslušaj moj savjet ....
Kukinjos wrote:Možeš staviti neki buffer iz ULNxx serije, npr ULN2003. Tada ćeš trebati napraviti preinake, uzeti displej sa zajedničkom anodom i staviti tranzistore kao emiterska slijedila u pozitivnu granu prema zajedničkim anodama. Na softu ne bi trebao ništa mijenjati.
Malo sam se pogubio s proračunom i datasheetom od uln2003A..
Da li je dovoljna ulazna struja u buffer od 10uA ili je treba pojačati s eksternim otpornicima?
I koje vrijednosti struje i napona dobijem na izlazu buffera za ulazni napon 5V i struju 10uA? treba za proračun otpora ledice