Pozdrav,
u picbasic-u imam rutinu koja radi i2c komunikaciju (paralela i2cRead/i2cWrite).
kako napraviti da ta rutina radi sa varijabilnim portovima:
primjer: u jednom momentu sa scl=portB1, sda=portB2, u drugom sa scl=portA1, sda=portA2;
Zasto: na busu ima 5 slave_a: adc, temp, rtc, mem i drugi PIC; sve radi bez greske, no problem je sto drugi pic,koji je stalno iskljucen (dobije +5V samo kad treba, masa je spojena stalno), preko svojih scl-sda pinova trosi oko 10mA, (sda i scl u busu su stalno na 1). Zato bih njega prebacio na drugi bus, i kad ne treba njegov scl,sda staviti na 0.
hvala,
re-definiranje pinova
Moderators: pedja089, stojke369, [eDo], trax
Re: re-definiranje pinova
Tako ne mozes. Ali mozes samo upisati druge pinove u komande.
Znaci imas i2cread portb1,b.2 za jednu liniju
i2cread b.3, b.4 za drugu liniju.
Ali to mozes resiti i na drugi nacin, postavljanjem nekog prekidaca cd4066 il slicno.
Kako si resio drugi pic da bude i2c slave?
Znaci imas i2cread portb1,b.2 za jednu liniju
i2cread b.3, b.4 za drugu liniju.
Ali to mozes resiti i na drugi nacin, postavljanjem nekog prekidaca cd4066 il slicno.
Kako si resio drugi pic da bude i2c slave?
Re: re-definiranje pinova
hvala ti na brzom odgovoru;
radim sa 16F88. U drugom (slave) picu iskoristio sam njegov interni ssp i2c.
To sto si napisao moze sa funkcijama PICBASICa: i2cread i i2cwrite.
No ja sam napisao svoju funkciju. i sad bi tu jednu htio koristiti i za jednu i za drugu liniju.
glavni problem je potrosnja struje, to mi je bitno jel sve to skupa se napaja baterijom i radi daleko od 220V.
svaki mA mi je bitan.
radim sa 16F88. U drugom (slave) picu iskoristio sam njegov interni ssp i2c.
To sto si napisao moze sa funkcijama PICBASICa: i2cread i i2cwrite.
No ja sam napisao svoju funkciju. i sad bi tu jednu htio koristiti i za jednu i za drugu liniju.
glavni problem je potrosnja struje, to mi je bitno jel sve to skupa se napaja baterijom i radi daleko od 220V.
svaki mA mi je bitan.
Re: re-definiranje pinova
Ovako napamet ne mogu da ti pomognem. Jedino da kopiras rutinu ponovo pa sa drugim portovima. Ili nesto sa IF ELSE, pa tu ubacis 2 razlicita seta portova.
Daj ako hoces rutinu da vidim, pa mozda nesto padne na pamet.
EDIT:
Mozes ovako nesto da probas
recimo
x=PORTA.0[bitoffset]
ili
PORTA.0[bitoffset]=x
bitoffset bi bilo koliko je tvoj bit daleko od prvog bita portA.
Recimo b0 bi bilo 8, b1 je 9 itd...
Ovo isto mozes sa tris registrima.
Daj ako hoces rutinu da vidim, pa mozda nesto padne na pamet.
EDIT:
Mozes ovako nesto da probas
recimo
x=PORTA.0[bitoffset]
ili
PORTA.0[bitoffset]=x
bitoffset bi bilo koliko je tvoj bit daleko od prvog bita portA.
Recimo b0 bi bilo 8, b1 je 9 itd...
Ovo isto mozes sa tris registrima.
Re: re-definiranje pinova
probao sam bitoffset, no nije to to...
ovo sa cd4066 mi se svidja, iskljucivanje sda,scl linije prema pic-u.
do sada sam samo napajanje tom picu gasio tranzistorom, no sad bi ovaj 4066 mogao ugasiti i napajanje i sda,scl.
samo da signal (scl,sda) uredno prolazi kroz cd4066 kad je ukljucen.
to cu isprobati.
puno ti hvala na ideji,
pozdrav
ovo sa cd4066 mi se svidja, iskljucivanje sda,scl linije prema pic-u.
do sada sam samo napajanje tom picu gasio tranzistorom, no sad bi ovaj 4066 mogao ugasiti i napajanje i sda,scl.
samo da signal (scl,sda) uredno prolazi kroz cd4066 kad je ukljucen.
to cu isprobati.
puno ti hvala na ideji,
pozdrav
Re: re-definiranje pinova
99% prolazi.
Javi rezultate.
Javi rezultate.
Re: re-definiranje pinova
ovo je za sada najbolje rjesenje:
preko tri switcha prolaze scl, sda i ckp linije. pale se samo kada treba.
shema je takva da glavni pic, koji radi sa 3.3V, komunicira (izmedju ostalog) i sa pic-em, kojem kad mi zatreba, preko tranzistora saljem 8-12V (u 24sata zatreba mi 40-60sec; tamo se taj napon skida na 6.5V i na 5V sa dva stabilizatora. taj drugi pic radi sa 5V.
Rjesenje bi bilo jos bolje kada bih mogao preko 4066 progurati i paljenje tog drugog sklopa (8-12V, potrosnja oko 35mA).
no ne moze zato sto 4066 ne dozvoljava na IN/OUT pinovima veci napon od VDDa. Ako na VDD stavim taj visi napon (8-12V) ond on trazi na CONT pinovima paljenje sa takvim signalom (8-12V). (4066 ima malo kruta pravila).
No i da ostane ovako, je super rjesenje.
pozdrav
preko tri switcha prolaze scl, sda i ckp linije. pale se samo kada treba.
shema je takva da glavni pic, koji radi sa 3.3V, komunicira (izmedju ostalog) i sa pic-em, kojem kad mi zatreba, preko tranzistora saljem 8-12V (u 24sata zatreba mi 40-60sec; tamo se taj napon skida na 6.5V i na 5V sa dva stabilizatora. taj drugi pic radi sa 5V.
Rjesenje bi bilo jos bolje kada bih mogao preko 4066 progurati i paljenje tog drugog sklopa (8-12V, potrosnja oko 35mA).
no ne moze zato sto 4066 ne dozvoljava na IN/OUT pinovima veci napon od VDDa. Ako na VDD stavim taj visi napon (8-12V) ond on trazi na CONT pinovima paljenje sa takvim signalom (8-12V). (4066 ima malo kruta pravila).
No i da ostane ovako, je super rjesenje.
pozdrav
Re: re-definiranje pinova
Pa u sustini mozes i to napraviti sa NPN i PNP tranzistorima. U iskljucenom stanju potrosnja ce da bude samo curenje kroz tranzistor. Ali u sustini isto to imas i za ukljucenje tog napona bez CD4066.
E sad koliko ti to znaci, ne znam...
E sad koliko ti to znaci, ne znam...