Répondre à la discussion
Affichage des résultats 1 à 18 sur 18

GBF numérique avec le 16F84A (avec isis et MPLAB)



  1. #1
    hades1992

    GBF numérique avec le 16F84A (avec isis et MPLAB)

    salu tout le monde,
    je suis une débutante en ce qui concerne la programmation des PIC ( je sais faire un clignotment de led avec le 16F, mais au dela je me sens perdu...)
    bon maintenant, je voulais essayer de faire la conception d' un GBF numérique avec un 16F84A qui permet de génerer ( un sinus, rampe , signal triangulaire, un créneau)
    tout ayant la possibilité de regler la fréquence, l amplitude et l offset.....bref un GBF .
    pour l affichage de ces signaux, les visualiser dans matlab (liaison RS232 en utilsant des ports virtuels sur mon PC),ceci d'une part.
    d autre part, je veux programmer mon pic avec le langage µc, au lieu de l'assembleur pour eviter la gestion manuelle de la memoire et tt ce casse tete

    pour le montage de ce GBF , j ai trouvé mon bonheur sur fabrice sincère:http://fabrice.sincere.pagesperso-or...ic/gbf/gbf.htm

    mais je prefere trouver d autre propositions, car je pense que le schéma est un peu compliqué pour etre realisé.
    j'esperes que vous pourrez me proposez qq sites et documentation , et tout conseils et astuces seront les bienvenus .

    j'esperes aussi recevoir une reponse rapide et favorable de votre part.

    -----


  2. Publicité
  3. #2
    cubitus_54

    Re : GBF numérique avec le 16F84A (avec isis et MPLAB)

    Bonsoir,

    Il y a de quoi s'amuser...
    Mais laisse tomber le vieux 16F84.... tu en as des vraiment mieux ! Certain intègre des DAC (convertisseur numérique analogique) et fonctionne jusqu’à 64MHz.
    Ensuite sans te casser la baraque, en terme de bande passante tu n'iras pas loin... de l'ordre du kHz

    Tu peux aussi piloter un composant qui génère les signaux... XR2206 pour le plus simple ou un DSP si tu en es capable.

    Perso j'avais fait des essais uniquement avec un PIC 16F1847...

    DAC_5.png

  4. #3
    PIXEL

    Re : GBF numérique avec le 16F84A (avec isis et MPLAB)

    tu pilotes ceci :

    http://fr.farnell.com/analog-devices...p10/dp/1581966

    avec ton µcontroleur

    c'est la solution moderne

  5. #4
    kevin8z

    Re : GBF numérique avec le 16F84A (avec isis et MPLAB)

    Dans un de mes projet, j'avais utilisé un AD9833. Regarde sur mon site le schéma, il n'y a que la partie analogique avec l'AD9833.

  6. #5
    hades1992

    Re : GBF numérique avec le 16F84A (avec isis et MPLAB)

    bonsoir,
    merci enormement pour vos réponses, et pour l'attention que vous avez prété à mon msg.
    mais sinon je pense que je vais etre avide et que je vais abuser de votre gentillesse et vous demander de détailler d'avantage vos propositions .
    merci.

  7. A voir en vidéo sur Futura
  8. #6
    paulfjujo

    Re : GBF numérique avec le 16F84A (avec isis et MPLAB)

    bonjour,



    ici une solution mixte :
    DDS via le PIC seul gamme 1Hz 40Khz
    DDS via circuit specialisé AD9835 1Hhz à 20MHz
    à utiliser en version simple ou double...

    le pic18F26K22 ou 46K22 peut avoir sa FOSC à 40, 64MHz ou 80Mhz !
    et contient un DAC5 bits interne ..et ENORMEMENT de RAM & ROM

    DDS_18F46K22_DAC5b.jpg

  9. Publicité
  10. #7
    hades1992

    Re : GBF numérique avec le 16F84A (avec isis et MPLAB)

    merci pour ta reponse paulfjujo, qui m a vraiment inspiré.
    sinon j ai 3 questions a ce niveau:
    1/ t'as utilisé quel langage pour programmer le pic? assembl ou C?
    2/pourquoi relier le AD9833 avec le PIC, s'ilest capable de generer les différents signaux, tout seul?
    3/ est ce que le AD9833 est programmable? si oui , par quel langage?
    j ai lu le datasheet du AD9833 et y avait pas grand chose :/
    merci ^^

  11. #8
    paulfjujo

    Re : GBF numérique avec le 16F84A (avec isis et MPLAB)

    bonjour,

    1) Langage C C18 MPLAB

    2) L'AD9850 dialogue en simili SPI
    il faut lui envoyer une consigne de frequence..
    donc un maitre I2C est necessaire.
    il ne peut sortir que le sinus ou le carré.
    3) je ne connais pas particulierement l'AD9833 mais
    je pense qu'il est aussi programmable car la meme famille AD9835 ou AD9850.
    Il est plus evolué puisque permet aussi le triangle..

    nota: le pic tout seul peut sortir Sinus,carre,triangle,dent de scie
    mais dans un domaine de frequence plus restreint 0,1Hz à 20Khz maxi

  12. #9
    hades1992

    Re : GBF numérique avec le 16F84A (avec isis et MPLAB)

    bonsoir paulfjujo,
    d' ou est ce que tu as eu le AD9835 sur isis??
    j ai cherché partout dans la librairie d'ISIS (version 7.8)
    et j ai rien trouvé!!!

  13. #10
    paulfjujo

    Re : GBF numérique avec le 16F84A (avec isis et MPLAB)

    bonjour,

    Je n'ai que ISIS lite qui me sert uniquement pour faire des schemas...
    sinon je ne travaille que dans le monde reel..

    Tu n'as pas precisé quelle domaine de frequence tu dois generer..

    la partie DDS PIC18Fx6K22 seul est une solution qui emule la partie DDS en software
    et utilise le DAC5bit existant
    possible pour un maxi frequence <= 40Khz
    la limite est le cycle boucle software DDS .. 28 instructions * duree de cycle

    mais avec une Freq horloge maxi de 80MHz (quartz 20Mhz x PLL=4) pour ce PIC , => 20MHz utile
    on est loin des 125MHz d'horloge d'un DDS en hardware et du maxi Freq possible en sortie,
    qui doit etre limité à F horloge/3 ou Freq/4 pour garder une purete spectrale assez bonne.
    on peut donc esperer 30 à 40MHz maxi.

  14. #11
    cubitus_54

    Re : GBF numérique avec le 16F84A (avec isis et MPLAB)

    Bonjour,

    Moi aussi je serais intéressé de savoir comment on fait pour avoir ce type de composant sous ISIS (Photo du composant + connexion) aurais tu le fichier en question pour voir comment c'est fait ?

    Merci

  15. #12
    hades1992

    Re : GBF numérique avec le 16F84A (avec isis et MPLAB)

    bonjour, merci pour ta reponse, j'apprécie vraiment l'aide que tu me portes.
    en ce qui concerne le projet que je veux realiser, consiste a realiser un GBF a basses fréquences (fréquence <=10khz).
    j'ai trouver a travers le net qu'il ya plusieurs facon de le faire mais les deux principaux étaient:
    1/générateur(PIC) +DAC+filtre de lissage (tout en utilisant des tables de valeurs préenregistrées dans la mémoirs u PIC).
    2/ pilotage d'un DDS (AD9833 -AD9850-....) par un pic .
    mon GBF doit etre capable de generer les fonctions de bases tout en ayant la possibilité de varier la fréquence, l'amplitude et l'offset selon le besoin. ces deux derniers peuvent étre réalises par l intermédiaire de potentiométres et d'adaptateurs d'impédance. qd a l'affichage j'allais utiliser une liaison RS232 et utiliser des ports virtuels (grace a l'emulateur VSPE) pour les visualiser sur MATLAB.
    je trouve que la 1ere solution est clair mais son seul inconvenient c est que tout le reglage se fait d'une maniere analogique ==> complexité du montage a realiser.
    et puis mon but est de se familiariser avec la programmation des PIC.

    d'ou lorsqu on m a proposé le DDS a base de AD98X, je voulais essayer de réaliser le GBF en utilisant ce dernier. mais le prob c est que j 'ai encore les choses qui sont flou dans ma tete.

    bon voila tous les détails, donc si vous avez des suggestions ou bien une documentation qui s'avère utile , je vous serais reconnaissante de les partager avec moi ^^
    keep calm and carry on ^^

  16. Publicité
  17. #13
    Antoane

    Re : GBF numérique avec le 16F84A (avec isis et MPLAB)

    Bonjour,
    Citation Envoyé par cubitus_54 Voir le message

    Moi aussi je serais intéressé de savoir comment on fait pour avoir ce type de composant sous ISIS (Photo du composant + connexion) aurais tu le fichier en question pour voir comment c'est fait ?
    Paint

    Je ne vois pas l'intérêt d'utiliser le Pic en dds (dac 5bit...) alors que tu as un dds de chez Analog D sur la carte (Dac 10bits, etc).
    Deux pattes c'est une diode, trois pattes c'est un transistor, quatre pattes c'est une vache.

  18. #14
    Antoane

    Re : GBF numérique avec le 16F84A (avec isis et MPLAB)

    Bonjour,

    @paulfjujo :
    Je ne vois pas l'intérêt d'utiliser le Pic en dds (dac 5bit...) alors que tu as un dds de chez Analog D sur la carte (Dac 10bits, etc).

    en ce qui concerne le projet que je veux realiser, consiste a realiser un GBF a basses fréquences (fréquence <=10khz).
    [...]
    mon GBF doit etre capable de generer les fonctions de bases tout en ayant la possibilité de varier la fréquence, l'amplitude et l'offset selon le besoin.
    [...]
    puis mon but est de se familiariser avec la programmation des PIC.
    Tu ne dis rien de la résolution demandée. Mais à la vue de ton cahier des charges, le plus intéressant pour toi me semble de tout faire à partir d'un pic : tu génères en tout numérique ton signal de sortie avec déjà l'amplitude et l'offset idoine (paramétrable par un clavier relié au pic), puis que tu l'envoies à un DAC. C'est pas optimal côté résolution, jolieté du signal, mais tu laisses ainsi complétement de côté le travail en analogique pour te focaliser sur ce qui t'intéresses : tu es obligé de bien comprendre le principe de la DDS puisque tu recrées un AD98xx dans ton pic.
    Et si tu veux améliorer le truc, tu remplaces la gestion de l'offset et du réglage de l'amplitude par un montage analogique (très basique).
    Deux pattes c'est une diode, trois pattes c'est un transistor, quatre pattes c'est une vache.

  19. #15
    paulfjujo

    Re : GBF numérique avec le 16F84A (avec isis et MPLAB)

    bonsoir,


    Citation Envoyé par cubitus_54 Voir le message
    ,
    comment on fait pour avoir ce type de composant sous ISIS (Photo du composant + connexion) ?
    Merci
    Rappel: je n'ai que la version lite ISIS pour faire un schema .. pas Proteus
    je ne peux faire AUCUNE simulation
    Ce n'est pas un composant, miais seulement un fichier BMP inclus
    sur lequel je rajoute des connections (PASSIVES).
    Il ne peut donc pas servir dans une simulation...


    @Antoane

    J'avais commencé par faire un GéneBF DDS à base de PIC1684 @ 25MHz +DAC558 ..100% ASM
    puis par la suite avec un 18F258 .. et dernierement 18F26K22 (ou 46K22)
    et vu que l'AD98xx fait son boulot tout seul, une fois qu'il a recu une consigne, le PIC se tourne les pouces..
    J'ai donc integré un second DDS software dans le PIC pour avoir une autre sortie frequence
    pouvant servir , par exemple à moduler la frequence donnée par L'AD98xx.
    cas pratique : moduler un porteuse 455Khz (AD98xx) à 1000Hz (PIC DDS) pour tester et regler
    les MF d'une vielle radio à lampes ou Transistors...

    C'etait aussi pour voir la possibilité d'une version DDS PIC seul, avec le minimum
    de hardwatre possible , sans investir dans un circuit specialisé..
    juste un module bluetoooth sur l'UART .. pas de LCD ,ni clavier
    le pic ayant pour interface une tablette Android pour afficher la frequence , la forme d'onde.
    et commander le PIC.

    Dans les 2 cas, il faut quand meme prevoir l'amplification de niveau et l'abaissement d'impedance de sortie.
    Assez pointu pou l'AD98xx vu la band passante necessaire...

    Je comprends bien que le PIC DDS ne peut rivaliser avec un circuit dedié..
    tous les details sur ma page web...

  20. #16
    hades1992

    Re : GBF numérique avec le 16F84A (avec isis et MPLAB)

    bonsoir les amis , je suis coincée sur qq truc concernant le fonctionnement des pics.
    bon voila je comprends pas bien comment est ce qu on peut varier la frequence d un signal en utilisant un timer et un prediviseur d un pic (relié a un quartz de 40Mhz), cela d'une part.
    d autre part comment est ce que pouvez determinez l etendu de frequence que le DDs pic peut genéré , j ai vu ca dans plusieurs forums, et enfin qu elle est la relation avec la precision?
    j ai vraiment besoin de votre aide, j esperes recevoir une reponse favorable de votre part ^^
    keep calm and carry on ^^

  21. #17
    paulfjujo

    Re : GBF numérique avec le 16F84A (avec isis et MPLAB)

    bonjour,


    Voici une feuille excel resumant les possibilités d'un systeme DDS
    ou du moins ce que j'en ai compris...

    exemple avec PIC:
    Un compteur 24 bits est incrementé à chaque boucle de programme
    Cette boucle prend un certain temps : ici 2,7µS
    La partie haute du compteur pointe sur une table de 256 elements
    cette table contient les 256 valeurs d'amplitude d'un sinus (0 à 2 PI)
    cette table est directement reliée à une sortie DAC 8 bits ...

    il y a donc une relation tres etroite entre le PAS du DAC , le nombre de PAS du compteur 24 bits
    pas et la duree elementaire de la boucle ( directement liée à FOSC du PIC duree cycle(µS)= 4/FOSC(MHz))
    avec un pas de 1,il faut traverser completement le compteur 24 bits pour avoir une sinusoide sortie DAC
    soit 2^24 => 16 777 216 pas * duree de boucle (2.7µS) soit 45.298sec de periode soit 0.022Hz
    c'est le mini frequence possible
    Mais de gros palier apparaissent sur la forme d'onde...

    c'est aussi l'echelon mini entre 2 consignes de frequence !

    pour le maxi , 16 777 216/256 = 65536 pas
    soit un tour direct en 256*2,7µS = 1446 Hz
    SANS DETERIORATION DU SIGNAL
    on peut aller plus haut , mais le signal se deteriore de plus en plus,
    vu que le pas du DAC 8bits de sortie devient superieur à 1

    *on peut ruser un peu en mettant une table de 256 elements contenant 2 sinusoides!
    pour ameliorer FMax .

    'Freq =((Cons_DDS*nb_sinusoides*quar tzMhz*1000000/4)/Nb_cycles_instruc)/bin24_bits
    Un DDS n'est donc pas aussi IDEAL que cela..
    c'est pourquoi, dans la version AD98xxx ; DDS Hardware, il faut limiter le MAXI FReq possible
    à 1/3 de FOSC, et rajouter des filtres en sortie..


    DDS_calculs.xls.txt

    DDS_calcul.jpg

  22. #18
    Antoane

    Re : GBF numérique avec le 16F84A (avec isis et MPLAB)

    Bonjour,
    Citation Envoyé par hades1992 Voir le message
    comment est ce que pouvez determinez l etendu de frequence que le DDs pic peut genéré , j ai vu ca dans plusieurs forums, et enfin qu elle est la relation avec la precision?
    Le calcul que propose Paulfjujo, c'est, comme il le dit, la limite pour conserver la même résolution sur ton signal de sortie (considérant la bande passante de l'ampli de sortie suffisante).
    Pour le AD9833, cette fréquence serait de 25MHz/2^12~6kHz (f-MCLK_max=25MHz + ROM à 12bits d'adresse).

    Pour aller plus haut, on n'utilise plus la totalité de la ROM, mais seulement une valeur sur 2, sur 4... Ainsi les fabricants affichent-ils souvent des bandes passantes beaucoup plus grandes que posisble en "full-résolution" : jusqu'à 12,5MHz pour le AD9833. Arrivé à cette fréquence, on ne considère plus le signal effectivement généré mais uniquement son fondamental. La distorsion est importante (on assimile du (quasi-)carré à du sinus), mais diminuée par les bande passantes limitées du DAC et de l'ampli de sortie.
    http://www.analog.com/static/importe...ets/AD9833.pdf
    Deux pattes c'est une diode, trois pattes c'est un transistor, quatre pattes c'est une vache.

  23. Publicité

Sur le même thème :

Discussions similaires

  1. cette serrure est elle realisé avec un 16f84A-04 ou 16f84A-10?
    Par badr-MOB dans le forum Électronique
    Réponses: 24
    Dernier message: 23/07/2011, 16h34
  2. Réponses: 0
    Dernier message: 26/04/2011, 21h25
  3. 16F84A avec PICkit 2
    Par artix41 dans le forum Électronique
    Réponses: 8
    Dernier message: 13/06/2010, 22h10
  4. message d'erreur avec MPlab avec PIC 16F877A
    Par olivier_elec dans le forum Électronique
    Réponses: 7
    Dernier message: 15/02/2010, 08h32
  5. probleme avec un pic 16f84a
    Par freinsch dans le forum Électronique
    Réponses: 6
    Dernier message: 29/07/2007, 20h32