TODOPIC

Microcontroladores PIC => Todo en microcontroladores PIC => Mensaje iniciado por: ales en 12 de Abril de 2008, 17:38:30

Título: Protocolo para RS485
Publicado por: ales en 12 de Abril de 2008, 17:38:30
Hola amigos, gracias a la información encontrada en el Foro pude lograr el HW y SW de un protocolo para la comunicación RS485.
 Aqui se las paso, el SW con CCS y HW con Proteus 7.2.
No les explico nada porque no se si a alguien le hará falta, en caso que si, bueno me preguntan y les doy los detalles.

Gracias a todos por su ayuda y espero que lo aprovechen.

saludos. :-/
Título: Re: Protocolo para RS485
Publicado por: Cryn en 12 de Abril de 2008, 19:12:04
esta muy completo, gracias pro el aporte, podrias explicarnos en qeu consistia mas o menos todo el proyecto?? para que tengamos una idea de como va y donde se lo puede aplicar

te ha quedado mbien :mrgreen:

y tb una pregunta, porque usaste ese micro? simple gusto o tiene algo que lo hace indispensable

un saludo, muy buen aporte :-/ :-/
Título: Sobre el Protocolo
Publicado por: ales en 13 de Abril de 2008, 13:01:25
El protocolo RS485 que tuve que hacer formará parte de mi trabajo de diploma de la universidad, verás que la identificación (o sea la dirección) de los esclavos es por hardware, esto es necesario porque todos los PIC Slaves tendrán el mismo Software, ellas serán las encargadas de recoger información de sensores que tendrán conectadas por la otra UART del PIC. Por eso fue que escogí este PIC porque tiene dos UART por HW y por SW es un dolor de cabeza la simulación de UART que hace el CCS.
El Master también en un momento determinado se conectará via serie con una PC para recibir toda la configuración necesaria para el funcionamiento.
Y toda la información que le vaya pidiendo a los esclavos la procesará y almacenará en una MMC.

Entonces el protocolo como tal:
-El Master envía en un byte la dirección del esclavo con el que quiere comunicarse y en el bit LSB de este mismo byte con 0 informa que va a escribir y con 1 que va a leer (tipo I2C)
-El esclavo con esa ID envía su propia ID hacia el Master como respuesta de que está recibiendo la información (o sea: ACK).
-Y en caso que el Master vaya a escribir en el Esclavo envía ahora la Cant. de bytes que va a transferir al Esclavo.
- El esclavo espera esta cantidad y la envía de nuevo al Master como Ack, y así se comprueba que llegó bien la información.
-Después el Master comienza la transferencia de los bytes.
Si el Master quiere leer al Esclavo, entonces despues de enviar la ID lo que hace es esperar del Esclavo la cantidad de bytes que este vaya a transferirle y como Ack el Master envía dicha cantidad de nuevo al esclavo.
-Después el Esclavo comienza la transferencia.
-Cualquiera de los dos que esté transfiriendo, nada más termine el otro envía el byte 0xFF para que el otro conozca que ya fue recibido el paquete.

 En caso que en la espera de algún Ack se desbordara la INT TIMER0 que se activa cuando se espera el ACK se retorna ERROR en la escritura o lectura porque han pasado 1.6 segundos y creo que es suficiente como para considerar un problema, de todas formas podemos varias este tiempo.

Saludos Cryn. :-/ :-/
Título: Re: Protocolo para RS485
Publicado por: Cryn en 14 de Abril de 2008, 00:16:51
gracias por lso detallles :mrgreen:

ahora si esta claro :-/ :-/

y ya lo implementaste?? cuanndta distancia puede aguantar??

muy buen trabajo, felicidades :-/
Título: Re: Protocolo para RS485
Publicado por: ales en 14 de Abril de 2008, 00:28:33
Hola Cryn, aún no lo he implementado, porque no he terminado pero en un futuro quizás no muy lejano pueda.

Sobre la distancia, supongo que soporte los 1200 metros del RS485, yo solo lo necesito para unos 50 metros como máximo pero en un ambiente muy ruidoso por ello la necesidad del rs485, el sistema ira instalado en una intercepción semafórica.

gracias por las felicitaciones, no eran necesarias.

saludos. :-)
Título: Re: Protocolo para RS485
Publicado por: cheapekt en 25 de Abril de 2008, 08:40:11
Enhorabuena Cryn, yo estoy trabajando en algo parecido a lo tuyo pero más simple, tengo que transferir datos desde un pic al pc,... el pc interrumpe cada hora al pic para que vuelque una tabla que tendrá guardada el pic, he pensado en usar el bus usb en el ordenador porque quiero que se pueda usar en los ordenadores portátiles, para ello he de  comprar un adaptador usb-rs232 para luego añadir un max485 que saque la señal mediante esa capa física. ¿Crees que hago lo correcto?

O existe otra opción más eficaz?
Título: Re: Protocolo para RS485
Publicado por: maunix en 25 de Abril de 2008, 09:06:17
Enhorabuena Cryn, yo estoy trabajando en algo parecido a lo tuyo pero más simple, tengo que transferir datos desde un pic al pc,... el pc interrumpe cada hora al pic para que vuelque una tabla que tendrá guardada el pic, he pensado en usar el bus usb en el ordenador porque quiero que se pueda usar en los ordenadores portátiles, para ello he de  comprar un adaptador usb-rs232 para luego añadir un max485 que saque la señal mediante esa capa física. ¿Crees que hago lo correcto?

O existe otra opción más eficaz?

cheapekt si usarás un adaptador usb-rs232 entonces tu interfaz es RS232.  Lo del adaptador será obligatorio para todo que quiera usar tu aplicación.

Si además le agregas un RS485, lo haces aún más específico.

Si piensas usar directamente RS485, te sugiero compres un adaptador USB-RS485 y asunto solucionado.

La otra alternativa, aunque requiere de instalación del lado de la pc, es que hagas todo via USB. 
Título: Re: Protocolo para RS485
Publicado por: Cryn en 25 de Abril de 2008, 23:28:42
Enhorabuena Cryn

 :shock:

 :D :D :D pero si yo ni hice nada  :roll: :mrgreen:

jejeje

el de los derechos de autor aqui es ales :mrgreen:
Título: Re: Protocolo para RS485
Publicado por: cheapekt en 28 de Abril de 2008, 02:25:39
Jejejee....

Lo siento ales,   entonces todo el merito es tuyo!!!
BUeno y el de los compañeros, muchas gracias

Saludos!
Título: Re: Protocolo para RS485
Publicado por: ales en 29 de Abril de 2008, 09:44:51
Hola cheapekt, te acabo de enviar un mensaje preguntando a que protocolo te referias y bueno ahora acabo de ver este tema y me doy cuenta a que te referias.

Pues cualquier cosa aqui estoy....

saludos.
Título: Re: Protocolo para RS485
Publicado por: cheapekt en 29 de Abril de 2008, 11:45:58
yo estoy trabajando en algo parecido a lo tuyo pero más simple, tengo que transferir datos desde un pic al pc,... el pc interrumpe cada hora al pic para que vuelque una tabla que tendrá guardada el pic, he pensado en usar el bus usb en el ordenador porque quiero que se pueda usar en los ordenadores portátiles, para ello he de  comprar un adaptador usb-rs232 para luego añadir un max485 que saque la señal mediante esa capa física. ¿Crees que hago lo correcto?



¿Hablando del tema, es posible que programe esto mediante TCP/IP,  con sockets? o es un disparate lo que he dicho.

Muchas gracias, saludos
Título: Re: Protocolo para RS485
Publicado por: ales en 29 de Abril de 2008, 20:05:19
Yo nunca he trabajado con usb y las pic, lo tengo en mente para futuros proyectos, pero te recomiendo que leas el datasheet del conversor usb-rs485 y debe aclararte algunas dudas.

