Autor Tema: Houston, Houston: Tenemos una USART y dos Baudajes distintos.  (Leído 8021 veces)

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

Desconectado MGLSOFT

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 7912
Re: Houston, Houston: Tenemos una USART y dos Baudajes distintos.
« Respuesta #15 en: 21 de Octubre de 2007, 23:34:58 »
esta funcion solo cambia de baudrate o tambien los demas seteos (8N1 por ejemplo a 8E2).
Me explico bien en la pregunta o la formulo de nuevo??
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.

Desconectado RedPic

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 5544
    • Picmania by Redraven
Re: Houston, Houston: Tenemos una USART y dos Baudajes distintos.
« Respuesta #16 en: 22 de Octubre de 2007, 01:39:02 »
Si a todo. Te explicas y solo cambia el Baud Rate.  :mrgreen:

Contra la estupidez los propios dioses luchan en vano. Schiller
Mi Güeb : Picmania

Desconectado Mario_2004

  • PIC10
  • *
  • Mensajes: 30
Re: Houston, Houston: Tenemos una USART y dos Baudajes distintos.
« Respuesta #17 en: 22 de Octubre de 2007, 05:34:58 »
Hola a todos,

Hace tiempo en un programa utilicé el siguiente código para inicializar la velocidad y funciona perfectamente.
Código: [Seleccionar]
   switch(velocidad) {
      case 0 :
         set_uart_speed(9600);
         break;
      case 1 :
         set_uart_speed(19200);
         break;
      case 2 :
         set_uart_speed(38400);
         break;
      case 3 :
         set_uart_speed(115200);
         break;
      default:
         set_uart_speed(115200);
         break;
   }

No lo he probado, pero según su ayuda, debe funcionar en cualquier parte del código:
Código: [Seleccionar]
Syntax:
 set_uart_speed (baud, [stream])
 
Parameters:
 baud is a constant 100-115200 representing the number of bits per second. stream is an optional stream identifier.
 
Returns:
 undefined
 
Function:
 Changes the baud rate of the built-in hardware RS232 serial port at run-time. 

saludos,
Mario

Desconectado RedPic

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 5544
    • Picmania by Redraven
Re: Houston, Houston: Tenemos una USART y dos Baudajes distintos.
« Respuesta #18 en: 22 de Octubre de 2007, 09:40:43 »
No conocía esa función, y sí, parece que hace lo mismo que hemos realizado "a pelo".

Muchas gracias por tu apunte.

De paso al consultar la ayuda de mi CCS C acabo de descubri un bug en la ayuda ja, ja, ja  :D :D :D

...
Function:
 Changes the baud rate of the built-in hardware RS232 serial port at run-time. 
 Each bit in the value represents one pin.  A 1 indicates the pin is input and a 0 indicates it is output.
Availability:
 This function is only available on devices with a built in UART.


Lo que está en itálica parece que es de la ayuda del SET_TRIS()  :mrgreen:
Contra la estupidez los propios dioses luchan en vano. Schiller
Mi Güeb : Picmania

Desconectado MGLSOFT

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 7912
Re: Houston, Houston: Tenemos una USART y dos Baudajes distintos.
« Respuesta #19 en: 22 de Octubre de 2007, 10:43:42 »
No conocía esa función, y sí, parece que hace lo mismo que hemos realizado "a pelo".

Muchas gracias por tu apunte.

De paso al consultar la ayuda de mi CCS C acabo de descubri un bug en la ayuda ja, ja, ja  :D :D :D

...
Function:
 Changes the baud rate of the built-in hardware RS232 serial port at run-time. 
 Each bit in the value represents one pin.  A 1 indicates the pin is input and a 0 indicates it is output.
Availability:
 This function is only available on devices with a built in UART.


Lo que está en itálica parece que es de la ayuda del SET_TRIS()  :mrgreen:

