# Circuito Serial RS-232 a USB



## shadow

Tengo un circuito diseñado para ser conectado al ordenador por el puerto serial RS232, que hace falta para conectarlo al puerto USB¿?

Saludos...


----------



## Nacho

Lo mas fácil es comprar el adaptador USB a RS-232, por economía y simplicidad.

Mira este enlace:

http://www.ramelectronics.net/html/usb_serial.htm

Utiliza el circuito integrado Prolific PL-2303 (USB to Serial Bridge Controller) que difícilmente lo consigues y fuera de eso tienes que programarlo.


----------



## shadow

Si, esoy de acuerdo que es la mejor opcion, pero para progrmar-lo como es? porque el cicuito que estoy diseñando para serial abarca 10 sensores y 2 acuadores... y no se como hacerlo para que el ordenador lo reconozca...        en principio pensaba hacer el circuito  ya directametne para USB pero pense que seria mas facil empezar por lo basico con serial...ya que no encontre algun PIC que tuviera tantos pines I/O suficientes y tampoco se el funcionamiento de todo esto...

Saludos...


----------



## goosfancito

Tendrías algún ejemplo en C o C++ de como controlar el puerto serial?

gracias.


----------



## MaMu

Mira este enlace, es interesante y creo que es bastante completo, a pesar de ser una sintesis.

http://www.tetraedre.com/advanced/serial.php

NOTA : en algunos casos, cuando se programa para Win32, en plataformas basadas en NT (NT/2000/XP) necesitaras un Driver, ya que la seguridad de estas plataformas no permiten el control directo de los puertos.


----------



## lucasprieto

Que tal, mira si recien comienzas te recomiendo que hagas un enlace serial (RS-232) Una vez que esto esta funcionando comprando un conversor SERIE-USB comercial te será  transparente ya que viene con un driver que genera un COMM "virtual" y puedes seguir usando el mismo programa en la PC que se comunica serie a traves de ese COMM "virtual" y por supuesto del lado del hardware también dispondrás de un COMM RS-232.
Si quieres ir mas allá puedes comprarte un PIC18F4550 Que tiene 32 Patas de I-O + puerto USB incorporado. De la página www.microchip.com te puedes bajar bastante información acerca del STACK USB, su implementación tanto del lado Microcontrolador como del lado PC...
Suerte !!!


----------



## Miloper

hola: 
soy nuevo en este foro, y solo quería agradecer la ayuda, yo creo que represento a muchos que solo revisan el foro y no comentan por saber muy poco de electronica.
En especial, este tema ha sido de gran ayuda


----------



## Aristides

Con el FT232RL se puede hacer la interfaz, en este PDF está el circuito:
http://www.parallax.com/dl/docs/prod/acc/USB2SER-v1.1.pdf


----------



## Miloper

Nacho dijo:
			
		

> Lo mas fácil es comprar el adaptador USB a RS-232, por economía y simplicidad.
> 
> Mira este enlace:
> 
> http://www.ramelectronics.net/html/usb_serial.htm
> 
> Utiliza el circuito integrado Prolific PL-2303 (USB to Serial Bridge Controller) que difícilmente lo consigues y fuera de eso tienes que programarlo.



 cuando conecto un pendrive (por ejemplo) el Pc lo reconoce, cuando conecto una impresora por USB me pide un software de instalación; me refiero a que el computador "sabe" lo que le estoy conectando porque se lo digo, no tendría ese problema con el adaptador?


----------



## jampcs

Hola a todos.... necesito de su ayuda.... tengo una impresora Hp con puerto serial y tengo que conectarla a un laptop por puerto usb, existe algun adaptador que me sirva para tal fin?. Compre uno que es de usb a serial rs232 y obviamente no sirve, hay alguna manera de modificarlo para poder utilizarlo como les dije anteriormente?. Muchas gracias. Saludos


----------



## capitanp

Nacho dijo:
			
		

> Lo mas fácil es comprar el adaptador USB a RS-232, por economía y simplicidad.
> 
> Mira este enlace:
> 
> http://www.ramelectronics.net/html/usb_serial.htm
> 
> Utiliza el circuito integrado Prolific PL-2303 (USB to Serial Bridge Controller) que difícilmente lo consigues y fuera de eso tienes que programarlo.



Compras esos cables para celulares genericos Samgsun por 10 u$s que te viene con el pl-2003 bajas el software de la pagina de prolific actualizado y te emula un puerto COM perfectamente (ya que para el telefono no funciona)

Saludos


----------



## pame

hola soy pame

yo tengo una duda sobre este tema, tengo un circuito que ya se comunica de forma serial con la pc pero quiero que la comunciacion sea via usb, con un conversor serial- usb es suficiente para la comunicación o necesito hacer algun cambio en la programación, programo en picbasic

gracias por su ayuda


----------



## cesartm

Compre un Picstart Plus con entrada RS232 el cual mi ordenador no tiene su respectiva a entrada, compre un cable adaptador de USB a RS232 y venia con su respectivo driver, lo instale, pero al conectar el programador no lo reconoce, intente en el panel de control>add new hardware pero es inutil, alquien ha solucionado este tipo te problemas?


----------



## Moyano Jonathan

Yo estoy desarrollando el control de dispositivos por puerto usb utilizando un pic18f2550 si necesitan información al respecto este es el link https://www.forosdeelectronica.com/f24/control-dispositivos-traves-modulo-usb-pic18f2550-17458/


----------



## cesartm

Gracias esta interesante, de hecho ya resolvi mi problema al hacer que MPLAB reconociera el Picstart Plus solo me pedia el numero de COM, solo tuve que ir a Control Panel>System>Hardware>Device Manager>Ports (COM & LPT), cheque donde estaba el cable RS232, volvi a MPLAB>Programmer>Settings...>Communications e indique el com y listo, Gracias


----------



## Oceano

Tengo un problema parecido:

Se trata de que si uso la UART, es decir, el puerto COM del PC, funciona mi proyecto, pero si uso un adaptador USB->RS232 me encuentro que no puedo controlar de manera independiente los bits de entradas y salidas. Dicho de otro modo, no puedo hacer OUT o INP a dicho puerto.

Por ejemplo, si haces 

Out &h3FB, 64

pones la patilla T a uno
si ese 64 lo cambias por un cero, se pondría a cero.

Alguien sabe cómo manejar los bits DTR, RTS, T... etc., de forma directa mediante un adapatador USB a COM(x)?

El adaptador que estoy usando lleva una FT232, ya sabéis, las famosas FTDI

Saludos y gracias.


----------



## Oceano

Hola amigos,

me compré unos convertidores de USB a RS-232 y cuando quise usarlos como si estuviera comunicándome con una UART me llevé la sorpresa de que no entiende.

Alguno de vosotros sabe cómo manejar los bits RST, DTR, DCD, etc... del convertidor USB a RS232 de forma directa con algún lenguaje de programación?

He intentado de todas las formas posibles haciendo Inp y Out, pero "nanay" de la china.

Saludos.


----------



## shadow_x

hola; tengo una duda, se pueden conectar mas de un dispositivo a un puerto seria? estoy diseñando una minicelda de manufactura donde programo las funciones de un brazo robot por el puerto serial y ahora queremos conectar una pantalla tactil para monitoreo y esta tambien se comunica por rs232. la idea es que la computadora solo intervenga para darle nuevas ordenes al brazo o controlarlo manualmente y que la pantalla solo reciba el estado del brazo.


----------



## Oceano

Para manejar los Bits de forma independiente en un FTDI FT232xx o su homónimo PL232xx: 

Salidas: DTR - RTS 
Entradas: CTS - DSR - (RI*) - DCD 


* ("RI" sólo es compatible con la UART (Com[x]) que viene en el PC; en los FTDI no suele tener implementada esta patilla, porque sólo se usan en los antiguos Modem) 

He comprobado la frecuencia máxima de cambio de estado con un osciloscopio. Si pones a cambiar el estado sólo una de las salidad (DTR ó RTS) se obtiene una frecuencia máxima de 166 Hercios. Y si usas los dos a la vez (DTR y RTS), la frecuencia es de 85 hercios. Esto es muy pobre, y para lo que necesitaba no me es factible, pero comunico los resultados por si alguien le encuentra alguna función a todo esto. 

