Communication UART - STM32F767ZI

Echangez ici sur vos idées ou vos problèmes concernant vos circuits électroniques et électriques.
Discuss here the problems concerning your electronic and electrical circuits.
Post Reply
XaviECE
Posts: 4
Joined: Tue 20 Mar 2018, 17:23

Communication UART - STM32F767ZI

Post by XaviECE » Tue 20 Mar 2018, 17:36

Bonjour,

Je souhaite configurer une communication UART avec une NUCLEO-144 STM32F767ZI mais la communication ne fonctionne pas malgré un branchement ,il me semble, adéquat. Y aurait-il des pins à souder sur la carte (comme pour la carte L152 - souder sb63 - par exemple).

arno
PMI
Posts: 746
Joined: Wed 23 Jun 2004, 21:51
Location: Un peu partout...

Re: Communication UART - STM32F767ZI

Post by arno » Wed 21 Mar 2018, 20:55

XaviECE wrote:
Tue 20 Mar 2018, 17:36
Bonjour,

Je souhaite configurer une communication UART avec une NUCLEO-144 STM32F767ZI mais la communication ne fonctionne pas malgré un branchement ,il me semble, adéquat. Y aurait-il des pins à souder sur la carte (comme pour la carte L152 - souder sb63 - par exemple).
Salut !

Il va falloir être un peu plus détaillé sur ce que tu cherches à faire (il y a 8 UART distincts chacune mappable sur différentes broches), et ce que tu as déjà fait, si tu veux qu'on puisse t'aider.

De façon plus générale, selon ton besoin, je vois 2 cas particuliers:
* Connexion de la carte à un PC : tu as un UART déjà routé vers la partie ST-Link de la carte (la partie sécable du haut de la carte contenant le débogueur), et le ST-Link t'ouvres directement un port COM virtuel pour s'interfacer avec.
* Connexion de la carte à un autre système : là il faut mieux prendre un autre UART disponible sur d'autres broches.

Utilises tu STM32 CubeMX pour générer les projets ?
Si oui, tu peux créer un projet à partir de la carte nucléo et pas juste à partir du CPU. Comme ça tu as déjà les broches réservées pour le bouton poussoir, les leds, l'ethernet, l'USB et l'UART routé sur le ST-Link dont je parlais au dessus (UART3 à priori d'après le schéma).
A partir de là, tu peux facilement trouver quels sont les broches libres, et quels UART sont disponibles dessus. Il te suffit d'en choisir un et de vérifier dans le schéma de la carte qu'il n'y a pas une résistance manquante (http://www.st.com/resource/en/user_manu ... 244518.pdf page 74 à 79).

Si tu as déjà fait tout ça correctement, il reste les basiques à vérifier, selon le matériel à ta disposition, et pas forcement dans cet ordre :
* Quels sont les niveaux logiques des 2 systèmes connectés (3.3V ? 5V ? RS232 ?) et sont t'ils compatibles ?
* Quels sont les propriétés de chaque systèmes et sont-ils compatibles : vitesse, parité, nombre de bits de donnée, nombre de bits de stop
* TX et RX sont-ils inversés ?
* Si un oscilloscope/analyseur logique est disponible : est ce que les signaux circulent bien ? les fronts sont-ils propres ? les vitesses sont-elles cohérentes ?
* Sinon : chaque système peux être testé indépendamment en rebouclant TX sur RX : si quand un octet est émis par le STM, on le relis sur l'autre voix, le problème n'est pas de ce côté et vient soit de l'autre périphérique, soit de l'interconnexion (électrique ou paramètres)


Pour une réponse plus précise, décrit ton montage, le système avec lequel tu t’interface, les logiciels que tu as utilisés, les tests que tu as fait et leurs résultats (tu ne reçois rien ? l'autre système ne reçoit rien ? tu reçois des données incorrectes ? ça fume ? ...), et je ferais mon mieux pour te dépanner.

XaviECE
Posts: 4
Joined: Tue 20 Mar 2018, 17:23

Re: Communication UART - STM32F767ZI

Post by XaviECE » Sat 24 Mar 2018, 12:27

Bonjour, merci pour la réponse rapide.

Pour le montage, il s'agit de relier un accéléromètre (l'ADXL 335 module) à la NUCLEO et de transmettre, via des modules XBee, à un ordinateur les données reçues. Les deux modules Xbee (l'un configuré en émetteur, l'autre en récepteur) sont testé et fonctionnels, idem pour l'accéléromètre. Cependant, le Xbee récepteur ne reçoit pas de donnée, donc le Xbee émetteur ne reçoit rien de la carte. J'ai bien relié le Tx de la carte au Rx du module XBee. J'ai choisi l' UART3 de la carte pour faire la communication.

J'utilise le compilateur MBed pour générer mon projet, l'idée étant de le valoriser par l'open source.

En te remerciant pour ton aide.

arno
PMI
Posts: 746
Joined: Wed 23 Jun 2004, 21:51
Location: Un peu partout...

Re: Communication UART - STM32F767ZI

Post by arno » Sat 24 Mar 2018, 17:37

Tes informations restent trop vague pour pouvoir t'aider.

Essaie de te mettre à ma place : je ne connais rien de ton projet. Donc essaye de me communiquer le maximum possible si tu veux que je puisse trouver ce que tu as raté. Je ne sais pas la référence des modules Xbee, je n'ai pas le schéma ou au moins sur quelles broches les éléments sont interconnectés, je n'ai pas le code source que tu utilises pour initialiser l'UART et le faire fonctionner, ...

