RSS · Atom

Mikrokontrolery


System głosowania GSM, komunikacja  

ARM7 / Kody źródłowe / System głosowania GSM
Opublikowany 04192008, 11:21

Realizacja komunikacji między mikrokontrolerem i telefonem z użyciem UART.

nullmodem

Pierwszy etap projektu opisanego w poście System głosowania GSM. Do komunikacji z telefonem zdecydowałem się użyć UART1 (UART0 służy do ISP). Ponieważ oba łączone urządzenia są typu DCE (oba gniazda ,,żeńskie''), należy użyć kabel tzw. null modem. Można go wykonać stosując następujący przeplot:

nazwa pin pin nazwa
FG - - FG
TxD 2 3 RxD
RxD 3 2 TxD
RTS 7 8 CTS
CTS 8 7 RTS
SG 5 5 SG
DSR 6 4 DTR
CD 1 4 DTR
DTR 4 1 CD
DTR 4 6 DSR

Inicjalizacja UART1 dla PCLK=15MHz:

PINSEL0 |= 1 < < 16 | 1 << 18;	// P0.8 jako TXD, P0.9 jako RXD
PINSEL0 |= 1 << 20 | 1 << 22;	// P0.10 jako RTS, P0.11 jako CTS
U1LCR = 1 << 7 | 3;		// 8N1
 
U1DLM = 0;		
U1DLL = 15000000/(16*19200);
U1LCR &= ~(1 << 7);
 
U1MCR |= 1 << 6 | 1 << 7;	// auto RTS and CTS
U1TER |= 1 << 7; 		// kontrola przepływu

Funkcje testowe do wysyłania i odbierania bajtów:

int sendC(char c) {
	while((U1LSR & 1 < < 5)==0);
	U1THR = c;
	return 0;
}
 
char recvC(void) {
	while((U1LSR & 1 << 0)==0);
	return U1RBR;
}

Ciąg dalszy nastąpi ...

Napisz komentarz