Si además quieres enviarnos un Artículo para el Blog y redes sociales, pulsa el siguiente botón:
Hola!!
Tengo un sensor que me da a elegir el enviar los datos por RS-485 o por SDI-12, la velocidad de la transferencia me da lo mismo y estamos hablando de un sensor que se comunicará con un microcontrolador (preferiblemente Atmel), es decir, no hay multiples sensores conectados a un bus ni historias similares.
Lo que necesito es saber qué protocolo debo de usar, ya que desconozco si alguno de los dos permite una comunicación directa con el microcontrolador conectándolo directamente a alguno de sus puertos. Creo que para el RS-485 necesito un conversor a RS-232 para utilizar el UART, pero con el SDI-12 ni idea.
Básicamente creo que en principio me decantaría por el que menos complicaciones me supusiera a la hora de enchufarlo al microcontrolador, pero estoy abierto a vuestras sugerencias.
P.D: Los microcontroladores que tengo en mente son del tipo Atmega16.
Muchas gracias!!!
El RS485 no define protocolo, solo capa física (niveles de tensión, velocidades etc). Sobre un RS485 puedes transmitir cualquier protocolo.
El SDI-12 define el nivel físico y el protocolo:
http://www.sdi-12.org/sdi-12/SDI-12_ver ... 202005.pdf
En cualqier caso necesitas unos drivers que adapten los niveles de tensión de la UART del micro a los niveles del RS485 o SDI-12.
Si solo vas a usar un sensor no tienes que usar un protocolo estándar, puedes definirlo tu mismo y no ceñirte a ninguna norma. Si esta lejos y quieres inmunidad al ruido el RS485 es una buena idea. Yo lo he usado mucho y funciona muy bien incluso en bucles de 1000m en ambiente industrial y a 9600 baudios. El SDI-12 solo funciona a 1200 baudios, tambien tienes que tenerlo en cuenta...
Eso que dicen que mas vale malo conocido... Tengo experiencia usando ModBus sobre RS-485 (y RS-232), y, sinceramente, lo encuentro de lo más robusto, fiable, abierto y práctico una vez que lo conoces. Así que te lo recomiendo.
Com además lo he usado sobre dos tipos de micros, entre ellos los ATmegas, creo que te puedo echar algún cable si te decides por este camino.
Por cierto, el conversor de RS-485 no es para nada el conversor para RS-232. Suele ser más pequeño (SO-8 en SMD), alimentado directamente a 5V, y muy sencillo de usar, incluso más que el RS-232. Prueba a buscar el DS-485 o el MAX-485.
Otra ventaja para tí de usar el ModBus sobre RS-485, es el gran volúmen de productos industriales que lo usan, así que coger experiencia en el tema puede ser beneficioso para tí.
Beamspot.
Pues se lleva el pato al agua RS-485.
Muchas gracias a los dos.
Aún no me voy a poner a programar ni a instalar este módulo, pero necesitaba ir viendo el panorama con cierta perspectiva.
De todas formas, hablaré con el prveedor a ver que me cuenta y si termino con 485 te tomo la palabra Beamspot, y cuando llegue el momento me miraré documentación de los múdulos que me has comentado y os freiré a preguntas si me surgen 😉
Gracias y saludos!!!
Sin problemas, MorgoZ. Incluso te puedo pasar algún esquema de referencia, así como algo de código. Y también datasheets, aunque te recomiendo que uses los de los integrados que acabes poniendo (todos son más o menos iguales).
Por otra parte, estoy mirando algo respecto de tu otro post sobre ATmega640 (un conocido, pues uso el M64, M128 y el M1281), pero para una pregunta corta, la respuesta puede ser muy larga.
De todas maneras, dado que esto es información interesante para muchos, lo suyo sería seguir con estos posts, para que los demás puedan usar también la información.
A ver si esta tarde tengo un rato.
Beamspot.