Haz una pregunta
  Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos
Foros Registrarse ¿Olvidaste tu contraseña?

Temas similares

03/04/2014 #21

Avatar de Ardogan

yamilongiano dijo: Ver Mensaje
Hola gracias por responder estava viendo el link que me entregaste pero es de otro dispositivo. y la pagina 11 esta en blanco quizas te equivocaste de link.
Perdón, me equivoqué de link, me refería a la guía de usuario del módulo (que está aparte del datasheet):
http://ww1.microchip.com/downloads/e...r_UG-v1.0r.pdf

yamilongiano dijo: Ver Mensaje
y otra cosa voy a cambiar el baud a 115 para salir de la duda pero tengo configurado todo a 9600
No estoy seguro, pero creo que podes estar confundiendo la velocidad del UART/USART del módulo (conexión física a través de pines RX y TX) con la velocidad que emula el enlace bluetooth.
Te diría que no dejes de realizar la simple de prueba de conectar el pin GPIO7 a +3.3V y ver si con eso funciona, es sencillo y rápido de ver.

yamilongiano dijo: Ver Mensaje
una consulta al enviar la palabra "a"

Código:
while(true)

{
output_high(PIN_B5);
delay_ms(1000);
printf ("\ra\r");
output_low(PIN_B5);
delay_ms(1000);
}

}
deberia verse en el hyperterminal la letra "a", o debo enviar en codigo ascii para que interpreta la letra "a"
Así como está creo que no debería haber problema, con las comillas dobles "\ra\r" uno está indicando una secuencia de caracteres terminada en carácter nulo. En binario lo que se envía es 13,97,13,0


yamilongiano dijo: Ver Mensaje
¿no se si quede claro, si envio la letra "a" con el comando printf de lenguaje CCS con la configuracion adecuada del UART, en el hyperterminal deberia verse tal cual no con codigos indecifrables?
Sí, debería verse el/los mismo/s caracter/es.

yamilongiano dijo: Ver Mensaje
PD: vivo en chile en iquique y el terremoto de 8.3 me dejo la casa de cabeza, como se dice patas arriba. aun sigue temblando, por lo menos puedo tener mi mente ocupada aqui. se me vino abajo el techo se rompieron las paredes, se quebro casi todo. se cortaron los cables.gracias adios mi casa soporto. otros no tuvieron la misma suerte, pero somos un pais fuerte y saldremos adelante. muchas gracias a los paises hermanos que nos dan su apoyo.
Uh hermano, que jodida la naturaleza por aquellos lares. Uno acá se acostumbra a que lo peor que puede pasar es una inundación o sequía; y los políticos claro (pero eso no cuenta, porque los elegimos nosotros, es daño auto-inflingido en todo caso).
Voy a ver si en algún lado están juntando cosas para enviar, como vos decís, no es la 1ra ni la última vez que les pasa algo así, y han salido/van a seguir saliendo adelante; eso demuestra que los tienen bien puestos para no dejarse vencer.
Un abrazo y fuerza!!!
03/04/2014 #22

Avatar de luis1234567890

haber amigo cual es el tu programación completo que estas utilizando últimamente, capaz hay un problema en esa parte .
04/04/2014 #23

Avatar de yamilongiano

luis1234567890 dijo: Ver Mensaje
haber amigo cual es el tu programación completo que estas utilizando últimamente, capaz hay un problema en esa parte .
hola gracias por responder la programacion que tengo es la siguiente.esta en PCWHD CCS



Código:
#include <16F628A.h>
#FUSES NOWDT, INTRC, NOPUT, NOPROTECT, NOBROWNOUT, NOMCLR, NOLVP, NOCPD, RESERVED
#use delay(clock=4000000)
#use rs232(baud=9600,parity=N,xmit=PIN_B2,rcv=PIN_B1,bits=8)

Código:
#include "C:\Users\*******\Desktop\compilador C\MAS PRUEBAS\main.h"


void main()
{

   setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
   setup_timer_1(T1_DISABLED);
   setup_timer_2(T2_DISABLED,0,1);
   setup_comparator(NC_NC_NC_NC);
   setup_vref(FALSE);
   char dato;
   // TODO: USER CODE!!
   

      
      
      while(true)
 
      {      
       output_high(PIN_B5);
       delay_ms(500);
       printf ("\ra\r");
       output_low(PIN_B5);
       delay_ms(500);       
       }

}
eso es todo lo que tengo en el microcontrolador.
05/04/2014 #24

Avatar de luis1234567890

veo que la programación esta bien ,pero para que los timers si ni los utilizas no veo ninguna interrupción ,

Necesitas cargar trisb=0b11011011 para indicar la transmisión y recepción de datos .
09/04/2014 #25

Avatar de yamilongiano

hola miren he encargado a santiago un monton de cosas para ir depurando. quizas el modulo bluetooth no puedo configurarlo como corresponde as que encargue un modulo RS232 USB para sacar dudas un regulador de 3.3 volt y un max 232 que hora pueden funcionar con 3.3 volt que genial. =)

voy a conectar mediante cable el pic y sacare mis dudas tambien compre otro modulo bluetooth RN-42 pero no el XV. de ahi les pongo mas informacion. hay cosas que no puedo cambiar en el bluetooth como la paridad y esas cosas. ya pondre mas informacion

luis he puesto ese comando pero no ha cambiado nada. gracias por tu apoyo.
11/04/2014 #26

Avatar de yamilongiano

hola miren ya he intentado casi de todo y estoy trabado hay comunicacion y todo pero no se cual es el problema.... alguien podria darme alguna programacion que si funcione que sepa para enviar una letra por el pic al pc me tinka que quizas algo no se esta compilando como quiero....



alguie tiene un codigo quizas mi programacion esta mala o mal configurado en algun lado del compilador...ya no se

tengo forzado por gpio7 a 9600 y aun asi no aparece la letra a en el terminal sino el signo °°°°°°°

configuracion modulo bluetooth



se comunican y puedo acceder a la configuracion por comando en atravez de hyperterminal para configurar el modulo bluetooth.

yo creo que el problema es el codigo que estoy enviando o la programacion del pic.

ya que si cambio los milisegundos

Código:
      while(true)
 
      { 
output_high(PIN_B5);
delay_ms(300);                 // si cambio los milisegundos aqui cambia los signos
printf ("a");                       // que aparecen en el terminal por la comunicaion
output_low(PIN_B5);         // del bluetooth en la pc
delay_ms(300);
       }
}
al cambiar los milisegundos me cambia el caracter que aparece en el tera term.

alguien podria ayudarme con algun codigo para sacar las dudas.
Imágenes Adjuntas
Tipo de Archivo: png comunicacion....png (24,2 KB (Kilobytes), 161 visitas)
Tipo de Archivo: png configuracion bluetooth com4,9600.png (34,0 KB (Kilobytes), 160 visitas)
11/04/2014 #27

Avatar de luis1234567890

Este es un ejemplo de prender leds con las teclas a,b,c en minúscula.

Código:
#include <16f877.h>
#FUSES XT,NOWDT,NOPUT,NOPROTECT,NODEBUG,BROWNOUT,NOLVP,NOCPD,NOWRT
#use delay(clock = 4000000)
#use rs232(baud=9600,rcv=pin_c7,xmit=pin_c6,parity=N)
#byte trisb=0x86
#byte portb=0x06
#byte trisc=0x87
#byte portc=0x07
#bit rb0=portb.0
#bit rb1=portb.1
#bit rb2=portb.2

unsigned int8 dato;
 void main()
 {trisb=0;
  portb=0;
  trisc=0b10000000;
  while(1)
  {
    if(kbhit()==1) 
  {    dato=getc();
   if(dato=='a')
     {rb0^=1;
     if(rb0==0)
     printf("led verde apagado \r");
     else
     printf("led verde encendido \r");    
     }
   else if(dato=='b')
      {rb1^=1;
       if(rb1==0)
         printf("led amarrillo apagado \r");
         else
         printf("led amarrilo encendido \r");
      }
      else if(dato=='c')
         {rb2^=1;
          if(rb2==0)
          printf("led rojo apagado \r");
          else
          printf("led rojo encendido \r");
         }
      else 
      printf("dato incorrecto \r"); 
  }
  }
 }
Tienes que configurar tu visual terminal con la velocidad de baudios que es 9600 y el bit de paridad.
También fíjate en las conexiones, algo puede estar mal .
Imágenes Adjuntas
Tipo de Archivo: jpg 3.jpg (86,9 KB (Kilobytes), 17 visitas)
11/04/2014 #28


Hola Luis, tu diagrama si funciona en proteus, pero en físico no me funcionó.
¿No sé si sabrás por qué? Yo lo probé en un 16f628a cambiando algunas cosas.
Saludos.
11/04/2014 #29

Avatar de yamilongiano

