Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

PIC to PIC USART se "cudno" ponasa

[es] :: Elektronika :: Mikrokontroleri :: PIC to PIC USART se "cudno" ponasa

[ Pregleda: 2128 | Odgovora: 19 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.mysql.com.

Sajt: mysql.rs


+2377 Profil

icon PIC to PIC USART se "cudno" ponasa25.02.2009. u 06:16 - pre 184 meseci
zbun na kvadrat, pa reko mozda se neko susretao sa ovim problemom ...

evo ga kod (C18, 18F4520)
Code:

#include <p18cxxx.h>
#include <pwm.h>
#include <usart.h>
#include <delays.h>

#pragma config OSC = HSPLL
#pragma config FCMEN = OFF
#pragma config IESO = OFF
#pragma config WDT = OFF
#pragma config MCLRE = ON
#pragma config PBADEN = OFF
#pragma config CCP2MX = PORTC
#pragma config LVP = OFF
#pragma config XINST = OFF


volatile unsigned char distance;

void rx_handler (void);

#pragma code rx_interrupt = 0x08
void rx_int(void){
  _asm goto rx_handler _endasm
}

#pragma code

#pragma interrupt rx_handler
void rx_handler(void){
  distance = ReadUSART();
  LATDbits.LATD3 ^= 1; // CHANGE LED
 PIR1bits.RCIF = 0;
}

void main(){
  ADCON0 = 0;
  ADCON1 = 0x0F;
  TRISA = 0;
  TRISB = 0;
  TRISC = 0;
  TRISD = 0;
  TRISE = 0;

  LATA = 0;
  LATB = 0;
  LATC = 0;
  LATD = 0;
  LATE = 0;

  //PWM ON
  T2CON = 0;
  OpenPWM1(249);
  OpenPWM2(249);
  SetDCPWM1(1023);
  SetDCPWM2(1023);

  TRISCbits.TRISC7 = 1;
  RCSTAbits.SPEN = 1;

  // baud rate  = FOSC/(64*(x+1)) // for brgh_low
  // 9600 bps, 40MHz, x=64
  OpenUSART(USART_TX_INT_OFF & 
            USART_RX_INT_ON & 
            USART_ASYNCH_MODE & 
            USART_EIGHT_BIT & 
            USART_CONT_RX & 
            USART_BRGH_LOW, 
  64);

  LATDbits.LATD3 = 1; // TURN LED ON
  RCONbits.IPEN = 1;
  IPR1bits.RCIP = 1;
  INTCONbits.GIEH = 1;
  while(1); // do nothing
}


mclr dignut sa 10K na 5V, na D3 vezana ledara, na RX pin dolazi pin sa drugog PIC-a (neki 16F690) koji salje 1 bajt svakih 300ms... ground im je vezan zajedno ...
na osciloskopu se vidi taj bajt kako treba, brzina je idealna (9600 sa minimalnom greskom) sve deluje ok osim

1. ako napajam oba uredjaja sa 5V (lab napajanje, baterije ... probao sa 4.0 do 5.5V ) na osciloskopu se lepo vide bajtovi ali PIC18 ne trigeruje interrupt (ledara ne menja stanje)

2. ako napajam uredjaje sa razlicitih napajanja - ista prica, stabilisanih 5V, sa lab-a, preko 7805, preko bt05 ..

3. ako napajam oba uredja sa pickit2 (usb programer) - rade interapti !??!?!?! sve sljaka ok ?!?!?!?!?

sve sto pickit2 uradi je da ~5V (4.8), i interno digne mclr high ..

el ima neko ideju posto sam ja prolupao
 
Odgovor na temu

sander
Aleksandar Golovic
Beograd

Član broj: 21336
Poruke: 211
79.101.185.*



Profil

icon Re: PIC to PIC USART se "cudno" ponasa25.02.2009. u 07:15 - pre 184 meseci
Prvo sto mi pada na pamet fali ti kondenzator 100nF sa mclr na gnd. Drugo, da li USART konfigurisan kako treba, da li je brzina ista na oba PIC-a. Trece, da li si postavio da USART radi na address detection (9 bita) ili standardno.
 
Odgovor na temu

sander
Aleksandar Golovic
Beograd

Član broj: 21336
Poruke: 211
79.101.185.*



Profil

icon Re: PIC to PIC USART se "cudno" ponasa25.02.2009. u 07:18 - pre 184 meseci
Zanemari trece, sad videh konfiguraciju za USART.
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.mysql.com.

Sajt: mysql.rs


+2377 Profil

icon Re: PIC to PIC USART se "cudno" ponasa25.02.2009. u 07:51 - pre 184 meseci
Citat:
sander: Prvo sto mi pada na pamet fali ti kondenzator 100nF sa mclr na gnd.


fali :) - dodao sam ga .. nema razlike :(
dakle sto se mclr-a tice, ide 10K na Vcc i 100nF (disk keramicki) na GND

Citat:

Drugo, da li USART konfigurisan kako treba, da li je brzina ista na oba PIC-a.


yup. za ovaj 18F vidis konfig, na 16F je mikroC i tu odradim usart_init(9600); ... nisam zagledao sta mu odradi mikroC ali obzirom da taj 16F trci na 20MHz ne verujem da je greska veca od 1%, dakle oba su 9600, oba sa greskom manjom od 5% evo attached izlaz sa scopa kako izgleda taj signal.

sirina celog bajta: ~935us
sirina jednog bita: ~104us

koliko sam ja sracunao - to je validnih 9600bps

totalno sam se smorio, nisam nikad imao ovakav problem ranije :(


Prikačeni fajlovi
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.mysql.com.

Sajt: mysql.rs


+2377 Profil

icon Re: PIC to PIC USART se "cudno" ponasa25.02.2009. u 08:12 - pre 184 meseci
btw sad sam probao i
Code:

  OpenUSART(USART_TX_INT_OFF & 
            USART_RX_INT_ON & 
            USART_ASYNCH_MODE & 
            USART_EIGHT_BIT & 
            USART_CONT_RX & 
            USART_BRGH_HIGH, 
  255);


isto ponasanje :(
 
Odgovor na temu

sander
Aleksandar Golovic
Beograd

Član broj: 21336
Poruke: 211
79.101.185.*



Profil

icon Re: PIC to PIC USART se "cudno" ponasa25.02.2009. u 08:49 - pre 184 meseci
Nisam radio sa C18 kompajlerom, ja koristim CCS C kompajler koji mi radio posao i prilicno sam zadovoljan sa njim.
Ovaj kompajler ima dobru podrsku za periferije u vidu gotovih biblioteka za rad sa njima.
Imam verziju 4.074 (prilicno nova) ako ti treba, mogu ti poslati.

Evo sad gledam na microchip-ovom sajtu postoje 4 errata dokumenta u 3 se spominje USART, obrati paznju na dodati bit 5 u baudcon registru koji invertuje podatak na RX pin-u.
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.mysql.com.

Sajt: mysql.rs


+2377 Profil

icon Re: PIC to PIC USART se "cudno" ponasa25.02.2009. u 09:26 - pre 184 meseci
Citat:
sander: Nisam radio sa C18 kompajlerom

sta znam, ja za 18F trosim C18, za 24 i 30 i 33F koristim C30 ... standard su nekako ... (a i cena je odgovarajuca)

Citat:
ja koristim CCS C kompajler koji mi radio posao i prilicno sam zadovoljan sa njim.

imam doticni kupljen za 16F i slabije... vrlo zadovoljan, odlican kompajler, ali ga nisam koristio za C18 posto nisam video nikakvu prednost, C18 isto dolazi sa bibliotekama za sve zivo ... a i lako prepisem nesto iz ccs-a u C18 ako ima potrebe :)


Citat:
Imam verziju 4.074 (prilicno nova) ako ti treba, mogu ti poslati.

to sam koristio "izleceno" za 18F dok nisam odlucio da predjem na C18

Citat:

Evo sad gledam na microchip-ovom sajtu postoje 4 errata dokumenta u 3 se spominje USART, obrati paznju na dodati bit 5 u baudcon registru koji invertuje podatak na RX pin-u.

zanimljivo .. sad cu da zdraknem .. rece mi i jedan drugar da vidim da u onoj praznoj petlji proveravam rx error fleg .. probacu i jedno i drugo samo da svrsim sa poslom, malo me smorilo sve ovo pa reko da malo radim za leba ... vraticu se zabavi kada opet postane zabava :D
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.mysql.com.

Sajt: mysql.rs


+2377 Profil

icon Re: PIC to PIC USART se "cudno" ponasa25.02.2009. u 09:45 - pre 184 meseci
Citat:
sander: Evo sad gledam na microchip-ovom sajtu postoje 4 errata dokumenta u 3 se spominje USART, obrati paznju na dodati bit 5 u baudcon registru koji invertuje podatak na RX pin-u.


sto ne iskopira url-ove :)
 
Odgovor na temu

Odin D.
Mlađi referent za automatizaciju
samoupravljanja

Član broj: 37292
Poruke: 2549



+8370 Profil

icon Re: PIC to PIC USART se "cudno" ponasa25.02.2009. u 10:04 - pre 184 meseci
Mozes li malo pojasniti to oko napajanja?
Da li napajas oba uC-a sa istog ispravljaca ili sa razlicitih (spominjao si neku bateriju)?
U slucaju da napajas mikrokontrolere iz razlicitih izvora moguce je da nemas uopste nikakvu vezu izmedju njih. To je relativno cest slucaj u praksi, nema veze sa konfiguracijom mikrokontrolera nego sa strujom.

Evo nacrtao sam neki primjer (u Paint-u :), pa cu pokusati da objasnim o cemu moze da se radi. Mozda ovo nije tvoj slucaj, ali mozda pomogne nekom drugom.
Dakle, ko hoce da cita neka drzi ovu semu pred ocima.
Logicka kola A i B (obicni neinvertori) se napajaju preko razlicitih (galvanski razdvojenih) ispravljaca (to mogu biti i baterije ili neka druga kombinacija).
Ako se na ulaz log. kola A dovede napon logicke jedinice, sta ce se pojaviti na izlazu log. kola B, tj. kako ce log. kolo B protumaciti napon koji dobije sa izlaza log. kola A?
Na prvi pogled izgleda da to ovisi o razlici potencijala izmedju linija GNDA i GNDB. Pretpostavimo npr. da u odnosu na neku referentnu tacku GNDC linija GNDA ima potencijal +50V, a linija GNDB -50V. Tada ce se, sta god se nalazilo na izlazu logickog kola A to shvatiti kao logicka jedinica na ulazu log. kola B, jer se npr. u osnosu na GNDC log. kolo A napaja sa Vcc = 55V Vss = 50V (tj. GNDA) i njegov prag odlucivanja se nalazi negdje na 52,5 V, a izlazi su mu priblizno 55V za logicku jedinicu i 50V za logicku nulu.
Sa druge strane, log. kolo B se (u odnosu na GNDC) napaja sa Vcc = -45V i Vss = -50V, a njegov prag odlucivanja je negdje oko -47,5V. Dakle sta god da stigne sa izlaza log. kola A ce biti protumaceno kao logicka jedinica zato sto prosto sa izlaza log. kola A stize potencijal koji se vrti oko 50V, a log. kolo B na ulazu ocekuje potencijale koji se vrte oko -50V (ovo vazi u slucaju da razlika tih potencijala nije "problematicno" velika, kao sto je npr. ovdje slucaj, kada ce zbog prevelikog potencijala negdje doci do proboja (ulazni tranzistori u prvom redu)).
Medjutim, sam potencijal nije dovoljan da bi citava stvar tako funkcionisala. Pretpostavimo sad da na ulaz log. kola B preko nekog otpornika RB spojimo ulaz na GNDB. Da li ce kroz taj otpornik poteci struja od [+50V - (-50V)]/RB, tj 2x50V/RB?
Nece, zato sto strujno kolo nema kuda da se zatvori, s obzirom da su lijeva i desna strana seme spojeni samo tom jednom linijom - nema povratne linije za struju! Posto nema struje, onda je ulaz log. kola B preko otpornika RB spojen na GNDB, pa je prema tome na njegovom izlazu log. nula, bez obzira sta se nalazi na izlazu log. kola A i na koliko to vecem potencijalu bilo od ulaza log. kola B.

Da bi citava stvar proradila potrebno je spojiti GNDA i GNDB, tj. oba logicka kola bi morala imati zajednicku masu, a zbog svega navedenog ta se linija cesto umjesto "masa" naziva i "povratni vod za struju".

Kada nema onog pretpostavljenog otpornika RB na ulazu drugog logickog kola, sta ce biti na izlazu zavisi od tipa logickog kola. TTL kolo, kada nema opterecenje na ulazu to dozivljava kao logicku jedinicu, a CMOS kola zbog velike ulazne otpornosti hvataju sum pa neopterecen ulaz moze biti protumacen bilo kako.

Eto Bogdane, s obzirom da tebi to radi ili ne radi u zavisnosti od toga na kakvo ga napajanje spojis, provjeri da ti nesto od ovoga ne pravi problem.
Ako mjeris osciloskopom signal probaj jednu sondu da stavis na izlazni pin prvog mikrokontrolera, a drugu sondu zakaci na masu drugog mikrokontrolera pa vidi da li je i tada sve u redu.
Pozdrav.

[Ovu poruku je menjao Odin D. dana 25.02.2009. u 11:23 GMT+1]
Prikačeni fajlovi
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.mysql.com.

Sajt: mysql.rs


+2377 Profil

icon Re: PIC to PIC USART se "cudno" ponasa25.02.2009. u 10:39 - pre 184 meseci
Citat:
Odin D.: Mozes li malo pojasniti to oko napajanja?

sad cu da probam :)

