Anda di halaman 1dari 14

Módulo UART y

Comandos AT

Instructor:

Módulo UART y comandos AT Javier Hernández Flores

Javier Hernández Flores


Módulo
USART
USART: Universal Synchronous Asynchronous Receiver
Transmitter

Modos de trabajo:
• Asíncrono (Full-duplex) -> Tx como transmisor y Rx como
receptor
• Síncrono (Half-duplex) -> Tx como Clock y Rx como Datos

Javier Hernández Flores


Líneas Tx y Rx
PIC18F46J50

Javier Hernández Flores


Líneas Tx y Rx
SIM900

Javier Hernández Flores


Comunicación PIC con
SIM900

Se utiliza la interfaz UART para comunicar el SIM900 con un PIC. Se envían comandos
AT a través de la UART para establecer las funcionalidades de la aplicación.

Microcontrolador

ADC I2C
UART
UART

GPIO PWM

Javier Hernández Flores


Comandos
AT
El Microcontrolador PIC envía un comando AT y el SIM900 da una respuesta. Toda la
información se envía a través de la UART.

Los comandos AT son instrucciones codificadas que conforman un lenguaje de


comunicación entre el hombre y un terminal modem.

Microcontrolador SIM900

ADC I2C
Envía Comando AT

UART Respuesta del SIM900

GPIO PWM UART

Javier Hernández Flores


Comandos AT
(Generales)
Comando AT Descripción
ATI Nombre de producto e información de versión
AT+GSV Información sobre la identificación del producto (fabricante, nombre
del producto y revisión)

AT+COPS? Operadora telefónica en operación


AT+CBAND? Banda en operación (GSM 850 MHz, EGSM 900MHz, DCS 1800MHz y
PCS 1900MHz)

AT+GSN Número IMEI (International Mobile Equipment Identifier).


AT+CSQ Calidad de señal

Javier Hernández Flores


Capas del
Firmware

La librería SIM900 actúa como


intermediario entre el
hardware del MCU y la
aplicación del usuario. Capa de Aplicación

Otras librerías
Librería SIM900 de
sim900.c y sim900.h periféricos
• usart.c
• usart.h Hardware SFR’s
(UART, ADC, I/O PORTS, etc.)
• adc.c
• adc.h

Javier Hernández Flores


Librería
USART

Consta de 2 archivos:

• usart.h
• usart.c

Javier Hernández Flores


API librería
USART
Inicializa módulo USART:
USART_Initialize();

Manda un texto literal por la UART:


Prototipo:
void putrsUSART(const char *data)
Ejemplo:
putrsUSART(" Hola Mundo ");

Manda un buffer o variable por la UART:


Prototipo:
void putsUSART( char *data)
Ejemplo:
putsUSART(buffer);

Javier Hernández Flores


API librería
USART
Lee un caracter por la UART:
Prototipo:
unsigned char USART_getcUSART()
Ejemplo:
a = USART_getcUSART()

Lee un string por la UART:


Prototipo:
void getsUSART(char *buffer, unsigned int len)
Ejemplo:
getsUSART(data,15);

Javier Hernández Flores


API librería
USART
Envíar por la USART un dato:
printf(outputBuffer); //Envía por la UART el
contenido de la variable outputBuffer

NOTA: Es necesario implementar la salida de la función


printf:

void putch(char c){


while(!TXIF) continue;
TXREG = c;
}
Javier Hernández Flores
Baud Rate Generator
(BRG)

• Oscilador dedicado para la generación baudios.


Calcular valor para
SPBRG
Fosc
baudio 
64n Partimos el valor 1249 en
1 
  Fosc
dos bytes (SPBRG y
 SPBRGH)
 
baudios
n    64   1
  Valor a cargar en:
 
SPBRG = 225
  48MHz  
  9600   SPBRGH = 4
n    4   1 
 
1249
 
Javier Hernández Flores

Anda mungkin juga menyukai