softverski SPI-bascom

Rasprava o AVR mikrokontrolerima, AVR projekti i drugo vezano za AVR...

Moderators: pedja089, stojke369, trax, InTheStillOfTheNight

Post Reply
baskomix
Posts: 8
Joined: 10-12-2015, 20:49

softverski SPI-bascom

Post by baskomix »

Pozzz :)

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.. :idea:
User avatar
niho
Pravi forumaš
Pravi forumaš
Posts: 1895
Joined: 24-09-2009, 17:26
Location: Brcko, Bosnia and Herzegovina

Re: softverski SPI-bascom

Post by niho »

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.
baskomix
Posts: 8
Joined: 10-12-2015, 20:49

Re: softverski SPI-bascom

Post by baskomix »

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 :?

da li se ovako dobiva 10 bit-ova? :roll:
iz data sheet od MCP : http://s1.postimg.cc/58nk8amjz/mcp.jpg
*sb=startbit=1
*x=dont care bit

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]

x2 = x2 * 00000011 --> [0 0 0 0 0 0 b9 b8]
shiftleft x2, 8 --> x2= [b9 b8 0000 0000]

rez= x2 + x3 = [b9 b8 b7 b6 b5 b4 b3 b2 b1 b0]



da li je za početak komunikacije dovoljno poslati samo 5 bitova [sb s D2 D1 D0] ili ?
User avatar
niho
Pravi forumaš
Pravi forumaš
Posts: 1895
Joined: 24-09-2009, 17:26
Location: Brcko, Bosnia and Herzegovina

Re: softverski SPI-bascom

Post by niho »

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.
baskomix
Posts: 8
Joined: 10-12-2015, 20:49

Re: softverski SPI-bascom

Post by baskomix »

Hvala ponovo :wink:

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 :wink: ).


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 :oops:
User avatar
niho
Pravi forumaš
Pravi forumaš
Posts: 1895
Joined: 24-09-2009, 17:26
Location: Brcko, Bosnia and Herzegovina

Re: softverski SPI-bascom

Post by niho »

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.
baskomix
Posts: 8
Joined: 10-12-2015, 20:49

Re: softverski SPI-bascom

Post by baskomix »

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 :idea: ... 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? :idea:
baskomix
Posts: 8
Joined: 10-12-2015, 20:49

Re: softverski SPI-bascom

Post by baskomix »

Može pomoć za ovo?

http://www.circuitstoday.com/wp-content ... o-8051.png

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? :idea:
User avatar
Kukinjos
Pravi forumaš
Pravi forumaš
Posts: 1724
Joined: 28-03-2012, 18:01
Location: Split

Re: softverski SPI-bascom

Post by Kukinjos »

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 ....
baskomix
Posts: 8
Joined: 10-12-2015, 20:49

Re: softverski SPI-bascom

Post by baskomix »

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.

jel bi to išlo nešto ovako?
http://s8.postimg.cc/v3jie2plh/uln2003.jpg

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 :idea: :?:
Post Reply