Citat:
Da li napajas oba uC-a sa istog ispravljaca ili sa razlicitih (spominjao si neku bateriju)?


dakle ovako. GND je isti za sve ... dakle oba uC-a su na istom GND-u (tako da taj deo mozemo sada da preskocimo)

sto se napajanja tice

v1: 5V lab napajanje
+ direkt na oba uC-a
- na common GND

v2: 9V lab napajanje
+ na 7805
- na common GND
7805 out na oba uC-a

v3: 9V lab napajanje
+ na 2 razlicita 7805
- na common GND
7805 (prvi) out na jedan uC
7805 (drugi) out na drugi uC

v4 i v5 isto kao v2 i v3 samo sa BA05 umesto 7805

v6: 4.8V baterija
+ na oba uC-a
- na common GND

V7: 4.8V baterija + lab napajanje 5v
+ sa baterije na jedan uC
+ sa lab-a na drugi uC
- sa baterije na common ground
- sa lab-a na common ground

v8: isto kao V7 samo zamenio uC (prvo baterija na 18F a onda baterija na 16F)

V9: pickit2
+ sa pickit2 na oba uc-a
- sa pickit2 na common ground

V10: lab varijablno
+ sa lab na oba uC-a (menjao napon od 3.0 do 5.5V)
- sa lab na common ground

