LOCODUINO

Discussions Générales => Bus CAN => Discussion démarrée par: Jean-Luc le mai 03, 2021, 05:33:38 pm

Titre: ACAN ESP32
Posté par: Jean-Luc le mai 03, 2021, 05:33:38 pm
Bonjour à tous,

Pierre Molinaro a finalisé la bibliothèque ACAN pour ESP32 avec examples et doc  8)

Elle est disponible dans le gestionnaire de bibliothèques sous le nom ACAN_ESP32.
Titre: Re : ACAN ESP32
Posté par: Dominique le mai 03, 2021, 07:10:05 pm
Super,

Merci à toi et à Pierre d’avoir été si vite ;D

Ce sera une bonne entrée en matière pour expliquer les filtres et les masques.
Et on pourra l’intégrer à LaBox. A moi de faire quelques exemples!


Titre: Re : ACAN ESP32
Posté par: DDEFF le mai 07, 2021, 03:14:38 pm
Merci à Pierre Molinaro et à Jean-Luc.  ;D

C'est ce que je demandais : un ACAN ESP 32 ::)
Comme ça, on sera "dans le moule.

Denis
Titre: Re : ACAN ESP32
Posté par: Pyk35 le mai 09, 2021, 06:42:07 pm
Merci pour cette réalisation !
Titre: Re : ACAN ESP32
Posté par: Patrick75 le septembre 04, 2021, 12:02:58 pm
Bonjour,
Ce message n'est pas vraiment sur le sujet mais, je n'ai pas trouvé où le raccrocher.
Question:
A ce que j'ai compris, les bibliothèques ACAN ne sont pas compatible avec l'Arduino Due or les fonctionnalités de ACAN sont très intéressantes pour manipuler les data.
Qu'elle bibliothèque conseillerez-vous pour le Due ?
Merci.
Titre: Re : ACAN ESP32
Posté par: msport le septembre 04, 2021, 03:14:59 pm
Bonjour,

sauf erreur, Dominique utilise cette bibliothèque.

https://www.arduinolibraries.info/libraries/due_can

Il pourra peut-être en dire plus.
Titre: Re : ACAN ESP32
Posté par: Dominique le septembre 04, 2021, 09:17:39 pm
msport a raison, je peux en dire plus  :D :D :D

J'utilise effectivement la bibliothèque due_can que je joins en PJ

Une bonne initiation est donnée dans ce programme CAN_trafficSniffer.ino

Il y a une définition très interessante dans ACAN que vous pouvez utiliser dans votre programme pour manipuler les 8 octets de données :
public : union {
    uint64_t data64        ; // Caution: subject to endianness
    uint32_t data32 [2]    ; // Caution: subject to endianness
    uint16_t data16 [4]    ; // Caution: subject to endianness
    float    dataFloat [2] ; // Caution: subject to endianness
    uint8_t  data   [8] = {0, 0, 0, 0, 0, 0, 0, 0} ;
  } ;
Cela permet de lire et écrire directement différents types de variables dans ces 8 octets selon vos besoins et sans programme de conversion de type à écrire.

Attention "Caution: subject to endianness" signifie que cela peut ne pas marcher lorsque votre système ne place pas les octets dans le bon ordre... debugguer avec des Serial.print permet de détecter le problème.

Dans mon projet j'ai 2 Due, l'un pour le gestionnaire global du réseau que je publierai prochainement et l'autre pour un testeur et aide à la mise au point qui utilise un écran graphique et quelques boutons permettant de construire des modules de test comme on veut. Je le joins dans son état actuel, en chantier et plein de promesses, mais pas fini  >:(

L'essentiel de la gestion Can se trouve dasn le fichier canmessages.h

Titre: Re : ACAN ESP32
Posté par: Patrick75 le septembre 05, 2021, 12:48:37 pm
Bonjour,
Un grand merci à msport et surtout Dominique pour leurs réponses précises et très rapides.

J'utilise déjà effectivement la bibliothèque due_can et je suis aussi déjà informé du piège de la permutation des bits de poids fort et faible en fonction du type d'Arduino utilisé, une piqûre de rappel ne fait pas de mal de toute façon.

Merci pour les fichiers joints et les explications sur la manipulation de données (je suis dans le cas de 4 blocs de 8 bits, chaque bit portant une donnée spécifique à gérer une par une).

Le testeur sera très utile, j'en suivrai les annonces.

Je regarde tout ça et reviendrai ici pour vous dire le résultat.
Patrick
Titre: Re : ACAN ESP32
Posté par: Jean-Paul le avril 13, 2023, 10:18:21 pm
Bonjour à tous,

Pierre Molinaro a finalisé la bibliothèque ACAN pour ESP32 avec examples et doc  8)

Elle est disponible dans le gestionnaire de bibliothèques sous le nom ACAN_ESP32.

Bonsoir,

Je reviens sur le sujet ACAN sur ESP32 (après un long séjour de mon projet dans le placard).

J'ai voulu mettre à jour mes librairies et ACAN_ESP32 passe à la version 1.1.0. Et là plus rien ne va.
Je suis retourné aux exemples inclus dans la librarie (le plus simple: loopback) et de même impossible de compiler avec des définitions manquantes (TWAI_TX_IDX et d'autres similaires)
(TWAI - Two Wire Auto Interface sembre être utilisé par Espressif au lieu de CAN)

J'ai ensuite remis une version plus ancienne 1.0.6 et alors cela remarche. Il semble que là les anciens noms CAN_TX_IDX et similaires sont utilisés.

Est-ce quelqu'un a essayé d'utiliser cette version ?

Merci pour toute aide ou commentaires

Jean-Paul
Titre: Re : ACAN ESP32
Posté par: bobyAndCo le avril 13, 2023, 10:28:10 pm
J'ai eu ce problème et ai échangé avec Pierre à ce sujet, voir ici : https://github.com/pierremolinaro/acan-esp32/issues/6

Sinon, effectivement il faut rester en 1.0.6. Ceci est d'autant plus facile si on utilise PlateformIO : lib_deps = pierremolinaro/ACAN_ESP32@=1.0.6
Titre: Re : ACAN ESP32
Posté par: Jean-Paul le avril 14, 2023, 02:14:25 pm
Merci pour la réponse ultra-rapide.

J'ai vérifié la version du 'board' ESP32: j'avais 1.0.6 alors que la version courante est 2.0.7 !
Pour y accéder il faut mettre le bon lien dans les préférences : https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json (au lieu de https://dl.espressif.com/dl/package_esp32_index.json qui ne donne pas accès aux versions au dela de 1.0.6)

J'ai ensuite remis la version 1.1.0 de la librairie ACAN_ESP32 et cela compile OK.

En définitive, mon environment:
Win 10, IDE 1.8.13, board ESP32 2.0.7, librairie ACAN_ESP32 1.1.0.

Jean-Paul