Autor Tema: RS485 CON NIPLE  (Leído 7434 veces)

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

Desconectado lucaspalomba

  • PIC16
  • ***
  • Mensajes: 108
RS485 CON NIPLE
« en: 07 de Noviembre de 2011, 23:46:27 »
BUENAS NOCHES:Hola compañeros foreros, esta noche los molestos a ver si me pueden dar una mano con mi problema ya que hace unas semanas que no logro hacer andar como quiero el proyecto , para eso paso a explicarles las fallas y pruebas que he realizado:

Microcontrolador MASTER:PIC18F4550
Microcontrolador ESCLAVO: PIC16F648A

Falla:Habiendo reparado todas las fallas de programacion y hardware que tuve a lo largo de todo este tiempo con el soft, me encuentro trabado con los siguientes problemas.
No logro hacer entrar en la logica de funcionamiento que se encuentra dentro de la interrupcion por rb0 , configurada por flanco descendente, es decir cuando tomo los valores diferenciales jamas me llegan los valores que envio desde el master es decir el numero de esclavo, no es nunca 1 , casi siempre es 129 , el comando casi siempre es 0 osea nunca toma (recepciona) el valor decimal que envio nunca llega al esclavo.

Pruebas realizadas:He comprobado varias veces el hardware y con osciloscopio medi los valores diferenciales producidos por el sn75176 tanto en el master como en el esclavos y ambos son correctos , bien definidos y sin ruido , excepto con algunos picos de señales.
He comprobado varias veces el firmware y tampoco encuentro problema aparente.Aqui les adjunto algunas imagenes del proyecto para que vean si ven algo anormal en la logica del programa.He comprobado enviar datos con y sin checksum pero no logro el objetivo.

PD:Ya le informe a Jorge Cano un bug que exisitia en el pic16f88 al intentar configurar la interrupcion por RB0 ,esto lo aviso ya que mi idea era trabajar con el micro F88 ya que posee entradas analogicas. Muchas gracias espero que me puedan tender una mano..

Desconectado lucaspalomba

  • PIC16
  • ***
  • Mensajes: 108
Re: RS485 CON NIPLE
« Respuesta #1 en: 08 de Noviembre de 2011, 13:01:39 »
PUEDE EXISITIR ALGUN PROBLEMA CON EL PIC18F4550 AL COMUNICARLO POR RS485? ALGUN PROBLEMA DE ASSEMBLER?.

Desconectado lucaspalomba

  • PIC16
  • ***
  • Mensajes: 108
Re: RS485 CON NIPLE
« Respuesta #2 en: 08 de Noviembre de 2011, 15:43:13 »
He realizado simulaciones con el Proteus y llego al mismo problema que en la realidad el dato no llega correctamente.. al esclavo.

Subo el diagrama del que me guie para realizar el hardware.


Desconectado Fer_TACA

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 4069
Re: RS485 CON NIPLE
« Respuesta #3 en: 08 de Noviembre de 2011, 17:01:38 »
Dentro del programa principal de la parte del master tienes "INTER_B0=Flanco_Desc"". Aqui
configuras si es por flanco ascendente o descendente
Pero en el simbolo siguiente de configurar las interrupciones ¿No deberias de tener habilitado tambien la opcion de ·Interrupcion por deteccion de flanco en RB0". Aqui se habilita la interrupcion por deteccion de flanco en RB0.

F.
Todos los días se aprende algo nuevo.

Desconectado andres48

  • PIC10
  • *
  • Mensajes: 21
Re: RS485 CON NIPLE
« Respuesta #4 en: 11 de Noviembre de 2011, 20:48:02 »
Hola muchachos
me cuelgo de la charla
Yo arme un master con 16f876A y 30 esclavos con 16f88 con cumincacion rs485 y les aseguro que anda muy bien
eso si, lo unico que me dio resultados fue hacer que el master se comunique por codigo y los esclavos por USART.
solo asi logre que sincronicen la comunicacion.
No se el tema de la interrupcion porque no necesite emplearla. solo tuve algunos problemas con el master pero se trata del sistema de acomodo automatico de bancos que genera Niple
esto se lo comunique a Jorge Cano y ya le envie tambien el NPL.
Respecto al hard, no es complicado, solo que el ultimo esclavo si o si debe llevar la r120 para balancear.
Arme un nodo con estos con cable UTP cat5 a una distancia maxima de 400 mtrs y al presente ni un solo fallo.
Un saludo a todos
Andres