dakle to je 10 razlicith varijanti napajanja uredjaja koje sam probao :D (nadam se da malo pojasnjava zasto sam poludeo i sto sam nervozan)
svi GND su spojeni zajedno (od prvog vagona)

u kod je dodato da u praznoj petlji palii gasi jos jednu ledaru cisto da se vidi da uC nije "zaboden" .. i to radi ok ...

dakle .. ledara koja treba da promeni stanje kada debil udje u interrupt to radi SAMO PONEKAD U VERZIJI V9 .. dakle ni tu ne radi uvek ali tu ponekad radi (30% slucajeva) a u ovim ostalim ne radi nikad ...

dodao sam i da onaj 16F salje po dva bajta umesto jedan (na svakih 300ms) .. nema razlike


Citat:

Eto Bogdane, s obzirom da tebi to radi ili ne radi u zavisnosti od toga na kakvo ga napajanje spojis, provjeri da ti nesto od ovoga ne pravi problem.
Ako mjeris osciloskopom signal probaj jednu sondu da stavis na izlazni pin prvog mikrokontrolera, a drugu sondu zakaci na masu drugog mikrokontrolera pa vidi da li je i tada sve u redu.


probao ... zabo dve sonde, obema vrh na data liniju, jednoj gnd na jedan uC, drugoj na drugi uC (iako su spojeni vec al nema veze) i poklapa se signal :)

