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_130422.DSN

images/t_DDS_18F46K22_DAC5b_LCD_AD9835_Touches_130422.jpg GeneBF_18F46K22_AD9835_5BP_c.jpg GeneBF_version_5BP_130421
Liste du materiel vue des sous ensembles in run , version 5BP + potars

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

Liaison ICSP Circuit GBF DDS et Pickit3
Connecteur male 5 broches sur le circuit imprimé GBF
Connecteur femelle 6 plots coté Pickit3
4 rallonges Femelle-Male pour relier les 2

images/t_GeneBF_liaison_au_Pickit3_b.jpg images/GeneBF_liaison_au_Pickit3_c.jpg


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
:
source C18 + hex + others

18F46K22_DDS_AD9835_5BP_130421.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 via liaison UART1 avec 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 des 5 B.P. (boutons poussoirs)



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 configuration et connection des comparators du PIC18F46K22.

18F46K22_Interrupt_Comparators.jpg

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




Schema:

DDS_18F46K22_DAC5b_LCD_AD9835_Joystick_130419 images/t_GeneBF_version_joystick_130420b.jpg
schema au format ISIS (DSN) 1er tests apres cablage C.I. version Joystick

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

explicage:

Programme (C18) :
18F46K22_DDS_source C18


Realisation Finale :

C_I_GeneBF_2xDDS_130412 images/C_I_GeneBF_2xDDS_130422.jpg images/GeneBF_18F46K22_AD9835_5BP_b.jpg
Réalisation Circuit Imprimé / (c) Christian BERNARD C.I. monté

version Alternative :
Usage des interruptions Comparators pour naviguer dans le menu
Usage de interruption RB0 pour rentrer dans les Reglages
Synoptique Gestion du Gene DDS:

Gestion_version_Joystick_150508.jpg

Source C18 ,hex : 18F46K22_DDS_AD9835_joystick-130510.zip
fichier Macro terminal: 18F46k22_DDS_AD9835_joystick_130510.tmf
fichier log :
18F46K22_DDS_LCD_5b_AD9835_joystick_130511.log

Mode d'emploi




Mise en boitier :

Coffret_DDS_Face_Avant images/GeneBF_boitier_Face_Avant.jpg  
Face AVANT virtuelle et reelle  



Etude pour Amplification signal de sortie DDS AD9835 (ou AD9850) :
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.
INSUFFISANT !

Solution finalement retenue pour l'ampli :
voir version avec AD9850
ICI




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







Top Page

Retour Home Page (index)