Ne mogu naći problem u komunikaciji s mobitelom

Rasprava o PIC mikrokontrolerima, PIC projekti i drugo vezano za PIC-eve...

Moderators: pedja089, stojke369, [eDo], trax

soic
Posts: 19
Joined: 18-03-2011, 20:40
Location: Split<->Murter
Contact:

Ne mogu naći problem u komunikaciji s mobitelom

Post by soic »

Pozdrav! Ovo je moj prvi post, pa vas ovom prilikom pozdravljam sve.

Krenuo sam u projekt izrade malog GSM kontrolera za releje i senzore. PIC koji koristim je 16F628 koji ima HW USART. Mobitel u pitanju je Siemens C35i, programiram u PIC Basic Pro, a programatori je PicKit2 (odnosno klon od Sure-a).
Zasada sam još u testnoj fazi pa nemam nikakav konkretan projekt. No ono što me muči je, da mi komunikacija PIC-mobitel radi samo u jednom smjeru i to PIC->mobitel. Znači, mogu poslati poruku s Siemensa kada pritisnem tipkalo koje je spojeno na PIC i to radi dobro. No ne mogu dobiti nikakvu povratnu informaciju s mobitel na PIC. Napisao sam jednostavan program, da kada pošaljem "AT" komandu na mobitel i primim "OK" na PIC da mi se upali LED i ostane goriti, a ako ne primim da se upali LED na jednu sekundu i pokuša ponovo. Naravno, meni se LED stalno pali po jednu sekundu nakon 6 sekundi, što znači da ne prima "OK" odgovor od mobitela.

Shemu za spajanja na mobitel sam našao tu na glavnoj stranici na projektu "666_CallAlarmSystem". Također pokušao sam i bez 10k otpornika koji ide na +5V i isto bude. Također sam pokuša spojiti mobitel i s shemom koju sam našao na projektu "502_gsm_kontroler_v1", ali mi tu ne radi ni slanje ni primanje, te kada ide poslati SMS, onda mobitel izgubi mrežu.

Nekako imam osjećaj da propuštam nešto jednostavno, a ne znam što. Dosta sam nov u ovome svemu, pa budite blagi prema meni :oops:

Evo kod za slanje SMS-a koji radi:

Code: Select all

@ DEVICE pic16F628, HS_OSC
' ---- High Speed Oscilator
@ DEVICE pic16F628, WDT_OFF
' ---- Watchdog Timer=OFF
@ DEVICE pic16F628, BOD_ON
' ---- Brown-Out Detect
@ DEVICE pic16F628, LVP_OFF
' ---- Low-Voltage Programming=OFF
@ DEVICE pic16F628, MCLR_OFF
' ---- Reset Pin=Internal
@ DEVICE pic16F628, PWRT_ON
' ---- Power-On Timer=Disabled
@ DEVICE pic16F628, CPD_OFF
' Data Memory Code Protect
' Set to CPD_OFF for Development Copy
@ DEVICE pic16F628, PROTECT_OFF
' Program Code Protection

DEFINE OSC 20

DEFINE HSER_TXSTA 24h '24h=>BRGH=1, 20h=>BRGH=0, datasheet pg.74
DEFINE HSER_RCSTA 90h
DEFINE HSER_BAUD 19200
DEFINE HSER_CLROERR 1

OPTION_REG.7=0 'pullups on PortB
TRISA=0 'PORTA as outputs
TRISB.0=1 'PORTB as input
cr con 13 'Carriage Return character
lf con 10 'Line Feed character
ctrlz CON 26 'CTRL+Z character
  
mainloop:
    
    PORTB.0=0'initail state of switch
    PORTA=0 'LED off
    IF PORTB.0=0 THEN 'if the switch is pressed
    PORTA.0=1 'LED on
    pause 2000
    PORTA=0 'LED off
    
        'send test sms

        HSerout ["ATE0",cr] 'Echo off
        Pause 1000
        
        HSEROUT ["ATZ",cr] 'Default mode
        PAUSE 1000
        
        HSEROUT ["AT+CMGF=0",cr] 'set PDU mode
        PAUSE 1000
        
        HSERout ["AT+CMGS=17",cr] 'Length of SMS
        PAUSE 1000
        
        HSEROUT ["0001000C91839598531923000004F4F29C0E",ctrlz,cr,lf] 'message "test" to 0989359132
        Pause 5000
        
        PORTA.0=1 'LED on, diagnostic to see if sending was succesful
        PAUSE 3000
        
        ENDIF
    