ne verujem da je do struje... pk2 ne daje nista "drugaciji" napon od ostalih napajanja .. nesto je tu drugo sto pk2 radi .. no .. nema sta da bude ... drzi ga u resetu, onda digne mclr na 5v i to je to ... spajao sam mclr i direkt na 5v (bez 10K otpornika) - nema razlike .. isto ...
 
Odgovor na temu

Odin D.
Mlađi referent za automatizaciju
samoupravljanja

Član broj: 37292
Poruke: 2549



+8370 Profil

icon Re: PIC to PIC USART se "cudno" ponasa25.02.2009. u 10:52 - pre 184 meseci
Provjeri napajanja mikrokontrolera ali osciloskopom, a ne voltmetrom. Moze se desiti da (iz bilo kakvih razloga) imas nekih gliceva u napajanju koji drmaju brown-out resete i sl.
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.mysql.com.

Sajt: mysql.rs


+2377 Profil

icon Re: PIC to PIC USART se "cudno" ponasa25.02.2009. u 11:12 - pre 184 meseci
vec to uradio .. ne verujem ja nista voltmetru :D ... napajanje ok .. da ne spomenem da na oba pica ima po 10nF na pinovima, 33nF "blizu" uC-a, malo dalje (2cm) se nalazi 100uF a jos malo dalje 1000uF ...
 
