Nuevo microcontrolador de control de motor doméstico K1921VK01T de OJSC NIIET


De alguna manera, se pasó la noticia sobre la aparición de un nuevo microcontrolador K1921VK01T de OJSC NIIET . ¿Cómo es notable? Sus periféricos diseñados para controlar motores eléctricos (motorcontrol). Esto no es solo un par de canales PWM. Estos son nueve sofisticados módulos PWM de dos canales (PWM), de los cuales tres son módulos (HRPWM) con un modo de resolución "alta". Estos son seis módulos separados de captura CAP de 32 bits. Veinticuatro (!) Canales de ADC de 12 bits con un administrador de lanzamiento flexible, un promediador incorporado y comparadores digitales. Dos decodificadores de cuadratura (QEP), un montón de interfaces de comunicación, memoria interna de usuario, relojes, todo esto en el núcleo ARM Cortex-M4F con un megabyte de memoria flash "a bordo" y un rendimiento de 100 MIPS. Interesante?

En realidad, para no enumerar todas las características técnicas del producto en el artículo, lo envío a la página del sitio web del fabricante . Hay una lista corta y una hoja de datos completa (aunque siempre se esconde en diferentes rincones del sitio y al momento de escribir, puede descargarla ... de la tabla de desarrollos actuales ). Y en el artículo será mejor que te diga algo que no está escrito en hojas de datos.

Un poco de historia


El trabajo en el microcontrolador (en adelante denominado MK) comenzó en 2012 por la empresa NPP Digital Solutions, por orden de OJSC NIIET(Voronezh.) Se adquirieron licencias para el núcleo ARM Cortex-M4F y algunos módulos periféricos de comunicación, y algunos de los módulos fueron desarrollados por esta compañía de forma independiente: módulos PWM, un controlador ADC (no el propio ADC, sino un administrador para administrarlo), un módulo de captura CAP y un módulo decodificador de cuadratura QEP. NPP Digital Solutions primero produjo una maqueta de microcontrolador en el Kintex7 FPGA, que implementó toda la lógica del futuro microcontrolador, incluido el núcleo ARM. Pero FPGA es un producto libremente reprogramable que le permite corregir errores en la lógica MK si se detectan después de pasar las pruebas (además de las pruebas en un simulador). ¿Pero cómo probar un microcontrolador motorcontrol? ¡Además de las pruebas sintéticas, por supuesto, en la verdadera tarea de controlar un motor eléctrico! Para ello, NPP "Digital Solutions" se dirigió a nosotros enNPF Vector LLC , ya que tenemos mucha experiencia en el campo de los accionamientos eléctricos basados ​​en MK Texas Instruments , aunque más bien porque estamos sentados en un edificio vecino. En discusiones conjuntas al diseñar periféricos para controlar motores eléctricos, se decidió tomar TMS320F28335 Texas Instruments (TI) como modelo, ya que este microcontrolador tiene probablemente los periféricos de control de motores más potentes y flexibles, merecidamente respetados en todo el mundo. Por lo tanto, armado con hojas de datos de TI, las "Soluciones Digitales" crearon sobre la base la lógica interna de los módulos PWM, CAP y QEP para el K1921VK01T. Además, en base a nuestra experiencia con TI MK, también propusimos algunas mejoras que TI carece. Este es un filtro de pulsos cortos en un módulo PWM (no todos los controladores de teclas de encendido, como abrir / cerrar durante un período de tiempo muy corto, IGBT puede entrar en modo lineal), estos son algunos de los matices en el módulo decodificador de cuadratura, que le permiten deshacerse de los problemas al cambiar los divisores del medidor sobre la marcha etc.Las "soluciones digitales" los tomaron en cuenta y ampliaron la funcionalidad periférica en consecuencia en comparación con los módulos TI.

Si bien NPP Digital Solutions desarrolló la lógica interna de los módulos, en NPF Vector hicimos una prueba para probar el futuro microcontrolador. Era un pequeño convertidor de frecuencia con seis transistores ("servoamplificador"), que estaba conectado por circuitos de control al prototipo de microcontrolador en el FPGA, y la parte de potencia estaba conectada a un pequeño servomotor con sensores de posición Hall (para verificar el módulo CAP) y un sensor de posición en cuadratura (para verificar el módulo QEP) ) Nuestro objetivo era este: escribir software para el microcontrolador para garantizar el control vectorial completo del motor eléctrico utilizando cualquier sensor de posición de su elección o ambos a la vez. Y, por supuesto, informar todos los problemas encontrados en la periferia a "Soluciones Digitales".

