 |
www.elektronik.si Forum o elektrotehniki in računalništvu
|
Poglej prejšnjo temo :: Poglej naslednjo temo |
Avtor |
Sporočilo |
Iztok Član

Pridružen-a: Pet 08 Okt 2004 0:55 Prispevkov: 4974 Aktiv.: 21.00 Kraj: LJ
|
Objavljeno: Tor Mar 06, 2007 8:44 pm Naslov sporočila: PIC to PIC prenos bytov |
|
|
Ima mogoče kdo kakšen primer ali osnutek programa v ASM za prenos vrednosti GPR registrov iz enega v drug PIC?
Rabil bi prenašat 32 bytov iz 16F628A v 16F876A. Vendar teh 32 bytov ni po vrsti, ampak so v malem PICu postavljeni v GPR vrsti 56 bytov ... rabim pa v velikega prenesti samo določenih 32, ki pa niso zaporedoma, ampak "nametani" med tisti 56 v velikem.
Pri tem bi rad to izvedel preko navadnih portov brez uporabe Rx, Tx, I2C ali podobnih SFRjev.
Vsaj ena "olajševalna" okoliščina je to, da imata oba PICa isti izvor OSC, ki je 20MHz.
P.S. Ne morem uporabiti enega PICa, ker se večji s clockom sinhronizira z eno napravo (COMPOSITE SYNC), manjši pa z drugo (9600 baud). Zato veliki bere podatke iz malega le takrat, ko ima čas, mali pa sprejema podatke preko Rx-a - vsako sekundo tistih omenjeni 56 bytov.
|
|
Nazaj na vrh |
|
 |
bostjang Član

Pridružen-a: Tor 03 Jan 2006 15:29 Prispevkov: 3469 Aktiv.: 14.65 Kraj: Postojna
|
Objavljeno: Sre Mar 07, 2007 11:12 am Naslov sporočila: |
|
|
Kode sicer nimam... le idejo.
Kaj pa če bi prenašal paralelno po 4 bite. Zraven bi dodal še kakšno linijo za kontrolo prenosa. Npr. mali bi samo pošiljal (s primerno hitrostjo), stanje linije A pa menjal za vsak nibble. Preko linije B bi veliki povedal kdaj podatke rabi. Seveda, če imaš 6 prostih pinov na obeh PICih.
Drugače pa s SW serijskimi vrati ali SW SPI.
|
|
Nazaj na vrh |
|
 |
bungee Član


Pridružen-a: Pon 07 Mar 2005 18:49 Prispevkov: 1479 Aktiv.: 6.24 Kraj: Ljubljana
|
Objavljeno: Sre Mar 07, 2007 11:29 am Naslov sporočila: |
|
|
Koliko imaš še neuporabljenih portov ... oziroma kaj lahko žrtvuješ pri obeh. Če imaš možnost narediti 9 bitno vodilo, potem je to trivialno. Z enim bitom iz velikega PIC-a sprožiš prenos na ostalih osmih, pa samo poslušaš. Drugače pa boš moral realizirati glede na dane možnosti.
Variant je veliko, le napisati moraš malo več detajlov.
|
|
Nazaj na vrh |
|
 |
Iztok Član

Pridružen-a: Pet 08 Okt 2004 0:55 Prispevkov: 4974 Aktiv.: 21.00 Kraj: LJ
|
Objavljeno: Sre Mar 07, 2007 1:36 pm Naslov sporočila: |
|
|
Paralelni prenos odpade ... premalo I/O-jev. Problem "nametanosti" bom rešil s prenosom vrednosti po registrih že v malem PICu, kjer je še nekaj prostora. Potem pa bi na zahtevo-signal iz velikega PICa prenesel cel že sortiran paket po dveh ali treh navadnih I/O pinih - signalih ... in za tak način iščem kakšeno "kitico" ASMja ...
|
|
Nazaj na vrh |
|
 |
jur Član


Pridružen-a: Pet 02 Dec 2005 14:45 Prispevkov: 5142 Aktiv.: 21.71 Kraj: [color=zelena]Ljubljana[/color]
|
Objavljeno: Sre Mar 07, 2007 1:40 pm Naslov sporočila: |
|
|
Rešitev je softwerski UART. Na enem poljubnem pinu pošiljaš ven serijske bite, na drugem jih sprejemaš. Na ta način se lahko na com port priključi chipe, ki sploh nimajo TX in RX funkcije. google, pic software uart najde source kodo. Če se ne motim je tudi na microchipoven webu (aplikacije). Koda vsebuje tudi CRC detekcijo napak.
Jur
|
|
Nazaj na vrh |
|
 |
Silvo Moderator


 
Pridružen-a: Pon 24 Feb 2003 17:09 Prispevkov: 14673 Aktiv.: 61.94 Kraj: Koroška-okolica Dravograda
|
Objavljeno: Sre Mar 07, 2007 1:55 pm Naslov sporočila: |
|
|
Iztok,
Če imaš dovolj proscesorskega časa na obeh straneh si mogoče omisliš 1Wire ali I2C protokol. Če bi imel FSR posrotirane, bi seveda malo olajšal programiranje. Pri branju bi lahko uporabil indirektno naslavljanje preko FSR. Domnevam, da pišeš v assemblerju.
_________________ lp
Silvo |
|
Nazaj na vrh |
|
 |
jur Član


Pridružen-a: Pet 02 Dec 2005 14:45 Prispevkov: 5142 Aktiv.: 21.71 Kraj: [color=zelena]Ljubljana[/color]
|
Objavljeno: Sre Mar 07, 2007 1:58 pm Naslov sporočila: |
|
|
Tale hip se mi zdi najbolj zabavno tole v prilogi. Delalo naj bi na pic 10F chipih.
Jur
Opis: |
|
 Download |
Ime datoteke: |
software_uart.pdf |
Velikost datoteke: |
118.81 KB |
Downloadano: |
31 krat |
|
|
Nazaj na vrh |
|
 |
|
|
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
|