Fuente: Disk91.com
HTMICRON ha entregado la primera solución global SIP de Sigfox que admite Monarch por aproximadamente $ 5. Este chip está basado en la famosa pareja STM32 + S2LP. Veamos mi revisión del kit de desarrollo que están entregando.
HTMicron es una empresa brasileña que fabrica la solución System In Package (SIP). Durante el Sigfox Connect, me mostraron un producto STM32-SLP y me dieron una placa de evaluación para su revisión.
Este tipo de solución es interesante, ya que es realmente compacta y fácil de agregar en su diseño: obtiene un potente chip ARM de ST + todo lo electrónico necesario para un sistema de comunicación global Sigfox. No hay necesidad de un componente adicional alrededor del chip, apenas una antena y una fuente de alimentación.
El precio del SIP será de alrededor de $ 5.
Veamos cómo usar ese chip:
El contenido del kit es realmente simple, en el cuadro de la placa de evaluación no tiene nada más que la placa en sí: debe proporcionar su propia antena y su propio cable usb.
La placa es básicamente un circuito ST-Link conectado al dispositivo SIP iMCP-HT32Sx.
No hay documentación dentro de la caja, solo obtendrá su ID de Sigfox en la parte posterior del tablero. Por lo tanto, debe ir al sitio web de htmicron para acceder a la documentación. Aquí solo encontré la hoja de datos del chip donde no se menciona cómo usar la interfaz del dispositivo. De hecho, la documentación se extiende en diferentes lugares … ver los enlaces a continuación.
LA ARQUITECTURA DEL SIP
El SIP contiene un chip Cortex-M0 STM32 y un circuito de radio S2-LP. No se menciona EEPROM externa o elemento seguro. Desde mi punto de vista, esta parece una buena opción para hacerlo simple.
El STM32L052x8 es un Cortex-M0, 32b con 64KB flash, 8KB Ram y 2KB EEPROM. El tamaño promedio de un firmware de Sigfox en una plataforma de este tipo es inferior a 32 KB. Esto proporciona suficiente espacio para la mayoría de las aplicaciones personalizadas.
El chip es un paquete estándar con pines PCB como el diseño de telecomunicaciones o el chip Murata. Esto es algo que se necesita soldar con reflujo y donde realmente recomiendo usar una plantilla para aplicar la pasta de soldadura. Nada complicado y costoso con servicios como aisler.net o servicios equivalentes.
Como puede ver en la imagen de arriba, el bus SPI no está disponible desde el exterior. Esta es una limitación en su desarrollo. No lo comprobé por completo, pero supongo que puede usar pines alternativos y cambiar diferentes configuraciones de SPI. Dicho esto, es una limitación y una complejidad que debe tener en cuenta al seleccionar esta solución.
EMPEZANDO
Para acceder a la documentación de Chip, no busque en el sitio web, no encontrará mucha documentación y guía de usuario útiles. Se puede acceder a toda la documentación desde la página htmicron github. También tiene una buena documentación en la página de notas de la aplicación.
Cuando conecte la placa a un cable USB, tendrá una conexión en serie con el dispositivo. Este es 115200 Bps 8 / N / 1. Si hace clic en el botón de reinicio, verá la secuencia de arranque del dispositivo con el ID del dispositivo y el PAC.
Dependiendo de su terminal en serie, la sangría puede parecer extraña ya que el dispositivo solo imprime LF, por lo que es posible que tenga que configurar su terminal para reemplazar LF por CRLF.
Por defecto, el dispositivo viene con una aplicación predeterminada que se parece al ejemplo del push-button. Para que pueda disparar un mensaje haciendo clic en el botón de usuario.
Aparentemente, este código no usa Monarch y parece usar una configuración de 917MHz, por lo que no estoy seguro de qué RCZ está configurado. Desde mi punto de vista, el firmware predeterminado podría tener una forma de seleccionar un RCZ como usar un clic para esto y luego enviar un marco con un doble clic. Esto sería más conveniente.
Entonces, ahora, si desea usar el SIP, necesita hacer su propio firmware.
INFORMACIÓN BÁSICA ANTES DE ESCRIBIR SU PROPIO CÓDIGO
El ID y el PAC son las informaciones necesarias para registrar el devkit en el backend de Sigfox. Si desea hacer su propio firmware, también necesita conocer la clave privada. Recomiendo almacenar esta información de forma segura ya que durante el proceso de flasheo siempre corre el riesgo de perder esta información crítica.
El dispositivo no está protegido contra la lectura de ST-LINK, por lo que puede volcar fácilmente el flash. Esperaba que las credenciales se almacenaran en la EEPROM y se encriptaran, pero estaba “complacido” de obtenerlas de la memoria Flash en la dirección 0x800FF00.
Puede ver el 32b SigfoxID (byte en el orden inverso), luego la clave PAC y debajo tenemos un vapor de 128B que realmente se parece a la clave privada de Sigfox (algo que todavía necesito verificar).
El devkit no está registrado como Sigfox Devkit que viene con su propia suscripción gratuita. Significa que necesita tener alguna suscripción a Sigfox para registrarla y comenzar a transmitir con ella.
El siguiente paso es comprender la configuración de STM32 dentro del SIP para poder crear un proyecto personalizado. El repositorio de github tiene un proyecto de muestra que contiene el archivo IOC. Este archivo es un archivo de proyecto CubeMX que contiene la configuración del dispositivo.
El circuito de la placa devkit también está disponible en el repositorio de github siguiendo este enlace. Gracias a este esquema, puede ver que la placa tiene un led y un botón de interruptor accesible para su prueba.
Podemos ver otro pin utilizado para controlar el S2LP:
¡Ahora dominamos toda la configuración y podemos comenzar a hacer nuestro propio firmware!
HACER NUESTRO PROPIO FIRMWARE A PARTIR DE LOS EJEMPLOS
La forma recomendada es utilizar el entorno Keil. Incluso si ese entorno es de alta calidad, también es propietario y no es mi opción preferida. Preferiría usar STM32CubeIDE pero durante mi prueba, encontré un error con STM32CubeMX (decir que hay un error en el material ST es como decir, el sol sale por la mañana … lo sé). El problema es que STM32CubeMX no puede crear un proyecto de trabajo para STM32CubeIDE con un chip STM32L052x8. Por cierto, puede usar SystemWorkbench / AC6 seleccionando el destino SW4STM32 como un entorno de desarrollo de código abierto alternativo basado en eclipse y compilador GCC.
Haré otra publicación sobre cómo hacer esto y ejecutar IT_SDK en el chip para obtener un SDK avanzado para construir una solución industrial sobre iMCP.
Entonces, ahora, para compilar su primer programa, puede seguir la guía de inicio HT32Sx disponible en github y seguir los pasos. El entorno ARM Keil es de uso gratuito para dispositivos STM32L0 de hasta 256 KB, por lo que actualmente no está abierto pero no está bloqueado.
PROTOTIPO CON IMCP
El devkit se ha diseñado para admitir un HAT de sensor ST estándar, por lo que puede usar la mayor parte de la extensión ST para hacer su propio diseño y probar rápidamente un sistema complejo sin tener que enrutar su propia placa. Supongo que el límite es la accesibilidad del bus SPI.