Hablas del puerto RS323 del PIC, y el PIC no tiene RS232 el tiene salida TTL, o sea 0 y 5V oara su comunicación serie y la PC si tiene RS232 por lo que para comunicar la PIC con la PC por puerto serie necesitas un MAX232 para convertir TTL/RS232 y viceversa. Pero si el Conversor te da USB/RS485  conectas este RS485 a otro que iria al PIC.
O sea, PC conectada por USB al USB/RS485 y este a un RS485/TTL a la PIC.

Cuando te digo RS485 me refiero a un MAX485.
Y estoy seguro que desde la PIC se envía serie al MAX485 porque eso es lo que el recibe ahora la información a enviarle para que se envíe después por USB depende de los comandos que leas en el datasheet del conversor y del funcionamiento por USB en la PC con respecto a esto que no tengo idea.

Saludos.


Título: Re: Sobre el Protocolo
Publicado por: zagoaristides en 02 de Abril de 2009, 16:37:33
El protocolo RS485 que tuve que hacer formará parte de mi trabajo de diploma de la universidad, verás que la identificación (o sea la dirección) de los esclavos es por hardware, esto es necesario porque todos los PIC Slaves tendrán el mismo Software, ellas serán las encargadas de recoger información de sensores que tendrán conectadas por la otra UART del PIC. Por eso fue que escogí este PIC porque tiene dos UART por HW y por SW es un dolor de cabeza la simulación de UART que hace el CCS.
El Master también en un momento determinado se conectará via serie con una PC para recibir toda la configuración necesaria para el funcionamiento.
Y toda la información que le vaya pidiendo a los esclavos la procesará y almacenará en una MMC.

Entonces el protocolo como tal:
-El Master envía en un byte la dirección del esclavo con el que quiere comunicarse y en el bit LSB de este mismo byte con 0 informa que va a escribir y con 1 que va a leer (tipo I2C)
-El esclavo con esa ID envía su propia ID hacia el Master como respuesta de que está recibiendo la información (o sea: ACK).
-Y en caso que el Master vaya a escribir en el Esclavo envía ahora la Cant. de bytes que va a transferir al Esclavo.
- El esclavo espera esta cantidad y la envía de nuevo al Master como Ack, y así se comprueba que llegó bien la información.
-Después el Master comienza la transferencia de los bytes.
Si el Master quiere leer al Esclavo, entonces despues de enviar la ID lo que hace es esperar del Esclavo la cantidad de bytes que este vaya a transferirle y como Ack el Master envía dicha cantidad de nuevo al esclavo.
-Después el Esclavo comienza la transferencia.
-Cualquiera de los dos que esté transfiriendo, nada más termine el otro envía el byte 0xFF para que el otro conozca que ya fue recibido el paquete.

 En caso que en la espera de algún Ack se desbordara la INT TIMER0 que se activa cuando se espera el ACK se retorna ERROR en la escritura o lectura porque han pasado 1.6 segundos y creo que es suficiente como para considerar un problema, de todas formas podemos varias este tiempo.

Saludos Cryn. :-/ :-/


Genial el código ya lo analicé todo y eso que odio leer código de otro, pero me gusta la claridad aunque le hubiera puesto más comentarios para los que son foráneos como yo.

Ahora mi pregunta, de esta parte del código, fijate que la comenté para ir entendiéndola y no volver a pensar tanto digamos jeje. Está bien lo que pienso?

Esta parte de Código 

   //este que sigue sería un case especial cuando myCOM.cntRx o sea la cuenta de bytes recibidos
   if ((myCOM.cntRx > 2) && (myCOM.reading == true)) // Si recibimos más de de 2 bytes y estamos leyendo
   {
      if (myCOM.Slave_Active == true)
         myCOM.Buffer[myCOM.cntRx - 3] = dato;  // Este es el buffer que guardará los bytes recibidos y es - 3 
                                                // porque empezamos con myCOM.cntRx en 3 o sea queda dde. 0
      if ((myCOM.cntRx - 2) == myCOM.cnt_a_Rx)  // Acá probamos si ya llegamos al final del buffer. En este caso
                                                // cuando lleguemos al dato 20 myCOM.cntRx será 22
                                                // 20 + 1 de Dir+R/W + 1 de Cant. de Bytes a recibir
      {
         myCOM.cntRx = 0;                       // Reseteamos para una nueva comunicación
         myCOM.cnt_a_Rx = 0;                   
         
         if (myCOM.Slave_Active == true)       
         {                                      // Reseteamos las variables para una nueva comunicación
             myCOM.tramaLista = true;
             myCOM.tramaProcesada = false;
             myCOM.reading = false;
             myCOM.Slave_Active = false;
             myCOM.cnt_a_Tx = 0;
             write1byte_master(0xFF);     // Comando de Recepcion buena de bloque de datos
         }
      }
   }

Mil Gracias
Título: Re: Protocolo para RS485
Publicado por: ales en 05 de Abril de 2009, 12:39:24
Zagoaristides, este protocolo lo realicé hace como 6 meses para la tesis de ingeniería, por lo que la verdad que no recuerdo bien, pero estoy casi seguro que es como dices,  :D :D jjjaaaja, resulta que en estos momentos entiendes mejor el código que yo.
Pero recuerdo que después le agregué además código CRC y quedó mejor implementado, si tienes interés en utilizarlo me dices y lo busco para enviartelo.

Saludos, Ales.
Título: Re: Protocolo para RS485
Publicado por: Cryn en 06 de Abril de 2009, 11:39:04
creo que un CRC nos vendría muy bien a todos

un saludo y gracias
Título: Re: Protocolo para RS485
Publicado por: zagoaristides en 09 de Abril de 2009, 13:59:36
Zagoaristides, este protocolo lo realicé hace como 6 meses para la tesis de ingeniería, por lo que la verdad que no recuerdo bien, pero estoy casi seguro que es como dices,  :D :D jjjaaaja, resulta que en estos momentos entiendes mejor el código que yo.
Pero recuerdo que después le agregué además código CRC y quedó mejor implementado, si tienes interés en utilizarlo me dices y lo busco para enviartelo.

Saludos, Ales.

Si la verdad me vendría genial que me lo pases mi mail de hotmail es zagoaristides

(Problema con PIC 18F2553)
Por cierto ya que debes saber más que yo en esto, traté de hacer funcionar tu ejemplo con un 18F2553 y no pude, imposible, no sé que cosa hago mal pero no me reconoce la interrupción, tal vez sea un problema de configuración de este PIC pero no puedo decifrarlo. Alguien que sepa más me puede ayudar?

Adjunto los archivos con la simulación. Fíjense de cambiar la ruta donde busca el .h

Ahh y por cierto, traté con la librería RS485.c, me pasa lo mismo, recibo bien pero no envía bien o no se interrumpe cuando llega algo, no se si alguien la probó, pero no entiendo como hace cuando tiene que enviar ya que no cambia el PIN DE del MAX487. Si alquien quiere esta simulación me avisa y la paso también.


Gracias.

Título: Re: Protocolo para RS485
Publicado por: zagoaristides en 14 de Abril de 2009, 12:17:25
Lo pudiste mandar?
Título: Re: Protocolo para RS485
Publicado por: zagoaristides en 25 de Abril de 2009, 11:53:46
Zagoaristides, este protocolo lo realicé hace como 6 meses para la tesis de ingeniería, por lo que la verdad que no recuerdo bien, pero estoy casi seguro que es como dices,  :D :D jjjaaaja, resulta que en estos momentos entiendes mejor el código que yo.
Pero recuerdo que después le agregué además código CRC y quedó mejor implementado, si tienes interés en utilizarlo me dices y lo busco para enviartelo.

Saludos, Ales.