Odgovor na temu

Odin D.
Mlađi referent za automatizaciju
samoupravljanja

Član broj: 37292
Poruke: 2549



+8370 Profil

icon Re: PIC to PIC USART se "cudno" ponasa25.02.2009. u 11:57 - pre 184 meseci
Ima li neka pauza koju pickit pravi izmedju ukljucenja napajanja i podizanja mclr-a, a koju ti ne pravis kad kacis eksterno napajanje? Probaj to da izmjeris na osciloskopu. Probaj resetovati mikrokontrolere nakon ukljucenja.

Nisam najbolje razumio to sto si radio sa led diodama. Da li na ovom "prijemnom" pic-u dioda mijenja stanje samo kad primi poruku ili imas jos neku koja ti govori da i taj mikrokontroler nije zaglavio, bez obzira da li prima poruke ili ne od onog drugog.

Utvrdi prvo da oba mikrokontrolera rade ok, bez obzira na tu komunikaciju izmedju njih, pa kad se to potvrdi, onda se moze problem lokalizovati.

[Ovu poruku je menjao Odin D. dana 25.02.2009. u 13:08 GMT+1]
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.mysql.com.

Sajt: mysql.rs


+2377 Profil

icon Re: PIC to PIC USART se "cudno" ponasa25.02.2009. u 12:09 - pre 184 meseci
Citat:
Odin D.: Ima li neka pauza koju pickit pravi izmedju ukljucenja napajanja i podizanja mclr-a, a koju ti ne pravis kad radis eksterno napajanje?


pickit da struju "oma" ali drzi mclr low (pic je u resetu) dok mu ja ne kazem da ga pusti iz reseta (te ga onda digne na high)...

e sad, ja to isto odradim sam (zabodem reset, upalim spravu, sacekam, skinem reset) ..

ma .. neka je teska glupost u pitanju garant .. sad cu da sednem i napravim istu pricu u asm-u da vidim dal me tu nesto zeza .. ili pre toga u nekom ccs c-u ili mikroc-u .. no najverovatnije cu da napravim danas pauzu da ne bi pravio stetu bez veze
 
Odgovor na temu

Odin D.
Mlađi referent za automatizaciju
samoupravljanja

Član broj: 37292
Poruke: 2549



+8370 Profil

icon Re: PIC to PIC USART se "cudno" ponasa25.02.2009. u 14:13 - pre 184 meseci
Citat:
bogdan.kecman:
e sad, ja to isto odradim sam (zabodem reset, upalim spravu, sacekam, skinem reset) ..


Ako ti zabadas taj reset tako sto nekom zicicom/prekidacem/jumperom dodirujes kontakte mozda imas neki "bouncing". Trebalo bi da u uC-u ima interno kolo koje se time bavi, ali dodaj neki dio koda koji ce da svjetluca sa onim diodama tako da ce biti jasno da mikrokontroleri rade ok, bez obzira na tu vezu izmedju njih. Kad utvrdimo da oni po ukljucenju rade korektno, onda ce se broj mogucih izvora problema znatno suziti.
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.mysql.com.

