RS232 a USB problemas con pl2303 de prolific

Hola, una observación, no debes conectar directamente ya que tienes el cable convertidor, en este caso necesitas conectar con del max232

Así es, por eso yo medí las tensiones en los pines 2 y 3 del conector DB9 macho de mi cable convertidor, y entrega tensiones negativas (-8.5V para ser exacto). Así que seria mala idea conectarlo directamente a las terminales TX/RX del microcontrolador.

Te invito a crear códigos separados de envió y recepción de datos fijos. Prueba cada uno por separado. Hay mucha información en Internet, no te limites. Luego intenta con datos aleatorios provenientes de un sensor o potenciometro. Veo que tienes un entrenador, aprovéchalo.
 
Última edición:
Gracias por sus respuestas
Les comento los siguiente:
Para comprobar el estado del conversor USB-RS232 tuve que puentear las patitas en el DB9 2 y 3 y con el Hyperterminal pude enviar y recibir datos correctamente;

También realice las pruebas conectando el MAX232 (como les comentaba al inicio de mis consultas) con mi Labtop, pero haciendo las pruebas solo recivia puros ceros, y cuando enviaba el valor de la barra espacia-dora el PIC responde visualizando en el LCD un caracter ASCCI 0:LOL:B y envía a la Labtop nuevamente ceros.

Luego a sugerencia de los colegas del foro me indicaron que podría probar si el MAx232, tambien lo realice y los resultados fueron los que envie en mis consultas anteriores, osea tampoco funciona;

Por ello estuve leyendo que probablemente sea un conflicto del puerto, o un mala configuración creo yo pero seguiré investigando el porque sucede ello o es que algo debería configurar en mi CCS Ver 4.114 o el el hyperterminal o mi SO win 7 genera algún conflicto de puertos o no se, pero si me pueden seguir apoyando con sus aportes les agradecería mucho.
Saludos
 
Ok, 0:LOL:B equivale a 219 en decimal. Dicho valor sucede al precionar la barra espaciadora, debes comprobar si corresponden los valores. Los ceros (0x00) corresponden el vacío del registro de entrada, el cual es verificado constantemente (por eso aparecen ceros y ceros sin parar). Necesitas modificar el programa que identifique el bit de start o que cuando reciba 0x00 no muestre nada.
 
Fácil, esperas la interrupción proveniente de RCIF_bit, luego lees el registro RCREG y si el valor es 0x00 no lo muestres en pantalla.

107tdmq.png
 
Última edición:
Estimado Ruben90
Disculpa mi falta de conocimiento pero me gustaría que me orientes a realizar la rutina sugerida utilizando el copilador CCS en lenguaje C ya que con ASM es mas fácil hacer ello pero con el lenguaje C y toda las rutinas ya encapsuladas, todavía para mi se me hace un poco complicado.
Creo que el foro asi como yo te estaremos muy agradecidos por tu aporte sobre el tema.
Saludos
 
Hola que tal, yo creo que el problema esta en el hardware, al ser una tarjeta de desarrollo algunas veces se tiene que hacer algunos cambios para utilizar los periféricos, en este caso habria que revisar el manual si dice algo al respecto, el la red no lo encuentro.
 
Estimado les adjunto el plano, pero revise y comprove las conexiones de mi tarjeta pero según yo todo esta bien si alguno de ustedes encuentre algo fuera de lo normas me avisan
Gracias
 

Adjuntos

  • DIAGRAMA.pdf
    142.4 KB · Visitas: 16
Estimado les adjunto el plano, pero revise y comprove las conexiones de mi tarjeta pero según yo todo esta bien si alguno de ustedes encuentre algo fuera de lo normas me avisan
Gracias

Hola, recomiendo que para descartar que sea un problema de hardware prueba quitando los jumpers de J41, J49, asegurarse que este en off el switch 3 de SW3 y que no haya nada conectado en J39, y por supuesto que esten correctamente colocados los jumpers en J18 y J19. Ademas observo que tienes cristales de 4Mhz y para el ejemplo que muestras de código estas usando 20Mhz y no esta definido en los FUSES el tipo de oscilador verifica que oscilador estas utilizando y que este el jumper en la posicion correcta.
 
Última edición:
Yo te recomiendo que realices el montaje básico en un protoboard.
Eso es para descartar problemas de hardware, cómo menciona 1024.

Cuando dije que con el PL2303 se puede conectar directamente al microcontrolador, me refería a ésto:
Módulo PL2303.jpg

Con éstos módulos ya no hace falta usar el MAX232 porque su salida es compatible con niveles TTL.
Yo los uso en todos mis proyectos actuales para la comunicación RS-232 por USB.
 
Estimado 1024
Gracias por tus sugerencias, pero todo lo que me sugieres yo los desactive previamente, ahora no estoy usando un cristal de 4MHZ sino de 20MHZ;
Saludos

Hola, comprendo me base en el esquema que enviaste aun así en el código que muestras en un mensaje anterior no defines el FUSE correspondiente, te recomiendo lo que te mencionan de armar en protoboar.
 
Confusión sobre interfaz de comunicación para leer datos...

