Autor Tema: iniciandome pic16f876 bit stop  (Leído 3019 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado balcab

  • PIC10
  • *
  • Mensajes: 4
iniciandome pic16f876 bit stop
« en: 11 de Octubre de 2006, 07:44:28 »
Hola a todos soy nuevo por aquí, y en el mundo de los pics también.


Es que voy a utilizar en la configuracion del pic 16f876 --> 9600 baud, even parity, 8 bit , 2 stop

he visto varios ejemplos, sería algo así?

#use rs232(BAUD=9600, BITS=8, PARITY=E, XMIT=PIN_C6, RCV=PIN_C7)

El problema es que no se como indicar el bit de stop, que en mi caso serían 2, alguien sabe como se indica?

SAlu2

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
Re: iniciandome pic16f876 bit stop
« Respuesta #1 en: 11 de Octubre de 2006, 09:10:37 »
Hola a todos soy nuevo por aquí, y en el mundo de los pics también.


Es que voy a utilizar en la configuracion del pic 16f876 --> 9600 baud, even parity, 8 bit , 2 stop

he visto varios ejemplos, sería algo así?

#use rs232(BAUD=9600, BITS=8, PARITY=E, XMIT=PIN_C6, RCV=PIN_C7)

El problema es que no se como indicar el bit de stop, que en mi caso serían 2, alguien sabe como se indica?

SAlu2

No hay implementación por hardware de 2 bits de stop en la usart de los PICs.

Puedes hacer lo siguiente, usar el formato de 9 bits y que el noveno bit esté siempre en alto.

Saludos
- La soberbia de un Einstein es entendible.. la de un salame es intolerable (A.Dolina)
- En teoría no hay diferencia entre la teoría y la práctica. En la práctica... si la hay.
- Lee, Lee, Lee y luego pregunta.(maunix)
- Las que conducen y arrastran al mundo no son las máquinas, sino las ideas (V. Hugo)
- Todos los hombres se parecen por sus palabras; solamente las obras evidencian que no son iguales.(Moliere)
- Todo debería ser hecho tan simple como sea posible pero no mas simple que eso.(A.Einstein)

Desconectado Chaly29

  • Moderador Global
  • DsPIC33
  • *****
  • Mensajes: 4315
Re: iniciandome pic16f876 bit stop
« Respuesta #2 en: 11 de Octubre de 2006, 12:06:24 »
Hola maunix, una preguntilla, ¿el noveno bit debe estar en alto o en bajo? porque creo que debería ser bajo.

Un saludo.

Atte. CARLOS.
La teoría es cuando se sabe todo y nada funciona. La práctica es cuando todo funciona y nadie sabe por qué.

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
Re: iniciandome pic16f876 bit stop
« Respuesta #3 en: 11 de Octubre de 2006, 12:29:57 »
Hola maunix, una preguntilla, ¿el noveno bit debe estar en alto o en bajo? porque creo que debería ser bajo.

Un saludo.

Atte. CARLOS.

Hablando de la usart del pic, trabajando a niveles TTL (no a la salida del MAX232).

El bit de stop va en alto, al igual que el estado de reposo (recordar que la usart de los pics es NRZ o No Return to Zero). 

El bit de start es el que va en bajo.

Esa es la diferencia entre el start y el stop.

El start comienza siendo un pulso "bajo", y el stop finaliza la comunicación siendo un alto y se mantiene así hasta el próximo start.



Otros comentarios:

1) Para recibir, no hay problema en recibir una trama con 2 bits de stop si uno tiene configurado 1 bit de stop.  Sencillamente el 2do bit de stop será descartado porque es como el estado del bus en "reposo" (alto).

2) En cuanto a la transmisión, tampoco es imperativo usar transmisión de 9 bits, se puede usar a 8 bits, pero esperando un tiempo entre transmisiones igual a 1 o 1,5 veces el tiempo de un bit.


Cualquier cosa, puedo aclarar más el tema.

Saludos

