Eu tenho batido minha cabeça na mesa há dias tentando descobrir isso. Pela minha vida, eu não consigo fazer com que minha porta serial Raspberry Pi 3 se comunique com o Xbee Series 2.
Eu verifiquei meu /boot/cmdline.txt
e não há referências a AMA0 no arquivo. Aqui está o que é atual lá:
dwc_otg.lpm_enable=0 console=serial0,115200 console=tty1 root=/dev/mmcblkOp2 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait
EDITAR: PI 3 não AMA0. Ele usa S0. Eu removi a entrada console=serial0,115200
Como esta é a atualização do Jessie, não há inittab. No qual li que preciso fazer o seguinte (o que eu fiz):
sudo systemctl stop [email protected] sudo systemctl disable [email protected] sudo systemctl mask [email protected]
Depois de fazer tudo isso, abro o cutecom , defina-o como taxa de transmissão de 9600, leitura / gravação, dados de 8 bits, parada de 1 bit e defina o dispositivo para / dev / ttyAMA0.
Quando eu clico em conectar e digite:
+++
para entrar no modo de configuração, recebo:
write returned 0 errno: 11 write : Resource temporarily unavailable
Não tenho certeza do que estou fazendo errado aqui … Eu sei que o Xbee é funcional porque eu sou capaz de configurá-lo usando o software XCTU através de uma placa breakout serial para USB. Mas no Pi conectado através dos pinos seriais GPIO não obtenho resposta.
Alguma ideia?
O Xbee está conectado a um Spark Fun Xbee Regulated Explorer
Também estou tendo problemas para fazer isso com meu Raspberry Pi 2 (É para onde o Pi 3 estará se comunicando). No Pi 2, editei o arquivo cmdline.txt e removi as referências a AMA0:
dwc_otg.lpm_enable=0 console=tty1 root=/dev/mmcblkOp2 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait
E eu executei os comandos systemctl mencionados anteriormente no Pi2.
Atualmente, quando abro uma sessão usando cutecom (S0 para Rpi3 AMA0 para Rpi2), não recebo nenhuma saída. Eu digito +++
na linha de entrada, vejo a luz TX piscar no meu Explorer Regulado, mas não recebo nenhuma saída dentro do cutecom, nem nenhuma mensagem na janela do terminal.
Comentários
Resposta
O Pi3 trocou as portas seriais. /dev/ttyAMA0
agora é usado para Bluetooth. serial0
refere-se à porta serial não Bluetooth que está ativada /dev/ttyS0
por padrão.
Minha experiência ao tentar usar serial0
não é bom. Funciona, mas não é confiável, embora eu só tenha tentado usar um conversor serial para USB em um PC, e não testei extensivamente. De outras leituras, o miniUART usa o “clock do núcleo” que pode mudar com as mudanças de velocidade do processador que podem explicar o Problemas. Tenho visto sugestões para consertar o relógio com: –
core_freq=250
EDITAR Desde então, tentei fazer isso e parece resolver os problemas. Até agora, posso “não vejo quaisquer desvantagens.
O miniUART
também é limitado – ele suporta apenas 8 bits de dados e não tem paridade, bem como um buffer menor.
Se você não usar Bluetooth, é possível trocar as portas de volta na árvore de dispositivos. Há um pi3-miniuart-bt
e pi3-disable-bt
módulo.
EDITAR Agora, consegui obter satisfação do trabalho em série no Pi 3 e documentei isso em How-do-i-make- serial-work-on-the-raspberry-pi3
Comentários
- Ah, entendo … Isso é bom saber. Imagino que seja esse o motivo pelo qual nunca recebi nenhuma resposta do AMA0. Devo apenas desativar o serial0 então?
- E faria isso excluindo a referência em cmdline.txt ou também precisaria executar comandos systemctl semelhantes?
- @ Myg0t no Pi3 aparentemente você DEVE usar serial0 que é o UART não BT. Eu não tentei fazer isso sozinho.
console=serial0,115200
decmdline.txt
. Embora não seja ' uma referência aAMA0
, é obviamente uma referência a um console serial, que só poderia ser aquele no GPIOs. Certifique-se de deixar o arquivo em uma única linha!ttyS0
com o Xbee em vez disso.sudo minicom -b 9600 -D /dev/ttyS0
Eu não ' não consigo nada. Ele mostra a mensagem de boas-vindas do minicom mostrando as opções e tal, mas nenhum status na parte inferior do terminal e eu não posso ' digitar qualquer coisa. Quando eu uso cutecom com as mesmas configurações, eu não ' também não obtenho nenhuma saída (nada no console informando que está indisponível ou qualquer coisa).