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
paulfjujo
Avatar de l’utilisateur
Expert
Expert
Messages : 2597
Âge : 73
Enregistré en : juillet 2015
Localisation : 01800
Contact :

#11 Message par paulfjujo » lun. 10 oct. 2022 20:20

oops
Aide toi, le ciel ou FantasPic t'aidera

Generateur DTMF 18F27K42
Temps-x
Avatar de l’utilisateur
Expert
Expert
Messages : 2616
Enregistré en : juillet 2016
Localisation : Terre

#12 Message par Temps-x » mar. 11 oct. 2022 01:34

Bonsoir paulfjujo, et tout e forum,

Tant que tu restes dans un multiple de 11025 Hz(22100 Hz, 44200 Hz, 88400 Hz) il n'y aura pas de problème, par contre si tu t'en écartes ça risque de changer.

Quand j'envoie les sons des touches téléphonique sur le Module MT8870 à une fréquence de 88400 Hz le module fonctionne correctement, il n'y a aucun filtrage, juste une résistance de 1000 Ohms.

J'ai fait des essais toujours sans filtre, à 11025 Hz, 22100 Hz, ça ne fonctionne pas, à 44200 Hz ça fonctionne très mal.

:-) A 88400 Hz c'est parfait, ça fonctionnement nickel chrome, aucune erreur n'apparait, même en insistant sur une touche :wink:

A de t'elle fréquence ça peut poser problème lors d'une conception car il faudra éviter que ça revienne dans le circuit, ce qui implique des filtres supplémentaire.

==> A+
:roll: Les requins, c'est comme le langage ASM, c'est le sommet de la chaîne alimentaire. :wink:

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

#13 Message par paulfjujo » mar. 11 oct. 2022 19:08

OK, sans filtre, ça "Tombe en marche "

du PWM à 88Khz,ça doit effectivement rayonner ..avec les harmoniques .. dans les radio frequences ..
surtout avec un montage breadboard .
:sifflotte: mais, de nos jours, on écoute plus les G.O.
Aide toi, le ciel ou FantasPic t'aidera

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

#14 Message par paulfjujo » mer. 12 oct. 2022 16:36

bonjour,

un (vieil) outil sympa

Test_DTMF6_avec_TCube_2022-1012.jpg


fichier exe + 1 dll (dans le meme directory)
TCube_generator_et_FFT.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
Temps-x
Avatar de l’utilisateur
Expert
Expert
Messages : 2616
Enregistré en : juillet 2016
Localisation : Terre

#15 Message par Temps-x » jeu. 13 oct. 2022 01:49

Bonsoir paulfjujo, et tout e forum,

paulfjujo a écrit :Source du message du PWM à 88Khz,ça doit effectivement rayonner ..avec les harmoniques .. dans les radio frequences ..
surtout avec un montage breadboard


Ben ouais, c'est bien pour cela qu'il faut utiliser ta technique, avec condensateur et résistance à une fréquence égal à celle de l'encodage audio 11025 Hz pour notre cas, je vais faire un essai, avec filtrage(condensateur et résistance) histoire de voir si ça change quelle que chose.

paulfjujo a écrit :Source du message :sifflotte: mais, de nos jours, on écoute plus les G.O.


:lol:

Avec mon vieux poste à tube et ses 500 grammes, j'aimais bien écouter les G.O à des heures tardif, ça cracher de partout quand le post était juste allumé, et il fallait attendre avant d'avoir une pleine puissance (le temps que les lampes chauffe) mais on prenais le temps de savourer la musique que l'on pouvais recevoir, c’était comme magique.

paulfjujo a écrit :Source du message un (vieil) outil sympa


Merci ! pour le retour, intéressant comme outil

==> A+
:roll: Les requins, c'est comme le langage ASM, c'est le sommet de la chaîne alimentaire. :wink:

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

#16 Message par paulfjujo » jeu. 13 oct. 2022 14:05

Bonjour à tous,

J'ai testé pour vous ( et bibi aussi !)
Generateur DTMF by Roman Black algorithm


