VO: 09/2014
Update: 12/01/2015
catégorie : application microcontroleur PIC
DDS PIC18Fx6K22 : Version avec
consigne de Frequence decimale
Pourqoi se cantonner au Hz pres , alors que la resolution
d'un pas DDS , permet de descendre au 1/100em de HZ
Usage de FOSC=10Mhz au lieu de 40Mhz, simplemnt en
desactivant la PLL
simplement oui, mais, modifier :
L'Init UART
Les tempos à diviser par 4
La base des calculs
L'usage de flottant au lieu de entier long
Cette version est epurée des periferiques comme le LCD
et Joystick, car prevue pour etre piloté par une
tablette Android Via BlueTooth.SSP
La saisie de la valeur de consigne frequence en decimal (flottant)
se fait avec un format qui doit
comporter au minimum 5 caracteres : ex: 0.050 avec un
point decimal , pour 0.050 Hz
ex: 5999.995 pour 5995.995 Hz
Le choix de forme SINUS, CARRE, RECTANGLE, DENT de Scie
est conservé
Prototype avec seulement le PIC18F46K22 (sans LCD,joystick..),piloté
via l'UART
Le terminal VBRAY est utilisé avec ses touches de
fonctions (Macros) pour etablir des frequences
predeterminees
fichier macros : 18F46k22_DDS_PIC_10Mhz.tmf
En desactivant la PLL du PIC,
on a une frequence de 10Mhz (au lieu des 10x4=40Mhz)
L'inconvenient est que la
frequence maxi
descend à 10Khz au lieu des 40Khz, mais le pas mini est
divisé aussi par 4 soit
0.005Hz au lieu de 0.020Hz
on peut alors definir une frequence à 0,0055Hz pres...
dommage ce n'est pas 0,005 pile poil.
ce qui peut garantir une
frequence emise à +- 0.0055 Hz
voir feuille de calcul : DDS_calculs_10Mhz.xls
Exemple d'execution sur VBRAY:
DDS_10Mhz_Vbray_140919.jpg
source C18 :18F46K22_DDS_140921_Q10Mhz_C18.cc
Chargeur : 18F46K22_DDS_140919_Q10Mhz_C18.hex
Testé à l'oscilloscope
..OK
Signal du gene PIC-DDS en boitier
, connecté sur voie A
Signal Proto PIC DDS sur voir B
Nota: Le gene ne s'ajuste qu' au HZ pres .
Pour obtenir et figer le rond "figure de lissajou",
avec 1000Hz affiché sur le generateur
ajustement àt 1000.040Hz sur le proto.
Nota: Gene DDS 40Mhz : consigne entier long , Proto 10Mhz :
consigne en flottant permettant un reglage fin
Les figures de lissajou permettent de deceler le moindre ecart de
frequence ou de phase !
.
Une autre solution, à tester:
Modif hardware au depart , serait de remplacer l'horloge 50Mhz de
l'AD9835 par une horloge de 5Mhz ce qui donnerait un pas de 0.0012 Hz
au lieu de 0.012 actuel l'avantage
est la sortie DAC10bits au lieu du DAC 5bits du PIC et que ce DDS
a une plus large gamme car sur 32 bits
au lieu de 24 bits. Je vais aussi tester cette solution
avec une consigne decimale ,mais sans modifier l'horloge
La finalité est de realiser un Periodemetre ,indirectement
frequencemetre, avec une resolution de 0,001Hz dans le domaine BF
.. maxi 100Khz
GeneBF
DDS sous RFO-basic coté Tablette Android Archos
rev 10/01/2015
RFO-Basic v 0184
Essai de compilation APK avec RFObasic-Appbuilder ..Compilation
OK, mais APK crash.
Alors que ce progrmamme *.bas tourne bien dans RFO-Basic.!
Domaine de frequence 0,05Hz à 5999,995 Hz
6 formes de signaux
Reglage valeur par BP + ou - ou via Saisie F => clavier
numerique
Mode Rectangle : reglage du taux apparait , domaine de reglage de
1% à 99%
La forme est aussi réactualisée en temps reel sur l'Android..
source RFO-Basic : PIC_DDS_10Mhz_BT_Archos_141223.bas
Application C18 Pic18F46K22 :
source : 18F46K22_DDS_Q10Mhz_C18_150105.c
hex :
18F46K22_DDS_10Mhz_150105.hex
Meme Hardware ,voir Schema
PIC18F sauf que le module BT est un HC06
avec 6 pins.
Le PIC18F gere la pin ENable pour initialiser le module
BlueTooth en mode dialogue via RA4.
Rajout d'une init du module HC06 , qui doit passer 4 etapes
Sachant qu'à la mise sous tension la led rouge du module doit
etre clignotante, passe en fixe, seulement si connection BT OK
avec Archos.
Attention: l'ARchos n'est decouvrable que pendant 120 secondes !
Tentative
de compilation application:
Usage de RFO-Appbuilder
.
Compilation OK
mais l'appli CRASH ,
peu apres l'init BT ....
Eureka.. probleme avec appli
APP BUILDER résolu.. en
fait ce prgramme est tres CASE SENSITIVE,
la moindre erreur de case sur les noms de fichiers ne pardonne
pas
J'ai finalement corrigé 4 noms de fichier images : ex CRect.jpg
au lieu de Crect.jpg tel que definit dans le source du programme
et 1 fichier manquant.
App Builder n'utilise pas les directories originaux de RFO-BASIC
! et RFO-BASIC N'EST PAS Case Sensitive
Compilation avec SDK4 ..car mon OS Android n'est que la version 2.1....OK
,
Run APK ..OK sur Android 43it.
des que la connection BT avec le module HC06 est etablie ,
on doit voir apparaitre sur l'archos .
Connected to HC06-2187-J
à noter :
l'init BT se fait dans le mode texte , puis on passe en mode
grafique des la connection etablie !
L'init du module BT , avec ce type de module BT , n'est pas
garantie à 100% lors de la mise sous tension !
Je n'ai pas réusii à trouver une sequence 100% OK .. sur la
premiere liaison BT HC06<-> Archos
Sinon , l'appli tourne correctement dans l'environnement RFO-BASIC.
l'appli compilée DDS18F0107.apk:
le fichier source PIC_DDS_10Mhz_BT_Archos_150107.bas
les fichiers *.jpg annexes : DDS180107_data.zip
Résultats :
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
Remarques:
Ce module YC-MCU, pas cher ! , est en classe 2 et donc ne
peut porter au dela de 20 Metres.(testé à 15M maxi)
Il est suffisant pour la majorité des cas, mais je lui prefere
le Bluetooth-click RN41 de classe 1
presentant beaucoup plus de possibilité, portée theorique 100M
(testé OK à 30M) et ayant
une solide doc technique , malgré un cout quasiment du double (
40 )
De plus , aucun aléas d'init , constaté avec ce module.,
contrairement au HC05 ou 06
Retour Home Page (index)