Citation Envoyé par dr4gon993 Voir le message
Je n'ai plus programmer en assembleur depuis le Lycée
Dans le cas présent ce n'est pas nécessaire.

Citation Envoyé par dr4gon993 Voir le message
la solution serai d'avoir un µC (ex AT328p) couplé a une horloge précise (ex le GPS) pour venir compter les front.
Oui. Tu as trois solutions :

1) Mesurer la période d'un signal lent

Tu utilises un prédiviseur, par exemple 24 bits donc tu divises ta fréquence à mesurer de 16MHz par 16777216. Tu obtiens à peu près 1Hz. Tu utilises un des timers du micro en mode capture : le compteur tourne sur l'horloge du micro, et à chaque front montant du signal de "à peu près 1Hz" il capture le nombre de cycles d'horloge du micro qui a été compté. On a donc le nombre de cycles d'horloge du micro correspondant à 16777216 périodes du signal à mesurer : on peut donc calculer sa fréquence.

Cette méthode nécessite un diviseur (qui peut être intégré dans le micro) et la précision est celle de l'horloge interne du micro (qui peut provenir d'une horloge externe, par exemple un oscillateur précis).

2) Mesurer la fréquence

C'est quasiment la même chose, sauf que le timer est en mode compteur : il compte les cycles du signal à 16MHz pendant une période de temps définie à partir de l'horloge du micro, par exemple une seconde. Cette méthode ne nécessite pas de diviseur (on utilise le compteur du timer pour ça) mais nécessite que le timer du micro soit capable de fonctionner avec une horloge externe de 16MHz.

1+2) On peut utiliser deux timers pour compter les cycles du signal à mesurer ET de l'horloge précise, le micro fonctionnant alors sur une horloge autre.

Pour ces méthodes il vaut mieux un micro avec des timers 32 bits rapides, par exemple un STM32. l'ATMega328P ne peut pas gérer une fréquence externe de 16MHz.


3) SDR

Tu utilises une fréquence voisine de 16MHz, mettons LO=1590000 Hz, la distance étant de 10kHz. Tu mix ça avec ta fréquence de 16MHz, tu obtiens donc un signal à 10kHz qui est la fréquence de battement mentionnée par Gwinver. Acquisition avec une carte son et mesure de la fréquence ou FFT. Cette méthode (qui est du SDR) permet de faire un mini analyseur de spectre dont la bande de fréquences est centrée sur LO et la largeur est la bande passante de la carte son. Elle permet de mesurer le bruit de phase et le jitter de l'oscillateur en plus de la fréquence. Avec une carte son faible bruit dotée d'une bonne horloge (stabilisée en température en collant une boule de coton Demak'up dessus) on atteint la picoseconde.

Une autre option est d'utiliser un dongle USB SDR pour acquérir directement le signal, à ce moment là c'est le dongle qui se charge de la démodulation. Il faudra le modifier pour lui donner un oscillateur précis.