Conversion Rapide sur Arduino UNO

Bonjour,

Je travaille actuellement sur un projet Arduino dans lequel il va falloir que j'utilise une technique d'échantillonnage à l'aide d'un convertisseur CAN rapide . Est-ce d'optimiser une conversion rapide avec un Arduino Uno? j'aimerais savoir si vous auriez des propositions qui m'aideront à implémenter une conversion CAN rapide?

Cordialement,

:warning:
Post mis dans la mauvaise section, on parle anglais dans les forums généraux. déplacé vers le forum francophone.

Merci de prendre en compte les recommandations listées dans Les bonnes pratiques du Forum Francophone

Tu veux un convertisseur analogique digital (ADC en anglais, CAN en français) ou implémenter un protocole CAN (qui vient de changer de nom) ?

il s'agit d'un convertisseur sur 10 bits, pour obtenir des échantillons , car je voudrais effectuer la lecture d'un signal analogique ( réception) masqué en partie par un autre signal (entrée).

C’est un adc, ok

Quelle est la fréquence max a échantilloner ?
C’est une donnée indispensable.

Pour bien comprendre le fonctionnement d’un CAN, et ses défauts la datasheet de l’atmega328p est très bien faite.

Il faut comprendre que quand le can donne 345, la vraie mesure est comprise à plus ou moins 5, ou à plus ou moins 10.

Un CAN a plusieurs défauts qui sont bien listés dans la datasheet.
Si tu n’avais donné aucune contrainte cela n’aura pas eu de réponse de ma part. Un uno en mode passe partout convient dans 99 % des cas.
D’ailleurs as-tu essayé ?

A partir du moment ou tu avances des contraintes il faut être cohérent et tout prendre en compte.

Ou alors ce ne sont pas des vraies contraintes mais une attitude ceinture plus bretelles..

Je voudrais utiliser une vitesse d'échantillonnage de 8us par là pour pouvoir effectuer cette opération de conversion rapide?

Mais tu veux utiliser l'ADC de l'Arduino ou un module ADC compatible ?
Exemple : ADS1115 :

Tuto :

8 microsecondes, ça fait une cadence de mesure de 125 kHz : celui-ci ne conviendra pas.

Et tu veux acquérir combien d'échantillons?
Parce que la UNO risque d'être un peu à la ramasse, elle n'a que 2kB de RAM et une partie est utilisée par le système et il va falloir soigner le code pour soutenir le rythme.
Si tu as le choix il faudrait peut-être voir des cibles un peu plus capables (ESP32, Raspberry Pi Pico, .....)

8 µs ce n'est pas une vitesse, c'est un temps.

Je n'ai pas immédiatement la réponse sur le temps que peut mettre un micro atmega328p, il faudrait que je relise la datasheet.

Voilà :
Extrait du chapitre 23 :

Attention, les cycles sont des périodes horloge de l'ADC. Il y a des diviseurs entre le 16 MHz général et la fréquence effective de l'ADC.

By default, the successive approximation circuitry requires an input clock frequency between 50kHz and 200kHz to get
maximum resolution.

13 cycles de 200 000 Hz = 5 µs * 13 = 65 µs.

If a lower resolution than 10 bits is needed, the input clock frequency to the ADC can be higher than 200kHz to get a higher sample rate.
The ADC module contains a prescaler, which generates an acceptable ADC clock frequency from any CPU frequency above 100kHz.
The prescaling is set by the ADPS bits in ADCSRA. The prescaler starts counting from the moment the ADC is switched on by setting the ADEN bit in ADCSRA. The prescaler keeps running for as long as the ADEN bit is set, and is continuously reset when ADEN is low.

Sauf à accepter une précision moindre (en nombre de bit) et savoir comment on peut le faire (je ne sais pas et j'ai abandonné ce micro), le microcontrôleur de la UNO n'est pas assez rapide, ............si tu confirmes ton besoin.