Autor Tema: conexion rs485  (Leído 7576 veces)

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

Desconectado IOIO

  • PIC10
  • *
  • Mensajes: 46
Re: conexion rs485
« Respuesta #15 en: 24 de Mayo de 2008, 10:56:16 »
Una cosa más, en el esquema original la habilitación la manejabas por el pin B5 pero ahora hablas del pin C5, ¿cambiaste el esquema original?. Si es así, checkeaste que la habilitación que utilizas en el prg sea la misma que utilizas en el hardware
Saludos, Sergio
Desde Avellaneda, Buenos Aires. Argentina

Saludos,
Sergio

Desconectado cheapekt

  • PIC12
  • **
  • Mensajes: 93
Re: conexion rs485
« Respuesta #16 en: 26 de Mayo de 2008, 08:18:46 »
Muchas gracias IOIO por todas tus sugerencias
 
He realizado todas las conexiones y pruebas que se han dicho, creo que el problema está en la programación del programa ya que no se me enciende el led ni parpadea, el Led lo eh colocado en el PIN B1. Los leds de comunicación de el rx y el tx tampoco se me encienden, pero en la salida del PIC en el pin C7 (RX) tengo un voltaje de 5 voltios,
en el C6 (TX) tengo 0 voltios
y en el C5(activación) tengo 0 voltios
el oscilador funciona a 20 Megahercios.

Al MAX la patilla de recibir la tengo a 5 voltios,

Las de activación y la de enviar las tengo a 0 voltios.

los cables de transmisión de datos A y B me dan el A 2.47   y el B 2.23voltios

y sigue sin pasarme datos .....

El programa no se debe ejecutar bien porque el LED del pin B1 nunca se llega a  enchufar.


#include <16F877.h>
#device adc=8

#FUSES NOWDT                    //No Watch Dog Timer
#FUSES HS                       //High speed Osc (> 4mhz)
#FUSES NOPUT                    //No Power Up Timer
#FUSES PROTECT                  //Code protected from reads
#FUSES NOBROWNOUT               //No brownout reset
#FUSES NOLVP                    //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O
#FUSES NOCPD                    //No EE protection
#FUSES NOWRT                    //Program memory not write protected
#FUSES NODEBUG                  //No Debug mode for ICD
#use delay(clock=20000000)

#use rs232(baud=9600,parity=N,bits=8,stop=1,xmit=PIN_C6,rcv=PIN_C7,enable=PIN_C5,errors) //enable=PIN_C5 hace que el C maneje el pin de habilitación


static int y=5;

 
void main (void)

{

   setup_adc_ports(NO_ANALOGS);
   setup_adc(ADC_OFF);
   setup_psp(PSP_DISABLED);
   setup_spi(SPI_SS_DISABLED);
   setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
   setup_timer_1(T1_DISABLED);
   setup_timer_2(T2_DISABLED,0,1);



while(TRUE)
{
   printf("temperatura=%u ", y);
   delay_ms(500);                  // espera por ejemplo 0,5 seg para enviar nuevamente el dato,
   output_HIGH(PIN_B1);        // por ejemplo conectas un led entre el pin C0 y masa y este debe prender
   delay_ms(250);                  // espera por ejemplo 0,25 seg
   output_LOW(PIN_B1);         // se apaga el led
   delay_ms(250);                  // esperas otros 0,25 seg para enviar nuevamente el dato,
                                         
                                     
}
   
}
 Muchas gracias

Saludos!

Desconectado IOIO

  • PIC10
  • *
  • Mensajes: 46
Re: conexion rs485
« Respuesta #17 en: 26 de Mayo de 2008, 10:14:54 »
Hola cheapekt, en principio por lo que dices el programa no está corriendo!. Pero en el mplab lo simulé y al menos el led debería parpadear, por lo que descartaría un error en el programa.

Nos queda el hardware.
¿Estas seguro que el cristal o micro funcionan, como sabes que estas grabando correctamente el micro, que grabador usas?
Si sabes que el grabador funciona y graba correctamente al micro, prueba de dejar en el programa solo la rutina de parpadeo del led.
Comienza por lo muy básico y agregale el resto luego de cerciorarte que está ok.

Saludos y cuentame que pasó.
Sergio
Desde Avellaneda, Buenos Aires. Argentina

Saludos,
Sergio

Desconectado cheapekt

  • PIC12
  • **
  • Mensajes: 93
Re: conexion rs485
« Respuesta #18 en: 26 de Mayo de 2008, 13:02:47 »
Utilizo el PIC star PLUS,

Y si que funciona, ya que he hecho otro programa que enciende un led y ese si que me funciona,

Sin embargo el que esta hecho para enviar los datos a traves del MAX485 no se me encienden los leds.  Qizas el programa hay algo que no esta bien declarado alguna funcion, nolose.... :( pero no logro encontrar el motivo. :(

SAludos!

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
Re: conexion rs485
« Respuesta #19 en: 26 de Mayo de 2008, 13:27:22 »
Viendo que según los dichos de cheapekt el código funciona y tu dices que no, yo intuyo que del otro lado (algo está tirando el bus abajo y se te está bloqueando el max485).  Porque no pruebas conectarlo a RS232?
- 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 IOIO

  • PIC10
  • *
  • Mensajes: 46
Re: conexion rs485
« Respuesta #20 en: 26 de Mayo de 2008, 15:40:51 »
Puede ser lo que dice Maunix, porque aunque sea no quitas el max485 y dejas los leds. El que esta en B1 deberá parpadear y el de TX tambien dado que por el pin de TX el micro sacará los datos aunque no esté el max485
saludos
Desde Avellaneda, Buenos Aires. Argentina

Saludos,
Sergio

Desconectado cheapekt

  • PIC12
  • **
  • Mensajes: 93
Re: conexion rs485
« Respuesta #21 en: 14 de Julio de 2008, 15:58:12 »
Muy buenas de nuevo... he estado un tiempo de vacaciones y ahroa reprendo mi menester,

Para situarme he montado el circuito siguiente y he puesto un codigo que tansolo enciende y para un led:

es el siguiente:

#include <16F877.h>
#device adc=8

#FUSES NOWDT                    //No Watch Dog Timer
#FUSES HS                       //High speed Osc (> 4mhz)
#FUSES NOPUT                    //No Power Up Timer
#FUSES PROTECT                  //Code protected from reads
#FUSES NOBROWNOUT               //No brownout reset
#FUSES NOLVP                    //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O
#FUSES NOCPD                    //No EE protection
#FUSES NOWRT                    //Program memory not write protected
#FUSES NODEBUG                  //No Debug mode for ICD
#use delay(clock=20000000)

#use rs232(baud=9600,parity=N,bits=8,stop=1,xmit=PIN_C6,rcv=PIN_C7,enable=PIN_C5,errors) //enable=PIN_C5 hace que el C maneje el pin de habilitación
 
void main (void)

{

   setup_adc_ports(NO_ANALOGS);
   setup_adc(ADC_OFF);
   setup_psp(PSP_DISABLED);
   setup_spi(SPI_SS_DISABLED);
   setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
   setup_timer_1(T1_DISABLED);
   setup_timer_2(T2_DISABLED,0,1);



while(TRUE)
{
   output_HIGH(PIN_B1);       
   delay_ms(250);               
   output_LOW(PIN_B1);       
   delay_ms(250);               
                                         
                                     
}
   
}


EL problema esque no se me ha encendido el LED..... ya no estoy en el laboratorio, mañana volvere a montar el circuito de nuevo y con el tester vere si puede ser la conexion fisica, por lo que respecta a la programacion creo que es buena ya que es la misma que tenia anteriormente.

Un saludo, os ire informando!

Muchas gracias

Desconectado cheapekt

  • PIC12
  • **
  • Mensajes: 93
Re: conexion rs485
« Respuesta #22 en: 16 de Julio de 2008, 13:50:35 »
Perfecto amigos!!!!1

Ya me funciona este miniprogramilla ..... ahora iré a por el siguiente paso!!! ya os informaré!!! que ilusión!!!!!!!!!!!!!!!!!!!

Desconectado cheapekt

  • PIC12
  • **
  • Mensajes: 93
Re: conexion rs485
« Respuesta #23 en: 16 de Julio de 2008, 14:16:32 »
Me parece que no me funciona el programa debido a al conexión física de el max485,

leyendo el datasheet he llegado a una duda, si alguien me pudiese echar una mano se lo agradecería.

Salen 2 conexiones físicas diferentes y realmente no se cual he de utilizar. las conexiones se pueden ver en el fichero adjunto, alguien me podría indicar cual es la qu tengo que utilizar. Muy amables.

Gracias de antemano


Desconectado RedPic

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 5544
    • Picmania by Redraven
Re: conexion rs485
« Respuesta #24 en: 16 de Julio de 2008, 14:21:54 »
Dale un vistazo a este proyecto por si te sirve para aclarar las ideas. Lo tengo montado alrededor de un DS75176 que es un Clon del MAX485. El RS485, un Relé en la lejanía: Hardware y Software



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


 

anything