Autor Tema: problemas con la uart  (Leído 3007 veces)

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

Desconectado electroximo

  • PIC10
  • *
  • Mensajes: 36
problemas con la uart
« en: 15 de Marzo de 2007, 07:41:04 »
Hola , no estoy muy puesto en esto de los foros , pero es que tengo un problemilla con la uart y no se que hacer , haber si podeis ayudarme.
El problema es que configuro la uart le pongo a transmitir y en el hiperterminal no aparece nada, pero he medido con el osciloscopio y en la patilla 14 del max232 (2 del conector) tengo señal y creo que el programa lo tengo bien ,lo adjunto por si alguien le puede dar un vistazo.




#include <p30f4013.h>

#include <uart.h>


//FUSES
_FOSC(CSW_FSCM_OFF & XT_PLL16);
_FGS(CODE_PROT_OFF);
_FWDT( WDT_OFF);
_FBORPOR(PBOR_OFF & MCLR_DIS & PWRT_OFF) ;

//funcion que inicializa los puertos
   void Puertos(void)
   {
      TRISCbits.TRISC14=0;
      LATCbits.LATC14=0;
      PORTCbits.RC14=0;
   }


//INCIALIZACION Y CONFIGURACION UART
   
   void CONFI_uart (void)
      {

        unsigned int baudvalue;     
         unsigned int U1MODEvalue;     
         unsigned int U1STAvalue;     

           
         CloseUART1();               
         ConfigIntUART1(UART_RX_INT_DIS & UART_RX_INT_PR6 & UART_TX_INT_DIS & UART_TX_INT_PR2);

   
         baudvalue = 191;   //para tener 9600 baudios con un cristal de 7.378Mhz
            U1MODEvalue =    UART_EN & UART_IDLE_CON & UART_RX_TX &
                             UART_DIS_WAKE & UART_DIS_LOOPBACK &
                         UART_DIS_ABAUD & UART_NO_PAR_8BIT &
                         UART_1STOPBIT;

         U1STAvalue =    UART_INT_TX_BUF_EMPTY &
                      UART_TX_PIN_NORMAL &
                      UART_TX_ENABLE &
                   UART_INT_RX_BUF_FUL &
                     UART_ADR_DETECT_DIS &
                      UART_RX_OVERRUN_CLEAR;

        OpenUART1(U1MODEvalue, U1STAvalue, baudvalue);

      }


int main (void)
{
      Puertos();
      CONFI_uart();
   unsigned int i=0 ;

   //activacion uart y envio de mensaje
   while(1)
   {

      i=0;
      PORTCbits.RC14=1;   //ENCIENDO UN LED PARA VER EL ESTADO DEL PROGRAMA
      char Txdata[]= {'X','i','m','o','\n'};
      for(i=0;i<5;i++)
      {
           U1TXREG=(Txdata);
         while(U1STAbits.TRMT==0);
         
      }


   }

}

Desconectado manwenwe

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 2211
Re: problemas con la uart
« Respuesta #1 en: 15 de Marzo de 2007, 10:10:54 »
Hola electroximo, bienvenido al foro :mrgreen:. ¿Estás seguro al 100x100 de que tu problema no es de hardware?. Es mejor si dejas también tu esquema para que la gente pueda echarle un vistazo.

Saludos y a ver cuando te pagas un café 8).
Ojo por ojo y todo el mundo acabará ciego - Mahatma Gandhi -

Desconectado leo75

  • PIC10
  • *
  • Mensajes: 8
Re: problemas con la uart
« Respuesta #2 en: 15 de Marzo de 2007, 10:21:29 »
Al parecer es el mismo problema que tenia en un principio con mi UART, el asunto es que al programar lo siguente al dsPIC en U1MODEvalue

   UART_RX_TX

estas transmitiendo por el mismo lugar por donde estas programando (PGC, PGD), debes cambiar esto por lo siguiente y se soluciona tu problema si es ese al transmitir por el canal alternativo UA1RX, UA1TX

UART_ALTRX_ALTTX

saludos

Desconectado electroximo

  • PIC10
  • *
  • Mensajes: 36
Re: problemas con la uart
« Respuesta #3 en: 15 de Marzo de 2007, 14:28:18 »
Hola , gracias por responder,lo he hecho como me has dicho y sigue sin funcionar , el problema no es del hardware por que la he provado con un pic 18 y funciona . Lo que he hecho ha sido ponerle un retraso y me llegan caracteres pero no los que son.No se por que puede ser.

Desconectado Renatox_

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 541
    • máquinas cnc
Re: problemas con la uart
« Respuesta #4 en: 15 de Marzo de 2007, 14:38:46 »
 Hola electroximo, puedes probar con esto;

putsUART1((unsigned int *)Txdata);

 Aquí no es necesario que chequees cuando el buffer de transmisión está vacio, lo hace la misma función.

control de movimiento

Desconectado electroximo

  • PIC10
  • *
  • Mensajes: 36
Re: problemas con la uart
« Respuesta #5 en: 15 de Marzo de 2007, 16:00:56 »
Gracias por echarle un vistazo al programa renatox_ ;he estado probando lo que me has comentado pero no funciona no me envia nada , de la manera que me envia algo es asi:
Pero lo que envia no es ximo ni mucho menos

      unsigned int Txdata[]= {'X','i','m','o','\n'};

      for(i=0;i<5;i++)
      {

      U1TXREG=(Txdata);
      
      for(j=0;j<500;j++)
         for(k=0;k<1000;k++)
            Nop();   

Desconectado electroximo

  • PIC10
  • *
  • Mensajes: 36
Re: problemas con la uart
« Respuesta #6 en: 16 de Marzo de 2007, 11:51:44 »
Hola he podido solucionar el problema que tenia , pongo las soluciones del problema , por si a alguien les sirviera :

1º la uart envia y no se escribe nada en el hyperterminal --> hay que poner un pequeño tiempo detras de cada envio para que el buffer no se sature .
2º Si la uart envia y en el hiperterminal no aparece lo que debe , lo mas posible sea un error del oscilador o de la tasa de baudios , en mi caso un error en la configuracion de la palabra de configuracion .


Saludos.