Bien tengo una duda y deseo su colaboración para resolverlo. Tengo un conversor, mas bien un modulo USB a TTL PL2303 de Prolific, bien la duda que tengo es si se necesita conectar además de ese conversor, otro conversor con MAXIM232. ¿Es necesario ese chip Maxim232 o solo se necesita ese conversor?

Este es el conversor Prolific PL2303

1569361962523.png

Me surge la duda que al poner en corto RX y Tx y hacer la prueba en HyperTerminal de Windows obtengo el echo, escribo texto y recibo texto, pero al conectarlo a una interfaz TX, RX y Gnd de un disco duro obtengo caracteres raros o a veces ni siquiera respuesta a los comandos que se esperan para iniciar el diagnóstico de un disco duro Seagate...

Conecto el modulo PL2303 al PC, ejecuto Hyperterminal con la configuración de baudios a 38400, conecto el disco duro con las terminales que trae. TX, RX y GND. Empleo las conexiones en ambos tipos:

Conexión 1
Disco Duro - PL2303
TX---TX
RX---RX
GND---GND

Conexión 2
Disco Duro - PL2303
TX---RX
RX---TX
GND---GND


1569361779247.png

La cuestión es que no logro comunicación con el disco duro, ¿Necesito adaptar el Maxim232?

Gracias por su interés en mi duda.
 
Hace falta un MAX232 si necesitas conectarte a interfaces de norma RS-232. YO dudo que el disco tenga esa interfaz, así que conseguí la información del hard del disco para saber como y con que se conecta.
Yo compré un par de esos módulos pero con otro chip y la salida serie era TTL (de 5V) y/o de 3.3V, pero no era RS-232. Con ese módulo desbloqueé un router TP-Link que había "brickeado" por hacer experimentos con el firmware...
 
Tengo salida serie de 5 voltios y de 3.3 voltios, es el mismo que te indico en la fotografía, lo compre como modulo "Arduino PL2303"
Es el que deseo emplear...


La foografía que te muestro en el post es de las conexiones del Seagate barracuda de 500GB que tiene el famoso error de quedarse en modo Sleep y nunca mas despertar... Así que segun entiendo lo que me indicas, con este modulo que tiene también esos voltajes... Además de eese modulo necesito el Maxim232..... ¿Es correcto?
1569364055282.png
 
pues ya lo conecte y no sucede nada, no me reconoce los comandos, tanto en modo directo como en modo inverso de datos... No recibo nada.

Entonces... según entiendo... Ese modulo PL2303 que es un puerto virtual COM por medio de USB, que tiene salidas de TX, RX, GND, 5V, 3.3V, se debe poner directo a los pines del disco duro TX, RX y GND. Pues eso mismo hago y no me funciona. No me reconoce la comunicación. Por eso pensé que necesitaba el Maxim232 a la salida de los pines de ese modulo PL232 para adaptarlo y por medio del Maxim232 leer la placa del disco duro...

Actualmente:
PC --->PL2303---->Disco duro [No hay comunicacion]

Pienso que si hiciera esto:
PC --->PL2303---->Maxim232----> Disco duro [ ? ]

Pudiera leer la información.

Me baso en la premisa de que es un puerto fisico y necesito de un Maxim232, tal como esta imagen, Asumiendo que el puerto Com virtual es el mismo PL2303... entonces esa es mi duda...


1569365726301.png
 
Leé el datasheet del MAX232!
Ese chip te va a convertir el 1 TTL en -12V y el 0 TTL en +12V...algo vas a quemar, pero si queres hacer la prueba...

Pero antes, conectá directamente la interfaz y asegurate que esté trabajando con +5V y que tenes la velocidad correcta de transmision!!!
 
Hola, no necesitas mas que el Convertidor PL2303 y el disco duro.

¿Que debes tener en cuenta o probar?

1.- Para asegurarte que todo esta en orden del lado de la PC (Baudios, etc) ; puentea TX con RX del PL2303 (sin el disco duro obviamente) y desde tu software de comunicaciones deberías tener un eco de lo que tecleas. Yo utilizo para la comunicación el software Putty con el cual he reparado varios Discos duros Seagate como lo que pretendes hacer. Si logras tener el ECO ya puedes pasar al paso numero dos.

2.- Debes identificar correctamente TX y RX del disco duro y, obviamente el TX del PL2303 al RX del Disco duro, lo mismo del RX del PL2303 al TX del disco duro. Otra cosa, el Disco Duro No debe tener conectado nada al conector SATA.

3.-Yo he encontrado que dependiendo del disco duro pueden cambiar los Baudios aunque por omisión son;

BPS - 38400
Data Bits - 8
Parity - None
Stop Bits - 1
Flow Control - None

4.-Ya con todo conectado, entrar al Putty e iniciar la comunicación, acto seguido, energizar la tarjeta del disco duro. y Utilizar la combinacion de teclas Ctrl+z para "invocar" el modo terminal y poder comenzar con los "Seagate F3 Terminal Command Set"

Saludos y Éxito...
 
Última edición:
Atrás
Arriba