Professional Documents
Culture Documents
Proyecto
Mdulo USART
Objetivos
Materiales
1.
2.
3.
4.
5.
6.
7.
8.
PIC16F887
4 potencimetros
8 leds
Interruptor DIP (8 Switch)
8 resistencias de 10 kohm
8 resistencias de 270 ohm
FTDI 232 (FTDI Basic)
Matlab
PIC16f887
Mdulo EUSART
El microcontrolador PIC16F887 posee un mdulo USART, usando la norma RS232.
El EUSAR (Enhanced Universal Synchronous Asynchronous Receiver
Transmotter), puede ser configurado como un Sistema full duplex o bidireccional
asncrono, adaptndose a multitud de perifricos y dispositivos que transfieren
informacin de esta forma, tales como el monitor o el computador.
EUSART puede configurarse de tres formas:
Modo Asncrono
Las transferencias de informacin de realizan sobre dos lneas TX (Transmisin) y
RX (Recepcin), saliendo y entrando los bits por dichas lneas al ritmo de una
frecuencia controlada internamente por el USART. Las lneas de comunicacin son
los dos bits de ms peso del Puerto C: RC6/TX/CK y RC7/RX/DT, donde el bit
SPEN (RCSTA<7>) y los bits TRISC<7:6> tienen que activarse mediante un 1 con
el fin de activar dichos pines.
Generador de BAUDIOS
En el protocolo RS-232, la frecuencia de baudios (bits por segundo) a la que se
realiza la transferencia se debe efectuar a un valor normalizado: 2400, 4800, 9600,
19200, etc. Para generar esta frecuencia de Baudios, BRGH y BRG16, cuyo valor
controlado por el contenido grabado en el registro SPBRGH y SPBRG.
Frecuencia en Baudios=
F OSC
64( X +1 )
F OSC
1
Frec . Baudios64
4000000
1
960016
X =25
4000000
=9615 baudios
16( 25+1 )
96159600
100 =0.16
9600
Transmisor Asncrono
Implementacin de una transmisin en el mdulo EUSART:
1.
2.
3.
4.
Receptor Asncrono
1. Se carga con el valor X al registro SPBRG para trabajar con la frecuencia
deseada, controlando adems el valor de BRGH y BRG16.
2. Se habilita el USART en modo asncrono con SPEN = 1 y SYNC = 0.
3. Poner RX9 = 1 para permitir la recepcin del bit 9 bits.
Resolucin
f
+Vre
1024
Vre f
Resolucin=
Si Vref+ es 5 VDC y Vref- esta referenciado a tierra
Resolucin=
Vref
1024
Resolucin=4.882
mV
bit
Configurar los pines que actuaran como entradas analgicas, las que
trabajan como E/S digitales y las usadas para la tensin de referencia
(ADCON1).
Utilizando los bits CHS3, CHS2, CHS1 y CHS0 se selecciona el pin donde se
llevar acabo la lectura analgica
FTDI 232
SparkFun tiene una lnea de productos de USB a serial UART diseados para
permitir al usuario comunicar con serial UART a travs de un puerto USB comn.
Actualmente es ms difcil encontrar un ordenador con puerto serial UART y muy
comn encontrar dispositivos seriales.
RS-232 es un estndar completo, no solamente incluyendo caractersticas
elctricas, sino caractersticas fsicas y mecnicas, como una conexin de
hardware, pin-outs, nombres de seales. Una interfaz punto a punto, RS-232 es
capaz de lograr a distancias moderadas velocidades de hasta 20-Kbps. Aunque no
se especifique en el estndar, velocidades ms altas de 115.2Knps son posibles
en distancias relativamente cortas
Se inicia el puerto
fopen(puerto);
voltaje=0;
axes(handles.axes1);
grid minor
hold on;
Ciclo permanente
tic
while 1
Se leen los valores recibidos por el pic y se crea un vector de 5 datos cada dato de
1 byte
valorADC=fread(puerto,5,'uint8') %Toma el valor recibido por el puerto y lo
guarda en la variable
Se guarda cada dato recibido en su vector que lo graficara, recorriendo los datos
en una posicin y guardando el dato en el ltimo lugar y se grafica utilizando
drawnow
if toc>(1/Fs)
tic;
y(1:end-1)=y(2:end);
y(end)=voltaje;
y2(1:end-1)=y2(2:end);
y2(end)=voltaje2;
y3(1:end-1)=y3(2:end);
y3(end)=voltaje3;
y4(1:end-1)=y4(2:end);
y4(end)=voltaje4;
set(l1,'XData',t,'YData',y)
set(l2,'XData',t,'YData',y2)
set(l3,'XData',t,'YData',y3)
set(l4,'XData',t,'YData',y4)
drawnow
end
end
% Update handles structure
Configuracin de puertos
PORTA = 0;
TRISA = 0xFF;//ENTRADA
PORTB = 0x00;
TRISB = 0x00;//SALIDA
PORTC = 0x00;
TRISC = 0xFF;//PIN RC7 ENTRADA RC0->RC6 SALIDA
TRISD = 0xFF;//ENTRADA
//PUERTO A ANALOGICO
//PUERTO B DIGITAL
// Initialize Comparator 1 off
// Initialize Comparator 2 off
SPEN=1;
Se habilita la transmisin
TXEN=1;
Ciclo permanente
while(1==1)
{
Conexiones
Funcionamiento
Seales muestreadas en MATLAB y generadas al variar los
potencimetros conectados al PIC