kikeap dijo: Ver Mensaje
Hola Luis, tu diagrama si funciona en proteus, pero en físico no me funcionó.
¿No sé si sabrás por qué? Yo lo probé en un 16f628a cambiando algunas cosas.
Saludos.
amigo tenemos el mismo problema, yo tengo todo bien configurado por alguna razon algo que no se no lora enviar los datos como corresponde.

estoy seguro que tiene que ver algo con la configuaracion de las interrupciones pero va en la programacion.


tienes la comunicacion por cable o no...
12/04/2014 #30


yo estoy usando una aplicacion android para conectarme al modulo bluetooth que esta conectado al pic16f628a pero nada no me funciona :(
12/04/2014 #31

Avatar de Ardogan

yamilongiano, ¿probaste de hacer lo sugerí de conectar el pin GPIO7 a +3.3V?
12/04/2014 #32

Avatar de yamilongiano

Ardogan dijo: Ver Mensaje
yamilongiano, ¿probaste de hacer lo sugerí de conectar el pin GPIO7 a +3.3V?
hola si he conectado el pin 4 el GPIO7 a 3.3vdc

y se conecta pero yo creo que va en las interrupciones no se.

como avisarle que va a enviar la letra "a" (el bus de datos) y despues cerrar el bus de datos .

lo digo por que cuando cambio valores en milisegundos en los retardos me cambian los caracteres.

Código:
      while(true)
 
      {      
       output_high(PIN_B5);
       delay_ms(1000);              //cuando cambio el retardo cuanbia el signo
       output_low(PIN_B5);
       delay_ms(1000);
       printf ("a");                     // la letra a si llega pero de vez enc uando sale la letra beta
       }

}

como sale aqui en
tera term



los puertos estan bien configurados quizas algo no configure bien en el wizard proyect o el programa tendra algunos errores producidos por CCS . ya no se que puede ser.

estoy 100% seguro que es la programacion del pic no envia el caracter adecuado, ya sea por cosa de interrupciones bit de inicios o de paradas del protocolo. quizas por ahi va la cosa.


ahora miren cuando saco los retardos

Código:
      while(true)
 
      {      
       output_high(PIN_A3);   // sin retardos
       printf ("a");
       output_low(PIN_A3);    // sin retardos
       }
fotogracia de lo que envia el pic por hyperterminal:




y ahora sin los comandos (output_high(PIN_A3) y sin los retardos
en el programa del pic...


Código:
      while(true)
 
      {      

       printf ("a");

       }
no envia nada... y sigue habiendo comunicacion con el modulo .




por eso creo que quizas falta algo en el codigo que no me deja enviar la letra "a" desde el microcontrolador atravez del modulo bluetooth (rn-42 XV) al pc para que se repita la letra "a" en tera term (hyperterminal). es como si el pic no estuviera dando los tiempos correctos para que el pc lo interprete como la letra "a" o no estuvieran determinados bien los tiempos en el pic. para que lo que ponga en el comando printf ("XXXXX"); se vea correctamente en el hypertermina.

no se si aparte de la configuracion por software falta hacer pausas mediante hardware enviando un low o un high por unos milisegundos antes de enviar el codigo printf ("a");.

alguna idea....???:confused :
Imágenes Adjuntas
Tipo de Archivo: png ab.png (127,9 KB (Kilobytes), 142 visitas)
Tipo de Archivo: png ax.png (88,3 KB (Kilobytes), 145 visitas)
Tipo de Archivo: png no envia nada.png (36,6 KB (Kilobytes), 144 visitas)
12/04/2014 #33

Avatar de ByAxel

Hola.
Vuelvo al tema... Solo para probar (misma configuración y a 9600 baud):

- Probar solo el módulo con la PC... unir las líneas RX y TX del módulo para que trabaje a modo de ECO, si el dato recivido en la PC es el mismo que el enviado al módulo... entonces el módulo va bien.

- Probar solo el PIC con la PC... en necesario un adaptador para un puerto serie, ya sea MAX232 o adaptador USB a RS232... hacer que el PIC trabaje en modo de ( ECO ) ver código... si el dato recivido en la PC es el mismo que el enviado al PIC... entonces el PIC va bien.

Código:
#include <16F628A.h>

#FUSES INTRC_IO
#FUSES NOWDT
#FUSES PUT
#FUSES NOMCLR
#FUSES NOLVP

#use delay(internal=4MHz)
#use rs232(baud=9600,parity=N,xmit=PIN_B2,rcv=PIN_B1,bits=8)

char dato;

void main()
{
   setup_oscillator(OSC_4MHZ);
   setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
   setup_timer_1(T1_DISABLED);
   setup_timer_2(T2_DISABLED,0,1);
   setup_comparator(NC_NC_NC_NC);
   setup_vref(FALSE);
   set_tris_b(0b00000010);

   while(true){   
      if(kbhit()){
         dato = getc(); 
         putc(dato);         
      }
   }
}
El PIC puede ser el más indicado en fallar, entonces si va mal la segunda prueba puede ser:
- Niveles de voltaje, (se supone que el PIC a 4Mhz trabaja bien a 3.3V pero...) adapta mejor el cambio de 5V a 3.3V y viceversa.
- Protocolo... ahunque lo dudo (se puede variar paridad, bit de parada) ya que es por hardware no se puede hacer mucho... no tengo la hoja del módulo a la mano... revisa que el UART del RN42 no tenga las señales del UART invertidas, solo por las dudas.

Sobre la inestabilidad del dato al cambiar el delay, eso si es raro... bugs del CCS? u otra cosa.

Adjunto un par de HEX, incluye explicación... compilados en CCS y otro compilador... ambos me van bien... no se más.

Saludos
Archivos Adjuntos
Tipo de Archivo: rar DemoF628A.rar (1,4 KB (Kilobytes), 41 visitas)
13/04/2014 #34

Avatar de Ardogan

100 % de acuerdo con ByAxel, probar cada cosa por separado haciendo loopback.

Otra cosa que podría estar pasando es problemas de reloj. ¿Que capacitores utilizaste con el cristal?, ¿son NP0/cabecita negra?, ¿de que valor?.
Hace una prueba con delay_ms(5000) por ejemplo, encendiendo y apagando un led para ver si el tiempo real es el esperado (si se enciende cada 10 segundos).
Esto podría afectar al generador de baudrate si la velocidad de reloj es inestable o distinta a la esperada, y terminaría provocando el efecto de caracteres raros.
13/04/2014 #35


yo estoy usando el modulo hc06 y tampoco no me funciona el programa :/
16/04/2014 #36

Avatar de yamilongiano

testeando
bueno me llegaron las piezas e hice pruebas....

al final es el modulo bluetooth, no se como configurarlo esa es la verdad al parecer.
me faltara configurar algunas cosas que desconosco y no se donde empezar jaja.

he conectado el circuito con el mismo programa y funciona perfectamente me envia una letra a sin ningun problema,y sin caracteres raros.

adjunto fotografia del protoboard.

chip ICL3232cp trabaja con 3.3 volt
pic 16f628a 3.3v con cristal interno de 4mhz
modulo usb TO SERIAL PORT UCON-232S



aqui otra foto.



tera term.



por lo menos ahora me queda saber por que el modulo bluethooth tiene problemas con el envio de datos a mi pc ... alguien me podria dar otra manito. gracias a todos por ayudarme y ocupar su tiempo para aconsjarme gracias otra vez.
Imágenes Adjuntas
Tipo de Archivo: jpg 16f628a y rs232(3232).jpg (69,1 KB (Kilobytes), 114 visitas)
Tipo de Archivo: jpg 20140416_232508.jpg (87,4 KB (Kilobytes), 112 visitas)
Tipo de Archivo: png funcionando con puerto rs232 por usb adaptador.png (34,4 KB (Kilobytes), 112 visitas)
18/04/2014 #37


Hola yamilongiano yo ya pude comunicar mi pc con mi pic16f628a pero tube que usar otros pines declarandolos antes en el #fuses
18/04/2014 #38

Avatar de yamilongiano

kikeap dijo: Ver Mensaje
Hola yamilongiano yo ya pude comunicar mi pc con mi pic16f628a pero tube que usar otros pines declarandolos antes en el #fuses
Que bluetooth ocupaste?

Bueno si me funciono al final pero con otro dispositivo el rn42 , el que tenia era el rn42xv no se cual es la diferencia pero con el otro me funciona perfectamente. No se cual sera el problema en verdad con el otro moculo bluetooth...

Fin. Despues subire un tutorial en verdad es simple . Pero con el modulo Rn42. El otro aunque tenga todo configurado igual no funciona.
19/04/2014 #39


yo use el hc06 q es un modulo muy economico por aca. Bueno saludos
24/12/2016 #40


Buenas tardes. Quisiera ayuda.
Mi trabajo si se conecta, pero el problema es el envío de datos.
Cree una aplicación en App Inventor para que me envíe el dato, pero no se conecta.

Gracias por la ayuda.
¿Tienes una mejor respuesta a este tema? ¿Quieres hacerle una pregunta a nuestra comunidad y sus expertos? Registrate

Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO ©2011, Crawlability, Inc.