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 de producto (PID) de 0x8005
.
Configuración inicial
Los pasos que se indican en este documento se validaron en Ubuntu 20.04.
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 arriba) en la placa de desarrollo a RXD del adaptador.
- Conecta GND de J56 (etiquetado GND arriba) a GND del adaptador.
Conecta un lado de la Burning Key (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 Male to Mini B de la siguiente manera:
Descarga LinuxBDT:
wget http://wiki.telink-semi.cn/tools_and_sdk/Tools/BDT/LinuxBDT.tar.bz2
tar -xvf LinuxBDT.tar.bz2
Instala Docker Engine (no uses Docker Desktop).
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}')
En el contenedor de Docker, clona e inicializa el repositorio de GitHub del SDK de 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 la placa en la memoria flash
En el contenedor de Docker, compila
lighting-app
y, luego, sal de Docker:cd examples/lighting-app/telink
rm -rf build
west build
exit
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 realizaron de forma correcta, 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
El dispositivo debe presentarse como un dispositivo serial USB en la computadora. Puedes buscarlo en
/dev
:ls -la /dev/tty*
Puedes abrir la consola en serie con GNU
screen
ominicom
. Por ejemplo, si el dispositivo está en/dev/ttyACM0
:screen /dev/ttyACM0 115200
Para restablecer la placa, presiona el botón CHIP_RESET y deberías ver un resultado como este 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"
Después de configurar correctamente la placa, puedes controlar el LED azul presionando el botón SW3 K2. Cada vez que se presiona, el LED se enciende o se apaga de forma alternativa, y aparece la siguiente salida 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
Para restablecer la configuración de fábrica de la placa, presiona el botón SW2 K1, y deberías ver un resultado como este en la terminal:
I: Factory Reset triggered.
Próximos pasos
Cuando tu ejemplo de Matter se haya compilado correctamente, crea un proyecto de desarrollador.