Je cherche un code vhdl d'un diviseur de fréquence ou une autre solution adaptée à mes besoins: la fréquence disponible est le 50Mhz (FPGA Spartan3). La seule solution que j'ai trouvé dans ce site est de pouvoir diviser cette fréquence pour avoir: 1Mhz, 100KHz, 10KHz; 1KHz, 100Hz, 10Hz et 1Hz. Alors que je veux obtenir la fréquence soit 1200Hz ou 2400Hz ou 4800Hz ou 9600Hz. Mon problème est que le 50MHz n'est pas divisible par aucune de ces valeur.
Ce serai très sympa si quelqu'un pourra me donner une solution.
Mon but : échantilloner les 8bits sortants du ports série COM1 d'un pc. Ils servent les données d'entrée de mon circuit synthétisé sur FPGA.
Bonjour, pour générer une fréquence de 9600Hz pour la liaison RS232 à partir de 50MHz en VHDL on procède comme suit :
Code : WAIT UNTIL clock_50Mhz'EVENT and clock_50Mhz = '1' ; IF count_9600hz < 5208 THEN count_9600hz <= count_9600hz + 1; ELSE count_9600hz <= "0000000000000" ; END IF; IF count_9600hz < 2604 THEN clock_9600hz_int <= '0'; ELSE clock_9600hz_int <= '1' ; END IF;
(il faut voir le programme diviseur d'horloge donné sur le forum)
sachant que le signal généré présente une erreur de 0.006% la liaison est totalement fonctionnelle, pour le moment j'ai testé la transmission avec un baud rate erroné de 0.16% et c'est fonctionnel sur un microcontrôleur, donc avec une erreur moindre je suis sur qu'il y a aucun problème en tout cas je vais effectué un test sur FPGA prochainement et je te donnerais les résultats.
Bon Courage
Le savoir est une chose qu'on peut pas cacher, la connaissance existe pour être transmise aux autres...