Sajt: mysql.rs


+2377 Profil

icon Re: PIC to PIC USART se "cudno" ponasa25.02.2009. u 16:01 - pre 184 meseci
Citat:
Odin D.: Ako ti zabadas taj reset tako sto nekom zicicom/prekidacem/jumperom dodirujes kontakte mozda imas neki "bouncing". Trebalo bi da u uC-u ima interno kolo koje se time bavi, ali dodaj neki dio koda koji ce da svjetluca sa onim diodama tako da ce biti jasno da mikrokontroleri rade ok, bez obzira na tu vezu izmedju njih. Kad utvrdimo da oni po ukljucenju rade korektno, onda ce se broj mogucih izvora problema znatno suziti.


ma :D ... ima 5sec pauza u startu .. 5sec sam u petlji blinko ledare pa tek onda palio usart ... za to vreme i dalje blinko jednu ledaru ... nista ...

no .. problem se resio "sam od sebe" .. da me duh iz cipa ubije ako znam sta se desilo ali evo sta sam radio ...

Code:

#include <p18cxxx.h>
#include <delays.h>

#pragma config OSC = HSPLL
#pragma config FCMEN = OFF
#pragma config IESO = OFF
#pragma config WDT = OFF
#pragma config MCLRE = ON
#pragma config PBADEN = OFF
#pragma config CCP2MX = PORTC
#pragma config LVP = OFF
#pragma config XINST = OFF

volatile unsigned char distance;

void low_isr(void);
void high_isr(void);

#pragma code low_vector=0x18
void interrupt_at_low_vector(void){
  _asm GOTO low_isr _endasm
}
#pragma code
#pragma interruptlow low_isr
void low_isr(void){
  // LOW INTERRUPT CODE
}
#pragma code high_vector=0x08
void interrupt_at_high_vector(void){
  _asm GOTO high_isr _endasm
}
#pragma code
#pragma interrupt high_isr
void high_isr(void){
 //HIGH INTERRUPT CODE
  distance = RCREG;
  LATDbits.LATD3 ^= 1;
  PIR1bits.RCIF = 0;
}
#pragma code

void main(){
  ADCON0 = 0;
  ADCON1 = 0x0F;
  TRISA = 0;
  TRISB = 0;
  TRISC = 0x80;
  TRISD = 0;
  TRISE = 0;

  LATA = 0;
  LATB = 0;
  LATC = 0;
  LATD = 0;
  LATE = 0;

  //USART
  TRISCbits.TRISC7 = 1;

  TXSTA = 0x00; //transmit disabled
  RCSTA = 0x90; //SPEN + CREN
  BAUDCON = 0x02; //0x22 RXDTP, WUE
  SPBRGH = 0;
  SPBRG = 64;

  ///////////////////////////////////////////////////////
  //BAUDCONbits.RXDTP = 0;
  ///////////////////////////////////////////////////////

  PIE1bits.TXIE = 0; // no interrupt for sending
  PIE1bits.RCIE = 1; // interrupt on receive
  RCONbits.IPEN = 1;
  IPR1bits.RCIP = 1;
  INTCONbits.GIEH = 1;
  
  LATDbits.LATD2 = 1;
  LATDbits.LATD3 = 1;
  while(1){
    LATDbits.LATD2 ^= 1;
    Delay1KTCYx(200);
  }
}


dakle ... prvo sam stavio kod ovako kako je sada u code tagu .. i nije radilo ... onda sam se setio da mi je sander (hvala) rekao da obratim paznju na bit5 koji mu kaze da li da vata signal normalan ili invertovan, pa sam dodao BAUDCONbits.RXDTP = 1; (tu gde je sad zakomentarisan) i BUM, SVE PRORADILO ... i ja se zbunim ... 3 linije iznad ja taj bit svejedno setujem sa BAUDCON=0x02; al reko ko zna .. mozda ima nesto sto ne znam ... da bi potvrdio teoriju, promenim doticno u BAUDCONbits.RXDTP = 0; dakle, sada treba da bude neinvertovani signal i dakle ne bi trebalo da radi ... kad ja tamo a ono medjutim ... OPET RADI !??!?!?! i sa 0 i sa 1 na tom bitu sljaka ?!?!?!?!? totalno zbunjen, zakomentarisem liniju, i OPET RADI ??!?!?!