- La soberbia de un Einstein es entendible.. la de un salame es intolerable (A.Dolina)
- En teoría no hay diferencia entre la teoría y la práctica. En la práctica... si la hay.
- Lee, Lee, Lee y luego pregunta.(maunix)
- Las que conducen y arrastran al mundo no son las máquinas, sino las ideas (V. Hugo)
- Todos los hombres se parecen por sus palabras; solamente las obras evidencian que no son iguales.(Moliere)
- Todo debería ser hecho tan simple como sea posible pero no mas simple que eso.(A.Einstein)

Desconectado balcab

  • PIC10
  • *
  • Mensajes: 4
Re: iniciandome pic16f876 bit stop
« Respuesta #4 en: 13 de Octubre de 2006, 06:52:43 »
Hola, gracias maunix por la ayuda. Bueno ahora creo que me he quedado un poco más liado.

Mira lo tengo que hacer con el pic es enviar una trama como la siguiente <STX><length>[message]<checksum><ETX>.
Donde <STX> es el caracter de comienzo, <ETX> es el caracter de stop. El mensaje lo recibirá un pequeño programa hecho con Visual Basic. En el VB si he podido configurar los dos bit de stop, bueno la duda es que a la hora de enviar la trama por el pic tendría que hacer algo especial para configurar el 2º bit de stop en el pic o no tendría que hacer nada?.

Además me surge otra duda, despues de recibir la trama con el VB calculo el checksum y si es erroneo le envío al pic una trama diciendole que el mensaje es erroneo y vuelva a enviar la trama anterior, tendría problemas con el pic para recibir la trama del VB con el 2º bit de stop?

Gracias, y perdona por tantas preguntas, pero es que ando un poco perdido con esto.

SAlu2
« Última modificación: 13 de Octubre de 2006, 07:07:50 por balcab »

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
Re: iniciandome pic16f876 bit stop
« Respuesta #5 en: 13 de Octubre de 2006, 10:02:09 »
Hola, gracias maunix por la ayuda. Bueno ahora creo que me he quedado un poco más liado.

Mira lo tengo que hacer con el pic es enviar una trama como la siguiente <STX><length>[message]<checksum><ETX>.
Donde <STX> es el caracter de comienzo, <ETX> es el caracter de stop. El mensaje lo recibirá un pequeño programa hecho con Visual Basic. En el VB si he podido configurar los dos bit de stop, bueno la duda es que a la hora de enviar la trama por el pic tendría que hacer algo especial para configurar el 2º bit de stop en el pic o no tendría que hacer nada?.

En el PIC debes hacer lo que te he dicho.  O configuras la USART en formato de 9 bits y el 9no bit lo dejas SIEMPRE en 1, o bien esperas algunos microsegundos entre byte y byte transmitido.


Además me surge otra duda, despues de recibir la trama con el VB calculo el checksum y si es erroneo le envío al pic una trama diciendole que el mensaje es erroneo y vuelva a enviar la trama anterior, tendría problemas con el pic para recibir la trama del VB con el 2º bit de stop?

Para recibir, si no quieres cambiar la configuración de usart para esto, la puedes dejar en 9 bits pero el 9no bit, para la recepción, no hace falta que le hagas caso.

Otra forma, es cambiarlo a 8 bits, y dejarlo así com está.  El 2do bit de stop será interpretado como un estado inactivo del TXUSART del que envió el dato y no te traerá ningún problema.

Saludos
- La soberbia de un Einstein es entendible.. la de un salame es intolerable (A.Dolina)
- En teoría no hay diferencia entre la teoría y la práctica. En la práctica... si la hay.
- Lee, Lee, Lee y luego pregunta.(maunix)
- Las que conducen y arrastran al mundo no son las máquinas, sino las ideas (V. Hugo)
- Todos los hombres se parecen por sus palabras; solamente las obras evidencian que no son iguales.(Moliere)
- Todo debería ser hecho tan simple como sea posible pero no mas simple que eso.(A.Einstein)


 

anything