Fórum témák
» Több friss téma |
Hello
A gond a kovetkezo,van egy pic16f84 es áramkor 4MHZ kirstaly frekvenciaval.nem tudom milyen baudrate el kommunik'l a pc vel.meg lehet ezt allapitani walami sofwerral ?
(Mi köze van a kérdéshez a PIC-nek és hogy mekkora frekin megy? Ismert a forráskód? Mert akkor abból meg lehet állapítani simán!)
Amúgy szkóppal meg lehet állapítani. Vagy rákötsz egy BrayTerminalt(vagy a vinfos terminalját, csak az ócska) és megnézed milyen beállításnál jön értelmes adat.
nincs forraskod, es minden letezo baudratet kiprobaltam mar.sose jon walamire walo adat
OK, ismert-e esetleg, hogy egyaltalan minek kellene jonnie?
Vagy elo lehet-e idezni, hogy az jojjon, amit szeretnel? Egyaltalan van valami adat a kimeneti vonalon? A PIC vedett kodkiolvasas ellen? A koztes atalakito nem lehet hibas?
Minden baudrate váltás előtt leállítani utána ÚJRAINDÍTANI a picet mert csak így lehetsz biztos abban hogy nem darab csomagokat kapsz.
Lehetséges problémák még: 1:Ki mondta hogy rs232 vel kommunikál (a 16F84 ben szerintem nincs ilyen illetve csak szoftveresen lehet előállítani ) 2:A jelszintek nem invertáltak? 3:Honnan tudod, hogy milyen adatokat kell kapnod? Esetleg ,ha valami lehallgató akkor a vevőt megnézni ,Különböző adatokat küldeni neki,hátha hamarabb elárulja a sebességet.(vigyázz szereti a dupla ill fél sebességet is)
Ha nincs forraskod hogyan probaltad ki a "minden letezo badurate"-et?
Na mindegy, a lenyeg, hogy mivel nincs az F84-nek USART modulja marad a bitbillegtetes. 9600 baud eseteben 104us egy bit idotartama (1/9600) megkozelitoleg -> 4MHz FOSC eseteben ugye a timer ill az utasitas ciklus alapja 4MHz/4 azaz 1MHz, azaz 1us... Start bit felfuto (vagy lefuto) elet figyeled, attol fuggoen, hogy a negalt RS232 vagy a "normal" soros jelet veszed alapul. Innen timert beallitod a 104 felere (-104/2 = -52) figyelembe veve az egyeb overheadeket, start bit figyelest kikapcsolod kozben, majd mikor jon ez a megszakitas epp az elso bit kozepen leszel. Itt -104 -ekkel ujra feltoltod a timert (ja az ugye 1:1 eloosztoval mondanom sem kell). Ha igy csinalod akkor minden alkalommal mikor jon a timer int kapsz egy bitet, mikor megjott a 8., akkor leallitod a timer intet es csak a start bit intet engedelyezed ujra. Ez tulajdonkepp egy state machine, semmi extra. Kozben "bermit" csinalhatsz, csak a timert nem hasznalhatod masra, bar az ISR overheadjebol fakadoan nem sok ideje marad masra a CPU-nak. Az elmeleti max az az int vezerlod overheadjebol keletkezik majd, de 9600-at siman meg lehet valositani. Nem interruptosan is meg lehet ezt csinalni, ha kell a timer masra akkor nagyjabol az marad csak mint opcio. Annak talan kevesebb az overheadje, csak nehezebb mellette mas nem interruptos dolgot is csinalni.
Próbáld meg ezzel, itt az adatokat decimálisban kapod meg... ezt kimondottan mikrokontrolleres dolgokhoz találták ki... Próbálgasd végig a port-sebességeket, de szerintem csak 19200 alatt ( a progiban be lehet állítani)
A vételi oldalon emeld mindig egyel, (5-10s-onként) a venni kivánt byte-ok számát, ha ez nem passzol, általában nem jön össze a kommunikáció...! Az elején tök hülye voltam a pic és a pc-közti kommunikációhoz, ezzel el sem tudom hibázni...Végül is milyen adatokat vársz? ezek csak 0-255 ig számok fognak lenni, aztán el kell döntened mire valók...! Itt a komm progi...
Az is lehet , hogy van egy két "Pass byte" és ha ezzel szólítod meg, csak akkor "válaszol"... ezer módja lehet, hogy mit írtak bele anno a pic-be. Végülis mi ez valójában ha nem titok?
Ez már megint a Jocker Slot nyerőgép? Ha igen, akkor már szinte mindent leírtak a srácok ( azóta is a Te reakciódat várják ). Esetleg a soros port lehetséges hibájára gondolva próbáld ki egy másik pc-vel , hátha műk. Ne túl combosat válassz, hátha az öreg dos-os programmal pont azért nem indul el. Én pont ilyenek miatt tartok 1 P1-es laptopot. A PIC vonatkozásában először beégetném a tartalmat egy új tokba a próba előtt. Ha meg mindenképpen érdekel az adatáramlás sebessége, ülj le az adatlapjával, és utasításonként vissza tudod fordítani, vagy pc-vel > asm-be. Ezt követően már "csak" értelmezned kell a programot, és az órajel alapján kiszámolni. Mindezen dolgok elvégzése előtt még 1x átnézném kapcsolástechnikailag ( zárlat - szakadás - tápok - an. alkatrészek stb. ). Ha nyitsz ebben az ügyben még 10 topicot, akkor sem lesz 10x annyi megoldási javaslat, és az általad otthagyott segítő szándékú fórumtársak hiába várják az eredményt.
Idézet: „azóta is a Te reakciódat várják” Naja... fél hónap alatt valami reakciót kéne mutatni az elhangzottakra... |
Bejelentkezés
Hirdetés |