# Conectar MAX485 pic



## otelomake (Mar 18, 2007)

Hola a todos, soy muy nuevo en esto y no se mucho de electronica ya que soy programador de sistemas, en fin, he contrudo un circuito con dos pic 16f873a y los he comunicado por USART y a corta distancia funciona muy bien, pero a larga se pierden datos, he oido del max485 pero no se como conectarlo a los pic, a que pines y que voltaje trabaja.

Gracias.


----------



## Turkito (Mar 18, 2007)

Chamo!si vas a usar solo un max 485 como receptor y transmisor debes tener una señal de control! para q lo actives para Tx o Rx. Pero si vas usar uno como receptor y otro como transmisor es mucho mas facil! pero te recominedo veas en el datashhet del MAX-485 q alli te aparece como conectarlo. Incluso es mucho mas facil de conectar q el max-232, ya q no necesita conexion de capacitores ni nada  por el estilo...

SALUDOS


----------



## Turkito (Mar 18, 2007)

ok listo!! debes usar un max-485 para el pic transmisor y lo configuras en modo de Tx y otro para el pic receptor y lo configuras como Rx, pero si solamente enviaras datos en un solo sentido... La forma de conexión Verificala en el datasheet!


----------



## otelomake (Mar 19, 2007)

Gracias por la ayuda, porfin funciona. 


Gracias Dios por los foros, el Linux y las licencias GPL.


----------



## eltigre_peruano (Ago 29, 2008)

yo tambien quiero usar el maz 485 como hago?, no entiendo eso de usar un solo max o usar dos


----------



## platanit087 (Dic 5, 2009)

Hola

Yo tambien quiero hacer algo parecido pero pasa algo extraño y es lo siguiente, cuando uso el max485 como el transmisor uso dos lineas del pic y las activo en alto es decir algo asi

BSF PORTC,0
BSF PORTC,1

He aqui el problema necesito esperar un retardo muy grande para que el receptor pueda escuchar el retardo es de 300 US, aproximadamente si no pongo ese retardo despues de habilitar esas dos señales no recibe bien el receptor, y no me explico por que por que he estado rompiendome la cabeza con el max485 con esos tiempos. Todo funciona medio beina a la hora de que un pic es transmisor y otro recptor el problema es cuando se cambio de Transmisor y Receptor, es decir tengo que esperar retardos despues de una transmision de datos si no le pongo esos retrados los datos no llegan correctamente el retardo es depende del numero de datos que yo envie y quiero saber a que se debe esto ya que es un proyecto de esuela y se requiere que el tiempo sea lo mas optimo es decir usar interrupciones por timer1 para saber si el esclavo ya se tardo mucho en reponder el maestro tiene que interrmpir la tranmision y volver a enviar otro comando y ya no esperar a que el esclavo le responda y viceversa en el esclavo entonces esos tiempos que requerimos despues de transmision nos causan conflicotos existenciales ya que esos retardos son bastante significativos que nos quitan ese tiempo establecido de respuesta, espero que alguien me pueda ayudar

saludos


----------



## sebitronic (Dic 5, 2009)

Hola, yo ya he usado este integrado y estoy diseñaando un sistema de domotica a base de este integrado. el integrado labura en modo half-duplex, por ende no se puede transmitir y recivir al mismo tiempo, en caso de necesitar comunicacion full-duplex se puede usar un max491. Si alguien necesita, tengo un cicuito conversor RS232 a RS485 con la capacidad de laburar en full y half duplex y control de fujo por hardware.


----------



## elvito (Ene 20, 2010)

Turkito buenas noches, mira yo me encontre trabajando hoy con dos max485. Uno conectado a un 16f876a en modo transmisor, y el otro a un 16f88 como receptor.

No utilice los pines del microntrolador para decirle al max485 si es transmisor o receptor, dado que lo necesito como mencione arriba.

Usando el analizador serial de microchip y un convertidor rs232-485 pude corroborar el funcionamiento del max 485 como receptor. Basto con colocar el RE y TE en low.

Ahora el problema se genera en la transmision, dado que la misma la configuro colocando los pines RE y TE en high. Y cuando intento transmitir algo de un max485 a otro no se recibe nada y esta comprobado por el analizador serial.

No se en que me puedes aconsejar, dado que a pesar de ser primera vez que utilizo dicho integrado me parecio muy practico y facil de entender pero no se que se me estara pasando.

Gracias anticipadas.


----------



## axshaw (Ene 25, 2010)

primero hay le va un ejemplo de la comunicacion rs485, solo con logic state activas el modo de transmision si escribe un dato en la ventana te la mostrara en los otros. luego te monto los ejemplos con micro ya q hace rato q no trabajaba con este y no se donde deje los archivos. el q va a transmiter debe poner los pines re y de en high para transmision, la recepcion no importa.


segundo pues como yo lo use fue un maestro(el q controla la comunicacion) y esclavos. cada esclavo por el programa le asigne una direccion q se la mandaba en el primer byte luego esperaba el byte de ack, q me indicaba q estaba conecta el esclavo luego otro byte para leer o escribir sobre cada esclavo y al final le indicaba con otro byte q terminaba la comunicacion con el esclavo. le coloq tiempos de proteccion en el maestro por si no me respondia o se de moraba mucho el esclavo en responde.

como te decia para evitar coliciones de datos es mejor un solo dispositivo como maestro y otro como esclavo, si tu aplicacion requiere multimaestro es mejor usar el i2c ya q este primero examina el bus y luego transmite. ojala te sirva de algo .


----------



## elvito (Ene 25, 2010)

axshaw muchas gracias por tu pronta respuesta y en algo tienes razon con lo de los tiempos de proteccion, porque hace dos dias segui haciendo pruebas con el max485 y me fije que el problema no era la configuracion que le colocaba a los pines sino mas bien la frecuencia con que enviaba los datos a traves de el.

Dado que en cada scan que realizaba en el bucle de mi programa enviaba datos, por tanto enviaba datos a cada momento cada 400us  y como dichos datos viajan a traves de un cable a 50mts conectado a otro max 485 y finalmente el 16f88 lo que causaba que me colgara el otro pic dado el exceso en la transmision.

Por tanto, siempre comunico pero no era capaz de verlo dato a la frecuencia que lo estaba haciendo; la solucion fue la de no enviar datos en cada instante de tiempo con la finalidad de no saturar el receptor y agregar tiempos de proteccion como tu me dices para que al 16f88 le de tiempo reaccionar.

De todas maneras muchas gracias por tu sugerencia, y esa fue unas de las razones por la que me uni al foro por la pronta respuesta de sus participantes.

Muchas gracias. Todo bien.


----------



## urutecno (Jul 27, 2010)

Buenas, estoy realizando mi proyecto de fin de carrera, y necesito realizar un conversor de ttl a RS485 y al reves! No necesito que sea full, con half ya me alcanza. Alguien me puede pasar el circuito necesario para realizar dicha tarea? muchas gracias!


----------



## sebitronic (Jul 29, 2010)

podes hacerlo de dos formas, la primera y mas fácil es con un integrado max491 o con operacionales, para la parte de transmisión colocando dos buffer, uno inverso y uno no inversor y para el receptor solo usas un operacional como comparador


----------



## hoops (Nov 17, 2010)

Hola a todos.

Yo estoy realizando un proyecto y tengo que comunicar varios PICs 18F4585 con una Rs485. He trabajado con rs232 y todo funciona correctamente pero con 485 no consigo hacer un simple código ni para encender un LED con un master y un slave. Utilizando 2 Pics y 2 max 485 debería aprovechar los pins C6 y C7 que corresponden a TX y RX o poner el #define RS485_USE_EXT_INT TRUE y trabajar con B0,B3,B4 y B5 conectados al max 485 como indica la librería rs485.c ??

Tengo un montón de dudas sobre el tema. Si alguien tiene algún código de ejemplo lo agradecería. Lo más simple del mundo porque no consigo transmitir ni montando ni simulando.

Muchas gracias.


----------



## Beamspot (Nov 18, 2010)

Si quieres usar un sistema basado en bus, necesitas usar comunicaciones semi-dúplex y controlar la dirección de la comunicación.

En mi opinión, dada la escasa dificultad de implementación de la parte de más bajo nivel, yo me haría las rutinas básicas de comunicaciones por interrupciones, que son sencillas y ocupan poco (dudo que lleguen al centenar de líneas en C). Luego si acaso, miraría algo de protocolos sencillos usados como 'capas superiores', algo más complejas (las comunicaciones son de todo menos sencillas), como por ejemplo, el protocolo ModBus (un clásico sobre RS-485).

A lo mejor así, uno aprende a programar y lo que significa en realidad un protocolo de comunicaciones.


----------



## Mikavamp (Abr 8, 2013)

Hola! Estoy trabajando con una red modbus por uC, la cuestión es que nunca he trabajado con el 485 y tengo dudas ya que no se si la conexión de mi Master (PLC) al pic y viceversa requiere unicamente un max o dos ya que en un momento el pic trabaja como transmisor y en otro como receptor. Alguien me podria ayudar con esta duda acerca de como conectar el 485 para ese caso? Por favor


----------

