Novo microcontrolador doméstico de controle de motor K1921VK01T da OJSC NIIET


De alguma forma, as notícias sobre o surgimento de um novo microcontrolador K1921VK01T da OJSC NIIET foram passadas . Como isso é notável? Seus periféricos projetados para controlar motores elétricos (controle do motor). Este não é apenas um par de canais PWM. Esses são nove módulos PWM sofisticados de dois canais (PWM), dos quais três são módulos (HRPWM) com um modo de resolução "alta". Estes são seis módulos de captura CAP de 32 bits separados. Vinte e quatro (!) Canais de ADCs de 12 bits com um gerenciador de inicialização flexível, média incorporada e comparadores digitais. Dois decodificadores de quadratura (QEP), várias interfaces de comunicação, memória interna do usuário, relógios - tudo isso no núcleo do ARM Cortex-M4F com um megabyte de memória flash "on board" e um desempenho de 100 MIPS! Interessante?

Na verdade, para não listar todas as características técnicas do produto no artigo, estou enviando-o para a página do site do fabricante . Há uma lista curta e uma folha de dados completa (embora ela esteja sempre oculta nos diferentes cantos do site e no momento da redação deste documento, você pode baixá-la ... da tabela de desenvolvimentos atuais ). E no artigo, é melhor dizer algo que não está escrito nas folhas de dados.

Um pouco de história


Os trabalhos no microcontrolador (a seguir denominado MK) começaram em 2012 pela empresa NPP Digital Solutions, por ordem de OJSC NIIET(Voronezh.) As licenças foram adquiridas para o núcleo ARM Cortex-M4F e alguns módulos periféricos de comunicação, e alguns dos módulos foram desenvolvidos por esta empresa de forma independente: módulos PWM, um controlador ADC (não o próprio ADC, mas um gerente para gerenciá-lo), um módulo de captura CAP e um módulo decodificador em quadratura QEP. A NPP Digital Solutions produziu pela primeira vez um modelo de microcontrolador no Kintex7 FPGA, que implementou toda a lógica do futuro microcontrolador, incluindo o núcleo ARM. Mas o FPGA é um produto livremente reprogramável que permite corrigir erros na lógica MK se eles forem detectados após a aprovação nos testes (isso é um acréscimo ao teste em um simulador). Mas como testar um microcontrolador motorcontrol? Além dos testes sintéticos, é claro, sobre a verdadeira tarefa de controlar um motor elétrico! Para isso, a NPP "Digital Solutions" se voltou para nós - emNPF Vector LLC , já que temos muita experiência no campo de acionamentos elétricos baseados na MK Texas Instruments , embora seja porque estamos sentados em um prédio vizinho. Em discussões conjuntas ao projetar periféricos para controle de motores elétricos, foi decidido tomar o TMS320F28335 Texas Instruments (TI) como modelo, pois esse microcontrolador provavelmente possui os periféricos de controle de motor mais potentes e flexíveis, merecidamente respeitados em todo o mundo. Portanto, armadas com as folhas de dados da TI, as “Soluções Digitais” criaram com base na lógica interna dos módulos PWM, CAP e QEP para o K1921VK01T. Além disso, com base em nossa experiência com o TI MK, propusemos adicionalmente algumas melhorias que faltam à TI. Este é um filtro de pulsos curtos em um módulo PWM (nem todos os drivers de chave de alimentação, como abrir / fechar por um período muito curto, o IGBT pode entrar no modo linear), essas são algumas das nuances do módulo decodificador em quadratura, que permitem que você se livre de problemas com a troca de divisores de medidores em movimento etc.As “soluções digitais” levaram em consideração e expandiram a funcionalidade periférica de acordo com os módulos de TI.

Enquanto a NPP Digital Solutions desenvolveu a lógica interna dos módulos, nós da NPF Vector decidimos testar o futuro microcontrolador. Era um pequeno conversor de frequência com seis transistores ("servo amplificador"), que era conectado por circuitos de controle ao microcontrolador protótipo no FPGA, e a parte de potência era conectada a um pequeno servomotor com sensores de posição Hall (para verificar o módulo CAP) e um sensor de posição em quadratura (para verificar o módulo QEP ) Nosso objetivo era o seguinte: escrever um software para o microcontrolador para garantir o controle total do vetor do motor elétrico usando qualquer sensor de posição de sua escolha ou ambos de uma vez. E, é claro, relatar todos os problemas encontrados na periferia para “Soluções Digitais”.

Apesar de muitos testes da MK na Digital Solutions, muitos erros foram encontrados durante os testes em um motor elétrico ativo. Basicamente, eles foram associados a uma implementação imprecisa da lógica de blocos internos, que não foi explicitamente descrita nas folhas de dados da Texas Instruments. Por exemplo, o que o módulo PWM deve produzir se o ponto de ajuste de comparação for definido acima do período do temporizador? Ou, se um divisor de sinal de entrada estiver incluído para um decodificador em quadratura, o módulo deve detectar uma mudança no sentido de rotação por um sinal dividido ou pela entrada original? As respostas para essas perguntas podem ser óbvias para o acionamento elétrico, mas não óbvias para o arquiteto da lógica do microcontrolador. Na medida do possível, detectamos erros semelhantes junto com a Digital Solutions. O inversor trabalhou com sucesso no controle vetorial sem problemas.No entanto, é claro, não conseguimos cobrir todos os erros com esses testes - com certeza em outras tarefas os erros começarão a aparecer novamente. Mas, para isso, há erratas e novas revisões dos microcontroladores: para corrigir bugs, você deve primeiro coletá-los. Após depurar a lógica do MK no FPGA com "Digital Solutions", a "fiação" do MK (ou o que seja) foi feitaé chamado microcontroladores? Topologia?), Após o qual todos os resultados do trabalho foram transferidos para o NIIET. A propósito, já encontramos vários erros após o lançamento do MK na "pedra", mas o NIIET os considerou críticos o suficiente para alterar o layout do MK: eles acumulam mais - eles vão corrigi-lo.

Título



Devo também dizer que o microcontrolador sobreviveu a vários nomes. No início, durante o desenvolvimento, ele tinha o nome de código "MS01", depois o lote experimental de pedras foi chamado NT32M4F1 e depois se tornou K1921VK01T (além disso, em alguns lugares as letras são escritas em russo, em outras letras em inglês). Portanto, se você vir esses nomes nos primeiros artigos e publicações sobre este MK, não se surpreenda.

Quão caro?


Atualmente (no início de 2016), o NIIET está pronto para vender o primeiro lote de microcontroladores, que já começou a chegar aos clientes. Os cristais são envoltos em parte em plástico, em parte em cerâmica (para que em aplicações críticas não funcione como você - você sabe - o que) O preço da pedra no plástico no final de 2015, ao que parece, era um pouco menor que 3 tr, o que é mais alto que o preço da TI TMS320F28335 ao comprar na Rússia (no momento da redação deste artigo, o coeficiente para converter os preços "de seus" em "nossos" era 76). No entanto, no TMS320F28335 não há memória e horas do usuário, é necessário definir as externas, por causa das quais o custo no final se torna comparável. Isso torna o K1921VK01T promissor não apenas em termos de substituição de importações, mas também para “interesses mercantis” simples. Embora essa comparação, é claro, não esteja totalmente correta - você pode encontrar vários exemplos de cristais mais baratos no Cortex-M4F e com uma frequência de clock mais alta, mas com menos periféricos. Portanto, para tarefas simples, o K1921VK01T será excessivamente grande e caro. Mas para a aplicação principal (controle de motores elétricos e eletrônicos de potência complexos) - é competitivo.

O que temos com o desempenho?


Fizemos uma apresentação na exposição sobre isso há um ano, a apresentação pode ser encontrada aqui. Nossos testes, é claro, não pretendem ser particularmente precisos - afinal, não realizamos benchmarks reais, mas "juntamos" o mesmo sistema de controle vetorial no teste (e o que mais pode excitar os acionamentos elétricos?). Porém, uma breve recontagem da apresentação é a seguinte: a arquitetura ARM Cortex-M4F fica atrás do DSP principal da C28 TI nos cálculos médios necessários para as tarefas da unidade. Se você reduzir a precisão dos cálculos, sempre que possível, usando funções trigonométricas aproximadas e assim por diante, poderá reduzir esse intervalo para cerca de 15%. Mas, ao mesmo tempo, a frequência de clock dos principais núcleos C28 (o mesmo TMS320F28335) é de 150 MHz e a frequência do K1921VK01T é de 100 MHz. Portanto, com todas as otimizações de biblioteca, o K1921VK01T é equivalente em potência computacional em algum lugar à série TI piccolo MK, com uma frequência de 90 MHz. O que pode ser interpretado como ... muito bom, em nossa opinião,porque se você usar corretamente todos os sinos e apitos de hardware do novo MK, como medições DMA e ADC com filtragem automática, poderá economizar muito em ciclos de clock. De uma forma ou de outra, conseguimos "empinar" o K1921VK01T em nosso projeto de desempenho mais exigente, com base no TMS320F2810 (150MHz, núcleo C28), que já colide com o mesmo 2810.

?


E o que poderia estar errado com eles, é o BRAÇO! Normal, sem nenhum "mas". Pegue qualquer JTAG, qualquer ambiente de desenvolvimento, mas ... não, afinal, qualquer um não funcionará. "Mas" é o firmware da memória flash. Apesar do fato do núcleo do ARM ser padronizado e de qualquer JTAG e ambiente se conectar ao K1921VK01T, não é tão simples com o firmware flash. Parece que cada fabricante de microcontroladores considera seu dever fazer seus próprios registros para trabalhar com o firmware de sua memória flash, para que os criadores de ferramentas de desenvolvimento sejam atormentados com o apoio de todo esse zoológico. O K1921VK01T também não está muito atrasado nesse aspecto - também existem métodos para trabalhar com flash. Mas se para fabricantes eminentes programadores de memória flash (driver, pisca-pisca ou como devo chamá-lo?) Nos ambientes de desenvolvimento são escritos e funcionam imediatamente, para o K1921VK01T tudo funciona apenas nesses ambientespara os quais os programadores escreveram na NIIET. Felizmente, para o IAR e Keil, tudo está pronto e exemplos de projetos com instruções de firmware podem ser encontrados emFórum NIIET , bem como no repositório aberto no Bitbucket , que é mantido pelo NIIET. Além disso, nós da NPF Vector escrevemos suporte para a programação do flash K1921VK01T para OpenOCD(Abra o depurador no chip). Essa é uma camada entre o depurador GDB e o ferro na forma de diferentes emuladores JTAG e pedras diferentes. Mas enquanto estávamos fazendo a "revisão de código" no repositório OpenOCD com resolução de conflitos, os desenvolvedores do NIIET escreveram a mesma coisa, mas a deles foi melhor (eles também adicionaram a função de gravação do usuário além de queimar a memória flash principal), mas ... essa é a letra da música. O que esse OpenOCD oferece? Esse é um tipo de camada de abstração de ferro, que permite criar seu próprio ambiente de desenvolvimento livre e gratuito para o K1921VK01T com base em qualquer IDE popular. Nós, no "Vetor", adoramos o Eclipse (porque o ambiente do TI Code Composer Studio, a partir da v4, é baseado nele, estamos acostumados a ele e, geralmente, não há IDE melhor no mundo do que o Eclipse) E os desenvolvedores do NIIET criaram um ambiente de desenvolvimento no Qt Creator. Mas, em geral, o significado é o mesmo aqui e ali: você pega o ambiente, pega o conjunto de ferramentas gratuitas de desenvolvimento cruzado para o GCC, pega o plug-in para trabalhar com o OpenOCD, o próprio OpenOCD, algumas configurações, um pouco de mágica ... e você já trabalha totalmente com o K1921VK01T, esquecendo-se de IAR e Keil. No momento em que escrevemos, publicamos nossa montagem Eclipse (denominada VectorIDE) para K1921VK01T em nosso site , veja a receita do Qt Creator no fórum NIIET . Pessoalmente, conduzimos todos os projetos do K1921VK01T em um ambiente livre e aconselhamos você - o conjunto de compiladores GCC não fica muito atrás dos IARs da marca (veja nossa mesma apresentação), mas se você é uma empresa respeitável, não precisa comprar software importado caro (já com um fator de conversão de 76, Karl! 78!).
Ah sim. Há mais uma coisa. É chamado Codemaster ++ [ARM] . Este é um ambiente de desenvolvimento 100% doméstico, incluindo compiladores, e também projetado para o K1921VK01T. Examinamos suas primeiras versões há um ano, mas descobrimos que ainda não estava pronta, um pouco em termos de compiladores e muito em termos de facilidade de edição de código (embora nisso possa competir com o IAR, que sabe o que quero dizer). Mas é pequeno e rápido, e na interface se assemelha a algum tipo de depurador "hacker" como o OllyDbg (compare: um e dois ). Em geral, talvez alguém se interesse. Devo dizer que os desenvolvedores (empresa“Fiton” ) se esforçou muito, até solicitou ao mesmo tempo nosso benchmark à la “controle de mecanismo de vetor” para otimizar seus compiladores.

O que temos com os kits de depuração?



No início de 2016, quatro placas de depuração no K1921VK01T são conhecidas por natureza. Este é o nosso VectorCARD K1921BK01T e outros ... dos concorrentes. Ok, assim é, aqui estão os links LDM-HELPER-K1921BK01T e MBS-K1921VK01T . Parece também que o próprio NIIET possui seu próprio quadro NIIET_1921BK01T, mas aparentemente está escondido em meu site - se alguém encontrar um link, terei prazer em complementar o artigo. Qual é a diferença entre eles? Não vendemos uma placa vazia, mas um kit com um inversor, motor elétrico, controle vetorial em códigos-fonte C (com base no que escrevemos na época para a Digital Solutions), bem como com um programa de nível superior e um driver CANopen para monitorar todos os processos dentro da unidade - veja nosso primeiro artigo. Portanto, se você quiser apenas brincar com o novo MK, piscar um LED ou enviar dados por qualquer interface de comunicação, é melhor comprar placas de depuração de concorrentes (embora também tenhamos uma opção de placa nua por 15 tr, mas é completamente "nua" - algumas conclusões). No entanto, se você deseja criar uma unidade elétrica no novo MK, nosso kit e software de depuração podem economizar meio ano ou um ano em tempo de desenvolvimento (ou talvez mais, dependendo se você conhece a teoria da unidade elétrica e se possui suas próprias ferramentas de depuração e oscilografia semelhante ao nosso). Se você ler atentamente o primeiro artigo, então, provavelmente, lembre-se de que é impossível depurar um sistema de controle para um acionamento elétrico sem meios de visualizar os processos internos. E se na Texas Instruments o ambiente de desenvolvimento é capaz de mostrar oscilogramas "prontos para uso" com base nos dados da matriz de memória do MK, para o ARM em ambientes de desenvolvimento universal (não de um fabricante específico do MK), essa função ainda não foi observada (se os desenvolvedores da Fiton lerem isso - Deseja modificar seu Codemaster ++ [ARM] com o construtor de osciloscópios? É fácil fazê-lo!). No nosso kit de depuração, esses meios de visualização de formas de onda estão presentes, para que você possa ver imediatamente tudo o que deve controlar motores elétricos: a forma de correntes de fase, tensões, entradas / saídas de todos os reguladores, etc. O preço do nosso kit é grande, aproximadamente 130 tr.(atualmente, apenas um motor elétrico com todos os sensores de posição custa cerca de 30 tr). Mas para uma organização que deseja aprender um novo produto, isso não deve ser crítico - um ambiente de desenvolvimento comercial somente para a ARM pode custar mais.

Desvantagens do K1921VK01T


Quais são as principais desvantagens do novo K1921VK01T agora podem ser observadas?
• Em primeiro lugar, este é sem dúvida um produto bruto, pois foi realmente programado até agora por 10 a 20 pessoas. Quando mais desenvolvedores estiverem sentados, erros serão detectados - novas revisões serão lançadas. Então prepare-se. Mas, no entanto, eles podem torcer os motores - torcidos pessoalmente.
• No momento, a documentação também está úmida. Existem poucos erros, mas algumas coisas são explicadas ... não está totalmente claro. Pode-se pintar um pouco mais detalhadamente, dar exemplos. Eu acho que com o tempo será finalizado.
• O microcontrolador é muito grande e sofisticado. Isto é para alguém mais, para alguém menos. Muito poucas aplicações cobrem toda a gama de seus recursos. O NIIET já está pensando em uma série de MK baseada nele, com diferentes edifícios e um conjunto de periféricos. Mas, por enquanto - existe apenas o K1921VK01T.
• Ele tem um CPM específico. Freqüentemente, os fabricantes de MK instalam um módulo ADC rápido (12 MS / s) e o multiplexam por vários canais - por exemplo, isso foi feito pela Texas Instruments na série C2000. Mas no K1921VK01T existem 12 módulos ADC lentos de dois canais (1,7MS / s) operando em paralelo. Por que é ruim, além da incapacidade de medir algo muito rapidamente? Se houver um ADC no MK, na placa controladora você poderá enviar sinais de referência calibrados, digamos 1V e 2V, para dois canais não utilizados e usá-los para calcular e compensar o erro multiplicativo e o erro de deslocamento deste ADC, estendendo a correção a todos os canais (o ADC é um ) Quando existem muitos ADCs no MK, esse truque não funciona - todos eles terão seus próprios erros pessoais. Usamos o truque de calibração no Texas Instruments MK tipo TMS320F2810 (isso é descrito na ficha técnica e recomendado),aqui no K1921VK01T sem calibração, obtivemos uma precisão menor do ADC em comparação com o TMS320F2810 calibrado. Tivemos que criar um suporte especial para calibrar cada módulo ADC K1921VK01T de forma independente e costurar a tabela de calibração na memória interna do usuário. Então, a precisão das medições analógicas acabou sendo comparável (a calibração quase não flutua longe da temperatura - foi verificada). Provavelmente, o NIIET deve piscar uma mesa dessas na fábrica, seria conveniente. Mas enquanto o flash estiver vazio.Então, a precisão das medições analógicas acabou sendo comparável (a calibração quase não flutua longe da temperatura - foi verificada). Provavelmente, o NIIET deve piscar uma mesa dessas na fábrica, seria conveniente. Mas enquanto o flash estiver vazio.Então, a precisão das medições analógicas acabou sendo comparável (a calibração quase não flutua longe da temperatura - foi verificada). Provavelmente, o NIIET deve piscar uma mesa dessas na fábrica, seria conveniente. Mas enquanto o flash estiver vazio.
• A frequência de 100 MHz, é claro, é bastante baixa, eu gostaria mais rápido. Mas é isso, é isso. Embora em alguns lugares eles escrevam a frequência de 125 MHz - tudo depende da temperatura ambiente. A "Digital Solutions" relatou essas informações não oficiais: o interior do cristal foi projetado para um máximo de 125 graus. A temperatura é cerca de 15 graus mais alta que o meio ambiente. De acordo com o projeto, o K1921VK01T deve funcionar a 85 graus do ambiente + reserva, o que é garantido para ser alcançado a 100 MHz. De fato, o MK pode ser acelerado acima de 100 MHz, amostras individuais trabalhadas em 140-170 MHz, mas isso depende da amostra. Portanto, se o cristal não estiver superaquecido, poderá ser disperso, se alguém precisar. Mas se na sua aplicação estiver quente (+85), é melhor não intimidar acima de 100 MHz.
• Não há carregador de inicialização oficial (programador) por meio de interfaces de comunicação (CAN, RS). A costura MK é possível apenas através do JTAG / SWD. Consequentemente, se o controlador do produto estiver em um estojo fechado, será necessário gravar o gerenciador de inicialização na interface de comunicação desejada. Ou aguarde até que o NIIET escreva. Até agora, não, mas acho que aparecerá.

Conclusão


Embora o que mais seja a conclusão? Tudo está apenas começando! Finalmente, existe um microcontrolador doméstico no qual você pode realmente fazer um acionamento elétrico! Antes disso, todos os MKs domésticos existentes eram fracos pelo núcleo ou pela periferia, a fim de lidar com as tarefas de controle motor. Mas agora - total liberdade para as estruturas de controle mais complexas e a unidade de potência mais complexa. Gostaria especialmente de observar as perspectivas deste microcontrolador para servocontroladores de máquinas. Até agora, na Rússia, não era possível fabricar uma máquina de precisão multieixos totalmente doméstica, já que (uma das razões) não havia nada para fazer um servo-drive de alta qualidade. Agora existe um microcontrolador.

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


All Articles