Desconectado andres48

  • PIC10
  • *
  • Mensajes: 21
Re: RS485 CON NIPLE
« Respuesta #5 en: 11 de Noviembre de 2011, 20:52:17 »
Lucas
otra obviedad.
No olvides que los esclavos rececionan su numero a travez de un registro distinto al que tienen como numero fijo ...
es obvio, pero a mi me pasaba lo mismo con el dichoso 129
si el registro donde guardas el nr. del esclavo se llamase ... esclavo, declara un registro distinto en la recepccion para que el programa pueda compararlos.
Saludos
Andres

Desconectado lucaspalomba

  • PIC16
  • ***
  • Mensajes: 108
Re: RS485 CON NIPLE
« Respuesta #6 en: 14 de Noviembre de 2011, 14:47:32 »
Muchachos muchas gracias por ressponderme , lamentablemente no me llegan los informes de sus respuestas y por ende le pido disculpas por no poder haberle contestado mas rapidamente , aca les adjunto unas simulacione en proteus junto con todos los proyectos y . hex para que puedan simularlo al igual que yo y ver lo que les decia que me pasaba.Las resistencias que se encuentran en el master , con los valores de 560 Ohms , no pasa nada si le subo a 2.2 K cada resitencia excepto la resistencia entre 6 y 7 , el master comienza a enviar valores basura. Voy a analizar detalladamente lo que me explicaron para ver como puedo solucionarlo.

Muchas gracias y espero sus respuestas.. Gracias

PD:En el programa del esclavo no me deja hacer la comunicacion por USART, solamente por codigo, tengo la version de niple 5.6 rv 0
« Última modificación: 14 de Noviembre de 2011, 15:09:11 por lucaspalomba »

Desconectado lucaspalomba

  • PIC16
  • ***
  • Mensajes: 108
Re: RS485 CON NIPLE
« Respuesta #7 en: 14 de Noviembre de 2011, 14:56:15 »
Lucas
otra obviedad.
No olvides que los esclavos rececionan su numero a travez de un registro distinto al que tienen como numero fijo ...
es obvio, pero a mi me pasaba lo mismo con el dichoso 129
si el registro donde guardas el nr. del esclavo se llamase ... esclavo, declara un registro distinto en la recepccion para que el programa pueda compararlos.
Saludos
Andres


Andres, no me quedo claro lo que me dijistes de la comparacion de registros del numero de esclavo. Yo le coloco numero de esclavo fijo al "esclavo".Saludos

Desconectado lucaspalomba

  • PIC16
  • ***
  • Mensajes: 108
Re: RS485 CON NIPLE
« Respuesta #8 en: 14 de Noviembre de 2011, 14:59:42 »
Fer_taca, como siempre te agradesco tu respuesta y te consulto , dentro de la interrupcion por rb0 , que tendria que hacer? , ahi tendria que colocar los bloques de envio y recepcion de datos por rs485?.Saludos

Desconectado Fer_TACA

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 4069
Re: RS485 CON NIPLE
« Respuesta #9 en: 15 de Noviembre de 2011, 16:47:42 »
Un vez detectada la interrupcion por cambio de estado en RB0 puedes realizar en ella lo que quieras, pero con con la idea de que siempre sean las rutinas lo mas corta posibles y que no se aniden rutinas unas con otras.

F.
Todos los días se aprende algo nuevo.

Desconectado djim

  • PIC12
  • **
  • Mensajes: 75
Re: RS485 CON NIPLE
« Respuesta #10 en: 13 de Diciembre de 2011, 05:35:47 »
Buenas!!! Ahora que ya salude... AYUDAAAA!!!  :D Como es el tema de la comunicacion por RS485? Que tengo que activar para que no me de error de compilacion, me dice:
"Error: El registro _np_rs232_t1 no se encuentra."

