Converstion simultané 2 voies DSPic et problemes de lecture

  • Auteur de la discussion marvinc
  • Date de début
M

marvinc

Nouveau
bonjour,
Je voudrais savoir si l'ADC de mon dspic30f4012 est bien paramétré pour un échantillonnage simultané :

et deuxiemement je n'arrive pas a copié le résultat fractional dans une variable fractional

quelqu'un peut m'aider ?
 
M

MaX-MoD

Compagnon
salut,


je n'ai jamais fait d'échantillonnage simultané sur 30F4012, (juste sur 33F, et encore juste pour tester) mais je pense qu'il te manque (au moins) le bit ALTS (ADCON2) à 1


sinon tu as regardé le reference Manual de l'ADC? Et les codes examples de microchip?

dernier point pour débugger, commence par un exemple simple qui a été testé et fonctionne (code example) et modifies le peu à peu. Tu verras l'influence de chaque paramètre et tu sauras aussi exactement où se situe le problème.


Bonne soirée
Max


PS:si tu n'arrives pas à copier le résultat, c'est probablement que l'ADC n'a pas réussi de conversion.
fractional est un typedef, en fait c'est une variable 16bits entière. (valeur fractionnaire = valeur int / 32768 ou 65536 si en non signé)
Pour des valeurs entre 0-1 si je ne m'abuse il faut mettre unsigned fractional
ça doit se trouver dans la doc compilateur ça.
 
M

marvinc

Nouveau
salut Max,

Meric pour les infos, apparement, mon pb d'échantillonnage vient de _ASAM = 1; car si je le met a 0
(il faut que je le set a chaque fin d'interrupt ADC pour relancé le sample), les valeurs de buffers et de recopie sont identiques.
Mais je vais creuser, sinon je comptais utilisé un FAN7384, entrée protection incorporé (un AOP en moins).

Pour la lecture en fractional, je tenterais de forcer le format
PID_SIN.mesuredOutput = (fractional)(ADCBUF0);

Je regarde ça demain, je ferais des copies d'oscillo pour faire voir le projet.

Thx
 
M

marvinc

Nouveau
j'ai trouver en fait faut juste faire un décalage a droite ADCBUF0 >> 1
 
M

MaX-MoD

Compagnon
content d'avoir pu t'aider

donc tout fonctionne bien maintenant?

si tu peux poster ton source, ça pourrait m'être utile prochainement


A+
Max
 
M

marvinc

Nouveau
pas de pb, me reste un probleme de temps de calcul ;

uint_result = Fract2Float(fractional_Value) * uint_value; 11.7µs !! arg

et je te poserais le projet. je risques d'avoir besoin d'aide pour l'interface UART et la sauveguarde en EEPROM.
 
M

marvinc

Nouveau
salut, bon après quelques déboire de calcul,
le pic monte a fstep =22kHz, mais quid de l'asservissement.

voila une courbe en 1/256 ème de pas à fstep = 200Hz,
Le PID est réglé a l'arrache, le pas a pas est un 9A, là je lui en autorise que 2.2A et l'alim est en 12V.

je test quoi

 

Sujets similaires

G
Réponses
1
Affichages
1 406
Greg de Nîmes
G
Réponses
3
Affichages
48 000
speedjf37
S
J
Réponses
1
Affichages
1 492
pro-ms
P
Réponses
3
Affichages
13 891
01power
D
Réponses
9
Affichages
3 070
David80
D
Réponses
4
Affichages
4 288
taratata
V
Réponses
7
Affichages
1 997
vibram
V
V
Réponses
62
Affichages
39 408
Dardar88
B
Réponses
0
Affichages
1 804
bobo8080
B