handshaking Siemens S35

K

kluivert

Guest
Hei alle
Jeg gjør et prosjekt på bilen sikkerhetssystem basert på gsm som er S35 Siemens endelig jeg klarte å skrive kode på UC og sende bytes av UART men telefonen ikke gir noen svar som når du er koblet til PC (HyperTerminal)

Min venn fortalte meg det må være en handshaking problemet, jeg bruker UC koblet til MAX232 deretter til den mobile datakabel

Min Qns:
1 - Jeg leste
9 V for 0 og-9v for 1 på pins T1 & R1, hvorfor?som det skal være 3.3 V EIA/232?

2 - Jeg er veldig forvirret med den flyttbare handshaking,
hvordan det
er koblet til?hva med R
TS-CTS & DTR-DSR?

3 - Har max232 er koblet direkte til mobiltelefonen pins direkte eller må bruke så sw

plzzz hjelp
Takk på annonse
Sist endret av kluivert på 09 apr 2008 23:37, endret 1 gang totalt

 
Hei,
1.Deres plan er ok, det er slik RS232 nivåer bli.Den 3.3V angir at Max chip verker fra en VCC av 3.3v.
2.Hvis telefonen din er å arbeide med HyperTerminal så det er lett, du bare gjøre en kopling med signaler identisk med PC og telefonen vil fungere med mikro også.
3.Hvis du har shematic av telefonen kabel, kan du poste den her.

4.Også lese innlegget http://www.edaboard.com/ftopic300432.html, din løsning kan bli funnet her bare.

Hilsen,
Laktronics

 
Dette er kabelen skjematisk hva u foreslå for handshaking protokollen mellom UC og mobile S35

Jeg har prøvd mange ganger men ingenting mobilen ikke svarer til AT-kommandoen
ex.: PC tilkobling SC 7-8 SC 4-6

Må jeg koble pins 2 ( 8 V) og pins 6 (-8V) til mobil-kabelen?

Gjøre u vite noen måte å vite om AT-kommandoen sendes riktig fra UC noe overvåke og hvordan?

Thanx
Beklager, men du må logge inn for å vise dette vedlegget

 
Hei,
Hvis du er sikker på at dette er den kabelen som har arbeidet med PC, trenger du ikke noen handshaking.Du har ikke vist MAX pin antall TX tilkobling, men det spiller ingen rolle ettersom kabelen jobber med PC.På microcontroller side, terminate TX output etter Max 232 på en 9pin mannlige pin NO.3 og koble Rx skriving av MAX til pin 2 av kontakten, koble grunnen til pin5.

Du kan også koble til en ekstern forsyning av 9 til 15 volt og returnere til regulator av kabelen som du ville ha gjort i tilfelle PC.Hvis det ikke fungerer, problemer skyte den micro krets og programvare.

Hilsen,Laktronics
 
kluivert wrote:Gjøre u vite noen måte å vite om AT-kommandoen sendes riktig fra UC noe overvåke og hvordan?Thanx
 
Hei,
Ja, Bruk et kors koblet kabelen og koble den til PC-HyperTerminal og sjekk.
Hilsen,
Laktronics.

 
Hei, vi gjør dette prosjektet sammen.Beklager, jeg tror jeg kunne ikke forstå hva du sa vel.1) Hva er regulator av RS232?
som pin er det?
og gjør du dette til å fungere RS232 krets?
2) mener du med korset koblet kabel for å koble senderen og mottakeren av microcontroler direkte med PC-en uten MAX232?!
På forhånd takk
 
Hei,
1.I kabel skjematisk gitt, er det en 78L05 regulator vises som strømmer 5 V til MAX232 IC.Til skriving av regulator må du ha koblet 9 til 15 V og tilbake, som angitt i tegning, når du har koblet kabelen til PCen.Du må koble det samme tilbudet når kabelen er koblet til MIcrocontroller også.

2.Når det gjelder cross tilkobling av signaler når du kobler den microcontroller til PC for testing, jeg mente å koble RS232 signaler etter MAX 232 på Micro-kontrolleren til PC.Siden jeg har informert deg å hente ut signaler TX til pin 3, RX til pin 2 og grunnen til pin 5 til kontakten på microcntroller bord for å gjøre det identisk med pinouts av PC's kontakten når du kobler PC og Microcontroller hjelp av en kabel Det er underforstått å bruke et kors ledninger i kabelen ved å koble pin3 (TX) av Micros kontakten til PIN2 RX av PC's kontakt og viceversa.Dette er hva jeg mente med cross-tilkobling.

Hilsen,
Laktronics

 
Jeg prøvde korset forbindelse som jeg tok TX ut MAX til RX pin (2) av den mannlige DB9 tilkobling av PC på COM1 og viceversa for RX og pin (5) av COM1-kontakten kobles til ct GND og sett;
1 - HyperTerminal: Ingenting appeard (jeg brukte samme baudhastighet 19200bps)
2 - Docklight: en sekvens av NULL vises på skjermen

Å vite at jeg ikke prøve noen handshaking som pins 4,6,7,8 er åpne ct

For koden på UC når det
er simulert på AVR studio it's right!

Så hva gjør u tror nå?

 
Hei,

1.Under portinnstillingene i HyperTerminal, jeg antar du har valgt 8 bit, ingen paritet, 1 stoppbit, 19.2K og Flytkontroll til Ingen.

2.Micro programvare også skal samsvare med de ovennevnte alternativene.

3.Mikro skal sende ut ASCII tegn.

4.Hvis alle disse er gjort og fremdeles ikke fungerer, sjekk micro drift én etter én.Mest sannsynlig din baudhastighet på mikro er ikke OK.Du kan prøve å sende ut tegnet 'U' kontinuerlig for de ovennevnte parametere fra mikro og se på datamaskinen.Hvis du kan observere TX output fra mikro med et oscilloskop nå, kan du måle baudrate.
I alle fall bør du først gjøre det arbeide med PC, som er den enkleste måten å feilsøke.

Hilsen,
Laktronics

 
Her er koden, hvis u kunne sjekke det,
vel vitende ATmega 8515 og simulering viser at alt er ok, og hver bokstav er sendt

. inkludere "m8515def.inc"

. def Arg1 = r16
. def Arg2 = r17
. def DataReg = r18; UART og EEPROM data register
. def any_reg2 = r19
. def temp = R20
. def temp1 = r21
. def temp2 = r22
. def over = r23
. def over1 = r24
. def any_reg = r25
. def bit_mask1 = r26
. def bit_mask2 = r27
. def telle = r28

. equ brp = 25; baudhastighet parameter
. equ CR = 0x0D
. equ LF = 0x0A

. org 0x00
rjmp reset
. org UDREaddr
rjmp udr_empty_intreset:
CLI
ldi temp, høy (RAMEND); stabelen initialiseringsprosessen
out SPH, temp
ldi temp, lav (RAMEND)
out SPL, temp

CLR teller
CLR ZL
CLR r0
CLR any_reg
CLR over
CLR temp
CLR temp1
CLR temp2
CLR Arg1
CLR Arg2
CLR DataReg

ldi bit_mask2, 0b00000001
ldi bit_mask1, 0b11111110

ldi over, 0x00; store 0 i R17
ut DDRA over; Store denne verdien i Porta Data retning Registrer

ldi over1, 0xff
ut DDRB, over1; Command strenger må ligge innenfor de første 256 byte av Flash for å bruke bare lav 8bit adresse

cmd_at:. db 'A', 'T', 0
cmd_init:. db 'A', 'T',' ',' C', 'P', 'M', 'S','=','"',' S', 'M', ' " ',',','"',' S ',' M','"', 0
cmd_msgsend:. db 'A', 'T',' ',' C', 'M', 'S', 'S','=',' 1', 0;------------------------------------------------- -----
; UART initialisering:
;------------------------------------------------- ---
sbi UCSRB, 3; TX aktivere

cbi UCSRA, 1; U2X aktivertldi temp1, høy (brp); baudhastighet = 19200 bpsut UBRRH, temp1ldi temp1, lav (brp)ut UBRRL, temp1ldi temp2, 0b11000110; (synkron, ingen paritet, 1 stoppbit, 8 data bits)ut UCSRC, temp2

cbi UCSRB, UDRIE
sei

;------------------------------------------------- -----------------
; begynne å sende SMS når sensoren aktiveres
;------------------------------------------------- -----------------
hovedinnhold:
i temp1, Pina
sbrc temp1, 0; Skip hvis Bit0 i Porta er klart
rjmp hovedinnhold
rcall start
rjmp hovedinnhold

;------------------------------------------------- ------------------
; Sender 3 AT-kommandoer
; 1 - AT
, 2 - AT CPMer = "SM", "SM"
; 3 - AT CMSS =?
;------------------------------------------------- ------------

Oppstart:

SEND_AT:
ldi zh, high (cmd_at * 2)
ldi zl, lav (cmd_at * 2)
rcall send_cmd

SMS_INIT:
ldi zh, high (cmd_init * 2)
ldi zl, lav (cmd_init * 2)
rcall send_cmd
sbi portb, 4; Sjekk LED

SMS_SEND:
ldi zh, high (cmd_msgsend * 2)
ldi zl, lav (cmd_msgsend * 2)
rcall send_cmd
sbi portb, 3; Sjekk LED;------------------------------------------------- ------------------------
; Send AT Command (Char, <CR>, <LF>)
;------------------------------------------------- ------------------------

send_cmd:

scmd_loop:
lpm
TST r0; test ro
breq scmd_cr; grenen hvis ro = null
mov DataReg, r0
sbi UCSRB, UDRIErcall wait_one_byte_tx inc zl
rjmp scmd_loopscmd_cr:
ldi DataReg, CR; sende kommandoen Terminator <CR>
sbi UCSRB, UDRIE
rcall wait_one_byte_tx

ldi DataReg, LF; sende linjeskift <LF>
sbi UCSRB, UDRIE
rcall wait_one_byte_tx
sbi portb, 1; se lyset

ret

;------------------------------------------------- -------------
; Vent til en Byte
;------------------------------------------------- -------------
wait_one_byte_tx:
sbrs any_reg, 0; dette bit vil bli satt i UDR tom int
rjmp wait_one_byte_tx:
og any_reg, bit_mask1; bit_mask1 = 11111110

ret;------------------------------------------------- --------------
; UDREaddr Interrupt Handler
;------------------------------------------------- -----------
udr_empty_int:
ut udr, DataReg
eller any_reg, bit_mask2; bit_mask2 = 00000001
cbi UCSRB, UDRIE
avslutter:
reti

Plz sjekke understreket del om baudhastighet som er på 19200 bps, 8MHz Klokke, Synkron den UBRR = 25 som er lagret i UBRRL og UBRRH = 0 men UCSRC alltid endrer UBRRH som de deler samme sted.Thanx for ur innsats

 
Hei,
Det vil ta tid for meg å forstå koden.
Men bør du sette den serielle porten til asynkron, 8bit, ingen paritet, en stoppbit.
og ikke synkron.
Hilsen,
Laktronics

 
Endelig i lyktes å sende AT-kommandoer til mobile .......virkelig u hjulpet meg, thanx for ur stor innsats

 

Welcome to EDABoard.com

Sponsor

Back
Top