Cette application prend NETTEMENT moins de place ,
Used ROM (bytes): 5647 (4%) Free ROM (bytes): 125425 (96%)
Used RAM (bytes): 545 (7%) Free RAM (bytes): 7625 (93%)
...que la version utilisant 16 tables de 5512bytes ( fichiers Wav) en FLASH
Used ROM (bytes):96154 (73%) Free ROM (bytes): 34918 (27%)
Used RAM (bytes): 554 (7%) Free RAM (bytes): 7616 (93%)

mais ce n'est pas le meme but !
:sifflotte: Cette appli. ne peut pas jouer 10sec de Tout_Nu_Tout_Bronzes.wav !

TMR2 est à 62500 Hz
La FFT des signaux est correcte

à voir comment reagit un décodeur DTMF Hardware ..( en attendant un SOFT decodeur DTMF)

18F27K42_SG_DTMF_2022-1013.zip


:!!: nota : baisser le niveau sonore ...si ça ecorche les oreilles

voir details programme etvideo du test sur ma page
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
paulfjujo
Avatar de l’utilisateur
Expert
Expert
Messages : 2597
Âge : 73
Enregistré en : juillet 2015
Localisation : 01800
Contact :

#17 Message par paulfjujo » sam. 19 nov. 2022 20:29

bonsoir,



Ma version MikroC donne entiere satisfaction .. verification avec outil Two Tone Tester (T3) et decodeur hardware HT9170B et leds sur D0..D3
pour afficher la note décodée.
usage de CCP1 + Timer et sortie sur RC4 (via PPS!)
....OK

:mur: Par contre transfert en XC8 TRES LABORIEUX ...
avec CCP1 en PWM associé à TMR2 (62500Hz) et sortie via PPS sur RC4 PWM ( au lieu de RC2)
le niveau amplitude est trop faible pour activer le decoder ....

il me semble que Mikroc gère la consigne pwm CCP1 en mode 8 bits ! (comme sur les anciens PWM !)
alors que sous XC8 la consigne pwm CCP1 est uniquement sur 10 bits : CCPR1H, CCPR1L
L'amplitude étant au maxi de 100 ( somme des valeurs de tables (Sin1 + sine2) >> 1)
(nota : contenu des tables sinus : maxi =99)
le niveau max de sortie duty cycle = 100/1024 ==>10% seulement ........ ( alors qu'en format 8 bits 100/256= 40% !)
apres la cellule RC ( filtre passe bas) ... :? on a plus que quelques mV !

j'ai donc plutot utilisé un vrai PWM5 , toujours associé à Timer2 65200Hz et sortie via PPS -> RC4
:eek: multiplié par 2 l'amplitude ( au lieu de la diviser par 2)
j'obtiens ainsi un signal cr cr de > 600mV sur la sortie GS ampli du HT9170 (gain=1)
et une beaux Pics ( amplitudes) des 2 freq fondamentales ... sur Two Tone Tester (analyse FFT)
Le decodage HT9170B est maintenant OK ...

C'est sur ,il y a une grosse différence entre MikroC et XC8 ...
:!!: transposition directe IMPOSSIBLE ...

je vous mets le code Mikroc de la commande pwm , assez compliqué à suivre
un specialiste ASM pourra peut etre le decoder /comprendre

Code : Tout sélectionner


routine MicroC
_PWM1_Set_Duty
:
;
__Lib_PWM_Remappable_c21b50.c,21 ::         
;__Lib_PWM_Remappable_c21b50.c,24 ::         
0x0C48    0x50AB          MOVF        PR2
, 0 
0x0C4A    0x0F01          ADDLW       1
0x0C4C    0x6E00          MOVWF       R0 
0x0C4E    0x6A01          CLRF        R1 
0x0C50    0x0E00          MOVLW       0
0x0C52    0x2201          ADDWFC      R1
, 1 
0x0C54    0xF004C23F      MOVFF       FARG_PWM1_Set_Duty_new_duty
, R4
0x0C58    0xF005C240      MOVFF       FARG_PWM1_Set_Duty_new_duty
+1, R5
0x0C5C    0xDDCE          RCALL       _Mul_16X16_U
0x0C5E    0x0E06          MOVLW       6
0x0C60    0x6E04          MOVWF       R4 
0x0C62    0xF002C000      MOVFF       R0
, R2
0x0C66    0xF003C001      MOVFF       R1
, R3
0x0C6A    0x5004          MOVF        R4
, 0 
L__PWM1_Set_Duty4
:
0x0C6C    0xE005          BZ          L__PWM1_Set_Duty5
0x0C6E    0x3203          RRCF        R3
, 1 
0x0C70    0x3202          RRCF        R2
, 1 
0x0C72    0x9E03          BCF         R3
, 7 
0x0C74    0x0FFF          ADDLW       255
0x0C76    0xD7FA          BRA         L__PWM1_Set_Duty4
L__PWM1_Set_Duty5
:
;
__Lib_PWM_Remappable_c21b50.c,25 ::         
0x0C78    0xFF7CF00B0060      MOVFFL       2
, CCPR1
0x0C7E    0xFF7DF00F0060      MOVFFL       3
, CCPR1+1
;__Lib_PWM_Remappable_c21b50.c,26 ::         
L_end_PWM1_Set_Duty
:
0x0C84    0x0012          RETURN      0
; end of _PWM1_Set_Duty


le programme en version XC8
Generateur_DTMF_18F27K42_2022_XC8.zip


version mikroC
_18F27K42_Roman_Black_DTMF_Generateur_2022-1117.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
Temps-x
Avatar de l’utilisateur
Expert
Expert
Messages : 2616
Enregistré en : juillet 2016
Localisation : Terre

#18 Message par Temps-x » dim. 20 nov. 2022 12:58

Bonjour paulfjujo, et tout le forum,

Algorithme de Roman Black introuvable sur Wikipedia, et tu sur du non qu'il porte ?

Ou as tu trouvé cela ?

==> A+
:roll: Les requins, c'est comme le langage ASM, c'est le sommet de la chaîne alimentaire. :wink:

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

#19 Message par paulfjujo » dim. 20 nov. 2022 14:41

bonjour,



j'aurais du écrire algo. par Roman black !

https://www.romanblack.com/DTMF/DTMF_alg.htm
Decodage DTMF ... expliqué ..mais il faut bien s'accrocher !

le codeur DTMF :
It also forms a companion to my DTMF dual sine generator PIC code,
so it provides the ability to use a couple of low-end PICs to do
both the DTMF generation and decoding without needing specialty chips.


https://www.romanblack.com/SG/SG_tutorial.htm#DTMF
tres bien documenté ,
et aisé à comprendre quand on a deja touchéau DDS soft ( :sifflotte: même en ASM !)
ou avec AD9835, AD9850
Aide toi, le ciel ou FantasPic t'aidera

Generateur DTMF 18F27K42
Temps-x
Avatar de l’utilisateur
Expert
Expert
Messages : 2616
Enregistré en : juillet 2016
Localisation : Terre

#20 Message par Temps-x » dim. 20 nov. 2022 19:49

Re

Merci ! pour les liens,

paulfjujo a écrit :Source du message Decodage DTMF ... expliqué ..mais il faut bien s'accrocher !


:roll: Je crois avoir compris... mais je pense qu'en doit passer au moins par un filtre avant d'attaquer l'entrée d'un pic pour décodage DTMF

Pour générer la tonalité DTMF ça doit être pareil, en sens inverse, mais filtre obligatoire en sortie.

Pour le décodage DTMF, obligation de passer par l'adc du pic, je vois pas d'autre moyen.

Pour la création DTMF, en passe par un PWM, puis en ajoute les valeurs qui son dans un tableau en fonction de la touche sélectionnée, mais il n'y a pas que ça...

Je vais essayer de l'écrire en QuickBasic puis si ça fonctionne je l'écris en ASM pour Pic, oops sorry, je sais je pollues la section C, non Paul c'est pas une vengeance.... :-D

==> A+
:roll: Les requins, c'est comme le langage ASM, c'est le sommet de la chaîne alimentaire. :wink:


Retourner vers « Langage C »

Qui est en ligne

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