Nouvelles:

Le Forum est maintenant chiffré (préambule https). Bien sûr, des liens externes insérés dans les sujets vont demeurer inchangés. Mais la composition des pages du Forum est désormais sécurisée. Si des problèmes d'affichage surviennent, veillez à vider votre cache pour ce site.

Menu principal

Projet Reference 10 MHz par GPS

Démarré par david .parrot, Février 26, 2022, 04:50:25 PM

« précédent - suivant »

philchamp51

#405
J'ai donc retouché à tout ça et je suis arrivé à un résultat qui n'est peut-être pas digne d'un labo de métrologie mais l'alarme D a disparu et le STM32 me donne ces résultats :
Cycle : Long
Échantillon : 355 / 360
Valeur du DAC courante : 22
Compteur de l'oscillateur | Compte Nominal : 57600 | 57600
Écart vs. compte nominal : 0
Moyenne des écarts du compte : 0.000000
Moyenne des écarts (ppm) 0.0000
Moyenne des écarts (Hz) : 0.000000
Fréquence moyenne calculée de la référence (Hz): 10000000.000000
Nombre d'heures passées en cycles longs: 1
===========================================

Merci pour votre aide Bertrand.

Électro-Bidouilleur

Le système est stabilisé en effet. C'est très bien. Mais un DAC à 22, c'est à un cheveu de la limite et du "D"! L'OCXO est ajusté à une fréquence trop basse (réponse à pente négative). Un DAC à 32768 est l'objectif. À défaut de cette valeur, je m'assurerais d'avoir au moins quelques milliers d'incréments de marge. Ajustement mécanique requis pour monter la fréquence.

philchamp51

Je comprends. Cela laisserait une bonne marge de manœuvre au DAC. Je vais procéder de la sorte alors. Merci encore.

Phil-X1CDR

Bonjour à tous
je voie qu'il y a beaucoup  de passionné, pour m'a part je débute le projet et je pense avoir de bonne base en électronique étant donné que je bidouille depuis environ 40 ans.
Donc après la lecture et relecture du forum et des documents et un grand merci à tous, j'ai une question concernant l'ocxo que j'ai choisi IQOV164-4 alimenté en 3.3V avec un tune en +/- 1.65, je pensais faire une adaptation de la tension du tune via un pont diviseur en partant du +/-5V, est-ce la bonne solution ?
Ci  joint le lien de l'ocxo
https://www.farnell.com/datasheets/1841832.pdf
Merci
Cdt Philippe

papyblue

#409
Bonjour Philippe,
Pour résoudre votre problème il y a beaucoup de bonnes solutions.
Vous devez ramener la plage de tension de contrôle entre 0 et 3,3V alors oui un pont diviseur peut le faire.
Personnellement j'aurais privilégié la solution qui consiste à intervenir au niveau du DAC en fixant VREFIO à 3,3V. Bertrand a prévu un raccordement(TP6), en générant un 3,3V à partir du 5V Analogique (avec un pont diviseur),cela devrait le faire.
Si vous utilisez le circuit imprimé de Bertrand, une solution moins intrusive consiste à peupler R11 et R12 pour obtenir le bon rapport d'amplification (3,3/5 ).

Phil-X1CDR

Bonsoir
merci pour votre réponse, votre explication est certainement la plus rationnelle, je peux utiliser le +3.3V de alimentation du l'ocxo étant donné que les GND sont communs et que l'alimentation est très stable et propre assurant un courant de 2A afin de permettre le démarrage de l'ocxo.
merci
Cdt Philippe

philchamp51

#411
Citation de: Électro-Bidouilleur le Mai 16, 2025, 12:45:31 PMLe système est stabilisé en effet. C'est très bien. Mais un DAC à 22, c'est à un cheveu de la limite et du "D"! L'OCXO est ajusté à une fréquence trop basse (réponse à pente négative). Un DAC à 32768 est l'objectif. À défaut de cette valeur, je m'assurerais d'avoir au moins quelques milliers d'incréments de marge. Ajustement mécanique requis pour monter la fréquence.

Bonjour.

Alors, effectivement avec un DAC à 22, l'alarme D revenait et après plusieurs réglages et mesures de l'OCXO, je suis arrivé à ce résultat:
=============================================================
Cycle : Long
Échantillon : 273 / 360
Valeur du DAC courante : 32873
Compteur de l'oscillateur | Compte Nominal : 57600 | 57600
Écart vs. compte nominal : 0
Moyenne des écarts du compte : 0.000000
Moyenne des écarts (ppm) 0.0000
Moyenne des écarts (Hz) : 0.000000
Fréquence moyenne calculée de la référence (Hz): 10000000.000000
Nombre d'heures passées en cycles longs: 12
=============================================================

L'ampli op piloté par le DAC est alimenté en +5,2V et -5,2V, ce qui donne bien 10V d'amplitude de réglage électrique du HP10811A.

Mais une chose, vous m'avez dit que le paramètre Hz par volt à -0,3V et des poussières était trois fois trop gros et qu'il devrait tourner aux alentours de -0,1V.

Pourtant, c'est bien ce que donne le résultat de votre formule, en mesurant et calculant (F2-F1) / (V2-V1).
F2 = 9999999,89 Hz
F1 = 10000001,72 Hz
V2 = 5,0027 V
V1 = 0,0 V
Donc Valeur de Hz par V = -0,3658

Là, quelque chose m'échappe.
Ou alors, faut-il mesurer V1 et V2 à la sortie de l'ampli op et non à la sortie du DAC pour avoir la vraie amplitude ?
Car si juste par calcul (sans mesure) je mets V1 à -5V, j'obtiens la Valeur de Hz par volt = -0,183

Ceci serait spécifique pour le HP10811A.

Dans ce cas, devrais-je mettre les paramètres du code comme ceci ?
#define REPONSE_OCXO_HZ_PAR_V -0.183
#define DAC_TENSION_MIN 0.0000
#define DAC_TENSION_MAX 5.0027
#define DAC_POST_GAIN 1.0

Électro-Bidouilleur

Vous avez raison, c'est bien la tension à la sortie du DAC qui importe dans le calcul pour le contrôle de l'OCXO.

Maintenant que le système est stable et mieux centré, vous devriez augmenter la durée du cycle à 2 ou 3 heures. Cela produira une meilleure stabilité et moins d'ajustements +/1 qui tournent autour du pot.

philchamp51

Citation de: Électro-Bidouilleur le Mai 26, 2025, 05:07:12 PMVous avez raison, c'est bien la tension à la sortie du DAC qui importe dans le calcul pour le contrôle de l'OCXO.

Maintenant que le système est stable et mieux centré, vous devriez augmenter la durée du cycle à 2 ou 3 heures. Cela produira une meilleure stabilité et moins d'ajustements +/1 qui tournent autour du pot.

J'ai passé la durée du cycle long à 3h et maintenant tout refonctionne bien. Voici les données.
Merci encore Bertrand pour votre support.

=============================================================
Cycle : Long
Échantillon : 413 / 1080
Valeur du DAC courante : 32798
Compteur de l'oscillateur | Compte Nominal : 57600 | 57600
Écart vs. compte nominal : 0
Moyenne des écarts du compte : 0.000000
Moyenne des écarts (ppm) 0.0000
Moyenne des écarts (Hz) : 0.000000
Fréquence moyenne calculée de la référence (Hz): 10000000.000000
Nombre d'heures passées en cycles longs: 33
=============================================================

Électro-Bidouilleur


Phil-X1CDR

Bonsoir
J'ai un peu de mal à comprendre le problème de compilation, quelqu'un a t il eu ce message.
merci à tous.

In file included from c:\Users\piphe\Documents\Arduino\libraries\FlashStorage_STM32\src/FlashStorage_STM32.hpp:47,
                 from c:\Users\piphe\Documents\Arduino\libraries\FlashStorage_STM32\src/FlashStorage_STM32.h:37,
                 from G:\Dossiers\Philippe\Radios\Labo\Reference 10Mhz\Arduino\Controle_Reference_10MHz_STM32_Final_v2\Controle_Reference_10MHz_STM32_Final_v2.ino:23:
c:\Users\piphe\Documents\Arduino\libraries\FlashStorage_STM32\src/utility/stm32_eeprom.hpp:137:9: error: conflicting declaration of C function 'uint8_t eeprom_read_byte(const uint32_t&)'
  137 | uint8_t eeprom_read_byte(const uint32_t& pos);
      |         ^~~~~~~~~~~~~~~~
In file included from C:\Users\piphe\AppData\Local\Arduino15\packages\STM32\hardware\stm32\1.9.0\cores\arduino/board.h:17,
                 from C:\Users\piphe\AppData\Local\Arduino15\packages\STM32\hardware\stm32\1.9.0\cores\arduino/wiring.h:41,
                 from C:\Users\piphe\AppData\Local\Arduino15\packages\STM32\hardware\stm32\1.9.0\cores\arduino/Arduino.h:36,
                 from C:\Users\piphe\AppData\Local\arduino\sketches\0076639B3D1499924A2C11B3EE5FC01C\sketch\Controle_Reference_10MHz_STM32_Final_v2.ino.cpp:1:
C:\Users\piphe\AppData\Local\Arduino15\packages\STM32\hardware\stm32\1.9.0\cores\arduino/stm32/stm32_eeprom.h:89:9: note: previous declaration 'uint8_t eeprom_read_byte(uint32_t)'
   89 | uint8_t eeprom_read_byte(const uint32_t pos);
      |         ^~~~~~~~~~~~~~~~
In file included from c:\Users\piphe\Documents\Arduino\libraries\FlashStorage_STM32\src/FlashStorage_STM32.hpp:47,
                 from c:\Users\piphe\Documents\Arduino\libraries\FlashStorage_STM32\src/FlashStorage_STM32.h:37,
                 from G:\Dossiers\Philippe\Radios\Labo\Reference 10Mhz\Arduino\Controle_Reference_10MHz_STM32_Final_v2\Controle_Reference_10MHz_STM32_Final_v2.ino:23:
c:\Users\piphe\Documents\Arduino\libraries\FlashStorage_STM32\src/utility/stm32_eeprom.hpp:138:9: error: conflicting declaration of C function 'void eeprom_write_byte(const uint32_t&, const uint8_t&)'
  138 | void    eeprom_write_byte(const uint32_t& pos, const uint8_t& value);

etc.......

papyblue

Bonjour,
Le compilateur vous indique que le type des paramètres que vous passez à la fonction ne correspondent pas à ceux déclarés dans le prototype de ces fonctions. Les fonctions de lecture et d'écriture attendent des adresses (pointeurs)ce que vous pouvez vérifier en affichant le fichier FlashStorage_STM32.hpp.
Si vous n'êtes pas l'auteur du code et que vous n'avez pas fait de changements, vous n'avez peut être pas la bonne bibliothèque.Il arrive parfois qu'une bibliothèque évolue  sans compatibilité avec les versions précédentes ou de tomber sur une homonyme imcompatible.La gestion de configuration du logiciel  est le point faible du monde Arduino.

Phil-X1CDR

Bonjour
merci pour votre réponse,
je viens juste de finir le montage du pcb et avant d'installer le micro contrôleur (Black pill STM32F411CE) je voulais installer le programme afin de tester le bon fonctionnement de celui-ci et surprise !
En ce qui concerne le code, il est totalement d'origine version 2 du 05-2025,
la version de IDE Arduino est 2.3.6, les bibliothèques du FlaschStorage_STM32 est bien installé ainsi que celle du LCD...
Ce n'est pas la première fois que j'utilise Arduino, mais la je sèche un peu et j'ai du mal à comprendre le problème étant donné que le sketch est l'origine sans aucune modification.
encore merci
je vais creuser
Cdt Philippe

papyblue

Je viens de tester la compilation de la version 05-2025 et je n'ai pas d'erreur. La version de la bibliothèque FlashStorage_STM32 utilisée est la v1.2.0.
IDE Arduino 2.3.2 sous Windows 11.

Phil-X1CDR

Bonjour
Merci pour votre retour.
je viens de changé la version de la bibliothèque de Flashstorage_stm32 en 1.1.0 et la compilation est réussi !
mais je ne peu pas téléverser, erreur de target... ?
je pense que je vais faire un test avec votre version d'Arduino 2.3.2 car je suis aussi sous Windows 11.
Merci
bonne journée à tous
Cdt Philippe