Ehhh!!  :-/ :-/
Veo que no habias visitado el link que te puse!! :D :D
Alli verias que yo la utilize!! :mrgreen:
Código: C
  1. //Constantes de los seteos de configuracion de velocidades y modos.
  2.  
  3. enum Sel_Protocolo {ModBusRTU, ModBusASCII, SerialASCII}; // 0,1 y 2 respectivamente
  4.  
  5. enum Sel_Velocidad { B9600_E_8_1, B9600_N_8_1, B9600_O_8_1, //default 9600,E,8,1
  6.                     B19200_E_8_1, B19200_N_8_1, B19200_O_8_1,
  7.                     B38400_E_8_1, B38400_N_8_1, B38400_O_8_1,
  8.                     B57600_E_8_1, B57600_N_8_1, B57600_O_8_1};
  9. /**************************************************************************************
  10. Enumeracion de las diferentes velocidades elegidas para el puerto serial
  11. ***************************************************************************************/
  12. #use rs232(baud=19200, PARITY=E, BITS=8, xmit=PIN_C6,rcv=PIN_C7,enable=PIN_C5,stream=E81)
  13.  
  14. #use rs232(baud=19200, PARITY=O, BITS=8, xmit=PIN_C6,rcv=PIN_C7,enable=PIN_C5,stream=O81)
  15. #use rs232(baud=19200, PARITY=N, BITS=8, xmit=PIN_C6,rcv=PIN_C7,enable=PIN_C5,stream=N81)
  16.  
  17.  //rutina seleccion velocidad
  18.  
  19. void Elige_Velocidad_Comm (Int8 Baudrate)
  20.    {
  21.    switch (Baudrate)
  22.       {
  23.       case B9600_E_8_1: set_uart_speed(9600,E81); break;
  24.       case B9600_N_8_1: set_uart_speed(9600,N81); break;
  25.       case B9600_O_8_1: set_uart_speed(9600,O81); break;
  26.       case B19200_E_8_1: set_uart_speed(19200,E81); break;
  27.       case B19200_N_8_1: set_uart_speed(19200,N81); break;
  28.       case B19200_O_8_1: set_uart_speed(19200,O81); break;
  29.       case B38400_E_8_1: set_uart_speed(38400,E81); break;
  30.       case B38400_N_8_1: set_uart_speed(38400,N81); break;
  31.       case B38400_O_8_1: set_uart_speed(38400,O81); break;
  32.       case B57600_E_8_1: set_uart_speed(57600,E81); break;
  33.       case B57600_N_8_1: set_uart_speed(57600,N81); break;
  34.       case B57600_O_8_1: set_uart_speed(57600,O81); break;
  35.     // default:
  36.       //   #use rs232(baud=57600, PARITY=E, BITS=8, xmit=PIN_C6,rcv=PIN_C7,enable=PIN_C5)
  37.       }
  38.    }
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.

Desconectado RedPic

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 5544
    • Picmania by Redraven
Re: Houston, Houston: Tenemos una USART y dos Baudajes distintos.
« Respuesta #20 en: 23 de Octubre de 2007, 15:30:15 »
Opps  :oops: Cierto MGLSOFT, me salté sin verlo tu enlace. Y efectivamente lo tenías todo ya solucionado. Lo siento.


Otra cosa curiosa que me ocurre, leve pero curiosa:

Las líneas TX-RX salen del PIC, pasan a través del CD4053, bifurcándose unas para el MAX485 y otras para el EM202. Justo antes de conectarse al EM202 tengo conectadas a ambas líneas unos pines donde conecto un MAX232 y desde éste un cable serie DB9 al PC por el COM1.

De esta forma tengo mi placa conectada al PC de tres formas distintas: Por dos puertos COM del PC, uno directo al MAX232 y otro, a través de un conversor ATEN IC485-SN al MAX485, y por otro lado una conexión Ethernet TCP/IP desde el PC al Router ADSL y desde éste al EM202.

Tódos los módulos se alimentan de la misma fuente, el MAX232, el MAX485 y el EM202 y todos ellos junto a los DB9 del PC tienen las masas comunes. Por cualquiera de los canales con los que hable con el PIC siempre termino en los dos mismos TX RX de la USART del 18F4550, y todos hablan, cada uno a su velocidad correspondiente, alto y claro.

Pero hete aquí que si conecto el GTP-USB+ a la placa, mediante GND,PGC,PGD y VPP, hay uno de los módulos, el EM202, que se queda sordo y mudo.  :shock:

Conectando el Socket TCP/IP y el canal RS232 éste último en paralelo absoluto con la salida TTL del EM202, cuando escribo algo el RS232 habla perfectamente, pero desde el Socket no aparece nada, ni muge ni puje.

Desconecto el GTP-USB+ y el Socket revive como ave fénix y habla hasta por los codos. :mrgreen:

Misterios de la electrónica "másica", a lo mejor.



 
« Última modificación: 23 de Octubre de 2007, 15:32:54 por RedPic »
Contra la estupidez los propios dioses luchan en vano. Schiller
Mi Güeb : Picmania

Desconectado MGLSOFT

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 7912
Re: Houston, Houston: Tenemos una USART y dos Baudajes distintos.
« Respuesta #21 en: 23 de Octubre de 2007, 16:28:09 »
Opps  :oops: Cierto MGLSOFT, me salté sin verlo tu enlace. Y efectivamente lo tenías todo ya solucionado. Lo siento.


Otra cosa curiosa que me ocurre, leve pero curiosa:

Las líneas TX-RX salen del PIC, pasan a través del CD4053, bifurcándose unas para el MAX485 y otras para el EM202. Justo antes de conectarse al EM202 tengo conectadas a ambas líneas unos pines donde conecto un MAX232 y desde éste un cable serie DB9 al PC por el COM1.

De esta forma tengo mi placa conectada al PC de tres formas distintas: Por dos puertos COM del PC, uno directo al MAX232 y otro, a través de un conversor ATEN IC485-SN al MAX485, y por otro lado una conexión Ethernet TCP/IP desde el PC al Router ADSL y desde éste al EM202.

Tódos los módulos se alimentan de la misma fuente, el MAX232, el MAX485 y el EM202 y todos ellos junto a los DB9 del PC tienen las masas comunes. Por cualquiera de los canales con los que hable con el PIC siempre termino en los dos mismos TX RX de la USART del 18F4550, y todos hablan, cada uno a su velocidad correspondiente, alto y claro.

Pero hete aquí que si conecto el GTP-USB+ a la placa, mediante GND,PGC,PGD y VPP, hay uno de los módulos, el EM202, que se queda sordo y mudo.  :shock:

Conectando el Socket TCP/IP y el canal RS232 éste último en paralelo absoluto con la salida TTL del EM202, cuando escribo algo el RS232 habla perfectamente, pero desde el Socket no aparece nada, ni muge ni puje.

Desconecto el GTP-USB+ y el Socket revive como ave fénix y habla hasta por los codos. :mrgreen:

Misterios de la electrónica "másica", a lo mejor.



 
Has medido la tension que le llega al EM202 antes y durante la conexion del GTP-USB+ ??? :mrgreen:
Los demas pines del EM202 estan conectados a donde?? Al menos interprete que usas solo TX y RX, no es asi?? :shock:
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.

Desconectado Azicuetano

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 1020
    • Aplicaciones Electrónicas en Alicante.
Re: Houston, Houston: Tenemos una USART y dos Baudajes distintos.
« Respuesta #22 en: 23 de Octubre de 2007, 19:02:20 »
Te pasa algo medio parecido a lo que me pasaba a mi.

Ahora estoy trabajando con una comunicación RS485 entre varios dispositivos.

Tengo 2 PC´s. Con uno programo la pba y en el otro tengo enganchado el cable para monitorizar las tramas que envío ERROR!!!

Se produce un bucle de masas que no veas y la comunicación se queda KO cuando le da la gana.

El PC con el que programo lo tengo enganchado a la pba por medio del programador (GTP-USB+) y el cable de comunicación lo tengo enganchado al otro PC.

Solución?? Quitamos el cable de programación ICSP y ya está, ya no hay bucle de masas. Parece una idiotez, pero, me ha dado muchos quebraderos de cabeza esta tontería.

Me huelo que algo se nos escapa  :?


Un saludo desde Alicante.

Desconectado RedPic

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 5544
    • Picmania by Redraven
Re: Houston, Houston: Tenemos una USART y dos Baudajes distintos.
« Respuesta #23 en: 23 de Octubre de 2007, 19:07:05 »
Ufff .... mal de muchos, consuelo de tontos. Ja, ja, ja  :D :D :D
Contra la estupidez los propios dioses luchan en vano. Schiller
Mi Güeb : Picmania