1hz sinus sinus 100Hz sinus 1000Hz sinus 5000Hz
sinus 25.000 Hz Carre 10Hz carre 5000Hz Carre 25KHz
Triangle 1000hz Triangle 20Khz Denbt de scie1000Hz Dent de scie 20Khz


fichier source C18 :
18F46K22_DDS_STCXDRM_120705_ADC5b_C18.c
chargeur :
18F46K22_test_DAC5b.hex

Version autonome DDS avec 18F26K22 utilisant son DAC5bits


Le PIC18F26K22 en DIP28 , contient aussi un DAC 5 bits avec reference VDD ou 4.906V ou 2,048V ou 1,024V
au depart la liaison interface 2T RS232 est conservée pour le developper des modifications/ameliorations:

Version TERMINAL RS232 :
Projet MC18 regroupant les dvers fichiers utilises
Rappel du
mode de calcul consigne DDS => frequence


via le terminal VBRAY (RS232)


fichier macro :
18F26k22_DDS.tmf

Des frequences fixes sont affectées à des touches de fonctions, mais à tout moment
on peut saisir n'importe quelle valeur au clavier, en respectant le format sur 5 digits et terminé par Enter (CR)
ex: 15625<CR> pour 15625Hz ou 00008<CR> pour 8HZ
De meme on peut changer la forme d'onde :
SINUS,CARRE,TRIANGLE, Dent de SCIE, Reverse Dent de SCIE et *Rectangle..

Rajout touche de fonction Amplitude :
A chaque appui on change la reference du DAC5bits, soit 1,024 2,048 ou 4,096 volts
ainsi que 2 ampli OP Rail to Rail montes en suiveur. Apres le 1er suiveur , un potar de reglage fin est inseré pour
reglage de 0 à Amplitude maxi selectionnée, Le 2em Ampli OP permet une sortie basse impedance (Zs >= 750 ohms).
A suivre .. ampli de puissance avec alim symetrique +-12V pour sortir quelques volts sur 50 Ohms mini.

Rajout touche de fonction Potar pour reglage valeur consigne DDS
On ne peut pas utiliser directement la valeur Analogique 0-1024 points pour definir une frequence entre 1Hz et 40000Hz!
donc usage specifique d'un potar lineaire classique , course de 270° :
Potar au milieu (zone morte de 45 à 55%) Pas d' evolution de consigne et Led Stop allumée
Potar en dessous de 45% ,
- Diminution de la consigne avec un pas variant exponentionnellement avec l'angle du potar.
- Led Down allumée.
Potar en dessus de 55% ,
-Augmentation de la consigne avec un pas variant exponentionnellement avec l'angle du potar.
-Led UP allumée
Affichag de la consigne rafraichit en permanence
Touche Valid: pour sortir du mode potar et donc utiliser la derniere consigne reglee

Touche Taux : permet le mode specifique Rectangle
Un potar de reglage taux , delivrant 0 à 1024 points / 4 soit 0 à 255, permet de
regler le rapport ON/OFF de la periode , entre 1% et 99%.
L'appui sur Taux permet une lecture du potar et donc rafraichit le mode Rectangle

Schema :

images/t_dds_18fx6k22_dac5b_130308.jpg
DDS_18Fx6K22_DAC5b_130307.DSN

TRicks & Tips (Problemes rencontres :
MPLAB IDE ne sauvegarde pas tout le contexte dans un projet..
J'ai perdu 2H00 à rechercher pourquoii je n'avais plus la meme relation consigne DDS et Frequence obtenue
j'avais 819Hz au lieu des 1000Hz prevus.. une coche de trop dans l'option Compilateur C18 : Integer Promotion !
ce qui mettait, apres decorticage de l'ASM géneré pour la boucle DDS , 35 cycles au lieu de 27 cycles..
Apres decochage de l'option,tout rentre dans l'ordre : boucle DDS tourne en 27 cycles soit 2,7µS
avec Q=10MHz et PLL 4x activée.

Adaptation d'impedance:
Le double ampli OP rail to rail utilisé TLC27M2, n'a pas un slew rate suffisant pour le mode Rectangle ou Carre.
D'autre part , le niveau bas de la sinusoide est un peu emoussé, et on ne peut pas utiliser une charge de sortie
inferieure à 750 ohms, sinon grosse distorsion prtie negative de la sinusoide
soluces possibles :
- Trouver d'autre ampli avec meilleur Slew Rate (V/µS) et Rajouter un offset DC sur l'entree -
- Utiliser directement un ampli de puissance DC-100KHz avec Zs=50 ohms mini, avec alim symetrique +-12V.
Je pensais pouvoir utiliser -REF du DAC pour imposer un niveau bas de 0,5V,
mais probleme de datasheet, ou imcomprehension de ma part ? question posée sur le forum futura....

A noter que l'interface 2T RS232 convient tres bien pour cette appli (38400bauds) et ne coute quasiment rien.
testé OK aussi avec un cordon Trendnet RS232-USB TU-89.


Version 18F26K22 DDS autonome
avec interfaces LCD 2x16 cars + clavier 5 boutons poussoirs
et RS232

versus 17/03/2013
En plus des commandes possibles via le terminal RS232, l'ajout de 5 boutons poussoirs et d'un ecran LCD 2x16 car
permet une utilisation autonome.(sans PC!)

images/t_DDS_18Fx6K22_DAC5b_LCD_Touches_130314.jpg par defaut, au lancement programme :
mode Sinus, Consigne 1000Hz, Amplitude Maxi 2,048 V
Deplacement dans le menu par BP droit ou BP Gauche
SINUS
CARRE
TRIANGLE
Dent de SCIE
Reverse Dent de SCIE
Rectangle

sous -menus :
Reglage TAUX 2 à 98% avec BP - +
Reglage max DAC 1, 2, ou 4V avec BP + ou -
Choix de Frequence 1 parmi 64 avec BP + ou -
Regalge FIN de frequence à 1Hz pres BP + ou -
Touche Validation pour chaque reglage ou mode.

gamme F=1Hz à 45 000 Hz
Amplitude reglable de 0% à 100% de la sortie DAC
100% pour 1,024 ou 2,048 ou 4,096V

Commande AUSSI via un terminal RS232 !
images/Proto_in_run.jpg images/DDS_proto_5BP_circuit_deprime.jpg



Affichage sur 1 LCD 2x16 cars :
La Ligne 1 du haut sert au libellé du MENU
La ligne 2 du bas, à afficher ou modifier des valeurs
2 BP (
BP4 Gauche , BP5 Droite ) pour se deplacer horizontalement dans le menu , comportant 10 items.
2 BP (
BP1 Haut , BP2 Bas) pour se deplacer à l'interieur du sous menu ou pour modifier une valeur par + ou -
1 BP(
BP3 Valid) pour valider l'action (et retour à la boucle infinie DDS)

Platine recevant les 5 BP + le "OU" à diodes vers RB0 BP4 Gauche , BP5 Droite , BP1 Haut , BP2 Bas , BP3 Valid

Merci à C.BERNARD pour l'etude du Circuit imprimé.

La boucle DDS etant une boucle sans fin ,On ne peut pas faire en plus du pooling, gaspillage de temps!
pour tester un eventuel appui sur un BP.
Il faut donc traiter la sortie de boucle DDS par un Event :
Les 5 BP sont relies par un "OU" à diodes sur l'entree RB0, interruptible.
Ce qui permet un traitement immediat des BP,en sortant de la boucle infine DDS
( nota : la boucle DDS est de 27 cycles à 10MHz x 4(PLL) soit en 2,7µS).
De plus, la laison RS232 reste toujours operationelle , via L'interruption sur arrivée d'un caractere sur l'UART.
qui, elle aussi, permet de sortir de la boucle DDS , et traiter la commande clavier.

Les fonctionalites du menu , resumée ici :
GeneDDS_Chart_Menu_LCD.pdf

Partie DDS PIC18F

images/DDS_Menu_chart_1.jpg images/DDS_Menu_chart_2.jpg images/DDS_LCD_choix_freq_Fixe_Reglage_fin.jpg
Reglage grossier Frequence avec
choix 1 parmi 63, puis reglage fin


Documents :
Signaux obtenus
Liste du materiel
Schema ISIS :
DDS_18F26K22_DAC5b_LCD_Touches_130314.DSN
Chargeur :
18F26K22_DDS_DAc5b_RS232_BP_RB0_130316.hex
macro terminal Vbray :
18F26k22_DDS.tmf

La sortie DAC n'est pas exploitable directement, c'est pourquoi un ampli OP suiveur, rail to rail, est connecté sur cette sortie
Il alimente un potar de 10K pour le reglage fin d'amplitude , sur lequel un autre suiveur est connecté pour delivrer le signal sous faible
impedance , la charge doit etre ici >=750 ohms pour ne pas perturber le signal
Le Menu permet 3 niveaux de sortie maxi 100% : 1,024 cr à cr, 2,048V cr à cr et 4,096V cr à Cr.



Version Double MIXTE 18F46K22 : avec DDS PIC18 + DDS AD9835 ,
gestion via LCD et 5BP + RS232

Schema :

On peut donc avoir 2 sorties simultanees avec ce montage
La sortie Sinus ( ou autre forme) du DDS PIC18F de 1Hz à 20 000 Hz par pas de 1Hz
La sortie Sinus exclusivement ( ou Carré par hardware) du AD9835 de 1Hz à 20 000 000 Hz par pas de 0,1Hz
DDS_18F46K22_DAC5b_LCD_AD9835_Touches_130328.DSN

images/t_DDS_18F46K22_DAC5b_LCD_AD9835_Touches_130328.jpg
Liste du materiel

Evolution du Hardware :
Passage sur la version DIP 40 car trop juste en E/S avec le modele 28 pins
Le circuit specialisé
SPARKFUN AD9835 est relié au PIC en liaison simili SPI Software
via les lignes RC3,RC4,RC5 pour initialiser l'AD9835 et lui envoyer une consigne frequence
(Frequence #1 sous la forme d'un mot de 32 bits
Evolutions possibles : Choix Frequence #2 , envoi consigne de dephasage ...avec lignes RC0,RC1,RC2
Le coefficent de calibration AD9835 ,immuable, est de
85,89934592
Ce qui signifie qu'il faut initialiser l'accumulateur à 85 899 pour avoir 1 000 Hz.

E
volution du Programme :
Rajout de 2 items dans le menu horizontal (Gauche, droite)
Mode DDS AD9835 :
dans ce cas,
On ne pilote plus le DDS 18F.. la sortie DAC5b retombe à 0 !
rappel: la boucle DDS PIC18F demande 100% des ressources du PIC
et on se concentre alors sur l'AD9835 ,
qui ne voit sa sortie coupée QUE LORSQU'ON RAFRAICHIT LA CONSIGNE FREQUENCE
vu qu'il est autonome , independant par rapport au PIC.

la ligne 2 du LCD affiche la frequence en cours delivree par l'AD9835
des qu' on appui sur BP Up+ or BP Down -
Affichage ligne 1 LCD: " Reglage Freq AD9835 "
Usage de BP Up Incrementation ou BP Down ,decrementation du mot 32 bits accumulateur AD9835,
Cette incrementation correspond au pas choisi.
Affichage Ligne 2 LCD :
les BP G et BP D permettent alors un reglage du pas d'incrementation
indice du pas , variant de 1 à 8 est affiché à gauche de la ligne 2 , suivi du sigle > ou < suivant increm. ou decrem
et de la FREQUENCE en Hz correspondante.( et non pas de l'accumulateur).
Relation entre indice et pas :
de 4^0 à 4^7 soit un pas de 1 à 16384
Lorsque le pas est trop important, et risque de deborder le mini ou le maxi
affichage à gauche de "? " , signifiant en butée de reglage, reduire alors le pas pour pouvoir aller jusqu'aux limites
min (86Hz) ou max (20Mhz)

Evolution possible accumulateur et Freq log sur RS232 Ecran terminal , toutes les modif via BP & LCD sont consignees


Les potentiometres Freq et Taux sont maintenant operationels AUSSI avec le mode LCD.(et RS232)
Entrer via Menu "Reglag Freq Potar",
le potar centré on affiche la frequence (fixe) en cours avec le signe =
Le potar au dela de 50 % on affiche > valeur de frequence .. celle ci augmentant de facon exponentielle suivant l'angle du potar au dela de 50%
Le potar en deca de 50 , on affiche < valeur de frequence.. qui diminue d efacon exponentielle suivant l'angle du potar en deca de 50%
Traitement associé:


Le potentiometre Taux ( reglage Duty cycle du signal rectangulaire)
Traitement lineaire de la valeur issue du potar 0 à1023 points reduit à 0-255 pas
la periode du signal rectangulaire etant sur 8 bits
limite basse à 1 points ,limite haute à 254
on on a donc au mini du potar un taux de 1/255 etat ON et 254/255 etat OFF
à 50% du potar 127/255 etat ON et 127/255 etat OFF
à 100% du potar 254/255 etat ON et 1/255 etat OFF
nota: le signal carré est toujours à 50% ON et 50% OFF

Nota: les 2 possibilites de reglage FREQ et TAUX co-existent avec les reglages par BP+ ou BP-

Captures menu LCD
1ere ligne : item du Menu
2emligne : valeur de la frequence




fichiers associes
: 18F46K22_DDS_AD9835_130328.zip

images/t_1000Hz_PIC_AD.jpg images/t_1KHZ_PIC_50KHZ_AD.jpg images/t_1KHZ_PIC_50KHZ_AD_dilate.jpg
AD9835 avec DAC sur 10bits et le PIC sur 5bits 50Khz sortie AD9835 et 1Khz sur le PIC le meme signal 50Khz dilaté

On remarque la qualité superieure de l'AD9835 , comportant un DAC de 10 bits soit 1024 pas ( au lieu de 5bits 63 pas)
de son accumulateur sur 32 bits ( 24 bits sur PIC) et de son horloge à 50Mhz ( 10 Mhz effectif sur le PIC au niveau du cycle)

Modif pour la saisie de frequence AD9835 sur le terminal RS232
La valeur de frequence pouvant atteindre (et depasser 20Mhz) il faut 8 digits , au lieu de 5 pour le DDS 18F limité à 20Khz
Si on entre dans le mode AD9835 via la Touche macro "AD9835" ( envoi "A" <CR>)
Celle ci est decodée et impose le "mode DDS AD9835" sur la 1ere ligne LCD,
attend 8 cars pour definir et charger la frequence dans l'AD9835
puis celle ci est recopiée en ligne 2 du LCD et sur l'ecran.

Le terminal RS232 est maintenant completement redondant avec l'interface LCD+5BP
fichier macro VBray :
18F46k22_DDS_AD9835.tmf


Usage d'un mini-Joystick au lieu de 5 BP



La problematique reside dans le fait qu'il faut conserver une interrupt permettant de sortir de la boucle de fond infinie 'DDS PIC18F"
Comment generer une ou des interruptions avec une valeur analogique : potar Horizontal , permettant d'appeler et se deplacer dans le menu LCD
Via les Comparators !
Configuration des comparateurs :
Les 2 potars du joystick sont connectes respectivement sur RA0 et RA1
La valeur ADC RA0 sert de Vin- pour les 2 comparateurs
On utilisera l'entree RA3 analogue pour fixer un seuil bas à 1/3 de Vcc=5V comme Vin+ pour le comparateur 2.
Le seuil haut sera definit par Vref interne de 4,096V sera utilisé comme Vin+ pour le comparteur 1
de sorte , avec ces 2 comparateurs de declencher 2 evenements C1IF = gauche C2IF=Droite.
RA1 entree ANA, recevra l'info du potar Vertical , qui servira, en mode pooilng, (il n'y a que 2 comparateurs dans ce PIC18F46K22!)
pour gerer la consigne frequence ou Taux.
Le bouton poussoir centrale du Joystick restant connecté sur RB0, pour valider una action.
schema de connection des 2 comparators PIC18F46K22.

Programme de test de la partie Joystick...
18F46k22_Joystick_ADC_test_Comparateur_130401.c




Schema:

DDS_18F46K22_DAC5b_LCD_AD9835_Joystick_130412
schema au format ISIS (DSN)

Integration du Joystick dans l'application PIC18 DDS et AD9835:

explicage:

Programme (C18) :
18F46K22_DDS_source C18
18F46K22_DDS_chargeur *.hex


Realisation Finale :

C_I_GeneBF_2xDDS_130412  
Réalisation Circuit Imprimé / Christian BERNARD photo , monté

commentaires:



Ampli pour sortie DDS AD9835 :
Etude theorique avec LT1363 Ampli High Speed 1000V/µS
Zs=100 ohms , niveau de sortie 5V cr à Cr, et Bande Passante de 0 à 40MHz à +3db... en theorie !

images/Ampli_DDS_02_LTspice.jpg
Ampli_LB_LT1363.asc Test reel : Job to do !


Ampli avec composants discret : 3 transitors

Test Simulation :

Ampli_3T_push_pull.asc_sch Ampli_3T_push_pull_signak_1Khz Ampli_3T_push_pull_BP
Ampli_3T_push_pull.asc Signal In et Out Bande passante

TEST REEL :

Ampli_3T_push_pull_teste_sch.jpg signal_10Mhz_Ampli_3T
schema realisé test à 10Mhz


Une forte boucle de contre reaction (AC) et une compensation de gain HF sur l'etage d'entree,
permet d'augmenter la bande passante , ainsi qu'une autre boucle de contre reaction avec composante continue
pour stabiliser et faciliter le reglage du point de fonctionnement.
On obtient un Gain en tension global de 6,66 (4V cr cr en sortie avec 0,6V en sortie de l'AD9835), soit +16dB
Nota: l'AD9835 delivre 1,2V à vide (sur sa charge de 300 ohms) mais seulement 0,6V connectée à l'ampli.
La resistance de 300 ohms sur l'entree de l'ampli evite la degration du signal AD9835.
L'amplitude decroissant rapidement au dessus de 4MHz , on limitera l'usage à 6Mhz correspondant à -6db
de la band passante. soit 2V cr cr en sortie.

Le gain en puissance permet de pouvoir connecter une charge de 100 ohms sans perte d'amplitude.
L'impedance de sortie reste inferieure à 50 ohms.
La bande passante limitée permet aussi de filtrer les harmoniques , ainsi
Le signal de sortie à 10Mhz est bien meilleur que celui d'entrée ..

en resumé: Bande passante à -3dB : 1hz à 4Mhz pour un gain de +16dB en tension.

etude en cours ....



Tout aide ou participation est la bienvenue !






Version IRC5 avec circuit specialisé DDS et 18F25x

Au depart, prevision sur un AD9850 ...si j'arrive à le souder sans le cramer !
Bref j'y rennonce et me jette sur un circuit precablé :
Sparkfun DDS AD9835 Breakout ! avec pins au pas de 2,54mm
Disponible ici :
mini module générateur de signal 26€ sparkfun Base "
AD9835" Référence : BOB-09169 32.29 € TTC chez Lextronic


AD9835 moins performant , mais plus simple :
Caracteristiques

10-bit DAC pour une bonne definition ( precision en anglais ?)
2 registres de frequences , accessibles via un bit de selection
4 Registres de phase , accessibles via 2 bits de selection
SPI communication serielle 3 fils , via un simple jeu de commande
Alimentation 5V
Consommation de 5 à 40mA
Interface SPI en niveaux 5V
Dimensions: 3.048cm w 2.54cm
Poids : 4.3 gr
Selection de Frequence ou selection de Phase possible par Hardware via Pins disponibles ou via Software.
Quartz de 50Mhz
Signal de sortie de 1,2V centré sur 0.6V DC :
- disponible sur sortie coaxiale
- ou 2 trous disponible pour insertion de pins de sortie : OUT et GND



Test platine Sparkfun DDS 9835 avec 18F258 en C18 MPLAB
via terminal RS232

AD9835 test schema images/Proto_DDS_18F_IRC5_RS232_111021.jpg
tableau excel Schema ISIS Prototype de test AD9835 et IR RC5

schema au format ISIS : DDS_AD9835_18F258_10Mhz_111006.DSN

Nota:

les pins (platine) 5,6,7 sont mises au 0V , car usage du soft pour choix de registre frequence
Dans ce test, les registres Phases ne sont pas utilises
Le dialogue PIC - carte DDS se fait via 2+1 fils : 2 pour SPI : SCLK et SDATA et 1 pour FSYNC (indispensable!)
le protocole est super simple .. voir data sheet
L'interface utilisateur se fait via le terminal VBRAY : il suffit de taper la valeur de frequence comprise entre 0,01Hz et 10,000,000.0Hz et valider par "enter"
La constante 85.89934592 est utilisée pour faire correspondre la frequence voulue et la valeur 32 bits Accumalateur transmise au DDS.
voir le fichier AD9835_18F.xls pour la comprenette.

Documents utilises :
AN-1108_Programming.pdf
AD9835_datasheet.pdf

Programme en C18 :
Source: 18F258_DDS_AD9835_Rs232
attention : 4 boulettes volontaires sont glissees dans le source !
chargeur : AD9835_18F_110928_ok.hex ... mais pas dans le *.hex


RESULTATS:
Avec cette carte , tout le boulot est fait en dehors du PIC , qui n'a plus grand chose à faire !...
Facilité de mise en oeuvre.
Resolution de 0.0116 Hz. Tres grande dynamique de reglage , par rapport à une soluce analogique MAX038 ou XR2206.
Amplitude TRES CONSTANTE jusqu'à 200KHZ puis l'amplitude diminue de -1,74dB à 2MHz, -5.26dB à 4Mhz ..-14.8dB à 20Mhz
Le signal RESTE CORRECT jusqu'à 2MHZ,puis se degrade rapidement.
Attention, le signal d'amplitude 1.2V cr à cr est centre sur une composante continue de 10.6V.
Le Sinus passe via un trigger de scmitt 74LS14 , mais du fait de la composante continue, il faut calibrer R12 (entre 2,7 à 3,9K)
pour obtenir en sortie un signal le plus carré possible sur le collecteur du transistor BC109B (ou 2N2222A).
nota: un test avec un Mosfet IRLZ14 donne de moins bon resultats au dessus de 50Khz.
Les signaux carres sont tres correct jusqu'à 100Khz ,s'arrondissent ensuite et decrochement à 1Mhz .. car le niveau de sinus diminue aussi !!!
reglage du seuil trigger à refaire !
Mesures avec la charge de 300 ohms en sortie de DAC (sur la platine) et seulement l'oscilo (HAMEG 60Mhz) connecté sur la sortie pin Out .
Je ne pense pas que la BP de l'oscillo soit en cause.

2 hz 2000hz 20 Khz 200 Khz
2 MHz 4 MHz 8MHz 20 Mhz
2 MHz 100Khz Carre 500Khz Carre 1000Khz Carre


Conclusion de ce test:
Je suis donc un peu déçu de la baisse de perfomance au dela de 2Mhz ..,
mais bon c'est mieux que les 20 000Hz obtenu avec le PIC18F SEUL .
.



Rajout affichage sur Nokia 3310 LCD :

affichage sur nokia 1Khz sinus et Cal scope 1Khz carre
consigne 1000Hz Mesure 1000Hz

Source en C (C18) : 18F258_DDS_AD9835_LCD3310_Rs232_111003_bug.c avec 4 boulettes!
Chargeur *.Hex AD9835_18F_LCD3310_Rs232_111003.hex testé OK!

Rajout interface Telecommande IR RC5:
Permet de s'affranchir de la connection avec un PC.

Utilisation:
Permet de saisir la consigne Frequence (SANS PC connecté!) via une telecommande protocole RC5.
A l'init , la frequence de sortie est de 3000Hz.
Une led connectée en RA3 permet de verifier la detection et fin de traitement du code recu
La Valeur de FREQUENCE en Hz est entrée via touches numeriques "0".."9" de la telecommande
valeur maxi 20000000 hz (20Mhz)
La touche PTV (point carre) permet d'inserer un point decimal. ex: On peut mettre 1200.8 (Hz)
puis valider par la touche "OK"
La saisie en cours se verifie constament sur le LCD nokia : digit en gros caractere
La touche "s-direct" Correct : permet d'effacer le dernier digit entrée pour corriger la valeur.
puis on valide la saisie par la touche "OK" , qui transmet alors la consigne 32 bits au AD9835.
La touche "Clear" efface totalement la saisie.
La touche "OSD" permet de lancer un balayage automatique de 10 a 20 000 Hz.
Nokia affiche Sweep 10-20000Hz. En fin de balayage affiche Marantz 5200 ..en attente de saisie.
Les touches "volume Up" ou "volume Down" permettent de corriger la frequence en cours
Nota: L'AD9835 reste sur la derniere valeur de frequence sasie et validée .. sauf si on valide 0.(zero)
Tous les codes de la telecommande peuvent etre affiches sur le terminaL, car les 2 liaisons
afficheur Nokia LCD et RS232 sont actives simultanement. La partie RS232 n'est pas indispensable!.
telecommande Marantz 5200 RC5


Le nokia affiche le code de commande IR et son libellé de touche ex: cmd=23 pour la touche OK
ainsi que la frequence saisie : ex: 1200 Hz et la valeur 32 bits envoyée au AD9835 ici 103147.
en cours de saisie la frequence est affichée en GRAS.

images/Nokia_DDS_IR.jpg saisie AD9835_1012Hz_111019.jpg
Saisie et validation avec teleCde detail mode saisie Frequence capturee sur RS232 incrementation valeur

exemple de codes cmd recu et touches associées


Source en C (C18) : 18F258_DDS_AD9835_LCD3310_Rs232_IRC5_111019.c
Chargeur *.Hex 18F25x_DDS_IR_all_ok.hex testé OK!

Autre version, sans telecommande IR , reglage frequence par potar sur entree ANA:
A l'init , la frequence de sortie est de 3000Hz.
-Un potar de 4,7K entre +5V et Gnd , curseur sur entree ANA0 (RA0) sert de commande pour faire varier la consigne Frequence.
- Les 10 bits de l'entree ANA sont nettement insuffisant pour une large gamme, on se sert donc de plages de tensions pour faire evouler la
consigne avec un pas de plus en plus croissant par rapport au point milieu (50% de rotation de l'axe)
A mi course du potar on a 512 points, une bande morte de +-32 point est signalé par une led , signifiant Consigne STABLE (n'evoluant pas).
En diminuant la valeur en deca de 50% on fait diminuer la consigne, au dela de 50% on l'augmente.Plus l'ecart est grand plus la variation est importante.
La valeur en point est affichée sur le nokia ainsi que 3 icones possible : fleche gauche si on diminue, fleche droite si on augmente, fleche vertical si stable.
La frequence est affichée en permanence. L'AD9835 est rafraichi en permanence.
Il n'ya pas le mode Sweep dans cette version, car pas de gestion IR RC5!
Source en C (C18) : 18F258_DDS_AD9835_LCD3310_Rs232_Volt_111022_all.c
Chargeur *.Hex 18F25x_DDS_Volt.hex testé OK!

A suivre:


- autres fonctionalites possibles...à SUIVRE :
-memorisation de 16 valeurs utiles (ex: 443Hz 455Khz 472Khz ) à la demande, en EEPROM du PIC
-Sweep reglable : definition du depart,Fin,Pas et vitesse de variation
- vobulation par tension ana ADC10b
- Amplification sortie pour +-5V sur 600 ohms
-clavier, touches + et - pour le reglage de frequence ?
- realisation mini-telecommande IR specifique avec PIC12F683
- usage du port B pour generation signal DDS par le PIC : 2em voie de modulation.exemple: pour moduler le 455Khz de l'AD9835
Autres suggestions ?





Top Page

Retour Home Page (index)