Autor Tema: Problema conectando un Arduino con un ar5387un por el puerto serie  (Leído 1909 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado Yo_Julio

  • **
  • Mensajes: 5
Hola
Hace muuucho que no me conecto, pero algo se me ha roto así que vuelvo aquí a pedir ayuda.

El caso es que tenía un asl26555 con Openwrt conectado a un Arduino por el puerto serie funcionando perfectamente pero como ahora tengo tiempo libre me ha dado por volver a meterle mano y me lo he cargado  :-[
En su lugar he puesto un ar5387un y parece funcionar bien pero cada vez que hago reboot se queda sin red. Si desconecto el Arduino hace reboot sin problema.
Como tengo un cron que hace reboot a las 4 AM y controlo el watchdog desde un shell-script pues eso, que se me han caído los palos del sombrajo.
Antes de pillar otro asl2655 por ahí de segunda mano, si alguien me puede ayudar tengo curiosidad por saber qué puede pasar para que en uno funcione y en otro no.   

Estoy usando OpenWrt 19.07.2 pero en versiones anteriores me pasa lo mismo.
Saludos.




Desconectado danitool

  • ****
  • Mensajes: 52
Re:Problema conectando un Arduino con un ar5387un por el puerto serie
« Respuesta #1 en: 11-05-2020, 16:07 (Lunes) »
El arduino va a 5V no?, puede ser el problema, debería ir a 3.3V

Además los BCM6328 tales como el ar5387un he detectado que tienen los puertos ethernet bastante sensibles a fallos de hardware. Así que supongo que una perturbación eléctrica del Arduino podría provocar ese fallo.

Desconectado Yo_Julio

  • **
  • Mensajes: 5
Re:Problema conectando un Arduino con un ar5387un por el puerto serie
« Respuesta #2 en: 11-05-2020, 17:34 (Lunes) »
Hola Danitool
Si que va a 5v, por eso hice lo siguiente:
Tx del Arduino va a un divisor de tensión para dejarlo a 3,3v
Rx va directo, con los 3,3V del router le sobra.
El caso es que se tira funcionando días si no haces reboot. Eso es lo que me tiene intrigado. Al principio alimentaba el Arduino desde los 5v del router, pero los he separado y tampoco va.
Lo he probado hasta 57600 Baud y no se pierde ni un mensaje, se comunican con un cable de los que usabamos en los lectores de CD de los PCs para audio.
Si dejo sólo tx del router al Arduino hace bien el reboot. Es como si recibir afecte al reboot, porque el Arduino envía un mensaje con su estado cada segundo.

No se, no tiene mucho sentido. Si que habrá muchas perturbaciones porque estoy manejando unos viejos modulos domóticos de relés a 28 y 220v CA pero en el momento de hacer reboot todo está desconectado -excepto si se cuelga el router y se dispara el watchdog, que normalmente no ocurre-.
Voy a darle alguna vuelta más y a repasar todas las conexiones aunque ando ya algo perdido.
Cualquer idea es bienvenida...

 

Desconectado Tki2000

  • Moderador
  • *
  • Mensajes: 2049
Re:Problema conectando un Arduino con un ar5387un por el puerto serie
« Respuesta #3 en: 11-05-2020, 17:50 (Lunes) »
Si el arduino se resetea junto con el router puede que esté metiendo ruido por el rx, si el pin lo tiene como output hasta que el arduino termine de resetearse y configure el pin como input.
No habrás entendido algo, hasta que seas capaz de explicárselo a tu abuela...
Hacemos pantallas con píxeles casi invisibles, para luego ampliar la letra porque no la vemos... Bonita paradoja...
Creamos analfabetos tecnológicos con una velocidad pasmosa. Todo el mundo "maneja" tecnología, casi nadie sabe lo que tiene entre las manos, pero todo el mundo opina.
El analfabetismo, antes, pasaba desapercibido. Ahora, se transmite por Internet y las redes sociales.
Solo a un mandril epiléptico se le podría haber ocurrido diseñar la cinta de menú de M$.
Los dispositivos táctiles y las pantallas pequeñas son una lacra para la información relevante y el desarrollo de interfaces de usuario.

Desconectado Yo_Julio

  • **
  • Mensajes: 5
Re:Problema conectando un Arduino con un ar5387un por el puerto serie
« Respuesta #4 en: 11-05-2020, 19:37 (Lunes) »
J***rrrr!!!!! ya lo he pillado.
Estaba obcecado con el switch y la red por algo que leí en el foro de OpenWrt, pero lo que le pasa es que no llega a cargar el kernel. Sí que tiene IP, la del loader de CFE que es la misma que la de mi gateway, por eso no veía nada.

Por lo que veo si CFE detecta actividad en la pata rx te planta la página de update. ¡¡Manda webs!!.
Gracias Tki2000 y Danitool, tenía que haber escrito antes en vez de tirarme una semana dando vueltas.

Ahora veo dos opciones: obligar al Arduino a 'callarse' cuando arranca el router o hacer un OR cableado entre rx y un GPIO y controlar la recepcion por rx a mano.
No me gusta ninguna.
No controlo CFE. ¿Se puede ajustar CFE para que si no le mandas un update en unos segundos vuelva a la carga normal?
Saludos

Desconectado Ficht

  • **
  • Mensajes: 48
Re:Problema conectando un Arduino con un ar5387un por el puerto serie
« Respuesta #5 en: 12-05-2020, 09:08 (Martes) »
Hombre, yo le pondría al router un relay en un gpio que encienda el arduino el final rn rc.local.


Desconectado Yo_Julio

  • **
  • Mensajes: 5
Re:Problema conectando un Arduino con un ar5387un por el puerto serie
« Respuesta #6 en: 12-05-2020, 12:04 (Martes) »
Hola
Ayer me quede hastá las tantas... intentando terminar con esto de una vez

Le conecté la entrada rx al tx del Arduino a traves de un transistor con salida por el emisor para no invertir. A la base del transistor además un diodo al gpio12 que siempre está en alto. De forma que hasta que no ponga yo el gpio12 a 0 no reciba nada.
Y ni por esas. :(

A las tantas y después de conectar un analizador resulta que al arranque el gpio12 da un pulso a 0 que apenas se llega a ver con mi analizador de 10€ pero CFE lo caza por rx y se vuelve a quedar en modo upload. J***r con CFE.

Voy ha hacer una última prueba poniendo un filtro 'paso-bajo' al gpio12. Si no va haré lo que dice  Ficht mientras consigo otro router o arreglo el asl26555 que he visto en el hilo del foro que creo que lo puedo arreglar.

Esto es lo que he pensado con lo que tengo por casa:

                           + 3,3v Router
                                   |
                                   |c     
                                b /       
Arduino tx >------\/\/\/----+----|   TUN   
                  R2 22k    |     \       
                            |      |e     
                            |      + ---> rx Router                                 
GPIO492 >---\/\/\/--+-->|---+      |
            R3 1K   | 1N4148       \   
                    |              / R1 2k2
                   === 0,1u        \
                    |              /
                    |              |
--------------------+--------------+----> GND

Arduno rx -----------------------------< tx Router


Es que quiero tener ambos independientes, cada uno con su alimentación, watchdog, Etc.
Lo malo es que ya no tengo casi tiempo libre.




Desconectado danitool

  • ****
  • Mensajes: 52
Re:Problema conectando un Arduino con un ar5387un por el puerto serie
« Respuesta #7 en: 12-05-2020, 17:30 (Martes) »
No controlo CFE. ¿Se puede ajustar CFE para que si no le mandas un update en unos segundos vuelva a la carga normal?
Saludos

No existe ese ajuste. La única opción es compilar un CFE a medida para que ignore lo que le entre por puerto serie al arrancar y no se pare, esto es relativamente fácil. El problema es que meter otro CFE puede resultar en un brick del router, y a menos qeu tengas una forma fácil para recuperar el router reflasheando la memoria SPI, es arriesgado probar un CFE  hecho a medida.

El procesador trae de fábrica dos puertos serie. El UART secundario está en los GPIOs 13 y 14, activarlos como UART es fácil, si localizas esos pines en la placa tendrías un segundo UART funcional sin que arduino interfiera en el arranque. Pero puede que esos pines no estén expuestos.

Ninguna de las dos opciones es inmediata.

Desconectado Yo_Julio

  • **
  • Mensajes: 5
Re:Problema conectando un Arduino con un ar5387un por el puerto serie
« Respuesta #8 en: 15-05-2020, 10:26 (Viernes) »
 
si localizas esos pines en la placa tendrías un segundo UART funcional sin que arduino interfiera en el arranque. Pero puede que esos pines no estén expuestos.
Buena idea.
Los he estado buscando un buen rato pero no he sido capaz de encontrarlos. Una pena porque para mi sería la solución perfecta.

He puesto la resistencia y el condensador en la base del transistor y ahora sí funciona.  :D

Al principio probé un optoacoplador pero a 57600 no responde bien y como el asl2655 sacaba 57600 por defecto ya tenía el Arduino así. Si lo volviera a hacer desde el principio lo suyo sería un optoacoplador a 9600.

Lo he montado todo soldado al aire, sobre un conector encima de los pines del puerto serie. Si a alguien le interesa subo una foto, aunque está bastante chapucero y creo que el circuito en ASCII está claro  ;)  Además el problema es muy particular de este router y el hecho de que mi Arduino mande constantemente datos.
No creo que le vaya a pasar a mucha gente...  >:D



//FINAL Y MÁS DOS RESPUESTAS