Hola Ale, aún estoy esperándolo. zagoaristides 4rr0b4 h0tm4il punt0 c0m es mi correo. Gracias.
Título: Re: Protocolo para RS485
Publicado por: zagoaristides en 05 de Mayo de 2009, 17:20:17
Zagoaristides, este protocolo lo realicé hace como 6 meses para la tesis de ingeniería, por lo que la verdad que no recuerdo bien, pero estoy casi seguro que es como dices,  :D :D jjjaaaja, resulta que en estos momentos entiendes mejor el código que yo.
Pero recuerdo que después le agregué además código CRC y quedó mejor implementado, si tienes interés en utilizarlo me dices y lo busco para enviartelo.

Saludos, Ales.

Hola Ale, aún estoy esperándolo. zagoaristides 4rr0b4 h0tm4il punt0 c0m es mi correo. Gracias.

Nada aún... voy a terminar como la del Muelle de San Blas
Título: Re: Protocolo para RS485
Publicado por: yanki31 en 20 de Mayo de 2009, 21:20:35
Buenas a todos señores electronicos sabios de los pics!! vengo antes que nada a pedir ayuda... casi auxilio por que? les explico, yo estoy por graduarme de Tecnico Superior en electricidad industrial y potencia, esto quiere decir alta tension, subestaciones electricas, instalaciones electricas residenciales, industriales.... en pocas palabras los conocimientos de nosotros en electronica y sobretodo en pic son demasiado basicos.... casi nulos. El hecho radica en que me mandaron a hacer "casi obligado" un proyecto final de grado sobre microcontroladores (PIC), estoy realmente desesperado por que de no poner a funcionar eso no me graduo y la verdad no tengo idea de como empezar si quiera.... agradeceria muchisimo si alguien me puede ayudar con esto... aqui les dejo la explicacion de lo que tengo que realizar:


PROYECTO: Diseño y puesta a prueba de un sistema remoto de adquisición de datos digitales y analógicos vía RS485 basado en microcontroladores PIC.


DESCRIPCIÓN

Se realizará un sistema de adquisición de múltiples datos analógicos y digitales, usando una baquelita orificada como base y varios Pics (seleccionar un micro que posea USART).

Este sistema debe contar con varios módulos que se pueden utilizar para los diferentes modos de funcionamiento del sistema. Los datos se envían por comunicación serial a una computadora personal, que lo recibe utilizando un software en Labview, y realiza las operaciones correspondientes para obtener el dato equivalente a la variable medida por el sensor.


MÓDULOS A DESARROLLAR

Comunicación PC – PIC      Desarrollo de un Subvi en Labview que permita
                                                 realizar un protocolo de acceso al medio.

Comunicación PIC – PIC     Desarrollo de una tarjeta de adquisición de datos (digitales y analógicos).



se que para ustedes esto quizas resulte algo simple... por que es de su area... pero para alguien del perfil que tengo es algo totalmente extraño por que no tengo los conocimientos para hacerlo. si me pueden ayudar se los agradeceria en el alma. gracias de antemano.
Título: Re: Protocolo para RS485
Publicado por: MLO__ en 20 de Mayo de 2009, 22:00:46
Hola.

Debes definir primero que PIC vas a utilizar, tambien que lenguaje de programacion -C, ASM, Basic- luego ya se podria entrar de lleno a lo que quieres.

Saludos
Título: Re: Protocolo para RS485
Publicado por: nicoach en 20 de Mayo de 2009, 22:44:52
Hola. Hablando de RS485, tengo una duda que puede parecer ridícula pero estoy dándole vueltas al proyecto que estoy haciendo para intercomunicar varios dispositivos y no sé si será por la hora pero no se me ocurre cómo averiguar, teniendo un pic y un max485 en cada dispositivo, si el bus ya se está utilizando por otros dispositivos o en cambio si está libre. ¿Me podríais indicar cuál sería la mejor manera?

Gracias de antemano.
Título: Re: Protocolo para RS485
Publicado por: MLO__ en 20 de Mayo de 2009, 23:38:40
Hola.

La idea es tener un protocolo organizado en la comunicacion, es decir, debes definir cual PIC es el MASTER y cuales los SLAVES. El MASTER pide la informacion y solo el micro que la tenga va a contestar.
Título: Re: Protocolo para RS485
Publicado por: nicoach en 21 de Mayo de 2009, 00:42:48
Hola.

La idea es tener un protocolo organizado en la comunicacion, es decir,  debes definir cual PIC es el MASTER y cuales los SLAVES. El MASTER pide la informacion y solo el micro que la tenga va a contestar.
Gracias por responder. Lo del protocolo más o menos lo tengo claro y lo voy a implementar de forma similar a como han hecho otros foreros pero en el trabajo que estoy haciendo va a haber varios master, es más, todos los dispositivos tienen que comportarse en determinados momentos en master o slave y muchas veces cuando un master envía datos a un slave éste tiene que responder. La duda que tengo es que, por ejemplo, cuando un dispositivo con ID 00 quiera comunicarse con otro con ID 01 primero tiene que comprobar si el bus está libre porque puede darse el caso a que el dispositivo ID 02 esté transmitiendo al dispositivo ID 03 y después de esa transmisión el ID 03 empiece a transmitir para comunicar alguna respuesta, cosa que ID 00 no sabe o no debería saber.

Bueno, se me acaba de ocurrir una manera, aunque no se si sería la más adecuada. Cada vez que un dispositivo inicie una transmición, como los demás van a estar a la escucha para comprobar si el mensaje es para ellos está claro que no van a transmitir en ese momento. Añadiendo un bit en la transmicion se podría indicar con un 1 si la linea seguirá ocupada ya que el dispositivo que inició la transmición puede estar esperando una respuesta de otro dispositivo o con un 0 si en cambio es el final de la transmisión y ya no se espera ninguna respuesta. Programo cada pic para que analice todas las cadenas que circulan en el bus y que lea en cada una la posición del bits que da el estado de la línea y que lo almacene en una variable. Así, si un pic tiene la necesidad de transmitir, primero comprueba el estado de la variable, si es 0 la cambia a 1 y empieza a transmitir. Si necesita respuesta de otro pic, en la cadena de transmición pone un 1 en el bit que indica la disponibilidad del bus. Despues de enviar la cadena el resto de los pic cambian su variable a 1 excepto el que tiene que responder. Éste, al responder, en la cadena manda el bit de disponibilidad a 0 y acto seguido todos los pic cambian su variable a 0 lo que les indica que el bus vuelve a estar libre.

Seguramente me he enrollado mucho pero se me ocurrió ahora mismo y no podía dejar de escribir por miedo a olvidarme (ya estoy bastante cansado, aquí ahora son las 4:40 de la madrugada y todavía sigo dándole al asunto)

Título: Re: Protocolo para RS485
Publicado por: stk500 en 21 de Mayo de 2009, 05:04:11
Hola Nicoach!
No se si tu conoce el DMX512??? pues si revisa el Protocolo, te va a sacar de muchas dudas, el protocologo DMX512 esta hechos para esto, lo que debe tener claro que es Receptor / Transmisor
cada modulo lleva su direcion preprogramada, para asi evitar Colazo entre cadas dipositivo.
Saludos

 
Título: Re: Protocolo para RS485
Publicado por: nicoach en 21 de Mayo de 2009, 11:54:19
Hola Nicoach!
No se si tu conoce el DMX512??? pues si revisa el Protocolo, te va a sacar de muchas dudas, el protocologo DMX512 esta hechos para esto, lo que debe tener claro que es Receptor / Transmisor
cada modulo lleva su direcion preprogramada, para asi evitar Colazo entre cadas dipositivo.
Saludos

 
Gracias stk500! He estado buscando información del protocolo DMX512 pero no he encontrado mucho sobre cómo funciona realmente es el protocolo. En cualquier caso, he pensado que la cadena de envío podría ser la siguiente:
*AABBCCDDDDDDDDE#

