Imam jedan veliki problem sa serijskom komunikacijom. Imam neki uredjaj koji se koristi u autobusu.Imam PIC 16F877 koji u nekom trenutku treba da serijski posalje 1bajt informacije ka PIC16F84A. 16F84A nema hardverski UART pa sam koristio rutinu u PIC Basicu IDE PIC Simulatora. 16F84A se nalazi na drugoj strani vozila i za komunikaciju imam samo jednu zicu. 16F84A informaciju dobija preko interapta na pinu RB0. Sve to lepo radi, ali posto firma koja je pravila buseve nije dobro provukla kablovi imam smetnje od automata za otvaranje i zatvaranje vrata i za paljenje gasenje zmigavaca!?! 16F84 mi ode u interapt kad ne trebe i zaglavi se neko vreme dok mu veliki ne posalje ponovo informaciju. Interapt mi okida padajuca ivica START bita. Sa osciloskopom sam uocio smetnju na liniji za komunikaciju i ona je uvek ista traje oko 40uS i amplituda joj ide cak do 7V i pada do 1V sto mi okine interapt.Memoriju sam poprilicno potrosio, hardver ne mogu da menjam, a sve je za juce.
Asembler vrlo malo znam. Potrebna mi je asemblerska rutina za serijusku kominikaciju za 16F84A samo za prijem na 9600. Treba mi i brojac koji ce da broji trajanje prijema i ako je on duzi od nekog vremena da se program vrati iz interapta na izvrsavanje svog programa a ne da se zaglavi zbog interapta od smetnje. Jedino resenje mi je da to uradim u asembleru i da primim bit po bit.Definitivno moram da naucim asembler. HELP!!!
16F84 i UART problem
Moderators: pedja089, stojke369, [eDo], trax
16F84 i UART problem
Last edited by scebic on 18-06-2006, 20:44, edited 1 time in total.
Pogledaj na netu info o RS485. Kada su u pitanju dugacki vodovi pa jos i smetnje, dobro je opteretiti provodnike sa nekim otporom na oba kraja. Kod RS485 su to otpornici od 120R, tako da na parici postoji otpor od 60R. Nesto slicno bi mogao primeniti i u tvom slucaju. Mozes upotrebiti i neki optokapler ali neki brzi (HCPL2630).
@scebic Tocno bilo bi vrijeme da se pozabavis assemblerom jer se lako moze emulirat UART komunikacija , pogotovo half duplex !!
Ja sam bio stavio asm rutinu za UART s izracunom delaya za odredjeu freq MCLK za ATMELE !!
Uzmi onaj model "idejno" jer je assemblerski drugaciji radi razlicite arhitekture i nacina rada te 2 porodice MCUa !
Zasto ne napises SPI komunikacioni protokol za razmijenu podataka izmedju 2 MCUa puno je brzi i jednostavniji za emulaciju od UARTA !??
Ja sam bio stavio asm rutinu za UART s izracunom delaya za odredjeu freq MCLK za ATMELE !!
Uzmi onaj model "idejno" jer je assemblerski drugaciji radi razlicite arhitekture i nacina rada te 2 porodice MCUa !
Zasto ne napises SPI komunikacioni protokol za razmijenu podataka izmedju 2 MCUa puno je brzi i jednostavniji za emulaciju od UARTA !??
Pa nije lose bolje nego da se dogodilo obrnuto !!! ima i toga neki put.
Sve se pocne ozbiljno s jasnim cijem i naruciocem i da se na kraju sve otkaze [ obicno iz financijskih razloga] pa ti ostane aplikacija tj citav HW s FW za nista drugo nego da se "igras" s tim ! Jedino dobro sto ti se desi je znaje koji si sa svakim novim FW dobio ali.....!!
Sve se pocne ozbiljno s jasnim cijem i naruciocem i da se na kraju sve otkaze [ obicno iz financijskih razloga] pa ti ostane aplikacija tj citav HW s FW za nista drugo nego da se "igras" s tim ! Jedino dobro sto ti se desi je znaje koji si sa svakim novim FW dobio ali.....!!