Soucis PWMDUTY

jojojo

Senior Member
Bonjour.

Pourquoi PwmDuty ne fonctionne-t-il plus, en dessous de 389 ?

Code:
#picaxe 08M2
Setfreq m32
Dirs=%000111

pwmout C.2, 159, 0	         'init PWM, 50Khz, 0%

Do
	
	ReadADC10 C.4,w12 
	w9=1024-w12		'inversion
	
	PWMDUTY C.2,w9 	'modif % PWM
	debug
Loop
Jusqu'aux alentours de 1.91V en ADC (389), ça baigne.
En dessous, plus rien !

Snif !

Georges.
 

MGU

Senior Member
Bonjour.

Pourquoi PwmDuty ne fonctionne-t-il plus, en dessous de 389 ?

Code:
#picaxe 08M2
Setfreq m32
Dirs=%000111

pwmout C.2, 159, 0	         'init PWM, 50Khz, 0%

Do
	
	ReadADC10 C.4,w12 
	w9=1024-w12		'inversion
	
	PWMDUTY C.2,w9 	'modif % PWM
	debug
Loop
Jusqu'aux alentours de 1.91V en ADC (389), ça baigne.
En dessous, plus rien !

Snif !

Georges.

Bonjour,

Ben alors, c'est fini ce gros chagrin, aller, on sèche ses larmes...

En fait, à 100%, l'argument "rapport cyclique" max est égal à 4 fois l'argument "fréquence"

Pour 159, le PWMDUTY varie de 0 à 4 x 159 = 636

Essaie avec le Wizards, avec la fréquence et 100% de RC pour vérifier la valeur max.
Après faut faire une mise à l'échelle entre 1023 et cette valeur

MM
 

PieM

Senior Member
Jusqu'aux alentours de 1.91V en ADC (389), ça baigne.
En dessous, plus rien !
Bonjour Georges,
Normal !

1024- 389 ça fait 635

et > 636 c'est plus que 4 fois le nombre 159 définissant la période . (le temps ON devient plus long que la période du signal.)

Grillé par Michel ....
 
Last edited:

jojojo

Senior Member
Un grand merci à vous deux.

Après mise à l'échelle, ça fonctionne, bien sûr.

Je pensais naivement, que comme pwmduty va à 1023, et que adc10 est aussi à 1023 que ... Ben ... l'age, sans doute ...

Encore merci.

Georges.

PS: l'appli est un compresseur audio, à base d'atténuateur numérique (d'ou le besoin de PWM, fst du niveau analogique).
Ca va viender ...
 

jojojo

Senior Member
C'est viendu.

Code:
'Compresseur audio 08M2 PWM
'Deux éléments de 4066 (série et shunt), commandés en opposition de phase,
'par PWM, fst niveau BF moyen, sur ADC
#picaxe 08M2
Setfreq m32
Dirs=%000111

Symbol TXON= C.1


pwmout C.2, 159, 0	'init PWM, 50Khz, 0%

Do
	
	ReadADC10 C.4,w12 'valeur moyenne entrée (20mV à 4.9V)
	If w12>=3 then	'Squelch 15mV
		High TXON	'V mini de déclenchement à 15mV, soit 3 fois 4.88mV
	Else
		Low TXON
	End if
	
	
	
	w9=10*w12		'Mise à l'échelle
	w9=w9/16		'1024 vers 640
	
	w9=640-w9		'inversion
	
	PWMDUTY C.2,w9	'modif % PWM
	

Loop
Georges.
 

jojojo

Senior Member
Salut, Jeremy.

Ben, ça sert a ... Compresser.

Le but est de diminuer la dynamique d'un signal audio.

Suppose une grande salle, avec un micro dans un coin. Si tu parles à un mètre du micro, ou à vingt mètres du micro, le signal capté sera très different.

Le compresseur compense automatiquement cette difference.

Bon, ça ne sert pas qu'à ça, hein !

Très utile (Non ! Indispensable !), en pré-traitement du signal, avant modulation numérique (Mon pote Niquist l'a dit), et associé avec une bonne limitation en fréquence (passe bande), on peut tansmettre de l'audio, en numérique, avec une bande passante du transmetteur de l'ordre de 6Khz (Mon pote Shannon le confirme...).

Si l'on repasse en modulation analogique, il est très utile, aussi. Suppression des risques de surmodulation (donc amélioration de la pureté spectrale), et toujours la possibilité "d'expansion", à la réception .

En fait, la compression audio débouche sur une foule d'applications.

Et les méthodes de mise en oeuvre sont souvent intéressantes.

Il existe des CI "tout faits", pour ce type de traitement (série des NE570, en mode purement analogique, ou certaines puces spécialisées, dans le traitement numérique), mais, il est bien plus intéressant de comprendre comment cela fonctionne.

Georges.
 
Top