Donde:
* = Inicio de la cadena.
AA = Id del dispositivo al que va destinada la cadena.
BB = Id del dispositivo que envía la cadena. Necesario para que el destinatario pueda responderle.
CC = Refencia de la instrucción. Cada dispositivo tendrá una subrutina programada con una referencia por cada instrucción que deba realizar.
DDDDDDDD = datos que se envían relacionados con la instrucción.
E = Es un 1 si el bus seguirá ocupado porque espera respuesta desde otro dispositivo. Un 0 si después de la instrucción queda libre.
# = Carácter de fin de instrucción.

Espero que con este planteamiento no tenga problemas de comunicacion pero ¿qué opinais?

Saludos!
Título: Re: Protocolo para RS485
Publicado por: yanki31 en 21 de Mayo de 2009, 19:26:10
hola soy el del proyecto de comunicacion via RS485 que trata sobre esto:

PROYECTO: Diseño y puesta a prueba de un sistema remoto de adquisición de datos digitales y analógicos vía RS485 basado en microcontroladores PIC.


DESCRIPCIÓN

Se realizará un sistema de adquisición de múltiples datos analógicos y digitales, usando una baquelita orificada como base y varios Pics (seleccionar un micro que posea USART).

Este sistema debe contar con varios módulos que se pueden utilizar para los diferentes modos de funcionamiento del sistema. Los datos se envían por comunicación serial a una computadora personal, que lo recibe utilizando un software en Labview, y realiza las operaciones correspondientes para obtener el dato equivalente a la variable medida por el sensor.


MÓDULOS A DESARROLLAR

Comunicación PC – PIC      Desarrollo de un Subvi en Labview que permita
                                                 realizar un protocolo de acceso al medio.

Comunicación PIC – PIC     Desarrollo de una tarjeta de adquisición de datos (digitales y analógicos).


Falto decirles que el pic a utilizar puede ser el 16f873 o el 16f877 que son los mas faciles de conseguir aqui en venezuela, el tipo de lenguaje de programacion es pic C.

 De verdad el que me pueda ayudar en esto se lo agradeceria en el alma... ya que el desgraciado de mi tutor en vez de orientarme o ayudarme, lo que quiere al parecer es que repruebe este proyecto esto en conjunto con los demas profes que me dan clase. Como obiviamente no soy electronico si no de electricidad industrial no tengo los conociemientos para realizar esto, he hecho pruebas con algunos circuitos y programas que he visto por ahi pero no funcionan, en mi univ al parecer nadie sabe hacer la puta comunicacion RS485 y mi primer y principal problema radica en comunicar entre PICS con ese tipo de comunicacion. agradeceria mucho la ayuda de alguien que por lo menos me oriente
Título: Re: Protocolo para RS485
Publicado por: yanki31 en 24 de Mayo de 2009, 00:16:26
Hola.

Debes definir primero que PIC vas a utilizar, tambien que lenguaje de programacion -C, ASM, Basic- luego ya se podria entrar de lleno a lo que quieres.

Saludos