A pesar de muchas de las propias pruebas de MK en Digital Solutions, se encontraron muchos errores durante las pruebas en un motor eléctrico con corriente. Básicamente, se asociaron con una implementación inexacta de la lógica de bloque interno, que no se describió explícitamente en las hojas de datos de Texas Instruments. Por ejemplo, ¿qué debe producir el módulo PWM si el punto de ajuste de comparación se establece por encima del período del temporizador? O si se incluye un divisor de señal de entrada para un decodificador de cuadratura, ¿debería el módulo detectar un cambio en la dirección de rotación por una señal dividida o por la entrada original? Las respuestas a estas preguntas pueden ser obvias para el accionamiento eléctrico, pero no obvias para el arquitecto de la lógica del microcontrolador. En la medida de lo posible, detectamos errores similares junto con Digital Solutions. La unidad ha funcionado con éxito en el control de vectores sin ningún problema.Sin embargo, por supuesto, no pudimos cubrir todos los errores con tales pruebas; seguro que en otras tareas los errores comenzarán a aparecer nuevamente. Pero para esto, hay erratas y nuevas revisiones de microcontroladores: para corregir errores, primero debe recopilarlos. Después de depurar la lógica MK en el FPGA con "Soluciones digitales", se realizó el "cableado" del MK (o lo que sea)¿Se llama microcontroladores? ¿Topología?), Después de lo cual todos los resultados del trabajo fueron transferidos a NIIET. Por cierto, ya hemos encontrado varios errores después del lanzamiento de MK en la "piedra", pero NIIET los consideró lo suficientemente críticos como para cambiar el diseño de MK: se acumulan más, lo solucionarán.

Titulo



También debo decir que el microcontrolador sobrevivió a varios nombres. Al principio, durante el desarrollo, tenía el nombre en clave "MS01", luego el lote experimental de piedras se llamaba NT32M4F1, y luego se convirtió en K1921VK01T (además, en algunos lugares las letras están escritas en ruso, en otras letras en inglés). Por lo tanto, si ve estos nombres en los primeros artículos y publicaciones sobre este MK, no se sorprenda.

Que tan caro


Actualmente (a principios de 2016), el NIIET está listo para vender el primer lote de microcontroladores, que ya ha comenzado a llegar a los clientes. Los cristales están encerrados en parte en plástico, en parte en cerámica (de modo que en aplicaciones críticas no funciona cómo usted mismo_sabe_que_) El precio de la piedra en plástico a finales de 2015, al parecer, fue ligeramente inferior a 3 tr, que es más alto que el precio de TI TMS320F28335 al comprar en Rusia (en el momento de la escritura, el coeficiente para convertir "sus" precios a "nuestros" era 76). Sin embargo, en TMS320F28335 no hay memoria de usuario y horas, debe configurar las externas, por lo que el costo al final se vuelve comparable. Esto hace que K1921VK01T sea prometedor no solo en términos de sustitución de importaciones, sino también por simples "intereses mercantiles". Aunque esta comparación, por supuesto, no es del todo correcta: puede encontrar un montón de ejemplos de cristales más baratos en el Cortex-M4F y con una frecuencia de reloj más alta, pero con menos periféricos. Por lo tanto, para tareas simples, el K1921VK01T será excesivamente grande y costoso. Pero para la aplicación principal (control de motores eléctricos y electrónica de potencia compleja), es competitiva.

¿Qué tenemos con el rendimiento?


