Página 1 de 1

AD do STM32F103

MensagemEnviado: 03 Abr 2021 12:58
por Guri
Como eu faço para fazer com que o AD fique lendo indefinidamente a entrada do canal 1 do AD?

Eu preciso ler o AD, mas gostaria que ele não interferi-se no tempo da minha rotina principal "while", tipo como se estive sempre fazendo a leitura e alocando os valores em memória RAM e eu pude-se pegar o resultado a hora que eu deseja-se....Dá pra fazer isso?

No meu caso faço a média para estabilizar a leitura (20 amostras)...Agradeço a ajuda! :mrgreen:

Re: AD do STM32F103

MensagemEnviado: 03 Abr 2021 13:12
por eletroinf
Basicamente, tem um bit no registrador de configuração que faz com que o AD funcione continuamente. É só setar ele e ler o resultado quando tu quer.

Veja no reference manual:

11.3.5 Continuous conversion modeIn continuous conversion mode ADC starts another conversion as soon as it finishes one. This mode is started either by external trigger or by setting the ADON bit in the ADC_CR2 register, while the CONT bit is 1.After each conversion:If a regular channel was converted:–The converted data is stored in the 16-bit ADC_DR register–The EOC (End Of Conversion) flag is set –An interrupt is generated if the EOCIE is set. If an injected channel was converted:–The converted data is stored in the 16-bit ADC_DRJ1 register–The JEOC (End Of Conversion Injected) flag is set –An interrupt is generated if the JEOCIE bit is set.

Re: AD do STM32F103

MensagemEnviado: 03 Abr 2021 13:32
por sync
Guri escreveu:Como eu faço para fazer com que o AD fique lendo indefinidamente a entrada do canal 1 do AD?

Eu preciso ler o AD, mas gostaria que ele não interferi-se no tempo da minha rotina principal "while", tipo como se estive sempre fazendo a leitura e alocando os valores em memória RAM e eu pude-se pegar o resultado a hora que eu deseja-se....Dá pra fazer isso?

No meu caso faço a média para estabilizar a leitura (20 amostras)...Agradeço a ajuda! :mrgreen:


Amigo
O STM32 possui a opção de ADC com DMA usando conversão contínua e buffer circular, creio que aqui há informação

https://jeelabs.org/article/1619b/

Re: AD do STM32F103

MensagemEnviado: 03 Abr 2021 14:50
por Guri
sync escreveu:
Guri escreveu:Como eu faço para fazer com que o AD fique lendo indefinidamente a entrada do canal 1 do AD?

Eu preciso ler o AD, mas gostaria que ele não interferi-se no tempo da minha rotina principal "while", tipo como se estive sempre fazendo a leitura e alocando os valores em memória RAM e eu pude-se pegar o resultado a hora que eu deseja-se....Dá pra fazer isso?

No meu caso faço a média para estabilizar a leitura (20 amostras)...Agradeço a ajuda! :mrgreen:


Amigo
O STM32 possui a opção de ADC com DMA usando conversão contínua e buffer circular, creio que aqui há informação

https://jeelabs.org/article/1619b/


Exatamente isso, preciso de alguma coisa que faça a conversão e guarde isso em posições de memória, por exemplo, se eu tiver duas entradas AD, cada uma joga seu resultado num registro...vou pesquisar nesse sentido da dica de vocês dois, sou grato pela atenção.

Re: AD do STM32F103

MensagemEnviado: 07 Abr 2021 22:51
por Guri
Eu tenho observado, nos testes que tenho feito (tudo de forma muito simples), onde os ADCs dos STMs F1 F4 , são um tanto arredios.
Em comparação com um pic18, a coleta dos dados pelo ADC é mais calma.

Se você não fizer média não consegue estabelecer uma leitura justa, já num pic18 ou 16 que seja, você já tem maior estabilidade, e em muitos casos se consegue fazer a estabilização sem utilizar média...já no ARM, as coisas mudam de figura...

São apenas observações que tenho me deparado na bancada e isso me gerou muita dor de cabeça, até entender o como funciona!

:)