el pic 16f877 o el 16f873 que son los mas faciles de conseguir aqui en venezuela. el lenguaje de programacion pic C. y necesito por la menos un programa que comunique pics entre si y a la pc con este tipo de protocolo RS485. de verdad espero puedas ayudarme.
Título: Re: Protocolo para RS485
Publicado por: MLO__ en 24 de Mayo de 2009, 15:15:56
Un Rele en la lejania by RedPic (http://www.todopic.com.ar/foros/index.php?topic=19057.0)

Para hacerlo PIC a PIC basta conectar el otro PIC y listo, ah!! y generar el codigo para recepcion, que es lo mismo del slave del ejemplo.

Saludos
Título: Re: Protocolo para RS485
Publicado por: yanki31 en 24 de Mayo de 2009, 16:31:57
si pero la cosa es que no se como hacer este codigo en pic C para comunicar los pics y la pc via RS485, es ahi donde tengo la tranca en mi proyecto, por que la verdad poco o nada se de los micros... es mas que obvio que esto no es un proyecto para alguien que estudie electricidad si no mas bien para alguien de electronica. si pudiera tener un codigo o programa que comunique los pics entre si y el maestro al pc via RS485, ya lo demas seria facil. necesito ayuda es en ese sentido
Título: Re: Protocolo para RS485
Publicado por: vasconinicolas en 26 de Mayo de 2009, 17:10:57
Maunix, urgando por la web veo que las interfaz USB - RS 485 son medio caras y escasas, al menos por Argentina Cordoba. No sería mas económico y factible poner entonces: desde la notebook, un USB-RS232 (adaptador facil de conseguir en casas de informatica), luego en la placa un RS232-RS485 (max232 y max485), obteniendo los valores TTL para entrar al pic de forma directa...?? Duda existencial jjaja
Saludos
N
Título: Re: Protocolo para RS485
Publicado por: zagoaristides en 29 de Mayo de 2009, 22:25:40
Les dejo el protocolo que logré desarrollar a base de esfuerzo y mucha lectura. Puede faltarle depuración. Hay cosas que se pueden hacer mejor y más rápidas, pero en si funciona. Probado para varios chips de la familia 18F

El código del master primero pide un dato, si le llega bien enciende el led amarillo (simulación proteus), luego envía algo al slave, si le llega bien hace lo mismo que el master.
Con esto pueden mandar o pedir lo que deseen.

Ci vediamo ragazzi!
Título: Re: Protocolo para RS485
Publicado por: yanki31 en 29 de Mayo de 2009, 23:51:58
disculpa ese codigo de programacion sirve para comunicar pics entre si via rs845 pero para pics 16F8XX??? por que de verdad necesito ayuda con eso... en eso esta la piedra de tranca de mi proyecto... necesito poner a comunicar los pics entre si via rs485... por que del pic a la pc no tengo problema... pero tengo que usar un pic 16F877 o 73 por que son los que se consiguen aca en venezuela... o en dado caso el 16F628.... si puedes ayudarme con esto te lo agradeceria mucho
Título: Re: Protocolo para RS485
Publicado por: zagoaristides en 30 de Mayo de 2009, 02:31:26
disculpa ese codigo de programacion sirve para comunicar pics entre si via rs845 pero para pics 16F8XX??? por que de verdad necesito ayuda con eso... en eso esta la piedra de tranca de mi proyecto... necesito poner a comunicar los pics entre si via rs485... por que del pic a la pc no tengo problema... pero tengo que usar un pic 16F877 o 73 por que son los que se consiguen aca en venezuela... o en dado caso el 16F628.... si puedes ayudarme con esto te lo agradeceria mucho

Debería funcionar sin problemas, probalo y contame.
Título: Re: Protocolo para RS485
Publicado por: Fidel Martins en 05 de Junio de 2009, 16:33:03
para Yanki31
No entendi como te vas a graduar en la parte de alta tencion, estacion de distribuicion y la prueba es un proyecto con una pic. Y percibo que no los prepararon. Hai un gran engaño? o una gran fraude? Halgo huele mui mal en todo esto.
Título: Re: Protocolo para RS485
Publicado por: yanki31 en 06 de Junio de 2009, 22:44:29
te explico: resulta que yo veo una materia llamado microprocesadores... que esta en el pensum de mi carrera, pero obviamente no es base... nos la dan casi que como cultura general, bueno la cosa fue que a mi me reprobaron esa materia en mi ultimo año ( a mi solo) por que el profesor estaba empeñado en que alguien hiciera ese proyecto que el propuso con el pic. como fue la unica que me quedo, llegaron a un acuerdo conmigo de que si queria graduarme este año tenia que hacer ese proyecto, y de aprobarlo pasaba la materia y el proyecto final de grado a la vez.... en pocas palabras me jodieron... no me quedo de otra... ademas que en clase solo vimos si acaso el tema de interrupciones con el pic... este profesor pretende que yo haga ese proyecto completo de electronica aplicada... en 8 semanas!!! de las cuales estoy en mi semana 5!!!. ya he resuelto algunas cosas... con ayuda de gente que sabe del tema.... ahora si alguien pudiera ayudarme con esto que me pidio el "señor" se le agradeceria mucho:

"monta en proteus un octoacoplador que dispare un triac con diferentes angulos de disparo para lo cual debes implementarun circuito de cruce por cero que le avise al pic para que este realice un retardo equivalente al angulo de disparo"

el circuito de cruce por cero en proteus lo tengo ya.... lo que no tengo es el programa que realice eso.... y obviamente no se como hacerlo.... el pic que estoy usando es el 16f628 y el lenguaje de programacion es pic C. si alguien puede ayudarme en esto se lo agradeceria muchismo
Título: Re: Protocolo para RS485
Publicado por: MLO__ en 06 de Junio de 2009, 22:51:37
Esto te puede ayudar:

Control de Fase con interrupciones (http://www.todopic.com.ar/foros/index.php?topic=21584.0;do=Bookmark)
Título: Re: Protocolo para RS485
Publicado por: yanki31 en 07 de Junio de 2009, 00:18:05
gracias hermano.... lo voy a revisar... de todas maneras sin verlo te lo agradesco... y agradesco a todos los que me han querido ayudar en esta labor titanic de hacer algo que no es ni mi area ni tampoco de mis conocimientos! gracias!!
Título: Re: Protocolo para RS485
Publicado por: yanki31 en 07 de Junio de 2009, 13:03:52
disculpa MLO ese codigo que colocaste para sirve para un pic 16f628? ese es el que estoy usando y tu usas alli un 18.
Título: Re: Protocolo para RS485
Publicado por: MLO__ en 07 de Junio de 2009, 13:56:21
Si claro, sirve incluso para un PIC12F, solo tienes que cambiar el .h del micro correspondiente.

Saludos
Título: Re: Protocolo para RS485
Publicado por: yanki31 en 07 de Junio de 2009, 22:55:27
gracias men... mañana lo pruebo en la univ y te comento como me fue!
Título: Re: Protocolo para RS485
Publicado por: yanki31 en 09 de Junio de 2009, 12:31:02
alguien sabe si se puede realizar esto:

obtener una señal senosoidal (de la red) ... detectar su cruce por cero... realizar un retardo mediante un timer y luego de realizado este retardo .. enviar una señal via serial a un octoacoplador que dispare un triac... todo esto mediante un subvi en labview??' esto es lo ultimo que me falta para mi proyecto... (el tiempo del retardo es equivalente al angulo de disparo que se coloque para el triac).... si alguien me puede ayudar con esto se los agrdeceria mucho....!!
Título: Re: Protocolo para RS485
Publicado por: MLO__ en 09 de Junio de 2009, 14:44:24
Hola.

A ver si entendi: Fase -> PIC -> SERIAL -> PIC -> Opto -> TRIAC????

Si vas a controlar la fase debes tener en cuenta que solo tienes 8mS para generar el disparo ... creo que el tiempo de disparo se veria afectado por la transmision.

Si lo que quieres es: PC -> RS232 -> PIC -> Opto -> TRIAC es no hay problema con los tiempos.

Saludos
Título: Re: Protocolo para RS485
Publicado por: yanki31 en 09 de Junio de 2009, 19:27:23
si realmente creo que es como la ultima secuencia que dices.... por que esa fue lo que me dijo mi tutor...pero entonces si se puede realizar?  como haria eso?
Título: Re: Protocolo para RS485
Publicado por: yanki31 en 09 de Junio de 2009, 19:39:14
explicandome mejor.. el quiere que del pic muestre una señal senosoidal.... me imagino que mediante el conversor analogico digital que tambien tuve que realizar... esta señal es la señal de la red, y esta señal se muestre en la pc (la forma de la onda) una vez en la pc (por labview) realizar un subvi que haga el cruce por cero y realice un retardo equivalente al angulo de disparo del triac... y cuando se produzca ese retardo enviar via serial (imagino que enviar al pic) un pulso al octoacoplador (el MOC3010) para hacer el disparo del triac. EN SI LO QUE EL PRETENDE ES REALIZAR UNA ESPECIE DE APLICACION PARA UNA PRACTICA DE LABORATORIO QUE SE QUIERE REALIZAR DONDE DESDE LA PC TU COLOCAS EL ANGULO DE DISPARO QUE QUIERES VER EN EL TRIAC Y MEDIANTE EL PIC Y TODAS LAS DEMAS COSAS (LABVIEW, LA COMUNICACION RS484, EL CONVERSOR ANALOGICO DIGITAL) PODER HACER ESTO.

MLO SI TIENES ALGUNA RECOMENDACION DE COMO HACERLO MAS SENCILLO, O SI ESA FORMA QUE MI TUTOR PLANTEA SE PUEDE HACER, QUE ME RECOMIENDAS? Y GRACIAS DE VERDAD POR RESPONDER Y ESTAR PENDIENTE...  HAZ SIDO DE MUCHISIMA AYUDA PARA MI
Título: Re: Protocolo para RS485
Publicado por: MLO__ en 09 de Junio de 2009, 22:45:54
Ok.

El problema de muestrear la señal y hacer la deteccion del flanco en el PC es que el angulo de disparo va a tener un pequeño retraso, pero si se podria, pero hay que medir muy bien los tiempos que tarda todo eso.

Para mi, la mejor opcion, es que el PIC detecte el cruce por cero -mediante interrupciones- y fijar el angulo de disparo desde el PC por medio del VI en LabView. El RS484 no lo conozco, conozco el RS485, y si se puede tambien usar para este fin. El muestreo si se puede hacer con el metodo que te dije anteriormente sin generar problemas con el control de fase.

Saludos
Título: Re: Protocolo para RS485
Publicado por: yanki31 en 10 de Junio de 2009, 01:06:38
es rs485 me equivoque escribiendo... bueno voy a hablar con mi tutor... por que el esta necio en querer hacerlo casi todo en la pc, pero bueno cualquier cosa te comento... y  gracias por tu atencion
Título: Re: Protocolo para RS485
Publicado por: yanki31 en 13 de Junio de 2009, 14:02:22
hola MLO recuerdas que te dije que te contaria sobre los resultados de lo del cruce por cero... pues resulta que mi tutor sigue empeñado en hacerlo todo en labview... es decir mostrar la onda en la pantalla, colocarle el angulo en que se quiere disparar, hacer el cruce por cero, el retardo correspondiente, y luego enviar la señal al octoacoplador que dispara el triac .. es decir todo hasta enviar la señal al octoacoplador lo quiere en un subvi en labview.. y la verdad ademas de nunca haber usado el labview no tengo idea de como hacerlo... y solo me quedan 3 semanas para la entrega final.... si puedes ayudarme con esto me salvarias aun mas la vida... o cualquiera que lea esto y sepa como hacerlo se les agradeceria mucho la ayuda.
Título: Re: Protocolo para RS485
Publicado por: yanki31 en 23 de Junio de 2009, 21:16:13
HOLA un saludo a todos los usuarios del foro... escribo en esta ocacion para preguntar ya que estoy desesperado con esto... estuve probando la comunicacion RS485 con el pic... y use el codigo que colocan en el post "un rele en la lejania" en ese programa se comunicaba un pic con un pc via RS485, bueno en mi caso necesitaba comunicar dos pic (un maestro y un esclavo) y del maestro observarlo en la pc. En donde estudio poseen un conversor de RS485 a RS232 asi que por ese lado no hay problema. el problema se sucita con la comunicacion PIC - PIC. para probar la comunicacion entre ellos hice un circuito en el cual coloque pulsadores y leds en ambos pic y se trata de prender los leds del esclavo con los pulsadores del maestro y viceversa. bueno esto no me funciono. lo probe primero em proteus y la vaina funciono bien perfecto, cuando lo monte en el protoboard la cosa se complico.... ya que no hizo lo que si hacia en proteus que era encender los leds de un pic con los pulsadores del otro. use el hyperterminal de la pc para observar si se estaba comunicando y resulto que del mestro al esclavo si manda la palabra que programe para encender los leds.. pero del esclavo al maestro NO MANDA NADA... es decir manda pura basura... caracteres extraños... lo que me preocupa es que ya probe todos los casos de gafedades, es decir, el cableado, los componentes todos funcionan (los pics, los sn75176) el conversor lo probe y tambien funciona... ya de verdad no se que probar y que descartar.... SI ALGUIEN SABE QUE ESTOY HACIENDO MAL O QUE ESTOY DEJANDO DE HACER POR FAVOR AYUDENME!! aqui les adjunto el programa en PIC C de lo que se programo y el circuito tal cual como lo monte en el proteus ...
Título: Re: Protocolo para RS485
Publicado por: darck_khronos en 23 de Junio de 2009, 21:46:28
HOLA un saludo a todos los usuarios del foro... escribo en esta ocacion para preguntar ya que estoy desesperado con esto... estuve probando la comunicacion RS485 con el pic... y use el codigo que colocan en el post "un rele en la lejania" en ese programa se comunicaba un pic con un pc via RS485, bueno en mi caso necesitaba comunicar dos pic (un maestro y un esclavo) y del maestro observarlo en la pc. En donde estudio poseen un conversor de RS485 a RS232 asi que por ese lado no hay problema. el problema se sucita con la comunicacion PIC - PIC. para probar la comunicacion entre ellos hice un circuito en el cual coloque pulsadores y leds en ambos pic y se trata de prender los leds del esclavo con los pulsadores del maestro y viceversa. bueno esto no me funciono. lo probe primero em proteus y la vaina funciono bien perfecto, cuando lo monte en el protoboard la cosa se complico.... ya que no hizo lo que si hacia en proteus que era encender los leds de un pic con los pulsadores del otro. use el hyperterminal de la pc para observar si se estaba comunicando y resulto que del mestro al esclavo si manda la palabra que programe para encender los leds.. pero del esclavo al maestro NO MANDA NADA... es decir manda pura basura... caracteres extraños... lo que me preocupa es que ya probe todos los casos de gafedades, es decir, el cableado, los componentes todos funcionan (los pics, los sn75176) el conversor lo probe y tambien funciona... ya de verdad no se que probar y que descartar.... SI ALGUIEN SABE QUE ESTOY HACIENDO MAL O QUE ESTOY DEJANDO DE HACER POR FAVOR AYUDENME!! aqui les adjunto el programa en PIC C de lo que se programo y el circuito tal cual como lo monte en el proteus ...

Aqui te dejo el link de una pcb que hice para ese protocolo

485 Rs 232 (http://khronoscorp.com/fc/index.php?topic=99.0)
Título: Re: Protocolo para RS485
Publicado por: yanki31 en 23 de Junio de 2009, 21:51:21
hermano gracias por responder y mostrar interes.... pero yo no necesito convertir de RS232 a RS485 o viceversa... ya que para eso tengo un conversor... mi problema es la comunicacion PIC - PIC via rs485, es ahi donde tengo el problema...
Título: Re: Protocolo para RS485
Publicado por: darck_khronos en 23 de Junio de 2009, 22:38:38
hermano gracias por responder y mostrar interes.... pero yo no necesito convertir de RS232 a RS485 o viceversa... ya que para eso tengo un conversor... mi problema es la comunicacion PIC - PIC via rs485, es ahi donde tengo el problema...


bueno ya sabes que necesitas dos 485 para realizar esa Accion por que si solo tienes uno no sirve ya que el 485 trabaja mediante voltaje diferencial
Título: Re: Protocolo para RS485
Publicado por: darck_khronos en 23 de Junio de 2009, 22:40:24
Yo realize lo que tu quieres  y yo realice la siguiente comunicacion

Pc-picMaster-PicSlave los tres con 485 usando un Adc, pwm y la pc con Labview para poder hacer monitoreo
Título: Re: Protocolo para RS485
Publicado por: yanki31 en 23 de Junio de 2009, 22:42:23
claro eso lo se... si quieres ves el circuito que adjunte mas arriba... el circuito es: PIC - SN75176 - SN75176 - PIC . y esa comunicacion me da problemas con el ultimo pic.
Título: Re: Protocolo para RS485
Publicado por: yanki31 en 23 de Junio de 2009, 22:47:55
si realizaste eso... pc- pic master- pic slave es exactamente lo que necesito.....!!! incluso el labview para el monitoreo!! ese es mi proyecto.... ahora te pregunto : el adc es el conversor analogico digital? y para que usas el pwm???? HERMANO TE EXPLICO YO ESTUDIO ELECTRICIDAD INDUSTRIAL Y POTENCIA.... Y COMO SABRAS ESO ES PURA ELECTRONICA, YO DE ELECTRONICA NO SE CASI NADA PERO NECESITO RESOLVER ESTE PROBLEMA SI NO NO ME GRADUO.... AYUDAME YA QUE TU SABES HACER ESO!!! POR FAVOR YA ME QUEDA POCO TIEMPO PARA ENTREGAR!!
Título: Re: Protocolo para RS485
Publicado por: darck_khronos en 23 de Junio de 2009, 23:08:51
Era para hacer el monitoreo de una Caldera el Adc es para medir temperatura y el Pwm es para hacer girar una hélice que enfriara el sistema
Título: Re: Protocolo para RS485
Publicado por: yanki31 en 23 de Junio de 2009, 23:15:31
bueno lo mio es mas sencillo.... lo que tengo que hacer es 3 modulos de adquisicion de datos. el primero es entradas analogicas. es decir, en una baquela tendre un pic que se comunicara con la pc, y por medio de labview observar la forma de onda de la red.

2do modulo: entradas digitales. con otro pic en otra baquela tengo que hacer enceder unos leds que esten en labview mediante unos switch que tendre en la baquela.

3er modulo: salidas digitales. en este caso es viceversa... tendre los leds en la baquela y los encendere con pulsadores ubicados en labview.   toda la comunicacion es RS485.

ademas estos modulos deben comunicarse entre si.... y llegar estos a su vez a un pic maestro que los comunicara con la pc. de verdad esto me tiene mal.... CREES QUE PUEDAS AYUDARME??? POR LO MENOS A RESOLVER LA COMUNICACION PIC - PIC RS485. TE LO AGRADECERIA EN EL ALMA DE VERDAD!!!
Título: Re: Protocolo para RS485
Publicado por: darck_khronos en 23 de Junio de 2009, 23:37:43
bueno lo mio es mas sencillo.... lo que tengo que hacer es 3 modulos de adquisicion de datos. el primero es entradas analogicas. es decir, en una baquela tendre un pic que se comunicara con la pc, y por medio de labview observar la forma de onda de la red.

2do modulo: entradas digitales. con otro pic en otra baquela tengo que hacer enceder unos leds que esten en labview mediante unos switch que tendre en la baquela.

3er modulo: salidas digitales. en este caso es viceversa... tendre los leds en la baquela y los encendere con pulsadores ubicados en labview.   toda la comunicacion es RS485.

ademas estos modulos deben comunicarse entre si.... y llegar estos a su vez a un pic maestro que los comunicara con la pc. de verdad esto me tiene mal.... CREES QUE PUEDAS AYUDARME??? POR LO MENOS A RESOLVER LA COMUNICACION PIC - PIC RS485. TE LO AGRADECERIA EN EL ALMA DE VERDAD!!!

La comunicacion no hay Problema ahorita te hago un diagrama lo que si es que si puedes de una vez programa tus Pics por que eso sera lo que mas te cause problemas, mira el principio basico es la placa que te mostre si me dices que Pics Estas utilizando para que te haga el diagrama de como conectarlos
Título: Re: Protocolo para RS485
Publicado por: yanki31 en 23 de Junio de 2009, 23:41:59
yo estoy usando el pic 16f628 yo he programado los pic en pic C y ya hice pruebas.. se como conectarlos... es mas use el codigo de programacion de otro post donde usan la comunicacion RS485 y ese programa funciono segun los que lo montaron.... incluso yo lo probe con el simulador PROTEUS y sirvio... pero cuando lo monte en protoboard la cosa no quizo servir... es ahi donde estoy trancado men
Título: Re: Protocolo para RS485
Publicado por: darck_khronos en 23 de Junio de 2009, 23:43:41
yo estoy usando el pic 16f628 yo he programado los pic en pic C y ya hice pruebas.. se como conectarlos... es mas use el codigo de programacion de otro post donde usan la comunicacion RS485 y ese programa funciono segun los que lo montaron.... incluso yo lo probe con el simulador PROTEUS y sirvio... pero cuando lo monte en protoboard la cosa no quizo servir... es ahi donde estoy trancado men


Use tu simulacion pero no logro abrirla xD ahorita te subo la conexcion
Título: Re: Protocolo para RS485
Publicado por: yanki31 en 23 de Junio de 2009, 23:46:22
ah quizas es por el proteus que tienes.... ese es el proteus 7.5 el ultimo hasta ahora.... y para las versiones anteriores no sirve.... pero donde esta esa simulacion esta la foto del circuito que hice en proteus....indicando donde coloque el conversor que uso para RS485 - RS232 - pc
Título: Re: Protocolo para RS485
Publicado por: darck_khronos en 23 de Junio de 2009, 23:57:42
(http://img40.imageshack.us/img40/5807/sshot35.png)

yo tengo el 7.4 xD
Título: Re: Protocolo para RS485
Publicado por: darck_khronos en 23 de Junio de 2009, 23:58:31
ya nadamas tu configuras cuando quieres que se Activen o Desactiven los transceivers
Título: Re: Protocolo para RS485
Publicado por: yanki31 en 24 de Junio de 2009, 00:02:58
esa es la misma conexion que use para lo que estaba probando..... pero no me funciono! usando el pic - el transceiver - transceiver - pic . igual en los mismos pines y todo. pero no me funciono la comunicacion del segundo pic al primero (de slave a master) ahi es donde no entiendo que paso
Título: Re: Protocolo para RS485
Publicado por: darck_khronos en 24 de Junio de 2009, 00:04:01
ah quizas es por el proteus que tienes.... ese es el proteus 7.5 el ultimo hasta ahora.... y para las versiones anteriores no sirve.... pero donde esta esa simulacion esta la foto del circuito que hice en proteus....indicando donde coloque el conversor que uso para RS485 - RS232 - pc

Con tus fucibles mas este codigo solo modificandolo pero asi te podrias ahorrar mas pasos
Código: C
  1. #use delay(clock=48000000)
  2. #use rs232(baud=9600, xmit=PIN_C6, rcv=PIN_C7)
  3.  
  4. #build(reset=0x800 , interrupt=0x808)
  5. #ORG 0x000, 0x7ff {}
  6.  
  7. void main() {
  8.  
  9.    char lectura;
  10.    float temperatura;
  11.    byte pwm;
  12.  
  13.    setup_ccp2(CCP_PWM);
  14.    setup_timer_2(T2_DIV_BY_4, 99, 1);
  15.  
  16.    do{
  17.  
  18.       lectura=getc();
  19.  
  20.       if(lectura=='R'){
  21.                temperatura=getc();
  22.                if(temperatura>30)
  23.                {
  24.                    pwm=4*(temperatura-30);
  25.                    set_pwm2_duty(pwm);
  26.                 }
  27.                else
  28.                {
  29.                     set_pwm2_duty(0x00);
  30.                }
  31.  
  32.       }
  33.  
  34.       if(lectura=='S'){
  35.          pwm=getc();
  36.          set_pwm2_duty(pwm);
  37.       }
  38.  
  39.    }while(true);
  40. }
Título: Re: Protocolo para RS485
Publicado por: darck_khronos en 24 de Junio de 2009, 00:05:25
Realiza una comunicacion Sencilla, nose programa que 1 pic lea una entrada y que la transmita y que el segundo pic la haga nose

Pic Rb0=1
Pic 2 Rb0=1

pic rb0=0
pic2 Rb0=0
Título: Re: Protocolo para RS485
Publicado por: yanki31 en 24 de Junio de 2009, 00:08:02
eso se hizo tambien... lo que me dices... lee los codigos que deje en el rar para que veas que mas sencillo no lo pude hacer... pero la verdad si el problema fuera por codigo el en simulador no me habria corrido perfectamente.... y por conexiones he revisado TOOODOOO lo que pueda ser y nada!!! estoy casi que me rindo
Título: Re: Protocolo para RS485
Publicado por: darck_khronos en 24 de Junio de 2009, 15:40:32
eso se hizo tambien... lo que me dices... lee los codigos que deje en el rar para que veas que mas sencillo no lo pude hacer... pero la verdad si el problema fuera por codigo el en simulador no me habria corrido perfectamente.... y por conexiones he revisado TOOODOOO lo que pueda ser y nada!!! estoy casi que me rindo

Ok pero mira, para poder ejercer esta Red 485 tienes que usar la interrupcion str del 232 de la computadora, Ademas tambien tienes que configurar los Pics Para que esten escuchando siempre y cuando les llege una identificacion cambien a Envio por que si no los mantienes en modo escucha solo ocacionaras que no se haga transmicion.

un ejemplo:

La pc va a leer lo que sucede asi que envia una r para leer el primer pic despues de 40 ms manda una s para leer el segundo y despues de otro retardo manda una t para leer el ultimo pic, asi podrias hacer la lectura de cada uno y por lo mismo si les enviaras datos lo que harias es que:

Si el primer pic recibe datos mandas la R este responde con algun otro caractes y por ultimo inmediatamente le mandas las inctrucciones que debe ejecutar
Título: Re: Protocolo para RS485
Publicado por: yanki31 en 24 de Junio de 2009, 15:43:16
ok khronos... pero no entendi lo que debo de usar la interrupcion del str 232 de la pc... como es eso??? lo demas si lo tengo mas claro
Título: Re: Protocolo para RS485
Publicado por: darck_khronos en 24 de Junio de 2009, 15:47:41
ok khronos... pero no entendi lo que debo de usar la interrupcion del str 232 de la pc... como es eso??? lo demas si lo tengo mas claro



Lo que pasa es que en el db9 hay un pin que te indica si esta escuchando o esta enviando, como referencia puedes usar el pcb que te marque post atras el convertidor de 232 a 485 creo que es el 7 al parecer, con ese haces que el transceiver este en modo transmicion o modo escucha
Título: Re: Protocolo para RS485
Publicado por: yanki31 en 24 de Junio de 2009, 15:55:29
AH OK YA SE A QUE TE REFIERES.... YO USO UN CONVERSOR YA HECHO... QUE SOLO LO CONECTO AL PUERTO SERIE DE LA PC Y POR EL OTRO EXTREMO TENGO DOS CABLES (A Y B) QUE LOS COLOCO EN MEDIO DE LOS 75176 QUE SON LOS QUE HACEN LA CONVERSION DE RS232 A RS485. LO QUE TU ME TRATAS DE DECIR ES QUE COMO ES UNA COMUNICACION HALF DUPLEX A DOS HILOS SOLO SE PUEDE TRANSMITIR O SOLO SE PUEDE RECIBIR... PERO NO AMBAS A LA VEZ... O ME EQUIVOCO?
Título: Re: Protocolo para RS485
Publicado por: darck_khronos en 24 de Junio de 2009, 15:59:16
AH OK YA SE A QUE TE REFIERES.... YO USO UN CONVERSOR YA HECHO... QUE SOLO LO CONECTO AL PUERTO SERIE DE LA PC Y POR EL OTRO EXTREMO TENGO DOS CABLES (A Y B) QUE LOS COLOCO EN MEDIO DE LOS 75176 QUE SON LOS QUE HACEN LA CONVERSION DE RS232 A RS485. LO QUE TU ME TRATAS DE DECIR ES QUE COMO ES UNA COMUNICACION HALF DUPLEX A DOS HILOS SOLO SE PUEDE TRANSMITIR O SOLO SE PUEDE RECIBIR... PERO NO AMBAS A LA VEZ... O ME EQUIVOCO?


Exacto o puedes configurarlo como Full duplex pero son mas Arreglos Asi como half solo perderias En cuention de ms por recolecciond e datos ya es a como gustes

Pero en este caso yo te recomiendo la Half
Título: Re: Protocolo para RS485
Publicado por: yanki31 en 25 de Junio de 2009, 20:53:58
GRACIAS darck_khronos !! por ayudarme y prestarme atencion en mi problema con la conexion! si supieras que era lo MAS ESTUPIDO que podia imaginar!! del lado del pic que me mandaba basura era por que tenia puesto un cristal (oscilador) de 10 MHz en vez de 4Mhz que era lo que tenia programado el pic!! jejeje pero ya funciona bien la cosa. ahora me queda para terminar hacer esto en labview:

1er modulo: Mediante un subvi en labview mostrar la forma de onda de la red (el pic manda esta informacion al pc y labview la ejecuta)

2do modulo: Mediante un subvi en labview que poseea unos leds poderlos encencer desde un circuito externo con unos pulsadores (2) con el pic.

3er modulo: Mediante un subvi en labview que posee unos pulsadores o interruptores poder encender unos leds ubicados en un circuito externo con el pic.

SI ALGUIEN CONOCE DE LABVIEW Y ME PUEDA AYUDAR CON ESTO ME SALVARIA LA VIDA, NO CONOSCO CASI EL PROGRAMA Y ME QUEDE MUY POCO TIEMPO PARA ENTREGAR!!
Título: Re: Protocolo para RS485
Publicado por: yanki31 en 30 de Junio de 2009, 20:31:13
AYUDA CON LABVIEW POR FAVOR!!! QUIEN ME AYUDA CON LABVIEW PARA REALIZAR COMUNICACION SERIAL RS232!!
Título: Re: Protocolo para RS485
Publicado por: darck_khronos en 30 de Junio de 2009, 22:40:46
te paso aqui mi programa nada mas vez como esta hecho y lo modificas


http://rapidshare.com/files/250516289/pwm_3.vi
Título: Re: Protocolo para RS485
Publicado por: yanki31 en 30 de Junio de 2009, 22:43:00
gracias dark!!! pero de todas maneras me podrias decir de que se trata tu programa para tener mas idea al abrirlo... (lo estoy descargando) por que yo de labview no se nada la verdad.... lo conoci gracias a este proyecto por que ni sabia que existia
Título: Re: Protocolo para RS485
Publicado por: yanki31 en 30 de Junio de 2009, 22:47:50
ya lo vi... yo se que se usa las cajitas del visa para la comunicacion.... pero.... se que parecera estupido para el que sepa del programa... pero como no tengo tiempo para aprenderlos bien y sin ayuda... (tardaria mucho tiempo aprendiendo solo y ya tengo que entregar) como hago esto? =

2do modulo: Mediante un subvi en labview que poseea unos leds poderlos encencer desde un circuito externo con unos pulsadores (2) con el pic.

3er modulo: Mediante un subvi en labview que posee unos pulsadores o interruptores poder encender unos leds ubicados en un circuito externo con el pic.

????
Título: Re: Protocolo para RS485
Publicado por: darck_khronos en 30 de Junio de 2009, 22:50:14
lo que ahi tengo es para un pwm, un adc y al final la union de ambos para hacer un control total
Título: Re: Protocolo para RS485
Publicado por: yanki31 en 30 de Junio de 2009, 22:52:10
si men pero como hago lo ultimo que mande en el mensaje???? ayudame con eso si puedes por favor!!
Título: Re: Protocolo para RS485
Publicado por: darck_khronos en 30 de Junio de 2009, 22:55:32
Para que te des una idea, el pwm envia valores al Pic y el Adc lee los valores eso es lo unico que tendrias que modificar
Título: Re: Protocolo para RS485
Publicado por: yanki31 en 30 de Junio de 2009, 22:58:34
bueno quedare como un estupido pero no se hacer eso.... de verdad no se como hacer para desde unos pulsadores externos encender unos leds ubicados en la pantalla de labview-.... no tengo ni la mas remota idea... y disculpa por la molestia y gracias por el interes... pero igual no se hacerlo  :?
Título: Re: Protocolo para RS485
Publicado por: yanki31 en 06 de Julio de 2009, 22:41:11
buenas a todos los del foro.... una pregunta para el que sepa de esto... para desarrollar proyectos de sistemas de adquisicion de datos remotos via RS485 EXISTE ALGUNA BASE LEGAL??? ALGUNA NORMA QUE LO RIGA? O ALGUNA NORMA ELECTRONICA ESPECIFICA QUE REGULE ESTOS PROYECTOS?   ES PARA EL INFORME DE MI PROYECTO, Y COMO NO CONOSCO DEL MUNDO ELECTRONICO YA QUE SOY DE ELECTRICIDAD... ME GUSTARIA SABER SI ALGUIEN ME PODRIA GUIAR SOBRE ESTO

GRACIAS DE ANTEMANO
Título: Re: Protocolo para RS485
Publicado por: darck_khronos en 06 de Julio de 2009, 22:51:44
buenas a todos los del foro.... una pregunta para el que sepa de esto... para desarrollar proyectos de sistemas de adquisicion de datos remotos via RS485 EXISTE ALGUNA BASE LEGAL??? ALGUNA NORMA QUE LO RIGA? O ALGUNA NORMA ELECTRONICA ESPECIFICA QUE REGULE ESTOS PROYECTOS?   ES PARA EL INFORME DE MI PROYECTO, Y COMO NO CONOSCO DEL MUNDO ELECTRONICO YA QUE SOY DE ELECTRICIDAD... ME GUSTARIA SABER SI ALGUIEN ME PODRIA GUIAR SOBRE ESTO

GRACIAS DE ANTEMANO

Si el protocolo ya lo manejas pero para poder hacer la comunicacion debes usar par trensado en si en la industria a este protocolo se le llama Cambus, Profibus  investiga de ello y sabras lo que requieres
Título: Re: Protocolo para RS485
Publicado por: yanki31 en 06 de Julio de 2009, 22:54:47
segun mi tutor no es ninguno de esos protoculos profibus ni el otro.... alguna otra cosa que pueda ser base legal para esto aparte de eso?
Título: Re: Protocolo para RS485
Publicado por: darck_khronos en 06 de Julio de 2009, 23:00:22
segun mi tutor no es ninguno de esos protoculos profibus ni el otro.... alguna otra cosa que pueda ser base legal para esto aparte de eso?


pues que se actualice por que esa es la base de ese tipo de comunicaciones
Título: Re: Protocolo para RS485
Publicado por: yanki31 en 06 de Julio de 2009, 23:02:14
ok hablare de eso con el.... aparte de eso no hay algo mas? de electronica que sea base legal para esto?
Título: Re: Protocolo para RS485
Publicado por: stk500 en 07 de Julio de 2009, 01:36:27
Hola amigo Yanki!

Te hago algunas Sugerencia, usas el Buscador del Foro y lee o usa el Google y lee, porque el Protocolo RS458 es como te explican, y siempre depende la Funcion que vaya usar, osea que va tu a comunicar con el, aqui te dejo un link de nuestros querido amigo Redpic y espero que con ellos saque todas tus dudas.
http://www.todopic.com.ar/foros/index.php?topic=19057.0
Saludos