dakle, razlika izmedju nije radilo i radi je u tome sto sam "dodao BAUDCONbits.RXDTP = 1" iskompajlirao pa VRATIO NA STARO !!!!!!!!!

pritom .. dakle, sad sljaka 1/1 .. sve kako treba ... ne treba da spominjem da me toliko zbunilo da sam resetovo lap na kome to radim, programirao deseti program na pic pa vracao ovaj, da vidim da nisam lud ...

da .. pritom .. i dalje mi ne radi sa usart bibliotekom :D no to me vise ne zanima posto sam odradio sta mi treba ...


 
Odgovor na temu

sander
Aleksandar Golovic
Beograd

Član broj: 21336
Poruke: 211
*.dynamic.sbb.rs.



Profil

icon Re: PIC to PIC USART se "cudno" ponasa25.02.2009. u 22:11 - pre 184 meseci
Zasto si setovao WUE bit, on sluzi za wake-up iz sleep moda, ne vidim da kontroler ide u sleep mod (nema komande).
Mozda on i pravi probleme.

"
Special Considerations Using the WUE Bit

The timing of WUE and RCIF events may cause some
confusion when it comes to determining the validity of
received data. As noted, setting the WUE bit places the
EUSART in an Idle mode. The wake-up event causes a
receive interrupt by setting the RCIF bit. The WUE bit is
cleared after this when a rising edge is seen on RX/DT.
The interrupt condition is then cleared by reading the
RCREG register. Ordinarily, the data in RCREG will be
dummy data and should be discarded.
The fact that the WUE bit has been cleared (or is still
set) and the RCIF flag is set should not be used as an
indicator of the integrity of the data in RCREG. Users
should consider implementing a parallel method in
firmware to verify received data integrity.
To assure that no actual data is lost, check the RCIDL
bit to verify that a receive operation is not in process. If
a receive operation is not occurring, the WUE bit may
then be set just prior to entering the Sleep mode.
"
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.mysql.com.

Sajt: mysql.rs


+2377 Profil

icon Re: PIC to PIC USART se "cudno" ponasa26.02.2009. u 07:47 - pre 184 meseci
Citat:
sander: Zasto si setovao WUE bit, on sluzi za wake-up iz sleep moda, ne vidim da kontroler ide u sleep mod (nema komande).
Mozda on i pravi probleme.


probao i sa i bez, nema razlike ... obzirom da saljem po 2 bajta umesto po jedan to sto wue "smori" prvi bajt nije problem :) ... za sleep ... bice bice ... ne mislis da je poenta celog programa da blinka ledaru kad mu stigne bajt na usart :D

sve u svemu, nije do wue-a .. kao sto rekoh, to sam menjao ... ma .. izgubih sinoc jos par sati da ga napravim da "vise ne radi" ... i sad radi kako god :) ... (osim sa onom bibliotekom, to i dalje ne radi no nikad nisam koristio usart biblioteku iz c18 ranije, uvek sam pravio ovako na misice, tako da mozda tamo nesto nisam dobro nasetovo) .... nesto sam se ja tu posvadjao sa belim dimom .. ko zna ..

hvala pomoci u svakom slucaju, prvi put da mi seriski link ne proradi iz prve ... i to ovaj put 1way .. no sta da se radi ..
 
Odgovor na temu

ADRENALIN

Član broj: 17952
Poruke: 278
*.dynamic.sbb.rs.



Profil