el informe de error del MPASM son:
Error[113]   D:\PRUEBAS_485\MASTER\MASTER_00.ASM 664 : Symbol not previously defined (_np_rs232_t1)
Error[113]   D:\PRUEBAS_485\MASTER\MASTER_00.ASM 667 : Symbol not previously defined (_np_rs232_t1)
Error[113]   D:\PRUEBAS_485\MASTER\MASTER_00.ASM 713 : Symbol not previously defined (_np_rs232_t1)
Error[113]   D:\PRUEBAS_485\MASTER\MASTER_00.ASM 716 : Symbol not previously defined (_np_rs232_t1)

-----------------------
1 master (18F4550)
5 Esclavos (16F628A)
-----------------------
El tema es que desde el Master quiero mandar datos para setear los esclavos y que los esclavos me respondan marcando las posiciones en que se encuentran, ahora dispongo de 3 placas entrenadoras con 16F877A, lcd y los modulos de RS485, para visualizar todos los datos y realizar las pruebas necesarias. Espero que alguien me pueda ayudar para armar el programa, por que no entiendo nada jejeje.

P/D: Al generarme error en la compilacion cada vez que guardo me vuelve todo a 0, sino se los mostraria al *.NPL es la primera vez que necesito trabajar esta comunicacion, pido ayuda a aquellos que lo hicieron funcionar. mi Version es 5.5.8 Plus y tengo varias anteriores por si alguien comparte un ejemplito basico  :oops: Muchas gracias amigos!!!

DJIM

Desconectado Fer_TACA

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 4069
Re: RS485 CON NIPLE
« Respuesta #11 en: 13 de Diciembre de 2011, 09:54:37 »
Por el tipo de nombre, debe ser un registro genera internamente Niple.

Si realizas "control+B" se abre una pantalla con el nombre de los registros declarados. Puedes buscarlos alli. En caso de no encontrarlos puedes crearlos tu mismo "con el mismo nombre que te pide".
Despues debes de volver a compilar y ver si no te da errores.

F.
Todos los días se aprende algo nuevo.

Desconectado djim

  • PIC12
  • **
  • Mensajes: 75
Re: RS485 CON NIPLE
« Respuesta #12 en: 13 de Diciembre de 2011, 16:37:39 »
Amigo Fer... Podrias decirme de que manera activo el modulo, vi en el ejemplo de arriba que tienen interrupcion por transmicion, que bloques inserto en esa parte, si podrias explicarme un poco mas paso a paso, desde el principio por favor. Desde ya muchas gracias

DJIM

Desconectado Fer_TACA

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 4069
Re: RS485 CON NIPLE
« Respuesta #13 en: 14 de Diciembre de 2011, 02:52:42 »
Ahora estoy en el curro y no tengo el programa delante, esta tarde te pongo algo.


F.
Todos los días se aprende algo nuevo.

Desconectado Fer_TACA

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 4069
Re: RS485 CON NIPLE
« Respuesta #14 en: 14 de Diciembre de 2011, 15:02:38 »
Primero debes de insertar un bloque de una interrupcion, debes ir al explorador de herrramientas, seleccionas primero configuar interrupcion y en la ventana que te sale seleccionas la que quieras.
A continuacion insertas un bloque de activar/deactivar interrupcion y lo mismo que antes seleccionas lo que quieras necesites.
Luego insertas el bloque de insertar interrupcion, para ello eliges la que quieras o vayas a utilizar. Una vez insertado este bloque niple te crea una subrutina que la puedes ver a la derecha en el explorador de proyecto. Te abre una nueva pantalla con el comienzo de la rutina de interrupcion(dependiendo de cual sea, te puede crear algun bloque mas ya conectado) Aqui pones los bloques de lo quieras que haga tu programa y finalizas inseertando un bloque de fin de interrupcion.

De regreso al programa principal, sigues colocando el resto de bloques de tu programa.
Recuerda que dentro de la rutina de interrupcion para que sea efectiva, deberia de tener el menor numero de bloques posibles y sobre todo no anidar/llamar desde esa rutina a otra y despues a otra,....
Espero que sea eso lo que preguntabas.

F.
Todos los días se aprende algo nuevo.