Autor Tema: Configuración RS232  (Leído 3689 veces)

0 Usuarios y 2 Visitantes están viendo este tema.

Desconectado jfh900

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3595
Configuración RS232
« en: 17 de Abril de 2011, 00:15:50 »
Necesito hacer con CCS una comunicación RS232 con los siguientes parámetros:

Velocidad= 9600 Bits = 9 Paridad = Impar Bits_Stop = 1

Lo realizo con:

#use rs232(baud=9600 ,xmit=PIN_C6,rcv=PIN_C7,stop=1,bits=9,parity=O)

Y me da el error de longitud de bits no permitida.

Alguna idea de como configurarlo para que funcione.

Un saludo
* Cuando hables, procura que tus palabras sean mejores que el silencio.
* 'Todos somos ignorantes, lo que ocurre es que no todos ignoramos las mismas cosas.' Albert Einstein.
* No hay nada peor que un experto para evitar el progreso en un campo
* "La vida es como una novela. No importa que sea larga, sino que esté bien narrada" Seneca
* La vida no se vive por las veces que respiras, sino por los momentos que dejan sin aliento.
* Dios dijo: ∇·E=ρ/ε0 ; ∇·B=0 ; ∇xE=-dB/dt ; ∇xB= μ0ε0dE/dt..y la luz se hizo..!!..

Desde España Jesús

Desconectado bmb

  • PIC18
  • ****
  • Mensajes: 423
Re: Configuración RS232
« Respuesta #1 en: 17 de Abril de 2011, 11:01:39 »
Hola jfh900, según entiento los bits totales son la suma de los bits mas el bit de paridad si lo hay.  Por ejemplo:

Bits = 8   Paridad = N    total bits = 8
Bits = 8   Paridad = E    total bits = 9
Bits = 8   Paridad = O    total bits = 9

Como parece que tu caso es este último entonces sería:

#use rs232(baud=9600 ,xmit=PIN_C6,rcv=PIN_C7,stop=1,bits=8,parity=O)

Saludos!

Desconectado jfh900

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3595
Re: Configuración RS232
« Respuesta #2 en: 17 de Abril de 2011, 14:24:02 »
Hola jfh900, según entiento los bits totales son la suma de los bits mas el bit de paridad si lo hay.  Por ejemplo:

Bits = 8   Paridad = N    total bits = 8
Bits = 8   Paridad = E    total bits = 9
Bits = 8   Paridad = O    total bits = 9

Como parece que tu caso es este último entonces sería:

#use rs232(baud=9600 ,xmit=PIN_C6,rcv=PIN_C7,stop=1,bits=8,parity=O)

Saludos!

Todo es correcto a excepción de el número de bits que es 9:

#use rs232(baud=9600 ,xmit=PIN_C6,rcv=PIN_C7,stop=1,bits=9,parity=O)

Justamente cuando lo configuro así, me da el error:

USE parameter value is out of range. Too many bits.

¿Tendré que configurarlo manualmente el registro, en vez del con el #USE? o es que ¿el pic18F2550 no soporta el manejo de 9 bits?

Un saludo
* Cuando hables, procura que tus palabras sean mejores que el silencio.
* 'Todos somos ignorantes, lo que ocurre es que no todos ignoramos las mismas cosas.' Albert Einstein.
* No hay nada peor que un experto para evitar el progreso en un campo
* "La vida es como una novela. No importa que sea larga, sino que esté bien narrada" Seneca
* La vida no se vive por las veces que respiras, sino por los momentos que dejan sin aliento.
* Dios dijo: ∇·E=ρ/ε0 ; ∇·B=0 ; ∇xE=-dB/dt ; ∇xB= μ0ε0dE/dt..y la luz se hizo..!!..

Desde España Jesús

Desconectado bmb

  • PIC18
  • ****
  • Mensajes: 423
Re: Configuración RS232
« Respuesta #3 en: 17 de Abril de 2011, 14:45:47 »
... Todo es correcto a excepción de el número de bits que es 9:

#use rs232(baud=9600 ,xmit=PIN_C6,rcv=PIN_C7,stop=1,bits=9,parity=O)

Justamente a eso me refiero; cuando lo configuras asi, le estás diciendo que son 10 bits! De ahí el mensaje de error: Too many bits.  Si pones bits=8 y le sumas el bit de paridad parity=O, en total serían 9 bits.

Saludos!

Desconectado jfh900

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3595
Re: Configuración RS232
« Respuesta #4 en: 19 de Abril de 2011, 22:34:02 »
... Todo es correcto a excepción de el número de bits que es 9:

#use rs232(baud=9600 ,xmit=PIN_C6,rcv=PIN_C7,stop=1,bits=9,parity=O)

Justamente a eso me refiero; cuando lo configuras asi, le estás diciendo que son 10 bits! De ahí el mensaje de error: Too many bits.  Si pones bits=8 y le sumas el bit de paridad parity=O, en total serían 9 bits.

Saludos!

Precisamente la trama tiene 9 bits de datos (no 8) de ahí el problema. Ya se que no es usual, pero es que precisamente el sistema que intento conectar tiene estas especificaciones y no se si programando directamente los registros de comunicación RS232 del PIC conseguiría establecer la comunicación.

Un saludo
* Cuando hables, procura que tus palabras sean mejores que el silencio.
* 'Todos somos ignorantes, lo que ocurre es que no todos ignoramos las mismas cosas.' Albert Einstein.
* No hay nada peor que un experto para evitar el progreso en un campo
* "La vida es como una novela. No importa que sea larga, sino que esté bien narrada" Seneca
* La vida no se vive por las veces que respiras, sino por los momentos que dejan sin aliento.
* Dios dijo: ∇·E=ρ/ε0 ; ∇·B=0 ; ∇xE=-dB/dt ; ∇xB= μ0ε0dE/dt..y la luz se hizo..!!..

Desde España Jesús

Desconectado bmb

  • PIC18
  • ****
  • Mensajes: 423
Re: Configuración RS232
« Respuesta #5 en: 19 de Abril de 2011, 23:00:31 »
Hola, estuve mirando la hoja de datos de un PIC 18F.  Por supuesto puedes hacer la programación directa declarando y seteando los registros correspondientes, pero también veo que allí explican lo mismo que te había comentado.  Si la comunicación es de 9 bits y quieres usar el bit de paridad, este será uno de esos 9 bits y no otro bit adicional.

Saludos!

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: Configuración RS232
« Respuesta #6 en: 19 de Abril de 2011, 23:20:51 »
Exactamente, o tiene 9 bits sin paridad o tiene 8 con paridad, sino tienes que hacer las rutinas propias para recibir y enviar los datos.


Saludos!
No contesto mensajes privados, las consultas en el foro

Desconectado cristian_elect

  • PIC18
  • ****
  • Mensajes: 453
Re: Configuración RS232
« Respuesta #7 en: 20 de Abril de 2011, 01:43:40 »
Hay que repasar los libros de sistemas digitales.
Muchas cosas se olvidan con el tiempo.


 

anything