El programa está escrito en FreeBasic. No sé cómo se hace en otros lenguajes de programación. Si no puedes acceder al zip que adjunto, copio aquí los dos programas. Hace parpadear dos LED conectados al DB9 del FTDI (también es válido para la UART del PC, pero hay otras formas mucho más sencillas de manejarlo, directamente con la instrucción "Out puerto, dato" [has de abrir el puerto de comunicaciones previamente con 'Open com "com1:2400,8,n,1,rs,ds,cd" as #1' si estás en plataformas de SO de 32 ó 64 bits como el Win XP; en win98 no hace falta abrir el puerto porque el kernel del SO es de 16 bits, es decir, tipo msdos] y puedes alcanzar más de 20KHz de parpadeo). Las conexiones están en el JPG que adjunto. En pantalla no sale nada porque se trata de ver el parpadeo de los LEDs. Antes de ejecutar el programa has de averiguar en qué puerto Com está tu FTDI; lo puedes encontrar en: Inicio > Panel de Pontrol > Sistema > Hardware > Administrador de Dispositivos > Puertos Com & LPT > y pulsas en el símbolo '+', ahí verás la referencia del puerto donde esté. Si quieres tb puedes cambiar el Com a otro que tu quieras mientras esté libre, pulsando con el botón derecho y le das a "Propiedades" y después pulsas en la pestaña "Configuración del puerto". Pulsas sobre el botón "Opciones avanzadas" y verás abajo de esa ventana que te permite cambiar el Com a otro puerto si está libre.

En cualquiera de los dos programas has de pulsar "Escape" para salir.

Puedes descargar los códigos fuentes, esquema y los ejecutables aquí:
http://sites.google.com/site/proyectosroboticos/manejo-de-pines-del-ftdi-ft232

Pines: 
RTS -----> patilla 7 del DB9 
DTR -----> patilla 4 del DB9 
Masa ----> patilla 5 del DB9 

Manejo de RTS y DTR: 



		Código:
	

#Include "windows.bi"
#Include "file.bi"

Dim Letra  As String 
Dim h      As HANDLE
Dim ComX   As Integer
Dim Puerto As String

Screen 9

Locate 10,1: Input "Escribe solo el -numero- del puerto COM donde tengas tu FTDI. COM:"; ComX

Cls

Locate 10,1
Print "Observa el cambio de estado de los LED. Ha de parpadear"
Print "primero uno y luego el otro, un segundo de tiempo cada uno."
Print
Print "Pulsa 'Escape' para salir. Igual tarda 2 segundos en tener efecto"
Print "hasta finalizar la temporizacion." 

Puerto="Com"+Str(ComX)

Open Com  Puerto+":9600, N, 8, 1, CS, DS, RS, CD" As #1
' El valor 9600 puede ser cualquier otro valor porque no estamos haciendo comunicaciones asincronas.


While Letra <> Chr(27)
	
	Letra=InKey()
	
	h = Cast(HANDLE, FileAttr( 1, fbFileAttrHandle ))
		 
	EscapeCommFunction( h, SETDTR )  ' DTR=1
	
	Sleep 500
		 
        EscapeCommFunction( h, CLRDTR )  ' DTR=0
   
        Sleep 500
   
        EscapeCommFunction( h, SETRTS )  ' RTS=1
   
        Sleep 500
		 
        EscapeCommFunction( h, CLRRTS )  ' RTS=0
   
        Sleep 500

Wend

Close #1
 
End


Y ahora el programa para leer las entradas. Si las patillas de entrada (CTS - DSR - DCD) están sueltas lo interpreta como un 1. Hay que llevarlas a masa para que se ponga a cero. Los resultados podrás leerlo en el monitor. 

Patillaje de entradas: 

CDC -----> patilla 1 del DB9 
DSR -----> patilla 6 del DB9 
CTS -----> patilla 8 del DB9 
RI ----->  patilla 9 del DB9 (opcional) 
Masa ----> patilla 5 del DB9 

El programa está escrito en FreeBasic, no sé cómo se hace en otros lenguajes de programación. En el ZIP adjunto los ficheros fuente y ejecutable.

Manejo de las patillas CDC DSR y CTS del FTDI FT232xx ó PL232xx:



		Código:
	

#Include Once "windows.bi"

Dim Letra     As String
Dim hCom      As HANDLE
Dim modemStat As Dword
Dim ComX      As Integer

Screen 9

Locate 10,1: Input "Escribe solo el -numero- del puerto COM donde tengas tu FTDI. COM:"; ComX

Cls

hCom = CreateFile( "Com" + Str(ComX), GENERIC_READ Or GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 0, NULL )
    