Hicimos una presentación en la exposición sobre esto hace un año, la presentación se puede encontrar aquí. Nuestras pruebas, por supuesto, no pretenden ser particularmente precisas: después de todo, no ejecutamos puntos de referencia reales, sino que "enrollamos" el mismo sistema de control de vectores en la prueba (¿y qué más puede excitar las unidades eléctricas?). Pero un breve recuento de la presentación es este: la arquitectura ARM Cortex-M4F va a la zaga del DSP central C28 TI en los cálculos promedio requeridos para las tareas de manejo. Si reduce la precisión de los cálculos, cuando sea posible, utilizando funciones trigonométricas aproximadas, etc., puede reducir esta brecha a aproximadamente el 15%. Pero al mismo tiempo, la frecuencia de reloj de los núcleos C28 superiores (el mismo TMS320F28335) es de 150 MHz, y la frecuencia de K1921VK01T es de 100 MHz. Por lo tanto, con todas las optimizaciones de la biblioteca, el K1921VK01T es equivalente en potencia computacional en algún lugar a la serie TI piccolo MK con una frecuencia de 90 MHz. Lo que se puede interpretar como ... muy bueno, en nuestra opinión,porque si usa correctamente todas las campanas y silbatos de hardware de la nueva MK como DMA y mediciones de ADC de auto-filtrado, puede ahorrar mucho en ciclos de reloj. De una forma u otra, logramos "meter" en K1921VK01T nuestro proyecto más exigente de rendimiento, basado en el TMS320F2810 (150MHz, núcleo C28), que ya choca con este mismo 2810.

?


¡Y qué podría estar mal con ellos, es ARM! Normal, sin ningún "pero". Tome cualquier JTAG, cualquier entorno de desarrollo, pero ... no, después de todo, ninguno no funcionará. "Pero" es el firmware de la memoria flash. A pesar de que el núcleo ARM en sí está estandarizado y cualquier JTAG y entorno se conectarán a K1921VK01T, no es tan simple con el firmware flash. Parece que cada fabricante de microcontroladores considera que es su deber hacer sus propios registros para trabajar con el firmware de su memoria flash, por lo que los creadores de herramientas de desarrollo están atormentados con el apoyo de todo este zoológico. K1921VK01T tampoco se queda atrás en este aspecto: también hay métodos para trabajar con flash allí. Pero si para fabricantes eminentes programadores de memoria flash (controlador, flasher o ¿cómo debería llamarlo?) En entornos de desarrollo están escritos y funcionan de fábrica, entonces para K1921VK01T todo funciona solo para esos entornospara lo cual los programadores escribieron en NIIET. Afortunadamente, para IAR y Keil, todo está listo y se pueden encontrar ejemplos de proyectos con instrucciones de firmware enForo NIIET , así como en el repositorio abierto en Bitbucket , que mantiene NIIET. Además, en NPF Vector escribimos soporte para la programación del flash K1921VK01T para OpenOCD(Abrir depurador en chip). Esta es una capa entre el depurador GDB y el hierro en forma de diferentes emuladores JTAG y diferentes piedras. Pero mientras estábamos sacando la "revisión de código" en el repositorio de OpenOCD con resolución de conflictos, los desarrolladores de NIIET escribieron lo mismo, pero fue mejor (también agregaron la función de grabación del usuario además de grabar la memoria flash principal), pero ... esta es toda la letra. ¿Qué da este OpenOCD? Este es un tipo de capa de abstracción de hierro, que le permite crear su propio entorno de desarrollo gratuito para K1921VK01T basado en cualquier IDE popular. En el "Vector" amamos Eclipse (porque el entorno de TI Code Composer Studio, comenzando con v4, se basa en él, estamos acostumbrados y, en general, no hay mejor IDE en el mundo que Eclipse) Y los desarrolladores de NIIET crearon un entorno de desarrollo en Qt Creator. Pero, en general, el significado es el mismo aquí y allá: tomas el entorno, tomas el conjunto de herramientas gratuitas de desarrollo cruzado para GCC, tomas el complemento para trabajar con OpenOCD, OpenOCD, algunas configuraciones, un poco de magia ... y ya trabajas completamente con K1921VK01T, olvidándote de IAR y Keil. Al momento de escribir, publicamos nuestro ensamblaje Eclipse (lo llamamos VectorIDE) para K1921VK01T en nuestro sitio web , vea la receta de Qt Creator en el foro NIIET . Personalmente, llevamos a cabo todos los proyectos para K1921VK01T en un entorno gratuito y le asesoramos: el conjunto de compiladores de GCC realmente no va a la zaga de los IAR de marca (vea nuestra misma presentación), pero si es una empresa de buena reputación, no necesita comprar software importado caro (¡ya con un factor de conversión de 76, Karl! 78!).
Oh si Hay una cosa mas. Se llama Codemaster ++ [ARM] . Este es un entorno de desarrollo 100% doméstico, incluidos los compiladores, y también diseñado para K1921VK01T. Examinamos sus primeras versiones hace un año, pero descubrimos que aún no estaba listo, un poco en términos de compiladores y mucho en términos de facilidad de edición de código (aunque en esto puede competir con el IAR, quién sabe a qué me refiero). Pero es pequeño y rápido, y en la interfaz se asemeja a algún tipo de depurador de "piratas informáticos" como OllyDbg (compárese: uno y dos ). En general, quizás alguien esté interesado. Debo decir que los desarrolladores (empresa"Fiton" ) se esforzó mucho, incluso solicitó en algún momento nuestro punto de referencia a la "control vectorial del motor" para optimizar sus compiladores.

