Autor Tema: [RESUELTO] CCS, Proteus, UART...  (Leído 3224 veces)

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

Desconectado richardjr

  • PIC12
  • **
  • Mensajes: 69
[RESUELTO] CCS, Proteus, UART...
« en: 16 de Diciembre de 2010, 10:31:20 »
Buenas! Estoy tratando de hacer andar una UART en un PIC24FJ64GA004. Resulta ser que veo en la simulacion de proteus que estoy transmitiendo, pero no existen lso bits de start y de stop... aca pongo el codigo que estoy tratando de correr... nunca me habia pasado esto! La unica variable es que tuve que migrar fortuitamente a CCS y no estoy muy experienciado en este..

El Main:
Código: [Seleccionar]

void main()
{
setup_spi( FALSE );
setup_spi2( FALSE );
setup_wdt(WDT_ON);
setup_timer1(TMR_DISABLED|TMR_DIV_BY_1);

   // TODO: USER CODE!!
   UC_INIT();
  
   while(TRUE)
    {

   printf("UU");
   delay_ms(10);
    }

}

void UC_INIT(void)
{
  
   set_tris_c (ALL_OUT);
   set_tris_a (ALL_OUT);

}



Y el .h generado por el wizard + lo que yo agregue
Código: [Seleccionar]
#include <24FJ64GA004.h>
#include "PINOUT Prueba PIC24FJ con LCD.h"
#include "HDM64GS12.c"
#include "GRAPHICS.c"

#FUSES NOWDT                    //No Watch Dog Timer
#FUSES NOJTAG                   //JTAG disabled
#FUSES NOPROTECT                //Code not protected from reading
#FUSES NOWRT                    //Program memory not write protected
#FUSES NODEBUG                  //No Debug mode for ICD
#FUSES ICSP1                    //ICD uses PGC1/PGD1 pins
#FUSES IOL1WAY                  //Allows only one reconfiguration of peripheral pins
#FUSES WINDIS                   //Watch Dog Timer in non-Window mode
#FUSES WPOSTS16                 //Watch Dog Timer PostScalar 1:32768
#FUSES IESO                     //Internal External Switch Over mode enabled
#FUSES FRC_PS                   //Fast RC Oscillator with Post Scaler
#FUSES NOCKSFSM                 //Clock Switching is disabled, fail Safe clock monitor is disabled
#FUSES NOOSCIO                  //OSC2 is clock output
#FUSES NOPR                     //Pimary oscillaotr disabled
#FUSES I2C1SELD              
#FUSES SOSC_SEC              
#FUSES WUT_DEFAULT
#define ALL_OUT 0  

#use delay(clock=20000000)
#pin_select U1TX =PIN_B2
#pin_select U1RX=PIN_B1
#use rs232(UART1,baud=9600,parity=N,bits=8,xmit=PIN_B2,rcv=PIN_B1,bits=8)

void UC_INIT(void);


Dejo aca una imagen de lo que me tira al transmitir "UU" -> 0x55x55->


yo esperaba ver

<ESTADO RECESIVO><BIT START> 0101010101010101 <BIT STOP><ESTADO RECESIVO>

pero como pueden ver, el bit de start no hace acto de presencia. Trate de entrar con la salida del micro a el Virtual Terminal del proteus y como era de esperar, no acusa nada, se queda mudo nomas!!.

Cualquier orientacion, sera mas que bienvenida!!

Gracias!
« Última modificación: 17 de Diciembre de 2010, 21:26:52 por richardjr »

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18286
    • MicroPIC
Re: CCS, Proteus, UART...
« Respuesta #1 en: 16 de Diciembre de 2010, 14:02:11 »
Disculpa Richardjr, pero yo veo 18 bits en esa trama que has mostrado. Ahí sí están los Start y Stop

Desconectado richardjr

  • PIC12
  • **
  • Mensajes: 69
Re: CCS, Proteus, UART...
« Respuesta #2 en: 16 de Diciembre de 2010, 15:32:37 »
Disculpa Richardjr, pero yo veo 18 bits en esa trama que has mostrado. Ahí sí están los Start y Stop

Hola Nocturno, gracias por tomarte el tiempo de revisar otra de mis dudas.. sera que estoy interpretando la trama al reves? :oops: :oops: yo esperaba ver


<start>0101010101010101<stop>

pero lo que sucede en realidad es que se transmite el LSB primero y queda como

<start>1010101010101010<stop> ...

Ahora bien... descartada esa duda, porque no me lo estara tomando el Virtual terminal del proteus? Me fije muy bien en las configuraciones, es algo que uso normalmente. Iclusive, hice un puente virtual entre COM1 y COM2 para levantar lo que transmite el up por hyper terminal (cosa que ya hice antes) y esta vez ni un solo bitio asomo... Alguna idea?

Saludos!

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18286
    • MicroPIC
Re: CCS, Proteus, UART...
« Respuesta #3 en: 16 de Diciembre de 2010, 15:36:37 »
Es correcto, el LSB viaja primero.
Puedes salir de dudas si transmites otra información que se confunda menos, sustituyendo al 0x55.

Desconectado richardjr

  • PIC12
  • **
  • Mensajes: 69
Re: CCS, Proteus, UART...
« Respuesta #4 en: 16 de Diciembre de 2010, 19:40:14 »
ok! Igual, si la trama rs232 es correcta... entonces no se me ocurre que puedo estar haciendo mal para que no ande el virtual terminal del proteus (nunca me habia dejado a pata!!)...

habre metido la pata en el codigo?

Ni bien lo solucione, posteo!

EStoy considerando muy seriamente pasarme a mi viejo y peludo entorno de MPLAB con el C30....

Sds!

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18286
    • MicroPIC
Re: CCS, Proteus, UART...
« Respuesta #5 en: 16 de Diciembre de 2010, 20:00:24 »
¿Está bien el baudrate.?

Desconectado richardjr

  • PIC12
  • **
  • Mensajes: 69
Re: CCS, Proteus, UART...
« Respuesta #6 en: 16 de Diciembre de 2010, 20:16:38 »
Sep... tome sumo cuidado con la configuracion de ambos lados... empiezo a desconfiar del proteus...


Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18286
    • MicroPIC
Re: CCS, Proteus, UART...
« Respuesta #7 en: 17 de Diciembre de 2010, 02:18:58 »
Es sensato pensar que Proteus está metiendo la pata, porque suele hacerlo con frecuencia, pero nunca me ha dado errores en las comunicaciones serie.
¿Cuál es la escala de tiempos del gráfico que pusiste al principio?

Desconectado richardjr

  • PIC12
  • **
  • Mensajes: 69
[RESUELTO] CCS, Proteus, UART...
« Respuesta #8 en: 17 de Diciembre de 2010, 21:26:14 »
Encontre el error! La uart, trabajaba bien, gracias Nocturno por la sugerencia de medir el ancho de los pulsos!. Estaba mal configurada la frecuencia del micro! Ahora anda perfecto!
Gracias por toda la ayuda!



 

anything