While Letra = ""
	 
	Letra=InKey()
		
	GetCommModemStatus( hCom, @modemStat )
		
	Locate 10,10
		
	If modemStat And MS_CTS_ON  Then Print "CTS=1 ";  Else Print "CTS=0 ";
	If modemStat And MS_DSR_ON  Then Print "DSR=1 ";  Else Print "DSR=0 ";
	If modemStat And MS_RING_ON Then Print "RING=1 "; Else Print "RING=0 ";
	If modemStat And MS_RLSD_ON Then Print "RLSD=1"   Else Print "RLSD=0"  
	   
	Print modemstat          
			
Wend

CloseHandle( hCom )

End


----------



## basas

hola yo queria preguntar si se puede usar el max 232 como remplazo del ft232r?


----------



## Oceano

basas dijo:


> hola yo queria preguntar si se puede usar el max 232 como remplazo del ft232r?



Hola Basas.

Digamos que un FT232 es como un microcontrolador especializado en el que pasa a convertirse en un puerto de comunicaciones virtual. Se comunica con el PC a través de USB y lo reconoce el sistema operativo como tal.

El MAX232 sólo es un adaptador de señales de -12 y +12 a 5 y 0 voltios respectivamente; no hace nada más.


----------



## BKAR

capitanp dijo:


> Compras esos cables para celulares genericos Samgsun por 10 u$s que te viene con el pl-2003 bajas el software de la pagina de prolific actualizado y te emula un puerto COM perfectamente (ya que para el telefono no funciona)
> 
> Saludos



cierto estaba caminando por mi casa cuando pise algo..era un cable de celular..que rayos dije
lo desmonte y me encontré con dicho bicho
aunque hace poco fue que recien le di uso
si no me creen aqui adjunto algunas imágenes

bueno como sabran solo va a 5v pero es posible hacer una intefaz paar que siquiera tenga los niveles de voltaje como el puerto serial de la PC?
alguien ya ha intentado eso.?..
lo que de verdad quiero es saber si es posible programar por ejmplo: desde un JDM pero con ese aparatito
..no es que un busque un reemplazo para en programador USB pasado en 18f2550
pero me gustaria poder programar desde usb gobernando un JDM...


----------



## shoker4

shadow dijo:


> Tengo un circuito diseñado para ser conectado al ordenador por el puerto serial RS232, que hace falta para conectarlo al puerto USB¿?
> 
> Saludos...


 
En lugar de tratar de convertirlo a USB ¿porqué no utilizas el protocolo RS485? que se utiliza industrialmente y es un sistema en bus y adaptar de RS232 a RS485 conseguis lo componentes en cualquier casa de electrónica, utilizas cable UTP y podés conectar mucho más de lo que necesitas.

Acá tenés un tema completo de lo que te comento.

https://www.forosdeelectronica.com/f26/interfase-rs-232-rs-485-reversible-199/

Un saludo


----------



## Scooter

basas dijo:


> hola yo queria preguntar si se puede usar el max 232 como remplazo del ft232r?



No tienen nada que ver uno con e otro, bueno, el 232 si.

Uno convierte los niveles de tensión de TTL a RS-232 NADA MAS QUE ESO

El otro adapta dos canales de comunicación radicalemnte distintos como son el USB y el RS232 que solo se parecen en que son serie y no mucho.


----------



## SERGIOD

Esos circuitos que mencionan se puede encontrar en alguna chratarra, en que equipos electrónicos los consigo?
max232
rs232
ft232r


----------



## mdchaparror

max232  tal vez si lo puedas conseguir con algo de reciclaje, pero creo que no valdría la pena suele ser muy barato.
Rs232 es un protocolo de comunicación no un chip.
el ft232r es mas difícil de conseguir pero generalmente los cables de celulares nokia como el dku5 tienen un convertidor  usb - serie


----------



## Don Plaquetin

Hola una pregunta tengo la placa de SE desde cuando salió va en verdad es de mi hermano y me pidió que le realice un trabajo esta por usarlo con los celulares nuevos y la mayoría traen el puerto USB por lo que tengo que cambiar la ficha el problema es que no consigo saber como va el USB (hembra en esta placa) según dice en el manual vallejo que se puede, pero no te dice como típico de este cara*  en fin alguien que pueda tirar me una idea 

​
Un cordial saludo


----------

