Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Firmware DWM1001
Guía del usuario
Basado en la placa DWM1001-DEV
Versión 1.4
TABLA DE CONTENIDO
3.2.1 Parte de hardware de la cadena de herramientas .................................. .................................................... 14 3.2.2 Parte del
software de la cadena de herramientas ............................... .................................................... ..14 3.2.3 Paquete de aplicación de
ejemplo para DWM1001.................................... ..........................15 3.3 GUÍAS PARA FLASHEAR EL DWM1001 CON IMAGEN
DE FÁBRICA ............. .................................................... ..15
LISTA DE TABLAS
LISTA DE FIGURAS
FIGURA 1 ARQUITECTURA DE ALTO NIVEL DEL FIRMWARE DWM1001 VS. SOFTWARE DEL USUARIO ................................9
FIGURA 2 COMPONENTES DE LA BIBLIOTECA DE FIRMWARE DEL DWM1001 .................................. ....................................10
FIGURA 3: CADENA DE HERRAMIENTAS Y COMPONENTES DE FUENTE EN EL DESARROLLO DE FIRMWARE DWM1001 ................................13
FIGURA 4: VERSIÓN DE LA CADENA DE HERRAMIENTAS INTEGRADA DE GNU ARM PARA DESCARGAR .................................. ..........14
Descargo de responsabilidad
Decawave se reserva el derecho de cambiar las especificaciones del producto sin previo aviso. En la medida de lo posible, los cambios en la
funcionalidad y las especificaciones se publicarán en hojas de erratas específicas del producto o en nuevas versiones de este documento. Se
recomienda a los clientes que consulten el sitio web de Decawave para obtener las actualizaciones más recientes de este producto.
Nota: A los efectos de este documento, "DWM1001" también puede referirse a "DWM1001C". La única diferencia entre ambos módulos es
que DWM1001C está certificado y su memoria OTP está calibrada para cumplir con las normas FCC/ETSI.
Los productos Decawave no están autorizados para su uso en aplicaciones críticas para la seguridad (como soporte vital) donde se esperaría
razonablemente que una falla del producto Decawave causara lesiones personales graves o la muerte.
Los clientes de Decawave que usan o venden productos Decawave de esa manera lo hacen bajo su propio riesgo y aceptan indemnizar
completamente a Decawave y sus representantes por cualquier daño que surja del uso de productos Decawave en tales aplicaciones críticas para
la seguridad.
DESCARGO DE RESPONSABILIDAD
(1) Este descargo de responsabilidad se aplica al software proporcionado por Decawave Ltd. ("Decawave") en apoyo
de su producto de módulo DWM1001 ("Módulo") todo como se establece en la cláusula 3 del presente ("Software
Decawave").
(3) El software Decawave consta de los siguientes componentes (a) a (d) inclusive:
(a) El Decawave Positioning and Networking Stack ("PANS"), disponible como una biblioteca acompañada de
un código fuente que permite un nivel de personalización del usuario.
El software PANS está preinstalado y se ejecuta en el módulo tal como se suministra, y permite
"etiquetas" móviles, "anclas" fijas y "puertas de enlace" que, en conjunto, ofrecen el sistema de ubicación
en tiempo real de alcance bidireccional DWM1001 ("DRTLS")
La red.
(b) Decawave DRTLS Manager, que es una aplicación de Android™ para la configuración de nodos DRTLS
(nodos basados en el Módulo) a través de Bluetooth™.
(c) La aplicación Decawave DRTLS Gateway , que proporciona una función de puerta de enlace (en una
Raspberry Pi ®) que enruta la ubicación DRTLS y el tráfico de datos del sensor a una red basada en IP
(p. ej., LAN), y consta de los siguientes componentes:
• Módulo de kernel de Linux de puerta de enlace DRTLS
• Demonio de puerta de enlace DRTLS
• Proxy de puerta de enlace DRTLS
• Agente MQTT de puerta de enlace DRTLS
• Administrador web de puerta de enlace DRTLS
(d) Ejemplos de funciones de API de host, también diseñadas para ejecutarse en una Raspberry Pi, que
muestran cómo controlar el módulo desde un microprocesador de host externo.
(4) Decawave Software utiliza los siguientes componentes de terceros y están incorporados en el firmware o incluidos en el
paquete de software, según sea el caso: -
(a) El software PANS incorpora Nordic SoftDevice S132-SD-v3 versión 3.0.0 (producción) que se incluye en el
Firmware y también se incluye en el Paquete de software;
(b) El software PANS utiliza eCos RTOS que se incluye en el paquete de software. eCos RTOS se proporciona
bajo los términos de una licencia de código abierto
que se puede encontrar en: http://ecos.sourceware.org/license-overview.html;
(c) El software PANS utiliza una función CRC-32 de código abierto de FreeBSD que se incluye en el paquete de
software. Esta función CRC-32 se proporciona bajo los términos de la licencia BSD que se puede
encontrar en:
https://github.com/freebsd/freebsd/blob/386ddae58459341ec56760470780581
4a2128a57/DERECHOS DE AUTOR;
(d) La aplicación Decawave DRTLS Manager utiliza software de código abierto que se proporciona como
código fuente en el paquete de software. Este software de fuente abierta se proporciona bajo los
términos de la Licencia Apache v2.0 que se puede encontrar en http://www.apache.org/licenses/
LICENSE-2.0;
(e) La aplicación Decawave DRTLS Gateway utiliza los siguientes componentes de terceros: -
(ii) La biblioteca de JavaScript three.js, cuya versión descargable está disponible aquí
https://threejs.org/, se proporciona bajo los términos de la licencia MIT que se
puede encontrar en https://opensource.org/licenses /MIT.
Los artículos (a), (b), (c), (d) y (e) en esta sección 4 se denominan colectivamente como el "Tercer
software de fiesta”
(5) El software Decawave incorpora el código fuente licenciado a Decawave por Leaps sro, un proveedor
de Decawave, que está incluido en el firmware y el paquete de software en formato binario y/o
código fuente, según sea el caso, según los términos de una licencia. acuerdo celebrado entre
Decawave y Leaps sro
(6) Por el presente, Decawave le otorga una licencia mundial gratuita, no exclusiva e intransferible sin
derecho a sublicenciar para diseñar, fabricar, hacer fabricar, comercializar, vender, vender o
disponer de otro modo de productos que incorporen el software Decawave, para modificar el
Software Decawave o incorporar el Software Decawave en otro software y para diseñar, fabricar,
hacer fabricar, comercializar, vender, vender o disponer de cualquier otro modo de productos que
incorporen dicho software modificado o incorporado SIEMPRE QUE el uso por su parte del Software
de Terceros tal como se suministró por Decawave está sujeto a los términos y condiciones de los
respectivos acuerdos de licencia como se establece en la cláusula 4 del presente Y SIEMPRE QUE
el software Decawave se use solo en sistemas y productos basados en productos semiconductores
Decawave. NO SE OTORGA NINGUNA OTRA LICENCIA, EXPRESA O IMPLÍCITA, POR
ESTOPPEL O DE CUALQUIER OTRO DERECHO DE PROPIEDAD INTELECTUAL DE
DECAWAVE, NI NINGUNA LICENCIA A CUALQUIER TECNOLOGÍA DE TERCEROS O DERECHO
DE PROPIEDAD INTELECTUAL, SE OTORGA EN EL PRESENTE DOCUMENTO, incluidos, entre
otros, cualquier derecho de patente, derechos de autor, trabajo de máscara derecho u otro derecho
de propiedad intelectual relacionado con cualquier combinación, máquina o proceso en el que se
utilicen los productos semiconductores Decawave o el software Decawave.
(7) La descarga, la aceptación de la entrega o el uso del software Decawave indica su acuerdo con los
términos de (i) la licencia concedida en la cláusula 6 del presente, (ii) los términos de este Aviso
legal y (iii) los términos adjuntos al Software de terceros . Si no está de acuerdo con todos estos
términos, no descargue, acepte la entrega ni utilice el software Decawave.
(8) El software Decawave está destinado únicamente a ayudarlo a desarrollar sistemas que incorporen
productos semiconductores Decawave. Usted entiende y acepta que Ud.
sigue siendo responsable de usar su análisis, evaluación y juicio independientes en el diseño de sus
sistemas y productos. LA DECISIÓN DE UTILIZAR EL SOFTWARE DE DECAWAVE EN SU TOTALIDAD
O EN PARTE EN SUS SISTEMAS Y PRODUCTOS ES TOTALMENTE DE USTED Y DECAWAVE NO
ACEPTA RESPONSABILIDAD ALGUNA POR DICHA DECISIÓN.
(11) Usted reconoce y acepta que es el único responsable del cumplimiento de todos los requisitos legales,
reglamentarios y relacionados con la seguridad relacionados con sus productos y cualquier uso del
software Decawave en sus aplicaciones, independientemente de cualquier información o soporte
relacionado con las aplicaciones que pueda proporcionarse. por Decawave.
Copyright (c) 15 de noviembre de 2017 por Decawave Limited. Reservados todos los derechos. Todas las marcas
registradas son propiedad de sus respectivos dueños
1 INTRODUCCIÓN
1.1 Resumen
El desarrollo de una red de posicionamiento en tiempo real utilizando tecnología UWB no es un proyecto
baladí. La intención de DWM1001 es simplificar el desarrollo de UWB RTLS proporcionando una solución
completa en un solo módulo.
El módulo DWM1001 viene precargado con firmware incorporado que proporciona funcionalidad y red de sistema de
ubicación en tiempo real (RTLS) de alcance bidireccional (TWR). El módulo se puede configurar y controlar a través
de su API, a la que se puede acceder a través de varias interfaces diferentes, lo que permite flexibilidad al diseñador
del producto. Los detalles de la API son
descrito en el documento [2]. Además, Decawave también proporciona el firmware del módulo en forma de bibliotecas
y código fuente junto con un entorno de construcción para que el usuario pueda personalizar la operación y/o agregar
sus propias funciones.
Este documento describe lo que se incluye en el firmware DWM1001 y cómo estos diversos
los elementos cooperan entre sí y explica cómo los usuarios pueden agregar sus propias personalizaciones.
El objetivo de esta guía de usuario es ayudar a los usuarios con su desarrollo basado en la placa
DWM1001-DEV. Después de leer esta guía, los desarrolladores deberían poder compilar, construir y ejecutar el
firmware DWM1001, incluidas las modificaciones personalizadas.
El firmware integrado en el módulo DWM1001 proporciona básicamente dos tipos de funciones: la API de PANS y la biblioteca de PANS
que proporciona funciones de nivel inferior. La API de PANS incluye la API genérica (estas incluyen diferentes conjuntos de API para
diferentes interfaces y el analizador correspondiente, que actúa como traductor entre las API de usuario (C, UART, SPI y BLE) y la biblioteca
de PANS). La Figura 1 muestra la arquitectura y los componentes del firmware DWM1001.
Figura 1 Arquitectura de alto nivel del firmware DWM1001 frente al software del usuario
Como se puede ver en la Figura 1, además de usar el propio módulo DWM1001, el módulo DWM1001 se puede conectar físicamente
a un hardware de control externo, ya sea por cable o
de forma inalámbrica a través de la radio Bluetooth. La API de PANS proporciona a los usuarios cuatro conjuntos de API para llamar a
las funciones de la biblioteca de PANS a través de diferentes interfaces:
• Código de usuario C: un espacio de usuario integrado que permite incluir un código específico de la aplicación.
código en el archivo de la aplicación de usuario provisto en el firmware DWM1001, utilizando la cadena de herramientas
de desarrollo de firmware proporcionada por Decawave, consulte la Sección 4.2.
• SPI: uso de un dispositivo host (por ejemplo, PC) para comunicarse con el módulo DWM1001 mediante solicitudes y respuestas de
formato TLV (formato Tipo-Longitud-Valor, detallado en [2]) a través del bus SPI, para configuración y transmisión de datos.
• UART: uso de un dispositivo host (por ejemplo, PC) para comunicar el módulo DWM1001 a través del bus UART, para configuración
y transmisión de datos. Dos modos de comunicación
se proporcionan a través de la interfaz UART: modo genérico UART que utiliza solicitudes y respuestas en
formato TLV; y el modo UART Shell usando los comandos de solicitud de terminal.
• BLE: uso de un dispositivo Bluetooth Low Energy (BLE) (por ejemplo, una tableta Android) para controlar y configurar a
través de la radio Bluetooth.
Todos estos conjuntos de API proporcionan el mismo conjunto de llamadas de funciones genéricas, es decir, la API genérica.
El analizador de API genérico actúa como traductor entre los cuatro conjuntos de API y el API genérico. Cuando se llama
a un comando de API desde cualquiera de las interfaces de API anteriores, el comando pasa por el analizador de API
genérico que traduce el comando de API en llamadas de funciones de API genéricas. Si el comando API necesita un
mensaje de respuesta, el DWM1001 responde
a través de la misma interfaz.
El uso de código C, API UART y SPI se detallan con ejemplos simples en la Sección 4.
Se proporciona información más detallada en el documento API [2].
Nota 1: las interfaces externas, incluidas la UART, la SPI y la BLE, son utilizadas por las API externas en la biblioteca PANS
para la conexión del host. La aplicación de usuario integrada a través de la API de código C no puede hacer uso de las
interfaces externas debido a razones de compatibilidad.
Nota 2: Decawave no proporciona el código fuente de la biblioteca ni admite ningún uso de la biblioteca PANS, excepto a
través de la API de PANS, que se describe en el documento API [2]
La figura 2 ilustra la arquitectura de la biblioteca PANS en detalle. De abajo hacia arriba, los componentes principales son
SoftDevice y la pila de protocolos BLE de Nordic Semiconductor, el sistema eCos RTOS con controladores integrados de los
componentes, los protocolos de la capa IoT y la capa de aplicaciones. La Sección 2.3 ofrece una breve introducción a cada
uno de los componentes de la biblioteca y las operaciones en la capa de aplicación.
La biblioteca PANS incluye algunos componentes de firmware para controlar el módulo DWM1001.
Algunas operaciones se implementan en base a estos componentes para realizar la función de posicionamiento y conexión
en red.
SoftDevice es una biblioteca rica en características de Nordic Semiconductor para BLE. El SoftDevice empleado en el DWM1001
es el S132, un SoftDevice multienlace simultáneo para roles de Central, Periférico, Emisor y Observador en aplicaciones BLE.
El controlador/biblioteca BLE se incluye en el S132 SoftDevice, lo que proporciona al DWM001 funciones BLE para crear
topologías de red complejas, comunicación y actualización de firmware inalámbrica [1].
eCos RTOS es un sistema operativo gratuito de código abierto en tiempo real. El sistema eCos proporciona
muy buen rendimiento en tiempo de ejecución y el paquete de soporte de placa (BSP) para el DWM1001
plataforma de hardware Incluye todos los controladores necesarios para los componentes del módulo (es decir,
acelerómetro, BLE y DW1000).
Controlador API DW1000 de Decawave. Para obtener más información, consulte la Guía de la API del software DW1000 [2].
En el módulo DWM1001 se implementa un componente acelerómetro LIS2DH12TR de dirección esclava 0x19 como
dispositivo periférico I2C, es decir, las direcciones de lectura y escritura son 0x33 y 0x32 respectivamente. Este acelerómetro
proporciona una función de indicación "estacionaria" simple.
La etiqueta basada en DWM1001 se puede configurar para usar el modo de respuesta o de bajo consumo . Estará en modo
de bajo consumo cuando esté parado y entrará en modo de respuesta cuando esté en movimiento. Se puede acceder a los
datos del acelerómetro en tiempo real a través del comando Shell API provisto y las funciones I2C en la API de código C,
consulte [2] para obtener información detallada.
La pila de redes PANS permite el descubrimiento, la unión y la salida. Los marcos UWB son
enviado de acuerdo con los formatos de trama estándar 802.15.4. La funcionalidad de la capa MAC
implementada en el módulo DWM1001, como se describe en el documento Descripción general del sistema DWM1001
[3], controla el mecanismo para unir, dejar, instalar, poner en marcha los nodos y el protocolo de rango bidireccional
asociado y la transferencia de datos. Se admiten varios casos de uso diferentes, por ejemplo, sígueme, seguimiento de activos
a gran escala, navegación, red doméstica.
DRTLS se puede poner en marcha con la aplicación de Android Decawave RTLS Manager.
Después del encendido, los nuevos nodos se anunciarán a través de Bluetooth. Administrador de Decawave RTLS
La aplicación se utiliza para conectarse al nodo y configurarlo (por ejemplo, su función como ancla o etiqueta; sus coordenadas
x, y, z si es un ancla y otros atributos).
La aplicación de gestión RTLS admite la configuración de módulos DWM1001 como etiquetas y anclas que
participarán en TWR. Las etiquetas se extenderán a anclas cercanas y usarán un motor de ubicación interno para
calcular la posición. La implementación completa se detalla en el documento Descripción general del sistema
DWM1001 [3].
La imagen de Virtual Box ahora está obsoleta y la metodología recomendada para el desarrollo de firmware es usar
Segger Embedded Studio.
Segger Embedded Studio es ideal para el desarrollo de DWM1001, ya que ofrece una licencia de uso comercial gratuita
para el MCU nrf51-52 de Nordic Semiconductors.
La cadena de herramientas se puede utilizar para desarrollar una nueva aplicación con funcionalidades adicionales que
residirán en el módulo DWM1001 y se ejecutarán sobre la biblioteca PANS y la funcionalidad del módulo principal.
El usuario debe instalar GNU ARM Embedded Toolchain (arm-none-eabi-gcc versión 5.4.1 para
compatibilidad cruzada) y Segger Embedded Studio (SES).
El paquete integrado DWM1001 distribuido contiene los archivos fuente de la aplicación de usuario y las bibliotecas
necesarias para compilar y construir el firmware de usuario DWM1001. También se proporciona un proyecto SES
para cada ejemplo.
Como se ilustra en color verde en la Figura 3, una PC con sistema operativo Microsoft Windows y un DWM1001-
La placa DEV es necesaria como hardware. La placa DWM1001-DEV proporciona el módulo
DWM1001 como destino y un depurador J-Link.
Para realizar el desarrollo de aplicaciones de usuario para dwm1001, se debe descargar e instalar el siguiente
software en la computadora con Windows. Recomendamos utilizar la ruta de instalación predeterminada.
Para compatibilidad cruzada con la biblioteca PANS compilada, asegúrese de que la versión de GNU ARM
Embedded Toolchain corresponda a 5.4 2016q3 - Figura 4
El paquete integrado DWM1001 se proporciona para su descarga en el sitio web de Decawave [5].
Consulte la Figura 5 para ver el contenido detallado del paquete integrado del DWM1001.
Sus componentes principales son la biblioteca DWM1001 PANS, los archivos binarios de firmware, como el dispositivo
de software NRF y el gestor de arranque, y los ejemplos de aplicaciones de usuario.
En el firmware DWM1001, la biblioteca eCos y otro software de terceros constituyen los PANS
biblioteca como se introdujo en la Sección 2.2. Estos archivos fuente no se proporcionan en el paquete integrado.
También se proporciona el SDK de semiconductores nórdicos para nrf52832, ya que los usuarios pueden
necesitarlo para el desarrollo de aplicaciones. Tenga en cuenta que la versión SDK utilizada en PANS es: SDK v 12.1.0
DWM1001 viene con una imagen de fábrica pre-flasheada del firmware. Esta imagen se proporciona en el paquete
integrado del DWM1001: /dwm/recovery/DWM1001_PANS_R2.1.hex. A continuación se describen los pasos necesarios
para flashear la imagen de fábrica en la placa DWM1001-DEV.
La herramienta J-Flash Light se puede usar para mostrar la imagen de fábrica a través del DWM1001-DEV en algunas
plataformas diferentes.
1) Conecte el módulo con un cable de datos micro USB, como se muestra en la Figura 6.
C. Haga clic en "Borrar chip" para realizar un borrado completo del chip.
d. En Archivo de datos, haga clic y busque el archivo hexadecimal proporcionado en el paquete integrado DWM1001 (/
dwm/recovery/DWM1001_PANS_R2.1.hex) para flashear, haga clic en “Program
Dispositivo".
Los LED de las placas deben estar activos una vez que se complete la actualización flash.
4.1 Resumen
Como se ilustra en la Figura 1, DWM1001 ofrece muchas formas de utilizar sus funciones API. En esta sección se
enumeran ejemplos que muestran el uso de las API. En código C, UART Shell, UART
Los ejemplos genéricos y SPI para obtener la ubicación del nodo a través de la API son
presentado. El documento API [2] proporciona información más detallada.
Se necesita una herramienta para abrir el puerto serie entre el dispositivo host y el módulo DWM1001 sobre
UART en el desarrollo del firmware. En Windows, se puede usar PuTTY; en Linux con una Raspberry Pi, por
ejemplo, se puede usar minicom. La tasa de baudios de UART en el módulo DWM1001 es 115200 bps y la
configuración es 8N1.
El ejemplo de "API de código C" es una aplicación que se ejecuta como parte del firmware integrado y utiliza los
recursos del sistema integrados en el microcontrolador Cortex M4F del módulo. La aplicación se ejecuta como
una aplicación de subprocesos en un entorno de subprocesos múltiples y se incluye en el sistema operativo en
tiempo real eCos de la biblioteca PANS.
El firmware DWM1001 incluye las siguientes partes: Nordic S132 Softdevice, Bootloader,
Medio ambiente, FW1 y FW2:
• El entorno, de 8 KB de tamaño a partir de la dirección 0x20000, es una sección flash reservada para que el
firmware almacene información de configuración del usuario. Apagar/encender, reiniciar o volver a actualizar
el firmware no borrará la sección Medio ambiente en el flash. para borrar el
sección de entorno, se necesita una operación de borrado completo introducida en la Sección 3.3. O
alternativamente, se puede usar el comando de shell "primero" introducido en la API de PANS [2].
• FW1, con un tamaño de 136 KB a partir de la dirección 0x22000, es una pieza de firmware para la
actualización de firmware inalámbrica (OTA).
• FW2, tamaño de hasta 240 KB a partir de la dirección 0x44000, es la imagen de firmware que incluye la
biblioteca PANS completa y la aplicación de usuario de código c, donde la aplicación de usuario actúa
como un subproceso independiente en el firmware y puede ocupar hasta 3 KB de RAM y Flash de 60
KB. Al reconstruir/actualizar el firmware de la aplicación del usuario, se está operando todo el FW2.
Para agregar funciones personalizadas por el usuario, se debe agregar el código personalizado del usuario
a los archivos de la aplicación y se debe reconstruir todo el proyecto. En ejemplos/dwm-simple/dwm-simple.c se
proporciona un ejemplo simple de creación de una aplicación de usuario de código C. El ejemplo de dwm-simple
se puede editar, compilar y depurar con Segger Embedded Studio.
PANS se desarrolló y compiló inicialmente GNU ARM Embedded Toolchain 5.4 2016q3.
Se requiere usar exactamente la misma versión para evitar cualquier problema de retrocompatibilidad.
El primer paso consiste en configurar la cadena de herramientas del compilador al compilador GCC
externo instalado previamente según la sección 3.2.2.
1. Haga clic con el botón derecho en el nombre de la solución en la sección del elemento del proyecto, a la izquierda de la
ventana principal del SES. El nombre de la solución se encuentra en la parte superior de la estructura del proyecto: dwm-simple.
Consulte la figura 9.
3. Establezca la variable "Directorio de cadena de herramientas" en la ruta del directorio bin de GNU
Arm Embedded Toolchain instalado previamente. La Figura 10 muestra la configuración de la ruta de instalación
predeterminada.
Figura 10: SES: configuración de la ruta de instalación de GNU ARM Embedded Toolchain
Para construir el proyecto, abra el menú "construir" desde la barra de menú SES y haga clic en "construir dwm-
simple" o presione "F7". El registro de la compilación se muestra en las ventanas de resultados. Si la compilación tiene
éxito, el mapa de memoria mcu de destino también se muestra como información, con la cantidad restante y ocupada de
memoria flash/RAM. Consulte la figura 11.
El usuario puede personalizar y volver a compilar fácilmente el ejemplo "dwm-simple". Siga las instrucciones a
continuación para realizar una personalización inicial de PANS.
Nota: printf enviará el mensaje a través de la interfaz UART cuando el modo Shell esté habilitado.
Ahorrar.
Cree el proyecto y elimine los errores.
Este cambio pretende leer la información de posición en el dispositivo e imprimir el mensaje en el terminal. Se agrega
un temporizador del sistema al final del mensaje para indicar la hora del mensaje.
El ejemplo compilado se puede mostrar en el dispositivo de destino directamente desde SES. Conecte el dispositivo
DWM1001-Dev a través de USB a la computadora y haga clic en "objetivo" en la barra de menú.
La opción "Descargar dwm-simple" se puede utilizar para cargar el ejemplo.
Tenga en cuenta que SES solo compila y produce una imagen correspondiente a FW2. Si el usuario desea actualizar la
biblioteca PANS completa en un dispositivo DWM1001 en blanco, entonces el dispositivo de software, el cargador de
arranque y FW1 deberán actualizarse antes que FW2, como se describe en la sección 4.1.
Para simplificar esta tarea y generar un archivo hexadecimal único, se proporciona un script por lotes en el directorio /
utilities.
Abra el archivo generate_example_hex.bat con un editor de texto y modifique los siguientes campos según el
proyecto que esté modificando y compilando actualmente.
SET ejemplo_nombre="dwm-simple"
SET fw2_path="..\examples\dwm-simple\Output\linker\dwm simple_fw2.bin"
Se creará un nuevo archivo de imagen que combina el dispositivo de software, el cargador de arranque, FW1 y FW2
personalizado:
/dwm-simple/Salida/dwm1001_dwm-simple.hex.
Este nuevo archivo se puede flashear usando J-Lite como se explica en la Sección 3.3.
SES también admite la depuración. Para iniciar el modo de depuración, haga clic en "Depurar" en la barra de menú o
presione F5.
Tenga en cuenta que se debe conectar un DWM1001-Deb a la computadora para iniciar el modo de depuración con éxito. El
dispositivo se actualiza automáticamente con el último proyecto compilado cuando se inicia la depuración.
Como se muestra en la Figura 12, SES tiene las opciones y características predeterminadas que normalmente ofrece un
depurador Con el widget central, el usuario puede configurar puntos de interrupción y ejecutar la aplicación a través del
código. El programa de ensamblaje equivalente se muestra en el widget izquierdo.
En el widget superior derecho, tenga en cuenta que la lista de puntos de interrupción predeterminados contiene el ARM V7M
excepciones
Recomendamos deshabilitar las excepciones V7M, ya que se activarán automáticamente dentro de la biblioteca
compilada e interferirán con la depuración de la aplicación del usuario. Para deshabilitarlos, haga clic derecho en
"excepción V7M" como se muestra en la Figura 12.
Nota 2: es posible utilizar puntos de interrupción para depurar el firmware. Sin embargo, el usuario debe tener
mucho cuidado porque las interrupciones del dispositivo de software nRF52 son de máxima prioridad, y si hay
actividad BLE, sus interrupciones entrarán en conflicto con la interrupción del usuario, por lo que el BLE debe
desactivarse o sus interrupciones deben enmascararse. Deshabilitar la función dwm_ble_compile() puede deshabilitar
la compilación de BLE para anular las operaciones de BLE durante la depuración. La función se puede volver a
habilitar después de la depuración.
La placa DWM1001 DEV proporciona acceso UART a través del conector USB y los pines del conector externo. Ambos
accesos se introducen aquí.
La conexión UART se puede configurar simplemente a través de un cable de datos USB como se muestra en la Figura 6.
Para encontrar el nombre del dispositivo de la placa DWM1001 DEV en el sistema Windows:
1) Dispositivo abierto e impresoras,
2) Encuentra el dispositivo J-Link:
En diferentes sistemas Linux, los dispositivos UART pueden mostrar diferentes nombres.
Además de usar un cable USB para conectarse, los pines de cabecera externos proporcionados en J10 de la placa
DEV DWM1001 también proporcionan la interfaz UART. La Tabla 1 muestra los pines necesarios en la conexión UART.
Para Raspberry Pi 3 con conexión de pines de cabecera, el nombre del dispositivo es /dev/serial0.
La conexión entre la placa DWM1001 DEV y una Raspberry Pi 3 (modelo B) se muestra en la Figura 15Figura
15.
Nota: Los pines en J10 de la placa DWM1001 DEV son compatibles con los pines de encabezado 1-26
del conector J8 de Raspberry Pi 3.
Se puede acceder a la interfaz UART a través de dos modos, el modo Shell y el modo Genérico.
Tanto el modo genérico como el modo Shell se pueden usar para comunicarse con el módulo DWM1001 a
través de la conexión UART. El modo predeterminado del UART DWM1001 es el modo genérico. Los dos modos
son transferibles:
Modo genérico a modo Shell: presione "Enter" dos veces en un segundo, o ingrese dos bytes [0x0D, 0x0D] en
un segundo.
Para obtener más información sobre los dos modos de la API de UART, consulte la Guía de la API de DWM1001 [2].
ÿ minicom -D /dev/serial0
Cuando vea "Dispositivo o recurso ocupado", intente varias veces hasta que funcione.
Si la conexión a través de UART es exitosa, se mostrará el mensaje "Bienvenido a minicom" en la terminal. Ahora
presione la tecla "Enter" dos veces en un segundo para ingresar al modo de shell UART. "dwm>" debería aparecer
en la terminal cuando todo esto esté hecho.
Para ejecutar el comando UART Shell para dwm_pos_get, escriba "apg" seguido de la tecla "Enter". Se imprimirá la
posición del módulo en todo el DRTLS, consulte la Figura 16. Escriba "?" seguido de la tecla "Enter" para obtener
información de ayuda en el modo UART Shell. Se presenta más información sobre los comandos de UART Shell en
la Guía API DWM1001 [2].
En el paquete DWM1001 Host Api [4] se proporciona un ejemplo sencillo para utilizar la API genérica de UART. El
ejemplo se ejecuta en la plataforma Raspberry Pi:
1) Descargue el paquete dwm1001_host_api en el dispositivo Raspberry Pi 3.
Navegue a la carpeta ejemplos/ex1_TWR_2Hosts/tag/
2) Use el editor nano para editar Makefile:
ÿ nanomaquillaje
3) Cambie el parámetro de configuración USE_INTERFACE para usar la interfaz UART:
USO_INTERFAZ = 0
4) Presiona “Ctrl + o” y “Enter” para guardar. Presione "Ctrl + x" para salir del editor nano.
5) Use el comando "hacer" para construir el ejemplo:
ÿ hacer
6) Ejecute el ejecutable:
ÿ ./etiqueta_cfg
7) Consulte el archivo log.txt para ver los detalles de la transmisión de datos UART.
El proyecto de ejemplo de modo genérico UART simple está diseñado específicamente para la plataforma Raspberry
Pi. El archivo fuente example/ex1_TWR_2Hosts/tag/tag_cfg.c se puede cambiar para agregar/modificar funcionalidades.
Todas las funciones API de UART disponibles se enumeran en el archivo de encabezado include\dwm_api.h. Se
presenta información más detallada del modo Genérico UART en la Guía API DWM1001 [2].
El código/makefile debe cambiarse para adaptarse a otras plataformas que no sean Raspberry PI.
El módulo DWM1001 proporciona API a través de la interfaz SPI. La conexión y un ejemplo simple se presentan aquí.
Para conectarse al módulo DWM1001 a través de SPI, se pueden usar los pines SPI en el conector externo J10 en la
placa DWM1001 DEV. La Tabla 2 muestra los pines necesarios en el SPI
conexión.
pines 1-26 del encabezado del conector J8. El pin 4 de J10 proporciona alimentación de 5 V desde Raspberry Pi a
la placa DWM1001 DEV.
En el paquete de API de host DWM1001 [4] se proporciona un ejemplo simple para hacer uso de la API de SPI. El
ejemplo se puede ejecutar en la plataforma Raspberry Pi:
1) Descargue el paquete dwm1001_host_api en el dispositivo Raspberry Pi 3.
Navegue a la carpeta ejemplos/ex1_TWR_2Hosts/tag/
2) Use el editor nano para editar Makefile:
ÿ nanomaquillaje
3) Cambie el parámetro de configuración USE_INTERFACE para usar la interfaz SPI:
USO_INTERFAZ = 1
4) Presiona “Ctrl + o” y “Enter” para guardar. Presione "Ctrl + x" para salir del editor nano.
5) Use el comando "hacer" para construir el ejemplo:
ÿ hacer
6) Ejecute el ejecutable:
ÿ ./etiqueta_cfg
7) Consulte el archivo log.txt para ver los detalles de la transmisión de datos SPI.
El proyecto de ejemplo SPI simple está diseñado específicamente para la plataforma Raspberry Pi. El archivo
fuente example/ex1_TWR_2Hosts/tag/tag_cfg.c se puede cambiar para agregar/modificar funcionalidades.
Todas las funciones disponibles de la API de SPI se enumeran en el archivo de encabezado include\dwm_api.h.
Se presenta información más detallada de la API de SPI en la Guía de la API de DWM1001 [2].
El código/makefile debe cambiarse para adaptarse a otras plataformas que no sean Raspberry PI.
5 REFERENCIAS
Este documento hace referencia a los documentos enumerados a continuación. Tenga en cuenta que el formato de las referencias
puede ser el que elija el autor.
7 REGISTRO DE CAMBIOS
Revisión 1.1
Revisión 1.2
Página Cambiar Descripción
TODOS Actualización con nuevo logo
8 MÁS INFORMACIÓN
Decawave desarrolla soluciones de semiconductores, software, módulos, diseños de referencia, que permiten
servicios de microubicación de área local en tiempo real, ultra precisos y ultra confiables.
La tecnología de Decawave permite una clase completamente nueva de funcionalidad y servicios de ubicación
inteligente, altamente seguros y fáciles de implementar para IoT y productos y aplicaciones de consumo
inteligente.
Para obtener más información sobre este o cualquier otro producto Decawave, consulte nuestro sitio web
www.decawave.com.