Je t'ai mis dans le mail précédent une liste de points à tester, l'as tu fait ?
arno wrote:
Wed 21 Mar 2018, 20:55
Si tu as déjà fait tout ça correctement, il reste les basiques à vérifier, selon le matériel à ta disposition, et pas forcement dans cet ordre :
* Quels sont les niveaux logiques des 2 systèmes connectés (3.3V ? 5V ? RS232 ?) et sont t'ils compatibles ?
* Quels sont les propriétés de chaque systèmes et sont-ils compatibles : vitesse, parité, nombre de bits de donnée, nombre de bits de stop
* TX et RX sont-ils inversés ?
* Si un oscilloscope/analyseur logique est disponible : est ce que les signaux circulent bien ? les fronts sont-ils propres ? les vitesses sont-elles cohérentes ?
* Sinon : chaque système peux être testé indépendamment en rebouclant TX sur RX : si quand un octet est émis par le STM, on le relis sur l'autre voix, le problème n'est pas de ce côté et vient soit de l'autre périphérique, soit de l'interconnexion (électrique ou paramètres)
Tu signales que tu as utilisé l'UART3. Tu peux le mettre sur plusieurs broches, sur lesquelles l'as tu mis ?
* TX : PD9 (déjà connecté sur le ST-Link), PB11, PC11
* RX : PD8 (déjà connecté sur le ST-Link), PB10, PC10
Si tu as utilisé PD8/PD9, tu risques les problèmes car le ST-Link a déjà sa sortie TX connecté dessus, donc si tu met le XBee à cet endroit, tu te retrouves avec 2 sorties en parrallèle donc court-circuit. Je te conseilles plutôt de garder l'UART3 pour l'utiliser à travers le ST-Link connecté à ton PC pour pouvoir facilement débugger avec des printf (et les leds), et d'en choisir un autre plus accessible pour connecter le XBee.
XaviECE wrote:
Sat 24 Mar 2018, 12:27
J'utilise le compilateur MBed pour générer mon projet, l'idée étant de le valoriser par l'open source.
Je ne suis pas familier avec mBed (sinon de nom). As tu accès au débugger avec ? Si non, tu devrais changer pour un autre système plus facile à utiliser. ST fournit une IDE basé sur eclipse et GCC (au moins en partie open-source donc) permettant le debug pas à pas, les points d'arrêt et la consultation des registres. Si les tests de bases au dessus ne t'ont pas aidé, le debuggeur reste l'outil le plus rapide pour trouver les problèmes.

arno
PMI
Posts: 746
Joined: Wed 23 Jun 2004, 21:51
Location: Un peu partout...

Re: Communication UART - STM32F767ZI

Post by arno » Sat 31 Mar 2018, 19:59

Salut,

Tu as réussi à t'en sortir ?

Si tu es encore bloqué, je suis toujours là pour t'aider.

XaviECE
Posts: 4
Joined: Tue 20 Mar 2018, 17:23

Re: Communication UART - STM32F767ZI

Post by XaviECE » Thu 05 Apr 2018, 13:17

Salut, désolé pour le retard mais la semaine était consacrée aux partiels...

Pour répondre à tes questions :

Le niveau logique est 3.3V, et les modèles sont bien compatibles.
Pour les Xbee, j'utilise le modèle S2C comme celui-ci : https://www.google.fr/imgres?imgurl=htt ... mrc&uact=8
La vitesse de transmission est de 9600 baud. Par contre, je ne suis pas sûr des nombres de bits de données et de stop.
Tx et Rx sont bien inversés.

Description de notre projet :

Notre projet consiste en l'asservissement en position d'un module motorisé. Les techniques actuelles reposent davantage sur l'utilisation de roue codex ou de laser. Ainsi, nous avons pour objectif d'étudier les positions d'un véhicule en fonction des accélérations récupérées.
Pour se faire nous utilisons actuellement l'accéléromètre ADXL335 et la nucléo STM32L152RE. Nous récupérons sous mbed les valeurs que nous renvoient les accéléromètres. Après différents tests à l'arrêt, nous avons pu étalonner notre accélération à 0. Ensuite, par double intégration il nous est possible de récupérer la position exact (utilisation de Processing).
Pour une éventuelle poursuite, il serait intéressant d'utiliser notre nouveau matériel c'est-à-dire la nucléo STM32F767ZI, dans un souci de plus grande précision. En effet, l'utilisation d'accéléromètres plus sensibles et de cette nouvelle nucléo pourrait représenter un plus pour la réalisation de notre projet. Nous avons donc essayer mais comme je vous l'ai exposé précédemment la communication RX/TX ne fonctionne pas.
Nous avions eu un problème similaire avec la nucléo que nous utilisons actuellement mais nous sommes parvenus à résoudre le problème : ON/OFF du pin SB63. Nous avons donc chercher sur la datasheet de la nouvelle nucléo mais impossible de régler le problème même si nous pensons qu'il s'agit du même type de problème.

J'espère t'avoir éclairé un peu plus sur notre projet, demandes moi si tu souhaites plus de détails techniques si ca t'intéresse.

En te remerciant par avance pour ton aide.

Post Reply