Telink

TLSR9518

Este ejemplo funciona como un tipo de dispositivo de bombilla, con capacidades de encendido y apagado. Los pasos se verificaron en una placa de desarrollo Telink TLSR9518 (también conocida como placa de desarrollo B91).

En este ejemplo, se usa un ID de proveedor (VID) de prueba de 0xFFF1 y un ID del producto (PID) de 0x8005.

Vista superior del TLSR9518

Configuración inicial

Los pasos que se indican en este documento se validaron en Ubuntu 20.04.

  1. Conecta la placa de desarrollo a la PC host con un adaptador de USB a UART para la consola en serie:

    • Conecta el PB2 de J34 (etiquetado TX que aparece arriba) en la placa de desarrollo al RXD del adaptador.
    • Conecta el GND de J56 (etiquetado GND arriba) al GND del adaptador.
  2. Conecta un lado de la llave de grabación (la caja negra con cuatro LED) a la PC host con un cable USB A macho a Mini B y el otro lado a la placa de desarrollo con otro cable USB A macho a Mini B de la siguiente manera:

    Conecta el TLSR9518

  3. Descarga LinuxBDT:

    wget http://wiki.telink-semi.cn/tools_and_sdk/Tools/BDT/LinuxBDT.tar.bz2
    tar -xvf LinuxBDT.tar.bz2
    
  4. Instala Docker Engine (no uses Docker Desktop).

  5. Ejecuta el contenedor de Docker (esto tardará un tiempo en completarse la primera vez):

    docker run -it --rm -v $PWD:/host -w /host connectedhomeip/chip-build-telink:$(wget -q -O - https://raw.githubusercontent.com/project-chip/connectedhomeip/v1.0-branch/.github/workflows/examples-telink.yaml 2> /dev/null | grep chip-build-telink | awk -F: '{print $NF}')
    
  6. En el contenedor de Docker, clona e inicializa el repositorio de GitHub del SDK Matter ( connectedhomeip):

    git clone https://github.com/project-chip/connectedhomeip.git
    cd connectedhomeip
    git fetch origin v1.0-branch
    git checkout FETCH_HEAD
    ./scripts/checkout_submodules.py --platform telink
    source ./scripts/activate.sh
    

Compila la imagen y escribe en la memoria flash de la placa

  1. En el contenedor de Docker, compila lighting-app y, luego, sal de Docker:

    cd examples/lighting-app/telink
    rm -rf build
    west build
    exit
    
  2. Escribe la imagen en la memoria flash de la pizarra:

    cd LinuxBDT
    sudo ./bdt 9518 sws # Verify the connection
    sudo ./bdt 9518 ac # Activate MCU
    sudo ./bdt 9518 wf 0 -s 2040k -e # Erase flash sectors
    sudo ./bdt 9518 wf 0 -i ../connectedhomeip/examples/lighting-app/telink/build/zephyr/zephyr.bin
    sudo ./bdt 9518 rst -f # Reset MCU
    

    Si los pasos anteriores se ejecutaron correctamente, los siguientes comandos deberían producir un resultado similar en la terminal:

    sudo ./bdt 9518 sws
     TC32 EVK: Swire ok!
    sudo ./bdt 9518 ac
    Activate OK!
    sudo ./bdt 9518 wf 0 -s 2040k -e
    EraseSectorsize...
    Total Time: 26973 ms
    sudo ./bdt 9518 wf 0 -i ../connectedhomeip/examples/lighting-app/telink/build/zephyr/zephyr.bin
    EraseSectorsize...
    Total Time: 9806 ms
    Flash writing...
    [ 0%]Flash Bytes Program at address 0
    ...
    [100%]Flash Bytes Program at address b6d00
    File Download to Flash at address 0x000000: 748836 bytes
    Total Time: 191337 ms
    sudo ./bdt 9518 rst -f
    Total Time: 72 ms
    reset mcu

Valida el ejemplo

  1. El dispositivo debe presentarse como un dispositivo serial USB en tu computadora. Puedes buscarlo en /dev:

    ls -la /dev/tty*
    

    Puedes abrir la consola en serie con GNU screen o minicom. Por ejemplo, si el dispositivo está en /dev/ttyACM0:

    screen /dev/ttyACM0 115200
    
  2. Para restablecer la placa, presiona el botón CHIP_RESET. Deberías ver un resultado como el siguiente en la terminal:

    *** Booting Zephyr OS build v3.1.0-rc1-3593-gdac17979d626  ***
    I: Init CHIP stack
    I: Starting CHIP task
    ...
    I: 812 [DL]BLEManagerImpl::ConfigureAdvertisingData
    I: 823 [DL]Setting device name to : "TelinkMatter"
    ...
    I: 1093 [SVR]SetupQRCode: [MT:NOTAREALQRCODE01234]
    I: 1099 [SVR]Copy/paste the below URL in a browser to see the QR Code:
    I: 1107 [SVR]https://project-chip.github.io/connectedhomeip/qrcode.html?data=MT%3ANOTAREALQRCODE01234
    I: 1118 [SVR]Manual pairing code: [34970112332]
    I: 1124 [DL]Setting device name to : "TelinkLight"
    
  3. Después de poner en marcha la placa correctamente, puedes controlar el LED azul presionando el botón SW3 K2. Cada vez que se presiona, el LED se enciende o se apaga de manera alternativa, y aparece el siguiente resultado en la terminal:

    I: Turn On Action has been initiated
    I: Turn On Action has been completed
    D: 1058359 [DMG]Endpoint 1, Cluster 0x0000_0006 update version to 92b92035
    ...
    I: 1058365 [ZCL]Cluster OnOff: attribute OnOff set to 1
    ...
    D: 1058372 [DMG]Endpoint 1, Cluster 0x0000_0008 update version to 7ea4bc9c
    ...
    I: 1058378 [ZCL]Cluster LevelControl: attribute CurrentLevel set to 254
    
  4. Para restablecer la configuración de fábrica de la placa, presiona el botón SW2 K1 y deberías ver un resultado como el siguiente en la terminal:

    I: Factory Reset triggered.
    

Próximos pasos

Una vez que se haya compilado correctamente tu ejemplo de Matter, crea un proyecto de desarrollador.