dataöverföring, baud?

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
Användarvisningsbild
amfitony
Inlägg: 29
Blev medlem: 15 februari 2007, 19:15:58
Ort: Uppsala
Kontakt:

dataöverföring, baud?

Inlägg av amfitony »

Hejsan

Jag försöker få igång så jag kan skicka kommandon från min pic16f88 till min mobiltelefon (t28). Och nu har jag suttit n antal timmar med en kod som jag inte förstår och har slutligen gett upp. dock så tror jag inte att mitt problem är alltför svårt att lösa eftersom jag redan har riggat upp det hela så att jag kan skicka kommandon från min pc via hyperterminal till mobilen.

jag kan absolut ingenting om datorkommunikation men jag antar att det är synkron överföring som sker vilket är beroende av timning för varje bit. grejen är den att jag kan ändra baudraten i hyperterminal bäst jag vill och det fungerar ändå :/ hur fungerar detta i praktiken? klurar mobiltelefonen ut vilken baudrate som används vid ett givet tillfälle eller är det jag som lurat mig själv och kört samma baudrate?

något som borde göra det hela lite enklare är att det bara är en given sträng jag vill skicka till mobilen, "ATD239928309". går detta att "lösa manuellt" på något sätt? jag har inget emot att göra en gigantokod där jag ändra värdet på en utgång, lägga in delay, ändra värdet igen, delay osv tills jag lyckats skicka min sträng.


lite blandad info för den vetgirige:

http://www.tugatec.com/files/teleles/T28_R1A.pdf
http://www.frisnit.com/sms/me.html
http://passivemode.net/updates/2006/8/2 ... ntrol.html
http://www.riccibitti.com/tinyplanet/tiny_article.htm
sodjan
EF Sponsor
Inlägg: 43247
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

Asynkron.

> klurar mobiltelefonen ut vilken baudrate som används vid ett givet tillfälle eller är det jag som lurat mig själv..

Antingen eller, ingen aning om vilket...

För övrigt går det inte att säga något eftersom du inte talar om
vad du har försökt med...
Användarvisningsbild
lgrfbs
Inlägg: 7300
Blev medlem: 28 januari 2005, 15:48:53
Ort: X-län
Kontakt:

Inlägg av lgrfbs »

Skulle tro att det är du som ska ställa in rätt bps mot mobilen och att
bps:en är fixad i mobilen.

Info om baud:
http://en.wikipedia.org/wiki/Baud
kimmi
Inlägg: 221
Blev medlem: 13 april 2007, 12:25:00

Inlägg av kimmi »

hi,
se denna link http://www.picbasic.co.uk/forum/showthr ... ght=GSM%2A
mycke om pic + gsm

Hvis det var til atmel Bascom-avr har jeg lavet programmer tiil siemens sms controller en/decode sms text 8 on/off ports ect setup via pc terminal
Användarvisningsbild
amfitony
Inlägg: 29
Blev medlem: 15 februari 2007, 19:15:58
Ort: Uppsala
Kontakt:

Inlägg av amfitony »

:D äntligen fixat det
gav upp pic -> gsm och fokuserade istället på hyperterminal <-> pic och
hittade då den här sidan: http://www.oz1bxm.dk/PIC/628uart.htm

och när det väl fungerade så var det bara o koppla till mobilen.

behövde ändra en del grejer för konvertering till 16f88 och just for the record ser koden ut såhär om nån annan newb behöver:

kommentarerna stämmer inte helt..

Kod: Markera allt

	include p16f88.inc
	;radix dec
	processor 16F88



		__CONFIG    _CONFIG1, _CP_OFF & _CCP1_RB0 & _DEBUG_OFF & _WRT_PROTECT_OFF & _CPD_OFF & _LVP_OFF & _BODEN_ON & _MCLR_OFF & _PWRTE_ON & _WDT_OFF & _INTRC_IO
		__CONFIG    _CONFIG2, _IESO_OFF & _FCMEN_OFF

;******************************************************************* 
; Function:  Sends alive message, then echoes characters at 9600 bps 
; Processor: PIC16F628 at 4 MHz using internal RC oscillator 
; Hardware:  Testboard K4 
; Filename:  628uart.asm 
; Author:    Lars Petersen, oz1bxm@qsl.net 
; Website:   www.qsl.net/oz1bxm/PIC/pic.htm 
; Credit:    Tony Nixon's test program at 
;            www.piclist.com/techref/microchip/16f877/setup.htm 
;******************************************************************* 

        ;LIST P=16F628, R=DEC    ; Use the PIC16F628 and decimal system 

        ;#include "P16F628.INC"  ; Include header file 

        ;__config  _INTRC_OSC_NOCLKOUT & _LVP_OFF & _WDT_OFF & _PWRTE_ON & _BODEN_ON 

        CBLOCK 0x20             ; Declare variable addresses starting at 0x20 
          dataL 
		x
		x2
		x3
        ENDC 

        ORG    0x000            ; Program starts at 0x000 