goto mainloop    
    
END
Evo kod kojim pokušavam testirati komunkaciju od mobitela prema PIC-u

Code: Select all

@ DEVICE pic16F628, HS_OSC
' ---- High Speed Oscilator
@ DEVICE pic16F628, WDT_OFF
' ---- Watchdog Timer=OFF
@ DEVICE pic16F628, BOD_ON
' ---- Brown-Out Detect
@ DEVICE pic16F628, LVP_OFF
' ---- Low-Voltage Programming=OFF
@ DEVICE pic16F628, MCLR_OFF
' ---- Reset Pin=Internal
@ DEVICE pic16F628, PWRT_ON
' ---- Power-On Timer=Disabled
@ DEVICE pic16F628, CPD_OFF
' Data Memory Code Protect
' Set to CPD_OFF for Development Copy
@ DEVICE pic16F628, PROTECT_OFF
' Program Code Protection


DEFINE OSC 20

DEFINE HSER_TXSTA 24h '24h=>BRGH=1, 20h=>BRGH=0, datasheet pg.74
DEFINE HSER_RCSTA 90h
DEFINE HSER_BAUD 19200
DEFINE HSER_CLROERR 1

TRISA=0 'PORTA as outputs
cr con 13 'Carriage Return character
lf con 10 'Line Feed character

HSEROUT ["ATE0",cr] 'echo off
pause 1000
index:
PORTA.0=1
pause 1000
PORTA=0 'LED off  

HSerout ["AT",cr,lf]
HSerin 5000,index,[WAIT("OK")]
PORTA.0=1 'LED on
       
END
A evo i sheme spajanja:
http://dl.dropbox.com/u/2440240/shema.png
yt1nvs
Pravo uznapredovao :)
Pravo uznapredovao :)
Posts: 286
Joined: 30-03-2009, 16:54

Re: Ne mogu naći problem u komunikaciji s mobitelom

Post by yt1nvs »

A ovo:
define HSER_SPBRG vidi koja vrednost treba za 20MHz i 19200 baud rate.Ne znam na pamet!
soic
Posts: 19
Joined: 18-03-2011, 20:40
Location: Split<->Murter
Contact:

Re: Ne mogu naći problem u komunikaciji s mobitelom

Post by soic »

