0 calificaciones0% encontró este documento útil (0 votos)
84 vistas8 páginas
Modulo Adaptador Puerto Serie
Este documento describe un módulo adaptador que permite la comunicación entre un microcontrolador y una computadora a través del puerto serie. Explica que el módulo utiliza un circuito integrado MAX232 para convertir los niveles de voltaje entre los protocolos TTL y RS-232. También incluye diagramas del circuito, la distribución de los componentes en la placa de circuito impreso y un ejemplo de código para programar un microcontrolador PIC16F628A para comunicación serial.
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0 calificaciones0% encontró este documento útil (0 votos)
84 vistas8 páginas
Modulo Adaptador Puerto Serie
Este documento describe un módulo adaptador que permite la comunicación entre un microcontrolador y una computadora a través del puerto serie. Explica que el módulo utiliza un circuito integrado MAX232 para convertir los niveles de voltaje entre los protocolos TTL y RS-232. También incluye diagramas del circuito, la distribución de los componentes en la placa de circuito impreso y un ejemplo de código para programar un microcontrolador PIC16F628A para comunicación serial.
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 8
Módulo Adaptador Puerto Serie
Ismael Cervantes de Anda
Docente ESCOM IPN [email protected] El presente artículo es tomado de uno publicado recientemente, en el cual se propuso un módulo que sirva para comunicar cualquier circuito electrónico con la computadora. Para realizar la comunicación se debe de seguir el formato del protocolo serial RS-232. Aunque como se menciono anteriormente, el módulo adaptador puede funcionar para cualquier circuito, el presente módulo tiene la finalidad de ser empleado con un microcontrolador, por lo tanto, se debe de tener el conocimiento de la programación del microcontrolador, para lo que se recomienda que sea utilizada la herramienta que de manera exprofesa incluyen los microcontroladores y que por lo general recibe el nombre de USART, por lo que en el presente proyecto se mostrara tan solo a manera de ejemplo la manera de habilitar la comunicación serial “Full duplex” en un microcontrolador PIC, siendo de manera especifica el PIC16F628A, sobre el que se mostrara el ejemplo. Antes revisemos la manera en que trabaja el protocolo RS-232. En el caso del puerto serie existe el inconveniente de que un microcontrolador trabaja con niveles de voltaje TTL y el puerto serie de la computadora trabaja con niveles de voltaje de acuerdo a la norma RS232. Estas diferencias en los niveles de voltaje hacen que sea imposible realizar una conexión “directa” de un microcontrolador al puerto serie de la computadora. 0 0V – 0.8V Entrada 1 2V – 5V TTL 0 0V – 0.4 V Salida 1 2.4V – 5V 0 -3V – -15V Entrada 1 +3V – +15V RS232 0 +5V – +15V Salida 1 -5V – -15V Tabla 1.- Niveles de voltaje TTL y RS232. Para poder establecer comunicación entre el puerto serie de una computadora y un microcontrolador es necesario construir un módulo adaptador de RS232 a TTL, dicho módulo debe ser capaz de convertir los niveles de voltaje de RS232 a TTL para realizar una transmisión de datos ( desde la computadora ) y de TTL a RS232 para realizar una recepción de datos (desde el microcontrolador), en el mercado se encuentra un circuito integrado que realiza esta tarea, específicamente el MAX232, este circuito integrado es muy popular debido a que para un funcionamiento adecuado solo necesita de cuatro capacitores electrolíticos y una fuente de alimentación de 5V. La siguiente figura muestra el diagrama esquemático del Módulo “Adaptador Puerto Serie”.
Fig. 1.- Diagrama esquemático del adaptador de RS232 a TTL.
El módulo adaptador puerto serie es un circuito muy sencillo ya que, como se menciono anteriormente, el circuito integrado MAX232 (IC1) realiza la tarea de cambiar los niveles de voltaje de RS232 a TTL en el caso de una transmisión de datos y de TTL a RS232 en el caso de una recepción de datos. El MAX232 (IC1) necesita para funcionar solo de cuatro capacitares electrolíticos y de una fuente de alimentación de 5V, internamente el MAX232 (IC1) tiene dos fuentes conmutadas la primera de ellas en conjunto con los capacitores electrolíticos C3 y C2 “adaptan” el nivel de voltaje tomado de la alimentación de +5V a +10V, la segunda fuente conmutada y los capacitores electrolíticos C1 y C4 invierten los niveles de voltaje para que se puedan obtener -10V, estos niveles de voltaje son utilizados para realizar la adaptación de los voltajes RS232 y se encuentran dentro de los rangos permitidos por la norma RS232.
Fig.2.- Detalle del circuito integrado MAX232.
El circuito integrado MAX232 (IC1) tiene dos terminales para conectar señales con niveles de voltaje TTL que serán adaptadas en señales con niveles de voltaje RS232, y otras dos terminales para conectar señales con niveles de voltaje RS232 que serán adaptadas a señales con niveles lógicos TTL. TTL Terminales RS232 11→14 Entradas TTL Salidas RS232 10→ 7 12←13 Salidas TTL Entradas RS232 9←8 Tabla 2.- Terminales para señales del MAX232. En el diagrama esquemático se observa que no todas las terminales del circuito integrado MAX232 (IC1) están conectadas, esto debido a que solo utilizamos la señal de la terminal 2 del conector DB9 (Rx) y la señal de la terminal 3 del conector DB9 (Tx), estas señales se utilizan para hacer la recepción y la transmisión de datos respectivamente. En el caso de la recepción de datos la señal con niveles de voltaje TTL, procedente de un microcontrolador o cualquier dispositivo que maneje niveles de voltaje TTL, entra por la terminal 11 del MAX232 (IC1), en el MAX232 se adaptan los niveles de voltaje de TTL a RS232 y la señal con niveles de voltaje RS232 sale por la terminal 14 del MAX232 (IC1) a la terminal 2 del conector DB9 (Rx); en el caso de la transmisión de datos, la señal de la terminal 3 del conector DB9 (Tx) con niveles de voltaje RS232 entra por la terminal 13 del MAX232 (IC1) en el MAX232 se adaptan los niveles de voltaje de RS232 a TTL y la señal con niveles de voltaje TTL sale por la terminal 12 del MAX232 (IC1), esta señal puede ser conectada a la terminal receptora de un microcontrolador.
Fig. 3.- Circuito impreso.
También se observa que las terminales 1, 4 y 6 del conector DB9 están cortocircuitadas entre si, así como las terminales 7 y 8 del conector DB9 también están cortocircuitadas, esto es necesario cuando la computadora maneja la transmisión y recepción de datos por el puerto serie con algún método de control de flujo, ya que nos permite simular una terminal receptora que emite las señales de control de flujo necesarias para establecer la comunicación, en el caso de que la computadora maneje los datos sin ningún método de control de flujo no es necesario realizar ninguna conexión entre las terminales del puerto serie, aunque si la computadora no maneja los datos con algún método de control de flujo y dichas conexiones se encuentran hechas no afectan la comunicación entre la computadora y el microcontrolador. Las terminales del conector X1 se describen en la siguiente tabla. Terminal Descripción 1 Recepción de Datos 2 Transmisión de Datos 3 Alimentación 4 Tierra Tabla 3.-Descripción de terminales del conector JP1 La siguiente figura muestra la distribución de los componentes en el circuito impreso, es importante mencionar que es recomendable soldar primero una base para circuito integrado de 16 pines y después colocar sobre ella el MAX232, ya que así evitaremos dañar el circuito integrado con temperaturas excesivas al momento de soldar los componentes, también es importante colocar los capacitores electrolíticos con la polaridad adecuada, ya que si no se hace así el Modulo adaptador RS232- TTL no funcionara correctamente
Figura 4.- Distribución de componentes sobre el circuito impreso.
En la figura 5 se muestra un diagrama que se sugiere para el empleo del módulo adaptador, para comunicar al microcontrolador PIC16F628 con la PC. En el diagrama se muestra un circuito en donde al PIC se le tiene que habilitar el oscilador interno, o en su defecto, se le coloque un oscilador externo por lo que se le tiene que habilitar cuando se programe el microcontrolador y obviamente colocárselo en el circuito. El conector DB9 del módulo adaptador se conecta a la PC, por medio de la utilización de un cable tipo serie.
Figura 5.- Distribución de componentes sobre el circuito impreso.
Para completar el proyecto se requiere de una aplicación que se encuentre instalada en la PC, y para ello se ofrece una aplicación 100% funcional para que la PC transmita y reciba información hacia el microcontrolador a través del módulo. En la figura 6 se ilustra la imagen de la aplicación para comunicar un PIC con la PC. A continuación se anota el código para programar al microcontrolador PIC, para que se comunique de manera serial a la PC, en una estructura Full Duplex. El programa en el microcontrolador esta diseñado de tal manera que el dato que reciba de la PC, será retransmitido nuevamente a la PC. ;====================================== ; Declaración de Bits ; Autor: Ismael Cervantes de Anda. ;====================================== ; Habilitación de la comunicación Serial c equ 0 ;carry / borrow bit ; Fecha: 27/11/2006 z equ 2 ;bit cero ; PIC: 16F628A rcif equ 5 ; Modo de oscilador interno "intRC I/O" rcie equ 5 ;====================================== rp0 equ 5 ;registrer banck select bit LIST P=PIC16F628A rp1 equ 6 ;registrer banck select bit ;====================================== peie equ 6 ; Declaración de Registros gie equ 7 ;====================================== spen equ 7 w equ 00h ;====================================== status equ 0x03 ; Vector del reset porta equ 0x05 ;====================================== portb equ 0x06 reset intcon equ 0x0b org 0 pir1 equ 0x0c goto IniProg rcsta equ 0x18 org 4 txreg equ 0x19 bcf status,rp0 ;cambiar al banco 0 rcreg equ 0x1a bcf status,rp1 cmcon equ 0x1f btfsc pir1,rcif opsion equ 0x81 goto interserie trisa equ 0x85 retfie trisb equ 0x86 ;====================================== pie1 equ 0x8c ; Interrupcion por USART txsta equ 0x98 ;====================================== spbrg equ 0x99 interserie var1 equ 0x24 bcf status,rp0 ;cambiar al banco 0 var2 equ 0x25 bcf status,rp1 var3 equ 0x26 bcf intcon,gie ;desactivar habilitador recep equ 0x32 ;general de interrupciones ;====================================== movf rcreg,w ;recuperar el dato movwf recep ;recibido por rs232 bcf status,rp0 ;cambiar al banco 0 bsf bandera,0 bcf status,rp1 bcf pir1,rcif call retardo1seg bsf intcon,gie btfss bandera,0 retfie goto Ciclo ;====================================== call transmisión ; Comienzo del programa principal bcf bandera,0 ;====================================== goto Ciclo IniProg ;====================================== movlw 0x02 ;configura pines 0 y 2 a 7 ;Subrutinas movwf trisb ;como salida, pin 1 como ;====================================== ;entrada del puerto B retardo1seg movlw 0xFF ;configurar los pines del ;Retardo de 1 segundo movwf trisa ;puerto A como entrada movlw .255 ;del puerto A movwf var1 bcf status,rp0 ;cambiar al banco 0 ciclo_3 bcf status,rp1 movlw .08 movlw 0x07 ;configurar los pines del movwf var2 movwf cmcon ;puerto A como entradas ciclo_2 ;o salidas discretas movlw .166 movlw 0x00 movwf var3 movwf recep ciclo_1 ;********************************************************* decfsz var3,1 ;497 ; Activacion de la USART microsegundos = aprox. 0.5 milisegundos ;********************************************************* goto ciclo_1 bsf status,rp0 ;cambiar al banco 1 decfsz var2,1 bcf status,rp1 goto ciclo_2 movlw b'00100110' decfsz var1,1 movwf txsta goto ciclo_3 movlw .25 return movwf spbrg transmisión bcf status,rp0 ;cambiar al banco 0 bsf status,rp0 ;cambiar al banco 1 bcf status,rp1 bcf status,rp1 bsf rcsta,spen ;habilitacion del movlw b'00100110' ;puerto de comunicacion serial movwf txsta bsf rcsta,cren movlw .25 bsf intcon,gie ;activar habilitador movwf spbrg ;general de interrupciones bcf status,rp0 cambiar al banco 0 bsf intcon,peie ;activar habilitador bcf status,rp1 ;general de interrupciones por perifericos bsf rcsta,spen bsf status,rp0 ;cambiar al banco 1 movf recep,w bcf status,rp1 movwf txreg bsf pie1,rcie ;activar interrupción por txespera ;fin de recepción por usart btfss pir1,txif ;------------------------------------------------------------ goto txespera ;Rutina que transmite el dato que recibe return ;------------------------------------------------------------ End Ciclo
Lista de Materiales del Módulo Adaptador Puerto Serie (ICA-021).
C1 a C4 Capacitor electrolíticos 1 µF @ 15 V. IC1 Circuito integrado MAX232. X1 Conector DB9 hembra para circuito impreso. Varios.- Circuito impreso, base de 16 pines, cables de conexión.