VL53L1X with NRF54L15

Hello,

I have some issues to do work a VL53L1X with NRF54L15 dev board.

Here are my codes 

# Configuration de la Console (Sortie sur Port COM USB)
CONFIG_SERIAL=y
CONFIG_CONSOLE=y
CONFIG_UART_CONSOLE=n

# Désactivation ABSOLUE de RTT (sinon rien ne sortira sur l'UART)
CONFIG_USE_SEGGER_RTT=y
CONFIG_RTT_CONSOLE=y

# Driver Capteur
CONFIG_PRINTK=y
CONFIG_GPIO=y
CONFIG_I2C=y
CONFIG_SENSOR=y

CONFIG_NEWLIB_LIBC=y
CONFIG_VL53L1X=y

# Support Mathématique (Évite les crashs de calcul)
CONFIG_FPU=y
CONFIG_CBPRINTF_FP_SUPPORT=y

# Mémoire (Le driver VL53L1X est lourd)
CONFIG_MAIN_STACK_SIZE=4096

CONFIG_LOG=y
CONFIG_LOG_DEFAULT_LEVEL=4

CONFIG_TFM_SECURE_UART=n
CONFIG_TFM_LOG_LEVEL_SILENCE=y

/* 1. Désactiver les périphériques qui causent des erreurs de pinctrl */
&spi22 { status = "disabled"; };
&spi21 { status = "disabled"; };

/* Désactivation spécifique du nœud incriminé dans l'erreur (spi@c7000) */
&spi20 { status = "disabled"; }; 

/* 2. Configuration propre de l'I2C */
&i2c22 {
    status = "okay";
    pinctrl-0 = <&i2c22_default>;
    pinctrl-1 = <&i2c22_sleep>;
    pinctrl-names = "default", "sleep";
    clock-frequency = <I2C_BITRATE_STANDARD>;

    vl53l1x_sensor: vl53l1x@29 {
        compatible = "st,vl53l1x";
        reg = <0x29>;
        status = "okay";
    };
};

/* 3. Définition des broches (P1.08 et P1.15) */
&pinctrl {
    i2c22_default: i2c22_default {
        group1 {
            psels = <NRF_PSEL(TWIM_SCL, 1, 8)>,
                    <NRF_PSEL(TWIM_SDA, 1, 13)>;
            bias-pull-up;
            /* Utilisation de la valeur numérique pour éviter les erreurs de macro */
            nordic,drive-mode = <6>; 
        };
    };

    i2c22_sleep: i2c22_sleep {
        group1 {
            psels = <NRF_PSEL(TWIM_SCL, 1, 8)>,
                    <NRF_PSEL(TWIM_SDA, 1, 13)>;
            low-power-enable;
        };
    };

    w1: w1 {
        compatible = "zephyr,w1-gpio";
        gpios = <&gpio2 10 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
        status = "okay";
    };
};

#include <zephyr/kernel.h>
#include <zephyr/device.h>
#include <zephyr/drivers/sensor.h>
#include <zephyr/sys/printk.h>

int main(void) {
    const struct device *const vl53 = DEVICE_DT_GET_ANY(st_vl53l1x);

	if (vl53 == NULL) {
        printk("Erreur : Aucun capteur trouvé dans le device tree\n");
        return;
    }

    if (!device_is_ready(vl53)) {
        printk("Erreur : Le capteur %s n'est pas prêt\n", vl53->name);
        return;
    }
    struct sensor_value dist;

	printk("HELLO\n");

    if (!device_is_ready(vl53)) {
        // Si le capteur n'est pas prêt, on boucle pour ne pas crasher
        while(1) { 
            printk("0,0,0,0,0,0,0,0\n"); 
            k_msleep(1000); 
        }
    }

    while (1) {
        sensor_sample_fetch(vl53);
		printk("HELLO\n");
        sensor_channel_get(vl53, SENSOR_CHAN_DISTANCE, &dist);

        // On formate la ligne avec 8 colonnes pour ton script Python
        // Distance dans la première colonne, le reste à zéro
        printk("%d.0,0.0,0.0,0.0,0.0,0.0,0,0\n", dist.val1);

        k_msleep(200); // 5Hz (Fréquence par défaut de ton script Python)
    }
}

And here is the RTT console response :

SEGGER J-Link V8.86 - Real time terminal output
SEGGER J-Link (unknown) V1.0, SN=1057791783
Process: JLink.exe
[00:00:00.002,148] <dbg> os: z_impl_k_mutex_lock: 0x20000e88 took mutex 0x200007bc, count: 1, orig prio: 0
[00:00:00.002,156] <dbg> os: z_impl_k_mutex_lock: 0x20000e88 took mutex 0x20000780, count: 1, orig prio: 0
--- 11 messages dropped ---
[00:00:00.002,162] <dbg> cracen: cracen_acquire: Powered on CRACEN.
[00:00:00.002,168] <dbg> os: z_impl_k_mutex_unlock: mutex 0x20000780 lock_count: 1
[00:00:00.002,174] <dbg> os: z_impl_k_mutex_unlock: new owner of mutex 0x20000780: (nil) (prio: -1000)
[00:00:00.002,196] <dbg> os: z_impl_k_mutex_lock: 0x20000e88 took mutex 0x20000780, count: 1, orig prio: 0
[00:00:00.002,203] <dbg> cracen: cracen_release: Powered off CRACEN.
[00:00:00.002,209] <dbg> os: z_impl_k_mutex_unlock: mutex 0x20000780 lock_count: 1
[00:00:00.002,215] <dbg> os: z_impl_k_mutex_unlock: new owner of mutex 0x20000780: (nil) (prio: -1000)
[00:00:00.002,221] <dbg> os: z_impl_k_mutex_unlock: mutex 0x50m
113

Someone can help me please?

Thank you !

Best regards

Parents Reply Children
No Data
Related