Estou montando um projeto que tira proveito do comparador periférico no microcontrolador STM32F051. Li na documentação que, para o comparador funcionar, o pino de entrada precisa ser configurado para analógico ... que é a mesma configuração se você estivesse usando o pino como uma entrada ADC.
Posso usar um único pino, digamos PA1, como entrada e configurá-lo como uma entrada do comparador de janelas e como uma entrada ADC no ADC_IN1?
Há alguma dica nessa configuração, como ruído adicional que devo considerar?
Folha de dados (p 19)
Manual de referência (p 295)
Uma referência interessante, sugerindo que isso seja possível: Retirado de AN4232: Introdução aos comparadores analógicos da série STM32F3
Respostas:
Isso funciona, você receberá os números de volta e interromperá. Eu fiz check-out, faça o download em .
A precisão e glitchiness são indeterminadas, ainda. Mas está bem descrito nas Appnotes, conforme indicado por @Bence Kaulics neste tópico (consulte results.txt para AppNotes adicionais)
Eu acredito que será estável pelas seguintes razões.
Isso também funciona com o DAC, ou seja, você pode configurar tudo internamente com o DAC ou externamente com o DAC e alguns resistores.
Apenas olhando para o circuito, você usará o ADC em paralelo ao comparador, essencialmente um amplificador. Como sabemos, estes são dispositivos de grande ganho e impedância muito alta. Falhas não são nosso amigo.
Agora, vamos bater uma tampa descarregada naquele pino de vez em quando para alimentar o ADC.
Como todos sabemos, precisamos exagerar a amostra do ADC e, de preferência, rejeitar a primeira leitura após um evento de troca de mux para eliminar a distorção dos canais adjacentes e para os próximos.
O ADC no STM tem impedância de entrada um pouco <50K // 5pF, dependendo de como eles são usados. (DM00039193.pdf pág. 76ff)
A Tabela 53 fornece 400-> 50KOhm, que foi o que descobri há algum tempo atrás quando calibrei meu F373 ADC.
A página 79 mostra o circuito ADC.
A página 82 fornece uma breve descrição do pino comparador, lido em conjunto com a descrição geral dos pinos analógicos acima (pg73ff)
Coloque isso em paralelo com a entrada do seu comparador e com o ADC MUX e modele-o em especiarias. Lembre-se de carregar a tampa do ADC regularmente a uma tensão aleatória.
O que quer que aconteça no circuito e no software, você terá falhas razoáveis na entrada do comparador. IDADE RUIM, mesmo se você conectar o pino a um seguidor de baixa impedância e uma tampa de desacoplamento (na linha móvel de uma entrada do comparador ????).
A tampa usada pelo ADC é o assassino. Esperançosamente, os dispositivos futuros serão amostrados usando seguidores / isoladores internos no ADC e no comparador. Eles podem já estar presentes como recursos não documentados (improvável devido à interferência do mux).
Como eu, acho que nos envolvemos tanto com o lado digital das coisas que, quando passamos para o analógico e o híbrido, esquecemos o básico.
Como medir pequenas correntes usando o conversor de corrente para tensão? é uma discussão que tive com outra pessoa ontem. Eu sabia a resposta, porque eu mesma me importei. Mesmo nos melhores 3V a 50K, obtemos um AVO de 16K / volt. Quando foi a última vez que usei um AVO / multímetro?
Tudo isso dito, uma olhada nos circuitos do F373 mostra que ST e ARM parecem ter a intenção de obter resultados viáveis com o comparador e o ADC sendo usados simultaneamente em um dispositivo misto. A adição de opamps nas séries 150 e 300 fornece uma pista sobre os requisitos de isolamento de impedância.
Tenho certeza de que alguém mais inteligente do que eu será capaz de reprojetar o ambiente para o qual essas interconexões internas foram projetadas. Eu pensaria automotivo ou HVAC .... inversores e FOC. A biblioteca FOC pode fornecer informações valiosas.
A menos que você esteja construindo um instrumento de alta velocidade e alta precisão, esse uso poderá ser suficientemente estável para ser utilizado na prática (dentro das advertências acima). Certamente economizará muitos circuitos externos. Provavelmente, é melhor deixar um teste rigoroso em alta velocidade como um exercício para o aluno (tente-me a estudar).
Solução aqui .
Parece que a biblioteca HAL ADC está um pouco danificada para o DMA multicanal. Publiquei no site do STM para obter uma resposta. Soluções alternativas: -
a) IRQ ambos ADCs
b) Poll ambos ADC
c) DMA um canal e pesquisa no outro
d) Inicialize os registros de baixo nível manualmente
Esta é mais uma advertência para a solução em que os dois comparadores são usados, até que uma solução melhor seja encontrada.
fonte
A configuração mais relevante que encontrei é a seguinte, em Usando comparadores analógicos STM32F05xx em casos de aplicativos ( AN4112 ), página 4:
Diz:
Aqui o ADC e o COMP funcionam alternadamente, mas acho que ambos estão configurados ao mesmo tempo. Se continuarmos no documento, há um diagrama de blocos sobre a configuração COMP.
Com base nessa imagem, acho que o ADC e o COMP compartilham o mesmo canal ADC, a única diferença é o número de fontes de limite analógico ativadas .
O texto da Figura 5 na pergunta afirma que o
possivelmente o mesmo que ADC_IN1.
O objetivo de toda essa configuração é economizar energia, o COMP aciona alterações de estado do MCU (STOP <--> RUN). Portanto, quando a entrada está abaixo de um certo limite, o MCU e o ADC são desligados e apenas o comparador funciona. Quando a entrada está acima do limite, o MCU e o ADC acordam e o ADC mede a tensão de entrada. Mas se a entrada cair abaixo do limite novamente, o COMP envia o MCU ao estado STOP.
É uma maneira de usá-los juntos, espero que isso leve a questão adiante.
fonte
Eu acho que você deveria perguntar no fórum STM. Há também (STM32F1) UART RX e TIMx no mesmo pino, ambas as entradas, mas você não pode usá-las juntas, como detectar a interrupção do temporizador da transmissão. Em vez disso, um pino TIMx diferente deve ser conectado em paralelo para que o recurso UART RX e o temporizador sejam interrompidos. Eu acho que apenas uma função pode estar ativa ao mesmo tempo.
Tente baixar o MxCube e veja qual configuração pode ser criada.
fonte