Pages: 1 2 3 [4]   Go Down
Author Topic: RS485  (Read 21695 times)
0 Members and 1 Guest are viewing this topic.
CATALUNYA
Offline Offline
Full Member
***
Karma: 2
Posts: 123
I started my electronics career with MICROCHIP PIC16 microcontrollers and assembler. After 10 years without touching electronics, I restarted it as a hobby (and sometimes work) with ATMEL and Arduinos.
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Hola!

Yo también estoy en una guerra parecida. Me interesa "pinchar" una red 485 donde tendré varios nodos, algunos con "Arduino inside".

Quote
Lo bueno que siempre puedes poner el PC como un esclavo/maestro para monitorizar las tramas del bus y chequear que todo va bien. Hay que tener en cuenta que el chip 75176 es muy barato...Te puedes hacer un adapatador USB <--> RS485 muy sencillo utilizando el chip de FTDI. Y ya viene con un pin (TXDEN) que cambia a ON cuando transmites algo y cambia automaticamente a OFF cuando el buffer del dispositivo esta vacio.

Me encuentro con que las placas actuales de "Arduino mini USB" no incluyen el pin TXDEN y la opción de conectar RE a negativo y DE a positivo no funciona.  :o

¿Alguna sugerencia con la "Arduino mini USB"?
¿Alguna alternativa para pasar de USB a 485 "fiable"?

Saludos,

/me
Logged

0
Offline Offline
Edison Member
*
Karma: 16
Posts: 1579
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Hola,

Hummm, ahora me pillas fuera de viaje y puede que me confunda... Pero si haces pin RE="Low" y pin DE="HIGH" estás poniendo activos los dos drivers al mismo tiempo (tx y rx). Para ponerlo a nivel recepción,tendría que ser los dos a "low". En el datasheet del transceiver puedes ver la tabla de verdad.

Une los dos pines, y asi no hay lugar a confusiones. Nivel bajo estarás en recepción y alto en transmisión.
Yo para monitorizar, he utilizado una placa del diecimila sin el micro, y puesto en recepción todo el rato.



Salu2


Igor R.
« Last Edit: September 19, 2009, 10:46:35 am by igorreal » Logged


CATALUNYA
Offline Offline
Full Member
***
Karma: 2
Posts: 123
I started my electronics career with MICROCHIP PIC16 microcontrollers and assembler. After 10 years without touching electronics, I restarted it as a hobby (and sometimes work) with ATMEL and Arduinos.
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Gracias por contestar, Igor!

En la placa del Arduino he unido RE y DE a una salida digital del micro. Por cierto, he tenido que ponerle una resistencia de pull-up de 10 K para poder programar la CPU.

El tema es montar un monitor para comprobar la comunicación RS-485 entre PC y el Arduino. Quería aprovechar un Mini USB, tal como tú sugerías, en las versiones más recientes no tiene disponible el RTS.

http://www.arduino.cc/en/Main/MiniUSB

En los pines, sólo están disponibles RxD, TxD, VCC y GND.  :'(

Como alternativa, he localizado esto:

http://www.robot-electronics.co.uk/htm/usb_rs485_tech.htm

Saludos,


/me
Logged

0
Offline Offline
Edison Member
*
Karma: 16
Posts: 1579
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Hola Suby,

Si quieres comprar algun hardware nuevo, ¿por qué no compras una placa desarrollo de FTDI? Tendrás todos los pines disponibles, incluyendo TXDEN.
Puedes comprar on-line => http://apple.clickandbuild.com/cnb/shop/ftdichip
Busca DIP Modules.
Con éstos modulos tendrás un USB <--> RS485 muy sencillo de construir, simplemente el módulo DIP + SN75176 ó MAX485 y el propio chip de ftdi te conmutara a TX cuando tenga datos en el buffer gracias a la patilla TXDEN (puedes mirarlo en el datasheet del fabricante).

Lo que me has puesto tú de robot-electronics, es exactamente ésto. (aunque viendo el precio de la web, igual te sale mejor comprarselo a ellos que a través de ftdi).

Pero ésto es sólo si quieres tener TX y RX. Si sólo quieres tener recepción (RX) puedes usar tu actual MiniUSB, simplemente añade un SN75176 ó MAX485 y dejalo siempre en recepción (En el video que colgué que muestro en la pantalla de mi portatil las tramas, está hecho asi). Con tu actual hardware, lo puedes hacer si sólo quieres monitorizar.


Saludos   smiley-wink



Igor R.
« Last Edit: September 22, 2009, 05:16:35 am by igorreal » Logged


CATALUNYA
Offline Offline
Full Member
***
Karma: 2
Posts: 123
I started my electronics career with MICROCHIP PIC16 microcontrollers and assembler. After 10 years without touching electronics, I restarted it as a hobby (and sometimes work) with ATMEL and Arduinos.
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Gracias!
De momento, he encargado un módulo RS-485. Tengo varios temas (con PLCs y módulos de campo) que lo necesitan.
En cuanto al Mini USB, no había caído en darle el uso que comentas. Es una excelente ideal.  :smiley
Tengo una pequeña duda (me habré perdido algo de este hilo): ¿cómo lo haces con una placa Arduino Duemilianove? Ya he visto que has quitado la CPU, pero ¿y la señal RTS? ¿O sólo miras el RX?  smiley-wink

/me
Logged

0
Offline Offline
Edison Member
*
Karma: 16
Posts: 1579
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Tengo puesto siempre el transceiver en RX (recepción).

Es para controlar lo que está pasando en el bus (como un sniffer).

 smiley-wink
« Last Edit: September 23, 2009, 03:37:21 pm by igorreal » Logged


0
Offline Offline
Edison Member
*
Karma: 16
Posts: 1579
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

usa:
#define  myaddress  9
ó
#define  myaddress  8


Parece que si pones un cero delante lo coge como base octal...


 smiley-wink
« Last Edit: October 03, 2010, 06:14:02 am by igorreal » Logged


0
Offline Offline
Edison Member
*
Karma: 16
Posts: 1579
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Tienes que pensar como si lo harías con papel y lapiz a mano....

Si tengo el número 6432, necesito convertirlo a  6, 4, 3 y 2, y después enviarlo como el ASCII de dichos números. ¿Cuánto vale el resto si voy dividiendo entre 10 ese número inicial?

bueno, o mirarte las librerías para usar las funciones tipo itoa...

Todo esto es porque la trama esta pensada en forma ASCII, puedes crearte una tu que sea más sencilla según tus necesidades....

Al gusto del consumidor.... Al final, las tramas cumplen reglas predefinidas. Es un "lenguaje". Por ejemplo, si tu defines que siempre que mandes la funcion T 01, significa temperatura de la habitación, y que el número enviado en dichos 4 bytes, es un número con dos decimales, pues todo es más fácil....


 smiley-wink

« Last Edit: December 21, 2010, 10:50:19 am by igorreal » Logged


Pages: 1 2 3 [4]   Go Up
Jump to: