Bienvenue aux nouveaux arrivants sur FantasPic !

- Pensez à lire les règles durant votre visite, il n'y en a pas beaucoup, mais encore faut-il les respecter .
- N’hésitez pas à faire des remarques et/ou suggestions sur le Forum, dans le but de l'améliorer et de rendre vos prochaines visites plus agréables.
- Vous pouvez regarder votre "panneau de l'utilisateur" afin de configurer vos préférences.
- Un passage par "l'utilisation du forum" est recommandé pour connaître les fonctionnalités du forum.

--- L’équipe FantasPic ---
Forum général sur le langage C !

Modérateur : Jérémy

Generateur DTMF 18F27K42 [Solved]
paulfjujo
Avatar de l’utilisateur
Expert
Expert
Messages : 2589
Âge : 73
Enregistré en : juillet 2015
Localisation : 01800
Contact :

#31 Message par paulfjujo » mar. 27 déc. 2022 14:17

ok,

ton filtrage ne me semble pas tres efficace .
Je suppose une frequence PWM trop basse.
Est-tu bien à 62500Hz sur le PWM ?
car tu as FOCS=24MHz au lieu de 64MHz !

ce qui impliquerai aussi de recalculer les coefficients
 Fout * 64 * 65536 / Fpwm 

tu peux déja verifier les valeurs des 2 freq obtenues avec le logiciel générateur WEB de Venea NET
signal filtré -> entrée carte SON PC

Code : Tout sélectionner


avec PWM
=62500Hz
// defines for the DTMF sine frequencies                        
// Sinewave is a lookup table of 64 steps, to generate 1633 Hz each step is 1633 * 64                        
// 24bit Binary divider uses byte2 (/65536)                        
// PWM freq is 128 PIC instructions (8Mhz xtal *PLL) = 62500 Hz                        
// So the math is : Fout * 64 * 65536 / Fpwm                        
// we can use a constant Fout * (64 * 65536 / 62500) = Fout * 67.108864                        
 coeff    =64*65536/62500      ->67.10886        

uint32_t Frow
[4]={ 46775 ,51674 , 57177 , 63149};
uint32_t Fcol[4]={ 81135,89657,99120,109589};


exemples : // Frequence= 81135 / 67.1088864 = 1209
coef pour generer F1 de 697Hz -> 697 * 67.108 = 46775
coef pour generer F2 de 1209Hz -> 1209 * 67.108 = 81135
Aide toi, le ciel ou FantasPic t'aidera

Generateur DTMF 18F27K42 [Solved]
gwion
Amateur
Amateur
Messages : 192
Enregistré en : février 2022

#32 Message par gwion » mar. 27 déc. 2022 16:23

Paul, il est clair que les fréquences ne sont pas les bonnes.
Premier point obscur : comment dois-je faire pour fixer le PWM à 62500Hz avec mon quartz de 24MHz stp ?

Generateur DTMF 18F27K42 [Solved]
paulfjujo
Avatar de l’utilisateur
Expert
Expert
Messages : 2589
Âge : 73
Enregistré en : juillet 2015
Localisation : 01800
Contact :

#33 Message par paulfjujo » mar. 27 déc. 2022 19:00

test avec
PR2=95
Prescaler=1


Code : Tout sélectionner


    Find actual Freq 
Period            PWM Period = (PR2 1) * Fosc TMR2_PSC            
    Period
=    0.016        16.0000    nS        
    PR2    95                    
    Fosc    24        24    MHz        
    TMR2_PSC    1                    
    Freq    62 500      Hz    62.500    khz        



à verifier tout de meme ...
j'ai pas de 16F.....
Aide toi, le ciel ou FantasPic t'aidera

Generateur DTMF 18F27K42 [Solved]
gwion
Amateur
Amateur
Messages : 192
Enregistré en : février 2022

#34 Message par gwion » jeu. 29 déc. 2022 10:18

Bonjour Paul, bonjour tout le monde,

Merci Paul, je confirme le 95 :-)
J'ai commandé un petit module décodeur chinois basé sur un MT8870 pour vérifier que les tonalités sont bien reconnues, verdict dans quelques jours.

Le module en question

Generateur DTMF 18F27K42 [Solved]
paulfjujo
Avatar de l’utilisateur
Expert
Expert
Messages : 2589
Âge : 73
Enregistré en : juillet 2015
Localisation : 01800
Contact :

#35 Message par paulfjujo » sam. 31 déc. 2022 10:12

bonjour à tous,

une version Generateur DTMF PIC12F1840 en DIP8
qui va bien ICI
je compte y rajouter un clavier distant DTMF bluetooth ..
à suivre


12F1840_Generator_DTMF.zip
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
Aide toi, le ciel ou FantasPic t'aidera

Generateur DTMF 18F27K42 [Solved]
paulfjujo
Avatar de l’utilisateur
Expert
Expert
Messages : 2589
Âge : 73
Enregistré en : juillet 2015
Localisation : 01800
Contact :

#36 Message par paulfjujo » lun. 2 janv. 2023 13:50

bonjour,

y aurait-il pas une coquille dans cet article du
n ° 338 http://www.electronlque pratique.com
Bug ? sur docu tableau relation chiffre/ frequence
:!!: T1 1209 597 <--- 1209 697
(clavier sans les lettres ABCD !)

TCM 5089_Encoder_Clavier_DTMF.jpg


au lieu des valeurs de frequences:
697, 770, 852, 941 Hz
1209,1336,1477,1633 hz

retrouvé un autre article plus ancien ,mais qui semble OK
EP-229 octobre 1998

SSI202_TCM5089_DTMF.jpg


:sifflotte: remarque : pas trop d'evolution en 25 ans !

Question :
L'un de vous a_-il déja testé un clavier 4x4 avec touches "en mousse"
(pas de contact sec ,mais appui de la touche sur un matelas en "mousse" ?
donc impedance elevée...
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
Aide toi, le ciel ou FantasPic t'aidera

Generateur DTMF 18F27K42 [Solved]
gwion
Amateur
Amateur
Messages : 192
Enregistré en : février 2022

#37 Message par gwion » lun. 2 janv. 2023 19:59

paulfjujo a écrit :

y aurait-il pas une coquille dans cet article du
n ° 338 http://www.electronlque pratique.com
Bug ? sur docu tableau relation chiffre/ frequence


Bonsoir Paul,

S'il n'y avait eu que cette erreur dans les publications du groupe... :sifflotte:

Question :
L'un de vous a_-il déja testé un clavier 4x4 avec touches "en mousse"
(pas de contact sec ,mais appui de la touche sur un matelas en "mousse" ?
donc impedance elevée...


A ce que j'ai vu de ces claviers (quand la mousse n'est pas tombée en poussière) : c'est une mousse assez identique à celle destinée au conditionnement antistatique, c'est à dire chargée en particules conductrices. Quand elle est en position "expansée" avec les alvéoles ouvertes, la résistance est très grande. Par contre quand on la comprime, les parois des alvéoles entrent en contact et la résistance chute énormément. C'est destiné à des applications "douces" à bas coût.

Generateur DTMF 18F27K42 [Solved]
gwion
Amateur
Amateur
Messages : 192
Enregistré en : février 2022

#38 Message par gwion » mar. 3 janv. 2023 19:39

Bonsoir tout le monde,
Il y a quelque chose qui me chiffonne dans le code, et que je n'arrive pas à comprendre...
Selon moi, on profite des interruptions générées par le timer pour changer le rapport cyclique du PWM en fonction du tableau des sinus. Mais il n'y a pas de procédure d'interruption... Alors ça fonctionne comment ?

Generateur DTMF 18F27K42 [Solved]
paulfjujo
Avatar de l’utilisateur
Expert
Expert
Messages : 2589
Âge : 73
Enregistré en : juillet 2015
Localisation : 01800
Contact :

#39 Message par paulfjujo » mar. 3 janv. 2023 20:03

gwion a écrit :Bonsoir tout le monde,
Il y a quelque chose qui me chiffonne dans le code, et que je n'arrive pas à comprendre...
Selon moi, on profite des interruptions générées par le timer pour changer le rapport cyclique du PWM en fonction du tableau des sinus. Mais il n'y a pas de procédure d'interruption... Alors ça fonctionne comment ?



on ne se preoccupe pas du flag interruption du timer2 (pas d'interruption Timer2!) ,
Timer2 associé au CCP1 PWM
Le timer2 roll over avec PR2 .. tout seul
la valeur du PWM est contenu par l'index (poids faible du compteur 24 bits ) des 2 tables de sinus F1 et F2
compteur en prgression à chaque tour de boucle.
la frequence PWM etant fixée à 62500Hz par PR2 .
par contre le Timer1 est utilisé en interrupt pour calibrer la durée du signal DTMF
Aide toi, le ciel ou FantasPic t'aidera

Generateur DTMF 18F27K42 [Solved]
gwion
Amateur
Amateur
Messages : 192
Enregistré en : février 2022

#40 Message par gwion » mar. 3 janv. 2023 20:37

Merci Paul, c'est nettement plus clair !


Retourner vers « Langage C »

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 33 invités