Evo, tek sam jutros stigao isprobati tvoj prijedlog, ali nije uspjelo. I dalje mi ne radi ovaj jednostavan program za pihvaćanje "AT" naredbe.
Lagano sam lud više od ovoga. :(
Našao sam u manualu da je vrijednost SPBRG registra za 19200, BRGH=1 i 20MHz, 64 te sam dodao liniju

Code: Select all

DEFINE HSER_SPBRG 64

iza

Code: Select all

DEFINE HSER_BAUD 19200
Također, pokušao sam izbrisati ovo HSER_BAUD, pa pokušati samo s HSER_SPBRG pa ništa.

Vjeroatno grješim, ali po nekom mom shvaćanju, zar ne bi HSER_BAUD i HSER_SPBRG trebali biti jedno te isto?

Također, dodao sam

Code: Select all

Include "modedefs.bas"
iza

Code: Select all

DEFINE OSC 20
jer sam našao na nekom forumu da navodno to pomaže, ali meni ne.

Imate li možda neki drugi prijedlog?
soic
Posts: 19
Joined: 18-03-2011, 20:40
Location: Split<->Murter
Contact:

Re: Ne mogu naći problem u komunikaciji s mobitelom

Post by soic »

Je li mi netko može potvrditi je li ova shema spajanja, prema kojoj ja radim, 100% funkcionira sa Siemensom C35i?
soic
Posts: 19
Joined: 18-03-2011, 20:40
Location: Split<->Murter
Contact:

Re: Ne mogu naći problem u komunikaciji s mobitelom

Post by soic »

Mislim da sam uspio, ali nemam sad vremena testirati puno, vjeroatno ću kasnije popodne. Mislim da sam ja razumio krivo shemu na "666_CallAlarmSystem" projektu.
Sad sam malo drukčije spojio mobitel i PIC, tako da je PIC TX i mob RX spojeni direktno, a PIC RX i mo TX preko naponskog djelitelja 22k, 47k. Uglavnom obrnuo sam način spajanja u odnosu na original, osim što sam izbacio 10k otpornik prema plusu jer mobitel počme gubiti signal kad je priključen taj otpornik.
SKOLS
Pocetnik na forumu
Pocetnik na forumu
Posts: 48
Joined: 06-02-2011, 17:28
Location: Skopje,Makedonija
Contact:

Re: Ne mogu naći problem u komunikaciji s mobitelom

Post by SKOLS »

dali moze da gi postavis site semi i kodovi(vo PBP) za da i nie moze neso da napravime?
soic
Posts: 19
Joined: 18-03-2011, 20:40
Location: Split<->Murter
Contact:

Re: Ne mogu naći problem u komunikaciji s mobitelom

Post by soic »

Oprosti, ali baš ne razumijem što si napisao?
Sheme i kod su u prvom postu.
soic
Posts: 19
Joined: 18-03-2011, 20:40
Location: Split<->Murter
Contact:

Re: Ne mogu naći problem u komunikaciji s mobitelom

Post by soic »

Uf, napokon sam uspio doći do korjena problema. Nakon popodneva eksperimentiranja, shvatio sam da je problem od početka bio u naponskim razinama, a ne u konfiguracijama otpornika. Ja sam za napajanje uređaja koristio 5V, ali izgleda da je to previše. Čim spustim na 4.3V (naponska razina mobitela) ili niže sve radi.
Sad mi je solucija koristiti nekakvi MAX čip, ali mi se ne da zafrkavati s time, pa ću kompletno napajanje staviti na 4.3V s LM317 ili LM350, vidit ću još koliko će mi struje trebati i mislim da će to biti onda OK.
User avatar
pedja089
Administrator sajta
Administrator sajta
Posts: 7876
Joined: 20-02-2007, 14:50
Location: Beočin -Srbija

Re: Ne mogu naći problem u komunikaciji s mobitelom

Post by pedja089 »

Jeste, na mob je log 1 2,8V na picu pa zavisi koji tip ulaza.
Imas u tabeli koji je tip ulaza, i negde u datasheetu napiani naponski nivoi.
Max, pa ne mora max, moze bilo koji komparator, ili 2 tranzistora...
Naponski razdelnik sluzi da spusti 5V sa izlaza pica na 2,8V na ulazu u mob.
Zasto ne spustis na 3.3V napajanje? I tad ne moras ni imati naponski razdelik i direktno vezes pin na pin.
soic
Posts: 19
Joined: 18-03-2011, 20:40
Location: Split<->Murter
Contact:

Re: Ne mogu naći problem u komunikaciji s mobitelom

Post by soic »

Da, ali meni ti naponski razdjeljnici nisu funkcionirali kad je bilo 5V napajanje.
Zaboravio sam u prethodnom postu napisati da kad radim na 4.3V onda je PIC->mob preko 22k serijsko, a mob->PIC direktno.
Sad sam isprobao i na 4V te mogu direktno spojiti obje linije. Ispod 4V mi PIC uopće ne radi, što mi je jako čudno jer bi trebao raditi od 3V-5.5V?!

Nisam baš siguran da znam kako bi to izveo s komparatorima ili tranzistorima? Može nekakvi princip kako bi to radilo pa ću pokušati istražiti malo sam?

Što bi mi bilo bolje rješenje? Napajanje na 4V pomoći LM 317 ili da koristim 5V i tranzistore za prilagodbu naponskih razina?
Za ovo eksperimentiranje imam laboratorijsko napajanje na poslu, pa mi trenutno to nije problem. Kad budem napravio softver do kraja, onda ću viditi što ću.

Kao, što se može primjetiti još sam jako nov s PIC-evim i serijskom komunikacijom pa se učim u hodu, ali mi je zabavno :D Jedino što vas malo mučim :wink:
User avatar
pedja089
Administrator sajta
Administrator sajta
Posts: 7876
Joined: 20-02-2007, 14:50
Location: Beočin -Srbija

Re: Ne mogu naći problem u komunikaciji s mobitelom

Post by pedja089 »

A jesi smotan.
Razmisli malo, sam si rekao da ti je bez problema slao sms, sto znaci da je naponski razdelnik funkcionisao. On je spustao Tx pica na napon potreban za Rx moba. Znaci islo je spustanje napona od pica.
A kako nista nisi primao sa mobilnog, to znaci da pic nije uspeo da prepozna 2.8V kao log 1.
Kao prvo pogledaj koji je tip ulaza, kad koristis za ser komunikaciju. Pa odatle vidi sta trebas uraditi sa naponom od mob-a.
Pic ne funkcionise ispod 4V jer si mu ti tako rekao...
@ DEVICE pic16F628, BOD_ON
Pogledaj u datasheetu koji je prag napona za gasenje pica.
Ako postavis bod na off, pic ce raditi u celom opsegu napajanja, kako i pise u datasheetu.
A za semu pogledaj po netu, trazi logic level converter 3V to 5V schematic...
A mozes i ovako
http://www.maxim-ic.com/images/appnotes ... 6Fig04.gif" onclick="window.open(this.href);return false;
sa bilo kojim OP ili komparatorom.
Napravis samo razdelnik tako da ti bude 1,5V na jednom ulazu, i to je to.
Sa tranzistorima, recimo 2 emiterska poj na red. Baza prvog na tx mob-a, baza drugog na kolektor prvog, i td itd...
soic
Posts: 19
Joined: 18-03-2011, 20:40
Location: Split<->Murter
Contact:

Re: Ne mogu naći problem u komunikaciji s mobitelom

Post by soic »

Imaš pravo, pričam gluposti, radilo je slanje, malo sam ispalio popodne. Nije ni čudo s obzirom da sam cilo popodne i već par dana samo o ovome razmišljao. Za danas mi je dosta, sad ću ja jedno pivce za živce :D

Moram defintivno malo bolje proučiti datasheet i naponske razine, pa ću možda čak i iskominirati djelitelj koji paše.

Ovo s konverterima ću još pogledati, ali mislim da ću se odlučiti za napajanje nižeg napona. Moram viditi za kakve napone i logičke razine su mi ostale komponente koje sam mislio stavljati.

Pedja, puno hvala, legenda si!
yt1nvs
Pravo uznapredovao :)
Pravo uznapredovao :)
Posts: 286
Joined: 30-03-2009, 16:54

