TODOPIC
FORO TÉCNICO => Foro Técnico => Mensaje iniciado por: ThePIC-GUY en 23 de Diciembre de 2014, 22:12:56
-
Que tal todos,
bien pues como muchos aquí, estoy haciendo un proyecto en el cual utilizo comunicación por RS485 mediante un max485, y no tengo problema aparente, la comunicación trabaja bien y todo, solo tiene un pequeño detalle. Cuando envió una serie de datos, el ultimo dato no se recibe, si envio 5 recibo 4. Este problema lo "solucione" enviando un dato extra, para que sea este el que se pierde, así mi sistema trabaja correctamente, pero mi pregunta es Porque pasa esto? tengo las resistencias de 120ohm en los extremos y todo lo de la hoja de datos, mi preocupación es que después de algún tiempo llegue a suceder que ese dato "perdido" sea recibido y el sistema comience a fallar.
Me gustaría que me recomendaran algunos otros integrados para probar otras opciones
-
El tema es.....
Es realmente el max485 quien te provoca ese error ?
Por que el max485 es un transceptor, un driver para manejar las tensiones que necesita el RS-485, no "guarda" datos y luego lo entrega al micro, por lo tanto decir que no recibe TODO un byte con bit de start / paridad / stop es mas un problema de los microcontroladores o el programa y no el max485.
-
No es problema del max, ponte solo el usart y veras que tambien pierdes los datos, por alguna razon estara mal pero no el integrado, puede que cortes la comunicacion antes de que el max transmita
-
Gracias,
En ralidad antes de pasar a cominucarme con el max485 estaba haciendo pruebas conectando directamente la usart de los dos pics y funcionaba correctamente, es por lo que me parecio raro que se puerda un byte completo
-
Puedes subir un diagrama de como están conectados??
-
Probablemente desactives la linea antes de que se transmita el dato. El rs485 tiene un pin para cambiar de tx a rx y probablemente algo tengas mal ahi.
-
Prueba dejando unos milisegundos mas activa la patilla de conmutación entre rx y tx, seguramente el dato aun esta en el buffer de la uart y cuando desactiva no le ha dado tiempo a salir
-
estuve revisando el programa y me parece que si sucede que estoy desactivando el DE en el max antes que salga el ultimo dato, hare unos camios en eso y les comento si funciono