Fórum témák

» Több friss téma
Fórum » Két PIC közötti kommunikáció
 
Témaindító: JohnyBravo, idő: Márc 28, 2006
Témakörök:
Lapozás: OK   2 / 8
(#) Tomee válasza Báddzsó hozzászólására (») Szept 22, 2006 /
 
Két pic közé kell és nem pic és pc közé.
Ha pic és pc közőtt akarok komunikálni akkor majd megy kevesebbel.
Akkor ezek szerint a pic soros portja vinni fogja?
(#) Báddzsó válasza Tomee hozzászólására (») Szept 22, 2006 /
 
nem tudom...azt nem tudom...
azt viszont tudom, hogy ha két pic azonos frekin megy (ua.zal a kvarccal) akkor nincs hiba a komunikiációban. (persze csak ha azonos a komm. sebessége...)
azok a hibák csak a sebesség eltérésből adódnak, mert a pc pl 9600-at használ a pic meg nem tud pl 4MHzes kvarccal pont 9600 al menni
(#) majorblink válasza Báddzsó hozzászólására (») Okt 25, 2006 /
 
Nekem lenne egy kérdésem. Ha két pic-et ugyanazzal a kvarcal akarom üzemeltetni akkor simán mindkettő pic-et hozzákötöm a kvarc két lábához? Vagy csak az egyikhez és az ő osc2-jét kötöm a másik osc1-éhez?
(#) potyo válasza majorblink hozzászólására (») Okt 25, 2006 /
 
Azért érdekes, hogy emberek picekkel foglalkoznak, és alapvető elektronikai kérdésekkel nincsenek tisztában.

Fejből nemtudom melyik, de az adatlapon látható, hogy az osc1 és az osc2 közül az egyik kimenet, a másik bemenet. A kvarcot mondjuk az A pichez rakod, és a B pic oszcillátorbemenetét odakötöd az A pic oszcillátorkimenetéhez.
(#) Báddzsó válasza potyo hozzászólására (») Okt 25, 2006 /
 
naja, de a kimenetét 4edeli a pic. Ezzel már én is szenvedtem.
(#) potyo válasza Báddzsó hozzászólására (») Okt 26, 2006 /
 
És mégis hogy negyedelné, amikor meg kell hajtania a saját kvarcát? Valamit nagyon félrenéztél, mert HS, XT és LP (+PLL, ha épp olyan) módban kell egy kimenet és egy bemenetként viselkedő kapu a kvarc 1-1 oldalára. Tessék szépen megnézni az adatlapban, le van rajzolva, hogy mi micsoda, pl. 16F877A adatlapon Figure 14-1. Az ICD2-ben is így megy a két pic egy kvarcról. Annak a picnek, ami a kvarcot meghajtja, az osc2 lábát kell hozzákötni a másik pic osc1 lábához.
(#) Báddzsó válasza potyo hozzászólására (») Okt 26, 2006 /
 
tényleg, szorri, én arra gondoltam, mikor belső oszcijáról jár a pic, na annak csak a negyedét lehet kiküldeni...
(#) Rikfic válasza Topi hozzászólására (») Márc 6, 2007 /
 
Üdv!

Kommunikációt szeretnék kialakítani PIC-ek között:
egy master és három slave.

Az alkalmazott mikrovezérlő: pic16f818

Bárki, akinek már sikerült i2c kommunikációt kialakítani bármilyen típusú picek között, azok tapasztalatait nagyon várom.

A protokollt ismerem, nem elméleti beszámolót várok, hanem olyan "sorstársak" segítségét, akinek már sikerült ezt megvalósítani és hajlandó megosztani a leírást. Hangsúlyozni szeretném, hogy PIC-PIC kommunikációról van szó, és nem EPROM, LCD..stb-ről

A hozzászólásokat előre is köszönöm!
(#) dpeti válasza Rikfic hozzászólására (») Márc 6, 2007 /
 
kezdetnek tanulmanyozd at ezt:

http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nod...011798
(AN734 appnote)
van hozza pelda is...

ez meg egy kiegeszites hozza, hogy mely pontokon felrevezeto ez az appnote:
http://www.astrosurf.com/soubie/pic_as_an_i2c_slave.htm

(#) zsotya hozzászólása Okt 3, 2007 /
 
Sziasztok!

Két pic16f628 között szeretnék rs232 kommunikációt megvalósítani! Annyi sikerélményem már volt, hogy az egyik pic-et rákössem pc-re és amit a pic elküldött a pc-nek, azt láttam a monitoron, de a fordítottjára még nincs megoldás. Mármint nem tudok a pic-cel adatot fogadni!

PIC C Compiler -t használok!

Tud valaki segíteni?!
(#) MPi-c válasza zsotya hozzászólására (») Okt 3, 2007 /
 
Mind a két PIC-ben az rs232 paramétereinek ugyanazt állítsd be.
Az adó PIC Tx kivezetését kösd a vevő Rx lábához.
Az adóban használd a printf a vevőben a kbhit és a getc függvényeket.
Nézd meg Topi "Vezetéknélküli kommunikáció..." c. cikkét. Jó alap az elinduláshoz. ( rádiómodul, manchester kódolás nem is kell. A vett adatot a PIC egy LCD-re írja így az eredményt láthatod)
(#) zsotya válasza MPi-c hozzászólására (») Okt 3, 2007 /
 
Üdv,

összeraktam, amit mondtál és azt hiszem, hogy az egyik pic meg is kapja, amit a másik küldött neki, de a kapott adatot megszakításból figyelem és amikor adatot kap a másik pic, akkor felvillant egy ledet, majd visszaugrik a főprogramba, de az a baj, hogy amikor visszaugrik a főprogramba, akkor nem folytatódik a főprogram, hanem folyamatosan a megszakítás szubrutinjába ugrál oda-vissza! Tehát gondolom törölni kéne a megszakítást jelző flag bitet! De nem tudom, hogy hogyan kell! Az alábbit elvégeztem:
#byte PIR1 = 0x0C

majd a szubrutinban:
bit_clear(PIR1,5);

De a szubrutinból továbbra sem ugrik vissza a főprogramba, vagy pedig a főprogramból rögtön visszaugrik a szubrutinba és oda-vissza ugrál!

Mit a megoldás? Van ötlet?
(#) iamrob válasza zsotya hozzászólására (») Okt 3, 2007 / 4
 
Hali!

A PIR1 ötödik bitje read-only, és akkor törlődik (magától), ha az RCREG regisztert olvasod ki.
Nem vagyok C-s, asm-ben pl. ez kell: movf RCREG,W.
Tehát a megszakítás rutinban olvasd ki az RCREG-et és jó lesz.
(#) zsotya hozzászólása Okt 3, 2007 /
 
ÍÍÍÍÍígy van!!!

Ez volt a hiba!!

Örök hála!

Sajnálom, hogy nem tudok pontot adni! Köszönöm szépen a segítséget! Működik!
(#) Moderátor hozzászólása zsotya hozzászólására (») Okt 3, 2007
 
Idézet:
„Sajnálom, hogy nem tudok pontot adni”

De én igen. :hehe:
Megoldva.
(#) zsotya hozzászólása Okt 3, 2007 /
 
Először is köszi Frankye a figyelmességet!


De itt a következő probléma:

A két pic16f628 gyönyörűen kommunikál egymással az rs232 portjaikon keresztül! Összeraktam az egyik picet is és a másik picet is külön-külön próbapanelon és minkét próbapanel külön adapterről kapja az áramot, és a kommunikáció így nem működik, csak akkor, ha a két próbapanel gnd-jét összekötöm, vagy ha ugyanarról az adapterről működik mindkét pic.

Ez miért van és hogyan kell kiküszöbölni?
(#) Stadi válasza zsotya hozzászólására (») Okt 3, 2007 /
 
Leírtad a választ: nincsenek összeföldelve, magyarul a küldött és a fogadott jel a két oldalon nincs azonos potenciálon. Három drót kell a kommunikációhoz: Rx, Tx, GND. Enélkül nem fog menni.
(#) Rikfic hozzászólása Okt 18, 2007 /
 
Üdv Mindenkinek!

Két pic között szeretnék adatot átvinni infrán keresztül. Valamilyen infrás ic-re gondoltam, amiből van adó és vevő változat is, és a pic-hez tudom kapcsolni.

Tud valaki segíteni?
(#) szilva válasza Rikfic hozzászólására (») Okt 18, 2007 /
 
Lehet, egyszerűbb lenne a PIC-kel előállítani egy modulált kimeneti jelet, ami megy egy infra LED-re, a másik oldalon meg beépíteni egy TSOP1736-ot, vagy hasonlót és megoldani a vett jelek dekódolását.

Ez hardveresen roppant egyszerű, igaz, kicsit többet kell programozni vele
(#) telectro hozzászólása Júl 4, 2008 /
 
hali

szeretnék, egy olyan megoldást ami egyik helyen lévő 12 különböző kapcsolónak(érzékelőnek) az állapotát egy másik helyen ami kb. 20 méterre van az egyik helytől megjeleníteni.
ez önmagában nem lenne túl bonyolult feladat, ha sok-sok vezetékem lenne a két hely között, de csak 4szál drótom van.
ezért gondoltam arra, hogy valamilyen soros vonalon lehetne elküldeni az infót.

a kapcsolóknak az állapotát, le tudom tenni TTL szintre és a vevő oldalon meg ledeket szeretnék meghajtani a kapcsolók állapotának megfelelően.

probléma az is, hogy elektronikai szempontból meglehetősen zajos ez a környezet, tehát valami stabilan működő soros protokollra lenne szükség.
azt hiszem az rs485? jó lenne erre. (ha jól gondolom)

tud valaki erre esetleg egy már kész rajzot és programot vagy linket küldeni ?

köszi

zsolt
(#) potyo válasza telectro hozzászólására (») Júl 4, 2008 /
 
Attól nem kapsz több választ, hogy két helyre is beírod a kérdésed!
(#) telectro válasza potyo hozzászólására (») Júl 4, 2008 /
 
az lehet, de mintha ez a rovat jobban ráillene a problémára mint a másik.

szeretem a segítő hozzászólásokat, persze amelyek szorosan a felvetett problémára koncentrálnak.
(#) dcsabi válasza telectro hozzászólására (») Júl 4, 2008 /
 
A vételi oldalon van külön tápra lehetőség, illetőleg a kapcsolóknál? ezt azért kérdezem mert az rs485 az 3 vezetéket kér a kommunikációhoz... és még valahonnét megtáplálod , akkor az egyiknek át kell vinned a tápot...
Szerintem 20m-t rs 232-vel simán át lehet vinni...
Két PIC 16F628 is elég a feladatra a progi szemtelenül egyszerü, ha még nem oldottad meg mindjárt írok egyet...
(#) dcsabi hozzászólása Júl 4, 2008 /
 
PIC 16f628A RA.0-RA.4 RB.0 RB.3-RB.7 ig összesen 12 bemenet negativra kapcsol pl. optocsatoló (kb817__4pin)
Kimenetként ugyanez a sorrend.
Az Rs kommunikációban a RB.1 és RB.2 láb vesz részt...
Portsebesség 2400, 50ms-onként küldi az adatokat
A max232 illesztéséhez nézz egy példát ( most ennyi időm volt) ennyi az egész megoldás ...
A pic-hez 4 mhz-es quartz kell 2x22pF-al...
A Reset láb nincs kivezetve, ez is bemenet...
(#) dcsabi hozzászólása Júl 4, 2008 /
 
ha mindenképpen ragaszkodsz az rs 485-höz, akkor a 876A-t javaslom... A 628A- val is meg lehet csinálni, de nem bizok a quartz nélküli megoldásban (ugyanis fel kell használni ezen lábat is...)
A programon minimálisat kell csak módosítani mindkét esetben... illetve az illesztéshez a Max485 Ic_t kllhasználni...
(#) telectro válasza dcsabi hozzászólására (») Júl 18, 2008 /
 
jaj ne haragudj, hogy eddig semmi választ nem írtam, úgy elkavarodott a téma, hogy nem találtam meg...

nagyon köszönöm írásod, igen ez egy minden szempontnól segítő hozzászólás volt, ha most itt lehetne pontot is adnék érte.

neki látok az általad adott információk alapján összeállítani ezt a cuccot, éppen most nincs 628-am csak 84-em de majd hétfőn beszerzek addig meg készítek egy próbapanelt hozzá

köszi

zsolt
(#) fejesg válasza zsotya hozzászólására (») Nov 21, 2008 /
 
Szia Zsotya!

Kérlek oszd meg velem (is), hogyan oldottad meg a 2 db 16F628A soros dumcsiját? Óra beállítás? (xtal, intosc), rutinok?

Előre is köszi: fejesg
(#) fejesg válasza dcsabi hozzászólására (») Nov 21, 2008 /
 
Szia Dcsabi!

Most látom ,hogy Te is foglalkozol a PIC-ek közötti soros kommunikációval. Modellvasúti mozdonyt szeretnék irányítani 2 (vagy 3) PIC segítségével. Ha az adó 16F628A lenne, akkor hozzá kellene kapcsolnom egy 12F683-at a sebesség-meghatározó potméterek miatt (ACD), illetve a vevő (mondjuk) 16F628A lenne. A vasúti pálya állandó feszültségű (egyik sínszál +12, másik sínszál GND), és a PIC jelét vmi kondenzátoros megoldással rá lehetne vezetni a +12V sínre.

Az L293N IC-vel már megoldottam a menetirányváltást. illetve PWM jel segítségével a motor sebességét is tudom állítani. Csak sajnos nem tudok még adatokat küldeni egyik mikiről a másikra (impulzusszélesség értéke, amelyet AD átalakítóval szerzek a potméterektől).

Előre is köszi a segítséget: fejesg
(#) dcsabi válasza fejesg hozzászólására (») Nov 24, 2008 /
 
Köszi, hogy engem keresel:
Amit tudok mondani. hogy erre a feladatra át kellene nézned ezen a fórumon már ismertetett, a modell vasutak számára kidolgozott vezérlési eljárást...
Nem tartom a témában annyira felkészültnek magam, hogy érdemben tudjak segíteni
Egy_Vonat_topic
(#) sityu39 hozzászólása Dec 11, 2008 /
 
Sziasztok.

Én is szeretnék több PIC-et összekötni I2C - vel, vagy más hasonlóan kiválló megoldással , de a kérdésem az, hogy ha az egyik PIC örök bitmezőkre szenderül, akkor nem bénítja le teljesen a többi PIC kommunikációját, sőt nem teheti tönkre a többi PIC IO lábait?
Az áramkörök kocsiba lesznek építve és első a biztonság. gyújtás, lámpák, műszerek, stb.
Következő: »»   2 / 8
Bejelentkezés

Belépés

Hirdetés
XDT.hu
Az oldalon sütiket használunk a helyes működéshez. Bővebb információt az adatvédelmi szabályzatban olvashatsz. Megértettem