Erreur potentielle device tree zehyr zest core FMLR-72

Bonjour,

Nous avons essayé de faire du lorawan avec la fmlr 72 sous zephyr. Les codes d’example Zephyr n’ont pas fonctionné. Il y a une erreur :

[00:00:00.200,000] <inf> sx127x: SX127x version 0x00 found

*** Booting Zephyr OS build v3.7.0 ***

[00:00:00.210,000] <dbg> lorawan: lorawan_set_region: Selected region 5

[00:00:00.261,000] <dbg> lorawan: lorawan_start: LoRaMAC Initialized

[00:00:00.261,000] <inf> lorawan_class_a: Joining network over OTAA
[00:00:00.269,000] <dbg> lorawan: lorawan_join: Network join request sent!
[00:00:04.279,000] <dbg> lorawan: mlme_confirm_handler: Received MlmeConfirm (f)
[00:00:04.279,000] <err> lorawan: MlmeConfirm failed : Tx timeout
[00:00:04.284,000] <err> lorawan_class_a: lorawan_join_network failed: -116

L’élément qui nous semble étrange est surtout le « version 0x00 found ». D’après la datasheet (page 105) du SX1272, qui est présent sur la FMLR-72 la version n’est pas censé valoir 0.

Ainsi nous pensons que la communication SPI ne se fait pas correctement.

Après avoir investiguer nous soupçonnons que le device tree de la FMLR-72 est incorrecte. Plus précisement, nous avons observer la partie correspondant au lora :

&spi2 {

pinctrl-0 = <&spi2_sck_pb10 &spi2_miso_pb14 &spi2_mosi_pb15>;

pinctrl-names = "default";

cs-gpios = <&gpioa 4 GPIO_ACTIVE_LOW>;

status = "okay";

lora: sx1272@0 {

compatible = "semtech,sx1272";

reg = <0x0>;

reset-gpios = <&gpioc 2 GPIO_ACTIVE_LOW>;

antenna-enable-gpios = <&gpiob 12 GPIO_ACTIVE_HIGH>;

dio-gpios = <&gpioa 1 (GPIO_PULL_DOWN | GPIO_ACTIVE_HIGH)>,

<&gpioa 6 (GPIO_PULL_DOWN | GPIO_ACTIVE_HIGH)>,

<&gpioa 7 (GPIO_PULL_DOWN | GPIO_ACTIVE_HIGH)>,

<&gpioc 4 (GPIO_PULL_DOWN | GPIO_ACTIVE_HIGH)>,

<&gpioc 5 (GPIO_PULL_DOWN | GPIO_ACTIVE_HIGH)>;

spi-max-frequency = <DT_FREQ_M(16)>;

power-amplifier-output = "rfo";

};

};

Le reset est ici active low alors que sur la datasheet (page 114-115), pour le SX1272 il est actif au niveau haut.

Nous avons tester en changeant cette propriété mais cela n’a pas fonctionné.

Pour information nous avons vérifié et les pins sont bien configuré de la même manière que pour Mbed.
Nous continuons d’investiguer.

Bonjour,

J’ai été capable de reproduire votre problème avec une Zest Core FMLR-72.

Effectivement, comme vous l’avez remarqué, le reset-gpios n’est pas au bon niveau logique.

-reset-gpios = <&gpioc 2 GPIO_ACTIVE_LOW>;
+reset-gpios = <&gpioc 2 GPIO_ACTIVE_HIGH>;

D’autre pars, la fréquence maximale du SPI est trop élevée pour le composant SX1272. Nous avons donc changer cette valeur.

-spi-max-frequency = <DT_FREQ_M(16)>;
+spi-max-frequency = <DT_FREQ_M(3)>;

Les modifications sont en cours d’approbation sur le dépot et seront à jours dès demain le 10 décembre 2024.

Je vous invite donc à mettre votre dépot zest_core_fmlr-72 à ce moment là.

Logan Saint-Germain

Bonjour,

J’ai mit à jour le repo et la connexion au LoraWAN fonctionne correctement.
Serait il possible de mettre à jour le repo zephyr_6tron-manifest pour qu’il prenne en compte la dernière révision du repo zest_core_fmlr-72 ?

Merci

Le plus simple dans ce cas est certainement de mettre à jour le manifest de votre application à jour avec la bonne version et uniquement les dépendances nécessaires, sans utiliser le module 6TRON dans son intégralité.