Respostas:
Esta resposta ainda está correta e explica com mais detalhes a natureza das alterações, mas a maioria dos usuários do Raspbian atual deve executar o
sudo raspi-config
SelectInterfacing Options / Serial
e especificar se você deseja um console serial (provavelmente não) e se o hardware da porta serial está ativado (provavelmente sim). Em seguida, use/dev/serial0
em qualquer código que acesse a porta serial.
O BCM2837 no Raspberry Pi3, Pi3B +, Pi3A +, PiZeroW possui 2 UARTs (assim como seus antecessores); no entanto, para suportar a funcionalidade Bluetooth, o UART PL011 completo foi movido dos pinos do cabeçalho para o chip Bluetooth e o mini UART disponibilizado em pinos do cabeçalho 8 e 10.
(O SOC no Pi4 possui UARTs adicionais, mas os mesmos 2 UARTs do BCM2837 são usados para a série padrão nos pinos 8 e 10 e Bluetooth.)
Isso tem várias consequências para os usuários da interface serial.
O /dev/ttyAMA0
usado anteriormente para acessar o UART agora se conecta ao Bluetooth.
O miniUART está agora disponível em /dev/ttyS0
.
Na mais recente software de sistema operacional há um /dev/serial0
que seleciona o dispositivo apropriado para que você possa substituir /dev/ttyAMA0
com /dev/serial0
e usar o mesmo software no Pi3 e modelos anteriores.
Infelizmente, existem várias outras consequências:
The mini UART is a secondary low throughput UART
intended to be used as a console.
The mini Uart has the following features:
• 7 or 8 bit operation.
• 1 start and 1 stop bit.
• No parities.
• Break generation.
• 8 symbols deep FIFOs for receive and transmit.
• SW controlled RTS, SW readable CTS.
• Auto flow control with programmable FIFO level.
• 16550 like registers.
• Baudrate derived from system clock.
Não há suporte para paridade e o rendimento é limitado, mas o último não deve afetar a maioria dos usos.
Há um recurso matador "Baudrate derivado do relógio do sistema" que torna o miniUART inútil, pois esse relógio pode mudar dinamicamente, por exemplo, se o sistema entrar em energia reduzida ou no modo de baixa energia.
A modificação de /boot/config.txt
remove essa dependência adicionando a seguinte linha no final: -
core_freq=250
Isso corrige o problema e parece ter pouco impacto. O SPI clock frequency
e ARM Timer
também dependem do relógio do sistema.
Por algum motivo bizarro, o padrão do Pi3 usando o kernel 4.4.9 mais recente é DESATIVAR UART. Para ativá-lo você precisa mudar
enable_uart=1
no/boot/config.txt
. (Isso também corrige ocore_freq
que não é mais necessário.)
Finalmente, se você não usa o Bluetooth (ou tem usos pouco exigentes), é possível trocar as portas novamente na Árvore de Dispositivos. Há um módulo pi3-miniuart-bt
e pi3-disable-bt
descrito em /boot/overlays/README
.
finalmente isso deu certo para o meu pi3 (os: debian jessie)
siga estas 6 etapas cuidadosamente.
Etapa 1 - Instale o Raspbian Jessie em um cartão SD e inicialize o Pi quando conectado a uma rede. Logon via terminal ou desktop e shell Configure o sistema com:
sudo raspi-config
Expanda o sistema de arquivos e ative o serial na página avançada, saia e reinicie.
Etapa 2 - isso não será necessário se você tiver um novo lançamento de Jessie Atualize o sistema com:
sudo apt-get update
sudo apt-get upgrade
Etapa 3 - Configurações da árvore de dispositivos como abaixo:
Adicione a árvore de dispositivos ao /boot/config.txt para desativar o Bluetooth do Raspberry Pi 3.
sudo nano /boot/config.txt
Adicione no final do arquivo
* se você deseja alterar a porta blutooth para miniuart (ruim)
dtoverlay=pi3-miniuart-bt
* se você deseja desativar o blutooth (bom)
dtoverlay=pi3-disable-bt
Saia do editor salvando suas alterações.
Etapa 4 - reinicie o pi
sudo reboot
passo 5 -
a) para desativar o console serial, edite o arquivo usando
sudo nano /boot/cmdline.txt
remova a palavra fase " console=serial0,115200
" ou " console=ttyAMA0,115200
"
Saia e salve suas alterações
b) para ativar o console serial, edite o arquivo usando
sudo nano /boot/cmdline.txt
Mude o arquivo para o seguinte:
dwc_otg.lpm_enable=0 console=tty1 console=serial0(or ttyAMA0),115200 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait
Saia e salve suas alterações
Etapa 6 - reinicie o pi
sudo reboot
----------------- isso é tudo, divirta-se ---------------------------- ---
A resposta de Naseer está correta, mas um pouco elaborada se você apenas exibiu o último rasbian. Tudo o que eu precisava fazer era adicionar a seguinte linha ao meu config.txt (por exemplo, janelas onde você conecta o cartão SD na partição fat32):
dtoverlay=pi3-disable-bt
Em seguida, conecte-o e o pi imprimirá diretamente os itens nos pinos do console.
9600
. Portanto, isso deve funcionar se eu definircore_freq=250
e configurar minha taxa de transmissão no script ma python? Além disso, seria ótimo se você pudesse dar uma olhada em: raspberrypi.stackexchange.com/questions/47379/… Obrigado!