Me he estado golpeando la cabeza contra la mesa durante días tratando de resolver esto. Por mi vida, parece que no puedo conseguir que mi puerto serie Raspberry Pi 3 se comunique con Xbee Series 2.

Revisé mi /boot/cmdline.txt y no hay referencias a AMA0 en el archivo. Aquí está lo que hay en ese momento:

dwc_otg.lpm_enable=0 console=serial0,115200 console=tty1 root=/dev/mmcblkOp2 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait 

EDIT: PI 3 no AMA0. Utiliza S0. He eliminado la entrada console=serial0,115200

Dado que esta es la actualización de Jessie, no hay inittab. En el que he leído que necesito hacer lo siguiente (lo que he hecho):

sudo systemctl stop [email protected] sudo systemctl disable [email protected] sudo systemctl mask [email protected] 

Después de hacer todo esto, abro cutecom , configúrelo en 9600 baudios, lectura / escritura, datos de 8 bits, parada de 1 bit y configure el dispositivo en / dev / ttyAMA0.

Cuando presiono conectar y escribo:

+++ 

para ingresar al modo de configuración obtengo:

write returned 0 errno: 11 write : Resource temporarily unavailable 

No estoy seguro de lo que estoy haciendo mal aquí … Sé que el Xbee es funcional porque puedo configurarlo usando el software XCTU a través de una placa de conexión serial a USB. Pero en el Pi conectado a través de los pines seriales GPIO no obtengo respuesta.

¿Alguna idea?

El Xbee está conectado a un explorador regulado Spark Fun Xbee


También tengo problemas para hacer esto con mi Raspberry Pi 2 (Que es a donde se comunicará el Pi 3). En el Pi 2, edité el archivo cmdline.txt y eliminé las referencias a AMA0:

dwc_otg.lpm_enable=0 console=tty1 root=/dev/mmcblkOp2 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait 

Y ejecuté los comandos systemctl mencionados anteriormente. en el Pi2.

Actualmente, cuando abro una sesión usando cutecom (S0 para Rpi3 AMA0 para Rpi2) no obtengo resultados. Escribo +++ en la línea de entrada, veo parpadear la luz TX en mi Explorador regulado pero no obtengo ninguna salida dentro de cutecom, ni ningún mensaje en la ventana de la terminal.

Comentarios

  • Intente eliminar ese console=serial0,115200 parámetro de cmdline.txt. Aunque no es ' una referencia a AMA0, es bastante obvio que es una referencia a una consola en serie, que solo podría ser la del GPIO. ¡Asegúrese de dejar ese archivo como una sola línea!
  • Word. Yo ' lo intentaré y me pondré en contacto contigo.
  • Tu sugerencia no ' solucionó el problema del todo, pero creo que puede ser un paso en la dirección correcta. Viendo como en el comentario de Milliways: señaló que el Pi3 ya no usa AMA0, pero usa S0, que aparentemente es a lo que se refiere la consola = serial0,115200.
  • Correcto, entonces quieres usar ttyS0 con el Xbee en su lugar también.
  • Todavía no es ' t funcionando para mí … Cuando use sudo minicom -b 9600 -D /dev/ttyS0 No ' no obtengo nada. Muestra el mensaje de bienvenida de minicom mostrando las Opciones y demás, pero no hay estado en la parte inferior de la terminal y no puedo ' t escribir nada. Cuando uso cutecom con la misma configuración, tampoco ' obtengo ningún resultado (nada en la consola que diga que no está disponible ni nada).

Respuesta

El Pi3 ha intercambiado puertos serie. /dev/ttyAMA0 ahora se usa para Bluetooth. serial0 se refiere al puerto serie no Bluetooth que está en /dev/ttyS0 de forma predeterminada.

Mi experiencia si intento use serial0 no es bueno. Funciona, pero no es confiable, aunque solo he intentado usar un convertidor de serie a USB a una PC, y no lo he probado extensamente. De más lecturas, la miniUART usa el «reloj central» que puede cambiar con los cambios de velocidad del procesador, lo que puede explicar problemas. He visto sugerencias para arreglar el reloj con: –

core_freq=250 

EDITAR Desde entonces he intentado esto y parece solucionar los problemas. Hasta ahora puedo «No veo ninguna desventaja.

El miniUART también es limitado: solo admite 8 bits de datos y no tiene paridad, así como un búfer más pequeño.

Si no usa Bluetooth, es posible volver a intercambiar los puertos en el árbol de dispositivos. Hay un pi3-miniuart-bt y pi3-disable-bt módulo.

EDITAR Ahora logré que el serial funcione a mi satisfacción en Pi 3 y lo he documentado en How-do-i-make- serial-work-on-the-raspberry-pi3

Comentarios

  • Oh, ya veo … Eso es bueno saber. Imagino que esa es la razón por la que nunca obtuve ninguna respuesta de AMA0. ¿Debería deshabilitar serial0 entonces?
  • ¿Y lo haría simplemente eliminando la referencia en cmdline.txt o también necesitaría ejecutar comandos systemctl similares?
  • @ Myg0t en el Pi3 aparentemente DEBE usar serial0 que es el UART que no es BT. No lo he probado yo mismo.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *