Pila DALI
PREGUNTAS FRECUENTES
+ ¿Cuál es el requisito de memoria RAM, flash, memoria persistente?
Resumen de los requisitos de memoria
Actualmente necesitamos aproximadamente 526 bytes de memoria persistente
+ ¿Existe una tabla para los requisitos de memoria por microcontrolador?
s. Tabla inferior: Cuánta memoria se necesita RAM, flash, memoria persistente.
El requisito de memoria debería ser similar para todos los tipos de microcontroladores. Depende, entre otras cosas, del compilador utilizado y de las bibliotecas asociadas.
+ El tamaño de la biblioteca de liberación DALI 2, que debe vincularse a la aplicación, puede diferir ligeramente para los distintos microprocesadores.
En los sistemas embebidos generalmente sólo tiene bibliotecas estáticas
+ ¿Cuánta memoria necesita un simple Control Gear DT 6 (módulo LED)?
s. Tabla bajo: Cuánta memoria se necesita RAM, flash, memoria persistente
+ ¿Es posible dividir la pila DALI en dos controladores para que los controladores de nivel inferior se ejecuten en un "controlador de bajo coste"?
No lo apoyamos. El controlador de bajo nivel es responsable de la temporización dentro de la API, esta temporización es crítica, una comunicación adicional entre dos procesadores supondría una resistencia en la temporización importante.
+ ¿Es posible operar dos instancias de la pila DALI en un controlador Cortex?
Sí, si son tipos diferentes -> por ejemplo, un Dispositivo y un Engranaje.
+ ¿Cómo es la interfaz con los controladores de nivel inferior?
El acceso se realiza a través de llamadas de retorno con un búfer de datos que contiene los datos y la marca de tiempo. La API-LL se ejecuta directamente aquí, es decir, los cambios se activan inmediatamente en segundo plano. Las tramas recibidas se almacenan temporalmente en una cola, que debe ser procesada por el programa en primer plano. deben ser procesadas por el programa en primer plano.
+ ¿Qué recursos HW y de interrupción se necesitan? (por ejemplo, temporizador, ....)
- s. Tabla bajo: Cuánta memoria se necesita RAM, flash, memoria persistente
- Se necesitan dos GPIOs. Uno como entrada (DALI_RX) y otro como salida (DALI_TX). El pin DALI_RX debe tener capacidad de interrupción.
- Un temporizador con una resolución de 1µS (microsegundo) y la correspondiente interrupción del temporizador.
- Las interrupciones del LowLevelDriver deben tener la misma y más alta prioridad en el sistema
+ ¿Cuál es el tiempo de permanencia de la interrupción o cuánto tiempo están bloqueadas las interrupciones?
Los siguientes valores se aplican a una MCU Cortex M4 con reloj de 168 Mhz. Se pueden transferir linealmente a otras frecuencias de reloj.
a) Interrupción del temporizador:
2,7µs cada 10000µs en estado de reposo.
4,1µs por bit al enviar con un tiempo de reposo posterior de 430µs u 840µs.
b) Interrupción por cambio de nivel:
Normalmente: 2,2µs por cambio de nivel. Raramente 3,3µs como máximo.
Al recibir, sólo se requiere el tiempo b).
Al enviar, la suma de a) + b).
+ ¿Tiene la pila DALI requisitos de temporización específicos para el sistema?
El programa de usuario debe llamar a la función "dalill_processQueues()" al menos cada 5 ms. La llamada no debe bloquearse (por ejemplo, guardando datos persistentes).
+ ¿Qué esfuerzo se requiere para portar los archivos de la biblioteca? ¿ANSI, C++?
La pila DALI está programada en ANSI-C + Extensiones GNU. La pila DALI puede utilizarse para aplicaciones programadas en C++ estableciendo la definición "__cplusplus".
+ ¿Cómo es el funcionamiento para entornos multitarea como RTOS?
La API funciona bajo RTOS. Allí, el "DaliProcessQueues" se externaliza en un hilo separado - para activar este hilo para los datos entrantes del bus, existe el CallBack "SignalToThread" que el LowLevelDriver llama después de recibir los datos. Todas las acciones de la API deben llamarse desde este hilo, ya que la API no es multihilo. Las interrupciones del LowLevelDriver deben tener la misma y más alta prioridad en un RTOS.
+ El manual menciona que se pueden instanciar varios dispositivos DALI en un firmware. ¿Son posibles también tipos de dispositivos idénticos (en concreto, dos o más módulos LED DT 6)?
Es posible instanciar un aparato de control y un dispositivo de control o un dispositivo de entrada en un mismo sistema. Sin embargo, no es posible utilizar tipos de dispositivos similares en funcionamiento paralelo. En principio, sería concebible una ampliación para poder instanciar también dos engranajes de control DT6/8.
En los requisitos mínimos se indica una frecuencia de reloj de +32 MHz. Qué porcentaje de la potencia de cálculo de un microcontrolador utiliza la pila DALI?
Dies kann nicht eindeutig beantwortet werden. Unter Last (z.B. Dimm-Prozess) ca. 15% und im Ruhezustand <1%. data-preserve-html-node="true" Bei höheren Taktfrequenzen entsprechend weniger.
+ La biblioteca DALI 2 requiere el soporte de una memoria no volátil de 526 bytes. ¿Qué se almacena en la memoria no volátil? ¿Cuándo se realiza el almacenamiento (funcionamiento normal, fallo de alimentación, etc.)? ¿Existe una API para soportar el acceso no volátil?
El estándar DALI especifica sus propias variables y el almacenamiento asociado en memoria persistente o volátil, por ejemplo, se define que la "shortAddress" se almacene en una NVM (memoria no volátil). Esto significa que las variables de trabajo como el contenido de DTR0 (Registro de Transferencia de Datos 0) ya no se conservan tras un reinicio del sistema.
Las variables persistentes se escriben en un intervalo de tiempo definible y la memoria persistente está limitada a un determinado número de accesos de lectura/escritura. Para conservar la vida útil de la memoria, los datos persistentes también pueden configurarse para que se guarden en caso de caída de tensión o cuando se apaga el sistema.
No proporcionamos una API, la pila DALI sólo proporciona llamadas de retorno que se utilizan para solicitar a la aplicación del cliente que guarde los datos persistentes.
+ ¿Cómo se entregan las bibliotecas o el software? ¿Librería? (En caso afirmativo, ¿qué compiladores son compatibles?)? ¿Hay documentación disponible para la portabilidad?
- Existen dos modelos para la entrega del software de la pila DALI.
i. Archivos fuente, donde el cliente puede modificar/personalizar los archivos fuente
ii. Como biblioteca estática, donde el cliente recibe el archivo de cabecera "libdali.h" y los archivos objeto ya compilados de la pila en el archivo de biblioteca "liblibdali.a". - La cadena de herramientas debe proporcionarse si no está ya disponible en MBS.
- Las bibliotecas ya están compiladas sin errores ni advertencias (con GCC, el compilador IAR y el compilador Keil con la extensión GNU activada).
- Por regla general, no es necesario portar el nivel alto de la pila DALI, ya que es independiente del hardware. La única portabilidad que debe llevarse a cabo son las rutinas relacionadas con el hardware en dali_ll_hal.c, que deben ponerse a disposición del controlador de bajo nivel como devoluciones de llamada.
+ DALI Multi-Master: ¿Cómo se diseña un sistema Multi-Master? ¿Forma parte de la norma DALI?
Un sistema puede configurarse como un dispositivo de control multimaestro con los parámetros correspondientes. En cuanto haya un multimaestro o un dispositivo de entrada (en principio también multimaestro) en el bus, no debe haber un solo maestro - esto forma parte de la norma DALI.