-
Notifications
You must be signed in to change notification settings - Fork 5
03.09 Microcontrolador
# Microcontrolador
-
Velocidad de reloj mayor a 200 MHz: En base a la experiencia del autor con otros inversores, el cálculo de todos los PIs, filtros, transformadas y trayectorias de control puede tomar hasta 2500 ciclos de reloj. Por lo tanto, dado que hay que ejecutar dos lazos de control para los dos motores,
$\frac{2500 \cdot 2}{200 \text{ MHz}} = 25 \text{ }\text{\unit{\micro\second}} \leftrightarrow 40 \text{ kHz}$ , 200 MHz es la mínima velocidad para poder conmutar a 40 kHz. -
Unidad de punto flotante: Para evitar trabajar en coma fija, lo cual puede causar muchos problemas de integración y añade una capa de complejidad innecesaria, se pone como requisito que el MCU soporte el uso de float de forma nativa.
-
Dos timers avanzados: Son necesarios dos timers, uno para cada inversor, con características como la salida PWM bipolar con varios canales, configuración sencilla del tiempo muerto, etc.
-
Lecturas analógicas: Se necesitan al menos un par de ADCs de 12 bits suficientemente rápidos con múltiples canales cada uno, con tal de poder capturar las corrientes de fase y las tensiones de bus adecuadamente.
-
Interfaces de comunicación CAN, SPI, I$^2$C y USB: Dado que se requerirá la interacción con otros dispositivos, es esencial contar con varias interfaces de comunicación. Obviamente CAN para la comunicación con el vehículo, pero también SPI/I$^2$C para utilizar memorias externas, o UART/USB como manera de conectar el inversor de forma sencilla a un ordenador.
-
Capacidades de depuración avanzadas: Se requerirá de herramientas de depuración que permitan detener el código en puntos específicos, monitorizar en tiempo real el estado de las variables, etc.
-
Memoria flash superior a 500 kB: El binario de un programa muy extenso no debería pesar mucho más de 100 kB, sin embargo, si en el futuro se programa un bootloader u otras implementaciones como tablas de búsqueda grandes, la memoria flash debería ser el último de los problemas.
Teniendo en cuenta estos requisitos, se ha evaluado una variedad de familias y marcas de MCUs y DSPs, y se ha llegado a la conclusión de que el MCU STM32F777VI de la familia F7 de STMicroelectronics cumple con todos los criterios establecidos. Sus características incluyen:
-
Procesador ARM Cortex-M7 con FPU, funcionando a una velocidad de hasta 216 MHz.
-
Amplio conjunto de interfaces de comunicación, incluyendo I$^2$C, USART, SPI, CAN, USB y Ethernet.
-
3 ADCs (24 canales máximo) de 12 bits y hasta 2.4 MSPS.
-
18 timers, incluyendo timers de 16 y 32 bits, dos timers con PWM avanzado.
-
Soporte para depuración mediante interfaces SWD y JTAG, incluyendo el modo de Trace Asynchronous Serial Wire, que incorpora un pin de comunicación serie independiente de las capacidades de debug de SWD.
-
Hasta 2 MB de memoria flash, SRAM de 512 Kbytes y 16 Kbytes de RAM TCM para datos críticos en tiempo real.
El STM32F777VI cumple con todos los requisitos establecidos y proporciona capacidades adicionales que pueden ser beneficiosas para el desarrollo y la operación del convertidor. Además, es el mismo microcontrolador que se usa en el resto de ECUs del monoplaza, conviertiéndose en la elección más cómoda para el futuro desarrollo.