Réponses:
Cette réponse est toujours correcte et explique plus en détail la nature des modifications, mais la plupart des utilisateurs de Raspbian actuel doivent simplement exécuter
sudo raspi-config
Sélectionnez,Interfacing Options / Serial
puis indiquez si vous souhaitez une console série (probablement non), puis si vous souhaitez activer le matériel du port série (probablement Oui). Puis utilisez/dev/serial0
dans n'importe quel code qui accède au port série.
Le BCM2837 sur les Raspberry Pi3, Pi3B +, Pi3A + et PiZeroW dispose de 2 UART (tout comme ses prédécesseurs). Toutefois, pour prendre en charge la fonctionnalité Bluetooth, le PL011 UART entièrement équipé a été déplacé des broches d'en-tête vers la puce Bluetooth et le mini-UART a été mis à disposition le broches d'en-tête 8 et 10.
(Le SOC sur le Pi4 a des UART supplémentaires, mais les mêmes 2 UART que le BCM2837 sont utilisés pour la série par défaut sur les broches 8 et 10 et Bluetooth.)
Cela a un certain nombre de conséquences pour les utilisateurs de l'interface série.
L’ /dev/ttyAMA0
ancien accès à l’UART se connecte maintenant à Bluetooth.
Le miniUART est maintenant disponible sur /dev/ttyS0
.
Dans le dernier logiciel du système d'exploitation , il est un /dev/serial0
qui sélectionne le dispositif approprié de sorte que vous pouvez remplacer /dev/ttyAMA0
avec /dev/serial0
et utiliser le même logiciel sur le Pi3 et les modèles précédents.
Malheureusement, il y a un certain nombre d'autres conséquences: -
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.
La parité n'est pas prise en charge et le débit est limité, mais ce dernier ne devrait pas affecter la plupart des utilisations.
Il existe une caractéristique "tuberculeuse dérivée de l'horloge système" qui rend le miniUART inutile, car cette horloge peut changer de manière dynamique, par exemple si le système passe en mode à puissance réduite ou en mode basse consommation.
La modification de la /boot/config.txt
supprime cette dépendance en ajoutant la ligne suivante à la fin: -
core_freq=250
Cela corrige le problème et semble avoir peu d'impact. Les SPI clock frequency
et ARM Timer
dépendent également de l'horloge système.
Pour des raisons étranges, la valeur par défaut pour Pi3 utilisant le dernier noyau 4.4.9 est DÉSACTIVER UART. Pour l' activer , vous devez changer
enable_uart=1
dans/boot/config.txt
. (Cela corrige aussi lecore_freq
cas, ce n'est plus nécessaire.)
Enfin, si vous n'utilisez pas Bluetooth (ou utilisez des applications peu exigeantes), il est possible de permuter les ports dans l'Arborescence de périphériques. Il existe un module pi3-miniuart-bt
et pi3-disable-bt
qui sont décrits dans /boot/overlays/README
.
enfin cela a du travail pour ma pi3 (os: debian jessie)
veuillez suivre ces 6 étapes avec soin.
Étape 1 - Installez Raspbian Jessie sur une carte SD et démarrez le Pi lorsqu'il est connecté à un réseau Connectez-vous via un terminal, un ordinateur de bureau et un shell Configurez le système avec:
sudo raspi-config
Développez le système de fichiers et activez le port série sur la page avancée, quittez et redémarrez.
Étape 2 - cela ne sera pas nécessaire si vous avez la nouvelle version de Jessie. Mettez à jour le système avec:
sudo apt-get update
sudo apt-get upgrade
Étape 3 - Paramètres de l’arborescence de périphériques, comme ci-dessous:
Ajoutez une arborescence de périphériques à /boot/config.txt pour désactiver le bluetooth Raspberry Pi 3.
sudo nano /boot/config.txt
Ajouter à la fin du fichier
* si vous voulez changer le blutooth en miniuart (mauvais)
dtoverlay=pi3-miniuart-bt
* si vous voulez désactiver le blutooth (bon)
dtoverlay=pi3-disable-bt
Quittez l'éditeur en enregistrant vos modifications.
Étape 4 - redémarrez le pi
sudo reboot
étape 5 -
a) pour désactiver la console série, éditez le fichier à l'aide de
sudo nano /boot/cmdline.txt
supprimer le mot phase " console=serial0,115200
" ou " console=ttyAMA0,115200
"
Quitter et sauvegarder vos modifications
b) Activer la console série, éditez le fichier en utilisant
sudo nano /boot/cmdline.txt
Modifiez le fichier comme suit:
dwc_otg.lpm_enable=0 console=tty1 console=serial0(or ttyAMA0),115200 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait
Quitter et sauvegarder vos modifications
Étape 6 - redémarrez le pi
sudo reboot
----------------- c'est tout, amusez-vous ---------------------------- ---
La réponse de Naseer est correcte mais un peu complexe si vous venez de flasher le dernier rasbian. Tout ce que j'avais à faire, c'était simplement d'ajouter la ligne suivante à mon fichier config.txt (par exemple, dans les fenêtres où vous branchez la carte SD sur la partition fat32):
dtoverlay=pi3-disable-bt
Ensuite, branchez-le, et le pi imprimera directement des éléments sur les broches de la console.
9600
. Cela devrait donc fonctionner si je configurecore_freq=250
puis ma vitesse de transmission dans un script Python? Aussi, serait formidable si vous pouviez jeter un oeil à: raspberrypi.stackexchange.com/questions/47379/… Merci!