; 
; -------------------------------- 
; SET ANALOG/DIGITAL INPUTS PORT A 
; -------------------------------- 
; 
		banksel	CMCON
        movlw 7 
        movwf CMCON             ; CMCON=7 set comperators off 
; 
; ---------------- 
; INITIALIZE PORTS 
; ---------------- 
; 		
		BANKSEL PORTA
        movlw b'00000000'       ; set up portA 
        movwf PORTA 

        movlw b'00100000'       ; RB2(TX)=1 others are 0 
        movwf PORTB 

        BANKSEL TRISA          ; RAM PAGE 1 
		movlw	0x00
		movwf	ANSEL
		movlw	h'6E'
		movwf   OSCCON
        movlw 0x00 
        movwf TRISA             ; portA all pins input 

        movlw b'00000100'       ; RB7-RB4 and RB1(RX)=input, others output 
        movwf TRISB 
		movlw  0xff
		movwf	x
		movlw  0xff
		movwf	x3
		goto hej

Delay	macro		Duration
		movlw		Duration
		movwf		x2

		decfsz 		x,F
		goto 		$-1		
		decfsz		x3,F
		goto 		$-3
		decfsz		x2,F
		goto 		$-5
		endm

hej

		Delay .50

; ------------------------------------ 
; SET BAUD RATE TO COMMUNICATE WITH PC 
; ------------------------------------ 
; Boot Baud Rate = 9600, No Parity, 1 Stop Bit 
; 
        
 		movlw .25              ; 0x06=9600 bps (0x0C=19200 bps) 
        movwf SPBRG 
        movlw b'00100100'       ; brgh = high (2) 
        movwf TXSTA             ; enable Async Transmission, set brgh 

        BANKSEL PORTA          ; RAM PAGE 0 

        movlw b'10010000'       ; enable Async Reception 
        movwf RCSTA 
; 
; ------------------------------------ 
; PROVIDE A SETTLING TIME FOR START UP 
; ------------------------------------ 
; 
        clrf dataL 
settle  decfsz dataL,F 
        goto settle 

        movf RCREG,W 
        movf RCREG,W 
        movf RCREG,W            ; flush receive buffer 
; 
; --------- 
; MAIN LOOP 
; --------- 
; 
        call message            ; send "16F628 alive" 
loop   	call receive            ; wait for a char 
        call send               ; send the char 
        goto loop 
; 
; ------------------------------------------- 
; RECEIVE CHARACTER FROM RS232 AND STORE IN W 
; ------------------------------------------- 
; This routine does not return until a character is received. 
; 
receive btfss PIR1,RCIF         ; (5) check for received data 
        goto receive 

        movf RCREG,W            ; save received data in W 
        return 
; 
; ------------------------------------------------------------- 
; SEND CHARACTER IN W VIA RS232 AND WAIT UNTIL FINISHED SENDING 
; ------------------------------------------------------------- 
; 
send    movwf TXREG             ; send data in W 

;TransWt bsf STATUS,RP0          ; RAM PAGE 1 
		BANKSEL TXSTA
WtHere  btfss TXSTA,TRMT        ; (1) transmission is complete if hi 
        goto WtHere 

        BANKSEL PORTA          ; RAM PAGE 0 
        return 
; 
; ------- 
; MESSAGE 
; ------- 
; 
message movlw  0x0D ; CR 
        call send 
        ;movlw  0x0A ; LF 
        ;call send 

		movlw  'A' 
        call send 
        movlw  'T' 
        call send 
        movlw  '+' 
        call send 
        movlw  'C' 
        call send 
        movlw  'F' 
        call send 
        movlw  'U' 
        call send 
        movlw  'N' 
        call send 
        movlw  '=' 
        call send 
        movlw  '1' 
        call send 

        movlw  0x0D ; CR 
        call send 
        movlw  0x0A ; LF 
        call send 
        return 

        END 
Mindmapper
Inlägg: 7100
Blev medlem: 31 augusti 2006, 16:42:43
Ort: Jamtland

Inlägg av Mindmapper »

Eftersom det normalt inte ska fungera med vilken hastighet som helst så tror jag på denna förklaring. Du har ändrat hastighet på den comport som inte är ansluten till mobilen.
Användarvisningsbild
Jine
Inlägg: 1795
Blev medlem: 21 juli 2004, 20:25:56
Skype: Jim.Nelin
Ort: Trångsund, Stockholm
Kontakt:

Inlägg av Jine »

Mindmapper skrev:Eftersom det normalt inte ska fungera med vilken hastighet som helst så tror jag på denna förklaring. Du har ändrat hastighet på den comport som inte är ansluten till mobilen.
Det kan man inte :) Man ändrar ju hastigheten när man ansluter till comporten, ansluter man till fel comport händer det NADA :)
Skriv svar