Re: Ne mogu naći problem u komunikaciji s mobitelom

Post by yt1nvs »

Ja PIC napajam sa 5V a SIEMENS sa 4.4V(5V prko 1N4007 + obavezno 1000mfd posle diode)i sa razdelnikom sa one sheme sve radi ok.
User avatar
pedja089
Administrator sajta
Administrator sajta
Posts: 7876
Joined: 20-02-2007, 14:50
Location: Beočin -Srbija

Re: Ne mogu naći problem u komunikaciji s mobitelom

Post by pedja089 »

Ja koristim 3.3V kada imam modem u uredjaju. Tako da ne brinem oko konverzije naponskih nivoa.
Jednom sam napravio izuzetak jer je bilo jos kola koja ne mogu da rade na 3.3V, pa sam ubacio 2 tranzistora za prilagodjenje nivoa... Mada plocica odavno napravljena, ali nikako da dodje na red da se polemi i ispise softver...
Ivan
Pocetnik na forumu
Pocetnik na forumu
Posts: 35
Joined: 11-02-2005, 19:19

Re: Ne mogu naći problem u komunikaciji s mobitelom

Post by Ivan »

Evo par sitnica vezano za temu, mozda pomogne ...
Attachments
SMS.rar
(69.12 KiB) Downloaded 317 times
soic
Posts: 19
Joined: 18-03-2011, 20:40
Location: Split<->Murter
Contact:

Re: Ne mogu naći problem u komunikaciji s mobitelom

Post by soic »

Sad kad sam se prebacio na 3.3V sve radi super i igram se već nekoliko dana. Dobro mi je došao i Ivanov kod, malo sam izvalačio odatle.

Sad jedno glupo pitanje. :D Kako zadržati pin da je uvijek u 1 ili uvijek u 0? Znam za PAUSE, ali mi je to beskorisno jer bi htio da mi se program izvršava i dok je PIN u 1.
Znači, ako je zadovoljen neki uvjet, ja kažem PORTA.1=1 i želio bi da tako ostane dok ja ne kažem PORTA.1=0. Ako ne stavim PAUSE, onda ništa od toga, ali onda je cijeli program pauziran i to je glupo.
Kokretno treba mi to za kontrolu releja. Ili vi koristite latching releje?
User avatar
WhiteHead
Pravi forumaš
Pravi forumaš
Posts: 1627
Joined: 28-06-2007, 18:36
Location: 75,35k; B&H

Re: Ne mogu naći problem u komunikaciji s mobitelom

Post by WhiteHead »

soic wrote: glupo pitanje. :D
Pa ako staviš da je PORTA1.1=1 i ostat će tako dok mu zapovidiš da bude nula..
Ako kaniš pobijediti, ne smiješ izgubiti
soic
Posts: 19
Joined: 18-03-2011, 20:40
Location: Split<->Murter
Contact:

Re: Ne mogu naći problem u komunikaciji s mobitelom

Post by soic »

Shvatio sam u čemu je problem. Po defaultu su uključeni komparatori na PORTA pa čim bi završila PAUSE odmah bi se isključilo jer je vrijednost s kojom je uspoređivano valjda bila 0 ili nešto tako, nisam baš proučavao.
Uglavnom s komandom

Code: Select all

CMCON=%00000111
sam isključio komparatore i sad radi kako treba.
soic
Posts: 19
Joined: 18-03-2011, 20:40
Location: Split<->Murter
Contact:

Re: Ne mogu naći problem u komunikaciji s mobitelom

Post by soic »

Koja bi mi bila najbolja kombinacija za kotrolu AC potrošača. Je li optocoupler+triac overkill?
Je li dovoljno da koristim, recimo, UL2803 i releje obične?

Našao sam na stranim forumima da ako je induktivni potrošač, onda se znaju događaju spajkovi u naponu bez obzira na diode koje su paralelno relejima (ili one ugrađene u 2803). Treba onda napraviti snuber za induktivni potrošač.

Ja bi koristio opto-coupler svakako pa da zaštitim PIC u svakom slučaju.

Kakva su vaša iskustva?

EDIT: ULN2803 ne bi trebao imati problema s 3.3V?
soic
Posts: 19
Joined: 18-03-2011, 20:40
Location: Split<->Murter
Contact:

Re: Ne mogu naći problem u komunikaciji s mobitelom

Post by soic »

Evo, uspio sam napraviti ono što sam zamislio s MOC3021 optocouplerom i BTA 12-600B triacom, te nekoliko otpornika i kondenzatora za snubbing.
Ovo je trenutna shema i radi super:
http://dl.dropbox.com/u/2440240/shema1.jpg

U konačnoj verziji uređaja će biti 4 sklopa za preklapanje 230V te će optocoupleri, triaci i snuberi biti na posebnoj pločici.

Pošto imam triak od 12A i planiram možda goniti potrošače od oko 1kW, zanima me kako najbolje dizajnirati spajanje potrošača? Znam da kroz optocoupler i snubber teku male struje pa mi to nije problem. Najviše me nekako brine to što su nožice triaca preblizu jedna drugoj i onda kad se bude lemilo ostaju premali razmaci između kontakata na pločici. Preptostavljam da treba paziti na razmak među vodovima i debljinu vodova. Nekako mi to sve izgleda nesigurno na pločici i strah me da neće izdržati 230V i 4-5A izmjenične struje. Je li se previše brinem? Kako najbolje to dizajnirati?
Post Reply