¿Qué tenemos con los kits de depuración?



A principios de 2016, cuatro tableros de depuración en K1921VK01T son conocidos en la naturaleza. Esta es nuestra VectorCARD K1921BK01T y otras ... de la competencia. Ok, que así sea, aquí están los enlaces LDM-HELPER-K1921BK01T y MBS-K1921VK01T . También parece que el NIIET en sí tiene su propio tablero NIIET_1921BK01T, pero en su sitio, aparentemente, se está escondiendo de mí; si alguien encuentra un enlace, estaré encantado de complementar el artículo. ¿Cuál es la diferencia entre ellos? No vendemos una placa simple, sino un kit con un inversor, motor eléctrico, control vectorial en códigos fuente C (según lo que escribimos en ese momento para Digital Solutions), así como con un programa de nivel superior y un controlador CANopen para monitorear todos los procesos dentro del disco - vea nuestro primer artículo. Por lo tanto, si solo quieres jugar con el nuevo MK, parpadear un LED o enviar datos a través de cualquier interfaz de comunicación, entonces es mejor comprar placas de depuración de la competencia (aunque también tenemos una opción de placa desnuda por 15 tr, pero es completamente "desnuda" - algunas conclusiones) Sin embargo, si desea crear una unidad eléctrica en el nuevo MK, nuestro kit y software de depuración puede ahorrarle medio año o un año de tiempo de desarrollo (o tal vez más, dependiendo de si conoce la teoría de la unidad eléctrica y si tiene sus propias herramientas de depuración y oscilografía) similar al nuestro). Si lees detenidamente el primer artículo, entonces, probablemente, recuerde que la depuración de un sistema de control para un accionamiento eléctrico sin medios para visualizar los procesos en el interior es imposible. Y si en Texas Instruments el entorno de desarrollo es capaz de mostrar oscilogramas "listos para usar" basados ​​en los datos de la matriz de memoria de MK, para ARM en entornos de desarrollo universal (no de un fabricante específico de MK), tal función aún no se ha observado (si los desarrolladores de Fiton leen esto - ¿Desea modificar su Codemaster ++ [ARM] con el generador de osciloscopios? ¡Es fácil hacerlo!). En nuestro kit de depuración, tales medios de visualización de formas de onda están presentes, por lo que puede ver de inmediato todo lo que se supone que controla los motores eléctricos: la forma de corrientes de fase, voltajes, entradas / salidas de todos los reguladores, etc. El precio de nuestro kit es grande, aproximadamente 130 tr.(actualmente solo un motor eléctrico con todos los sensores de posición cuesta alrededor de 30 tr). Pero para una organización que desea aprender un nuevo producto, esto no debería ser crítico: un entorno de desarrollo comercial solo para ARM puede costar más.

Desventajas de K1921VK01T


