Fórum témák

» Több friss téma
Fórum » Soros port programozás
 
Témaindító: pakibec, idő: Márc 23, 2006
Témakörök:
Lapozás: OK   3 / 14
(#) kobold válasza KipKap hozzászólására (») Márc 1, 2008 /
 
Az RS-232 átvitel aszinkron, azaz nem is kell hozzá (és nincs is) órajel, csak az említett RX-TX, esetleg handshaking, de az neked most nem kell.
Egy-egy karakter vétele nagyjából úgy történik, hogy startbit jön, elindul egy időzítő az elméleti bitsebességnek megfelelően, és periodikusan megvizsgálja a vonal szintjét (belépteti egy regiszterbe). Nincs külön szinkronizálás; ha eltérő a küldő és a fogadó oldalon a sebesség beállítása, vagy pontatlan a fogadó időzítése, sikertelen lesz az átvitel.
Te azt írtad, küldeni akarsz PIC-ről PC-re. Ehhez a proci USART modulját kell használnod (használt I/O lábakat persze megfelelően konfigurálni kell); inicializálni a megfelelő sebességre, adathosszra, és beállítani az aszinkron módot. Ezután a TXREG regiszterbe történő írás automatikusan kiváltja a küldést, aminek a végén a TXSTA regiszter 1. bitje (TRMT) 1-be billen, ezt pollingozva vezérelheted a ledet.
Ha fogadni is akarsz, akkor engedélyezni kell a vételt és az RCIF megszakítását, a kiváltott megszakításnál pedig csak az RCREG regisztert kell kiolvasni, és már meg is van egy fogadott byte. Az USART modul miatt az átvitel többi része automatikus, a megfelelő konfiguráció után gyakorlatilag nem is kell vele törődni.
(#) KipKap válasza kobold hozzászólására (») Márc 1, 2008 /
 
Azt hiszem, kezdem kapisgálni. Szal: alapesetben logikai 1 szinten van a soros port, amikor a PIC adni kezd, egy bitidőre logikai 0-ra kapcsolja a soros vonalat, aztán kezdődhet az átvitel. Átvitel befejeztével küld egy (két) stop-bitet és ezzel átment egy byte. (Ha 8 bitesre van konfigurálva az átvitel). De a külön start-stop bitekkel nem kell foglalkoznom, a PIC usart modulja automatikus volta miatt. Tehát konfigurálom a PIC-et, és indítom az átvitelt, a start-stop bitek automatikusan kiküldésre kerülnek. Eddig jól értem?
(#) kobold válasza KipKap hozzászólására (») Márc 1, 2008 /
 
Hibátlan
Az AN774 segédlet a Microchip-től szerintem teljesen kitárgyalja ezt a témát, annál többet nem is kell foglalkozni az átvitel módjával, esetleg még azt olvasd át.
(#) KipKap válasza kobold hozzászólására (») Márc 1, 2008 /
 
Köszi, köszi! Átnézem a segédletet, és -azt mondod a kapcs rajz jó (bár kissé borzasztó! ) - akkor ha jól programozom a PIC-et, a portmonitorozóval már látnom kell, hogy küldi az adatokat! Nagyon köszi!
(#) KipKap válasza kobold hozzászólására (») Márc 1, 2008 /
 
A dr. Kónya-féle könyvet nézegetve megint kétségeim vannak. A könyvben vázolt MAX232 illesztés 11 és 12 lába pont fordítottja az előzőleg feltöltött rajzomnak. Melyik a jó? Szerinted?

drkonya.jpg
    
(#) kobold válasza KipKap hozzászólására (») Márc 1, 2008 /
 
És valóban A MAX232 11-es lába a proci TX, 12-es lába a proci RX vonalára kell, hogy menjen, vagyis a korábbi rajzon fordítva volt.
(#) KipKap válasza kobold hozzászólására (») Márc 1, 2008 /
 
Én is úgy gondolom a MAX adatlapja alapján! Viszont a MAX232 6-os lábán levő kondi is fordítva van. Azt is fordítsam meg?
(#) kobold válasza KipKap hozzászólására (») Márc 1, 2008 /
 
Az nincs fordítva, a polaritás úgy helyes. Üzem közben a 6. láb ugyanis negatív feszültségű.
(#) KipKap válasza kobold hozzászólására (») Márc 1, 2008 /
 
Köszönöm a segítséget! Megfordítottam a lábakat és szépen küldi az adatokat a PC-re! Ha tudnám, hogy kell pontot adni, adnék!
(#) kobold válasza KipKap hozzászólására (») Márc 1, 2008 /
 
Nincs mit Ha most már progi kellene, hogy a beérkező adattömeggel kezdj is valamit, abban is segítek, ha kell.
(#) KipKap válasza kobold hozzászólására (») Márc 1, 2008 /
 
Hogy őszinte legyek, PC felől csak monitorozom a portot, hogy a PIC küld-e adatokat. Van egy GSM adapter, ami PC-ről vezérelhető. Nokia. Soros porton ki lehet adni parancsokat, hogy pl küldjön egy adott számra egy adott sms-t. Ha megoldható lenne, szeretném, ha a PIC küldené ezeket az adatokat, mert akkor a lakásriasztóval kombinálva sms jelzés menne a betörésről. Ha ez nem oldható meg, mert mondjuk a gsm adapter handshake-t használ, vagy mittuménmi, akkor is sokat tanultam! :yes:
(#) kobold válasza KipKap hozzászólására (») Márc 1, 2008 /
 
A handshaking is megoldható, csak bonyolódik vele a program. Én ipari GSM modemmel már csináltam ilyet, annak nem kellett semmi más a kommunikációs vonalon kívül.
Ezek a modemek, adapterek AT parancsokkal bírhatók működésre, és konfigurálhatók is ilyen módon. Ez azt jelenti, hogy előre definiált karaktersorozatokat kell küldeni nekik, a karakterek (alfanumerikus és vezérlőkarakterek is, az ASCII kódtáblából) hordozzák a parancs és az esetleges adat elemeit. Nem nehéz, legtöbbször az szokott gondot okozni, hová tegye el az ember a 12 db, egyenként 50-60 karakteres üzenetet, mert a PIC-ben nem fér már el...
Példának itt egy régebben lementett, már nem létező (vagy elköltözött) lapról a Nokia AT-parancsai. Ha összeállt, hogy mit kellene küldened a modemnek, akkor először PC-ről, terminálprogrammal leteszteled, és ha megy, lehet írni a PIC-be a progit

cellular.rar
    
(#) dcsabi válasza KipKap hozzászólására (») Márc 1, 2008 /
 
Itt küldök 2 egyszerü progit, ha mondjul 876-tal vagy 877-tel csinálod akkor az analóg bemenetek állapotát is át lehet játva küldeni...
1-s progi ha lenyomod egy nyomógombot akkor az rs-check progi vevő mezejében 1-et látsz ha felengeded, akkor 0-t
2-es progi,
ha nyomkodod a nyomógombot, akkor egy 8-bites változót növelsz 0-100-ig.
A nyomógombot RA.1 lábra tedd és alpban 4.7k-val huzd pozitivra, a nyomó testre kapcsoljon.
4MHz Quartz oszcillátor, az MCLR láb belül van resetre
kötve( hagyd szabadon) , RS232 port sebesség 9600 bit/s
RB.1=RX, RB.2=TX
(#) KipKap válasza kobold hozzászólására (») Márc 1, 2008 /
 
12 db egyenként 50-60 karakter hosszú parancs??? Az rengeteg! Lehet, nem is ér ez ennyit!
(#) dcsabi válasza KipKap hozzászólására (») Márc 1, 2008 /
 
Ez nem fért bele az előzőbe _hex

628_rs_2.HEX
    
(#) KipKap válasza dcsabi hozzászólására (») Márc 1, 2008 /
 
Köszi, köszi!!! Én belső oszcillátort szeretek használni, gondolom, ez nem okoz gondot a proginak? (Persze, átkonfigurálom a PIC-et)
(#) dcsabi válasza KipKap hozzászólására (») Márc 1, 2008 /
 
Irtam még gyorsan egyet...
itt négy "számot" fogsz kapni a PC-re ( 4 számot 255-ig)
pc_s progiba vevő oldalon az "add" gombbal 4 változó mezőt kell kijelölni... jó szórakozást! Az utolsókat belsőre is...
(#) dcsabi válasza KipKap hozzászólására (») Márc 1, 2008 /
 
Itt van belsőre is ...Viszont ilyesmihez jobb a Quartz...
(#) KipKap válasza kobold hozzászólására (») Márc 1, 2008 /
 
Arra gondoltam, kipróbálom az általatok kapott friss tudásomat oly módon, hogy a RB0-ra kötött nyomógombom lenyomásával 'A' karaktert küldök a PC-re, míg RA0-ra kötött LED-em az 'üzemkész' állapotot mutatná.
Na persze, nem olyan egyszerű az élet! Az történik, ha tápot adok az áramkörnek, 'p' karaktereket küld folyamatosan a PC felé a PIC, és a LED-em halványan világít (!) Ha lenyomom a nyomógombot, a LED teljes fénnyel világít, kiküld 5-6 értelmezhetetlen (összevissza) karaktert, majd az 'A' betűkből párat, ha elengedem a nyomógombot, folytatódik a 'p' karakterek küldése. (és a LED ismét halványan izzik)
Mit tolhattam el már megint??

usart.asm
    
(#) kobold válasza KipKap hozzászólására (») Márc 1, 2008 /
 
Neked nem biztos, hogy kell annyi, sőt biztosan nem, de volt már, aki húszféle sms-t akart küldetni magának, ha nyitva maradt az ajtó, ha bement a macska a garázsba, stb... Olyankor kell a hely, néhány parancs simán elfér.
A belső oszcillátor helyett tényleg jobb volna egy kvarc, eléggé számítanak az időzítések, kár volna három pici alkatrész miatt szenvedni.
(#) kobold válasza KipKap hozzászólására (») Márc 1, 2008 /
 
A konfigot nem néztem, de csak jó, ha küld; a nyomógombhoz nem ártana pergésmentesítés; küldés végén, ha az utolsó bitet is kiléptette a PIC, a TRMT bitet billenti be, inkább azt figyeld; valamint a KIIRAT rutinban van egy goto, ami nem tudom, hova goto, a return előtt
(#) dcsabi válasza KipKap hozzászólására (») Márc 1, 2008 /
 
Ennek az RA.0 ra kötött ledednek nyugtáznia kell az adást
Az RB.0 a nyomó itt már Ez a nyomó tuti pergés mentes..."szoftveresen"
(#) KipKap válasza kobold hozzászólására (») Márc 1, 2008 /
 
Bocsi, tényleg! Természetesen az előző utasításra GOTO! GOTO $-1. Pergésmentesítés sima várakoztatással megoldható? Oké, meggyőztetek! Van itthon 4MHz-es kristályom és két 22p kondim, megkapja a PIC, ha ez kell neki. De az normális, hogy folyamatosan küld 'p' karaktereket??
(#) KipKap válasza dcsabi hozzászólására (») Márc 1, 2008 /
 
Egész pontosan melyik rész a pergésmentesítés? Nekem ez még elég héber...
(#) dcsabi válasza KipKap hozzászólására (») Márc 1, 2008 /
 
Az one shot \"rutin\" Ez bármilkor bejön,... a lábra adott változás egy proci ciklusra érvényes...
Egyébként megszólalt már valami abból amit küldtem?...
(#) KipKap válasza dcsabi hozzászólására (») Márc 1, 2008 /
 
Hmmm, például ez az utolsó nem megy, igaz belső oszcillátorral próbáltam.
(#) dcsabi válasza KipKap hozzászólására (») Márc 1, 2008 /
 
külső, 4MHz , port 9600, 1 byte megy át, ha nyomkodod
az RB.0-t növeli az értékét a változó...
A pc-s progin 1 Byte-ot állíts be fogadásra, az ismétlési időt leveheted, 100ms-ra, RS-Check.exe-t használj...
Az MCLR "belül van használva" kivül szabadon marad...
(#) dcsabi hozzászólása Ápr 3, 2008 /
 
Eddig én próbáltam válaszolgatni, most viszont én kérnék segítséget... PC-re nem írtam még progít, szerintem egyenlőre nem is fogok...
Az lenne a kérésem van-e ötletetek, arra, hogy a soros porton beolvasott adatokat (amik egy PIC-ből hívunk be) kb 20-30 byte, hogyan tudnám úgy behívni, hogy egy táblázatba rendeződjenek,(esetleg dátum,Időpont) amit le lehet menteni és nyomtatni is lehet, esetleg meg tudjam "formázni" a megjelenésüket pl:két byte összeadása, vagy más müvelet, esetleg szöveget hozzárendelni, pl hét napjainak a neve...Van-e erre valami jó progi, vagy valami jó egyszerüen kiitelezhető megoldás a szokásos win alkalmazások alatt...
(#) potyo válasza dcsabi hozzászólására (») Ápr 3, 2008 /
 
Szerintem erre írni kellene egy kis programot. Én nem tudok ilyenről, hogy létezne készen. Túl specifikus a feladat.
(#) dcsabi válasza potyo hozzászólására (») Ápr 3, 2008 /
 
Én is ettől tartok, de hátha a lelkes HE-sok ki mit lel a neten, mozgalom termékeként, találkoztak hasonlóval, vagy a képzettebb programozók improvizálnak valamit...
Következő: »»   3 / 14
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