icon Re: PIC to PIC USART se "cudno" ponasa02.03.2009. u 20:46 - pre 184 meseci
@bogdan.kecman imas li kod koji nije radio, zapravo kompletan projekat ili si ga konstantno menjao pa nemas sacuvanu prethodnu verziju. Zanima me da malo pogledam taj projekat. MPLAB zna da radi jako cudne stvari, mozda je ovo jedna od njih. Mom kolegi se desilo da kada je pisao kod nije definisao neke variable i kada mu je kompajler izbacio da mu to fali, ovaj je naziv varijable prekopirao iz output prozora i ubacio u cblock. Idalje mu je kompajler prijavljivao istu gresku. O cemu se radilo. Nekako je MPLAB dozvolio da se iskopira LF na kraju linije, ali bez CR karaktera. Kompajler radi SAMO sa CR LF kombinacijom i zbog toga je prijavljivao gresku, jer je liniju koda gde se definise ta promenljiva jednostavno ignorisao. Moguce da je jedan od tih bagova u pitanju.

P.S. Mislim da ti je najpametnije da, ako imas vremena naravno, odmah ustanovis sta je u pitanju, zasto kod nestabilno radi. Kada ti sledeci put zabaguje sumnjaces na 100 stvari.
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.xdsl.beograd.com.

Sajt: mysql.rs


+2377 Profil

icon Re: PIC to PIC USART se "cudno" ponasa02.03.2009. u 21:29 - pre 184 meseci
Citat:
ADRENALIN: @bogdan.kecman imas li kod koji nije radio, zapravo kompletan projekat ili si ga konstantno menjao pa nemas sacuvanu prethodnu verziju.

do pre neki dan sam imao verzije .. sad vise ne .. taj deo radi 1/1

Citat:

Zanima me da malo pogledam taj projekat. MPLAB zna da radi jako cudne stvari, mozda je ovo jedna od njih. Mom kolegi se desilo da kada je pisao kod nije definisao neke variable i kada mu je kompajler izbacio da mu to fali, ovaj je naziv varijable prekopirao iz output prozora i ubacio u cblock. Idalje mu je kompajler prijavljivao istu gresku. O cemu se radilo. Nekako je MPLAB dozvolio da se iskopira LF na kraju linije, ali bez CR karaktera. Kompajler radi SAMO sa CR LF kombinacijom i zbog toga je prijavljivao gresku, jer je liniju koda gde se definise ta promenljiva jednostavno ignorisao. Moguce da je jedan od tih bagova u pitanju.

ja cesto pisem kod na linuxu pa ga posle bacim na windoze i kompajliram i nikad nisam imao problema sa crlf kombinacijom iako linux ubacuje samo lf .. dal mi neki od editora (editpad na windozi, gedit na linuxu) odradi neku konverziju ili sta ... u svakom slucaju, nisam nikad sa tim imao problema ...

imao sam raznih problema sa mikroC -om da nije htelo nesto da se iskompajlira zbog glupe sintaksne greske koju kompajler nije umeo da prikaze ali kad se iskompajlira radi kako treba ... sa c18 sa isto imao problema sa parserom, dakle nije tako "advanced" parser da izbaci gresku uvek gde bi trebalo ali kad se iskompajlira - nikad nisam imao problem ... sa ovim projektom su bas bile neke cudne stvari, em bi ta njegova biblioteka trebala da radi (kod iz prvog posta) 1/1, em sam je probao i sa i bez optimizacije ...ono sto je najstrasnije, isti kod u uC-u je radio ako napajam uredjaj sa pk2 a ne ako ga napajam sa trafo-a (dovedem struju na isti heder na koji dolazi pk2) ...


Citat:
P.S. Mislim da ti je najpametnije da, ako imas vremena naravno, odmah ustanovis sta je u pitanju, zasto kod nestabilno radi. Kada ti sledeci put zabaguje sumnjaces na 100 stvari.

generalno da .. ali zadnja dva meseca mi se takve stvari desavaju da mi nista nije cudno (privatno, ne vezano za elektroniku) .. tako da kad nesto tako ocigledno nece da radi posle 3 dana .. ostavim ga pa mu se vratim kasnije .. nema svrhe gubiti nerve ..

sve u svemu, nemam vise taj projekat ... to je bio neki test samo za tu plocicu koja salje na 300ms bajt na 9600 ... ta plocica radi savrseno .. ovaj test projekat je zavrsio u smecu :)
 
Odgovor na temu

[es] :: Elektronika :: Mikrokontroleri :: PIC to PIC USART se "cudno" ponasa

[ Pregleda: 2128 | Odgovora: 19 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.