¿Cuáles son las principales desventajas del nuevo K1921VK01T que se pueden observar ahora?
• En primer lugar, este es sin duda un producto crudo, ya que hasta ahora estaba programado por 10-20 personas. Cuando más desarrolladores se sientan en él, se detectarán errores y se lanzarán nuevas revisiones. Así que prepárate. Pero, sin embargo, pueden girar los motores, retorcidos personalmente.
• Por el momento, la documentación también está húmeda. Hay pocos errores, pero se explican algunas cosas ... no está del todo claro. Se podría pintar un poco más de detalle, dar ejemplos. Creo que con el tiempo se finalizará.
• El microcontrolador es muy grande y sofisticado. Esto es para alguien un plus, para alguien un menos. Muy pocas aplicaciones cubren la gama completa de sus capacidades. NIIET ya está pensando en una serie de MK basada en él, con diferentes edificios y un conjunto de periféricos. Pero por ahora, solo hay K1921VK01T.
• Tiene un ADC específico. A menudo, los fabricantes de MK instalan un módulo ADC rápido (12 MS / s) y lo multiplexan a través de varios canales; por ejemplo, esto fue hecho por Texas Instruments en la serie C2000. Pero en K1921VK01T hay 12 módulos ADC lentos de dos canales (1.7MS / s) que funcionan en paralelo. ¿Por qué es malo además de la incapacidad de medir algo muy rápido? Si hay un ADC en el MK, entonces en la placa del controlador puede enviar señales de referencia calibradas, digamos 1V y 2V, a dos canales no utilizados, y usarlos para calcular y compensar el error multiplicativo y el error de compensación de este ADC, extendiendo la corrección a todos los canales (el ADC es uno ) Cuando hay muchos ADC en MK, tal truco no funcionará, todos tendrán sus propios errores personales. Utilizamos el truco de calibración en el Texas Instruments MK tipo TMS320F2810 (esto se describe en la hoja de datos y se recomienda),aquí en K1921VK01T sin calibración, obtuvimos una menor precisión del ADC en comparación con el TMS320F2810 calibrado. Tuvimos que hacer un soporte especial para calibrar cada módulo ADC K1921VK01T de forma independiente y unir la tabla de calibración en la memoria de usuario incorporada. Luego, la precisión de las mediciones analógicas resultó ser comparable (la calibración casi no se aleja flotando de la temperatura, se verificó). Probablemente, NIIET debería mostrar una tabla de este tipo en la fábrica, sería conveniente. Pero mientras el flash está vacío.Luego, la precisión de las mediciones analógicas resultó ser comparable (la calibración casi no se aleja flotando de la temperatura, se verificó). Probablemente, NIIET debería mostrar una tabla de este tipo en la fábrica, sería conveniente. Pero mientras el flash está vacío.Luego, la precisión de las mediciones analógicas resultó ser comparable (la calibración casi no se aleja flotando de la temperatura, se verificó). Probablemente, NIIET debería mostrar una tabla de este tipo en la fábrica, sería conveniente. Pero mientras el flash está vacío.
• La frecuencia de 100 MHz, por supuesto, es bastante baja, me gustaría más rápido. Pero eso es, eso es. Aunque en algunos lugares escriben la frecuencia de 125 MHz, todo depende de la temperatura ambiente. "Soluciones digitales" informó dicha información no oficial: dentro del cristal está diseñado para un máximo de 125 grados. La temperatura en él es aproximadamente 15 grados más alta que el medio ambiente. Según el proyecto, K1921VK01T debería funcionar a 85 grados del entorno + reserva, lo que se garantiza que se alcanzará a 100 MHz. De hecho, MK puede acelerarse por encima de 100 MHz, las muestras individuales trabajaron a 140-170 MHz, pero depende de la muestra. Por lo tanto, si el cristal no se sobrecalienta, se puede dispersar si alguien lo necesita. Pero si en su aplicación hace calor (+85), entonces es mejor no intimidar por encima de 100 MHz.
• No hay un gestor de arranque oficial (programador) a través de las interfaces de comunicación (CAN, RS). La costura MK solo es posible a través de JTAG / SWD. En consecuencia, si el controlador del producto está en un caso cerrado, entonces debe escribir su gestor de arranque para la interfaz de comunicación deseada. O espere hasta que NIIET escriba. Hasta ahora, no, pero creo que aparecerá.

Conclusión


Aunque, ¿qué más es la conclusión? ¡Todo acaba de comenzar! Finalmente, hay un microcontrolador doméstico en el que realmente puedes hacer un accionamiento eléctrico. Antes de esto, todos los MK nacionales existentes eran débiles por el núcleo o débiles por la periferia para hacer frente a las tareas de control de motores. Pero ahora: total libertad para las estructuras de control más complejas y la unidad de potencia más compleja. Me gustaría señalar especialmente las perspectivas de este microcontrolador para servoaccionamientos de máquinas. Hasta ahora, en Rusia no era posible fabricar una máquina de precisión multieje totalmente doméstica, ya que (una de las razones) no había nada para hacer un servoaccionamiento de alta calidad. Ahora hay un microcontrolador.

Source: https://habr.com/ru/post/es389129/


All Articles