Générateur de signal

48 views
Skip to first unread message

yargil

unread,
Oct 17, 2012, 4:01:44 PM10/17/12
to concours-li...@googlegroups.com
Salut à tous,

 Voici un petit bout de code qui permet de générer un signal carré en utilisant un des timers PWM. Le timer 0 ou 1 peuvent être router sur respectivement les broches GPB0 et GPB1 du connecteur GPIO. Attention le GPB0 étant aussi utilisé par le buzzer vous aurait alors droit à une "jolie" mélodie de la part de votre mini2440.

Le patch 0001-MINI2440-Add-support-of-PWM-timer.patch (patch pour kernel 3.4.8) ajoute le support du timer PWM 1 (modifiable par un define : PWM_TIMER) à la mini2440.
Le tarball contient un module qui utilise le timer PWM définit dans la config de la mini2440. Ce module est conçut pour être compilé dans buildroot. Il faudra peut-être prévoir des adaptations du Makefile pour votre environnement de compilation.

Il est possible de modifier la fréquence et le rapport cyclique du signal.

Pour changer la fréquence du signal (ici à 250 Hz) :
# echo 250 > /sys/devices/platform/s3c24xx-pwm.1/pwm-gen/freq

Pour changer le rapport cyclique du signal (ici à 25 % du signal à l'état 1) :
# echo 25 > /sys/devices/platform/s3c24xx-pwm.1/pwm-gen/duty

La plage de fréquence va de 49Hz à 10MHz environs. Au delà de 390Hz la précision de la fréquence n'est pas exacte et ce dégrade vite quand on attend le MHz.

Quelques photos de la validation avec un vrai oscilloscope :


Une meilleur vue de l'écran de l'oscilloscope :


J’espère que cela vous aidera.

A+
0001-MINI2440-Add-support-of-PWM-timer.patch
pwm-gen.tar.gz

Bids

unread,
Oct 18, 2012, 3:46:58 PM10/18/12
to concours-li...@googlegroups.com
Alors çà c'est bien sympa, je m'en vais l'utiliser de ce pas.

Merci!
Bids

XIE Enming

unread,
Nov 5, 2012, 6:38:39 PM11/5/12
to concours-li...@googlegroups.com
Merci, ce sera utile pour nous.
Tu as un oscilloscope toi meme, chuette
patch 0001-MINI2440-Add-support-of-PWM-timer.patch (patch pour kernel 3.4.8), donc il faut forcement utiliser le kernel linux 3.4.8?  Pour l'instant, j'utilise le 3.3.7.
meme cas pour Le tarball ?
merci!

Le mercredi 17 octobre 2012 22:04:10 UTC+2, Yargil a écrit :

Yargil

unread,
Nov 6, 2012, 4:31:32 AM11/6/12
to concours-li...@googlegroups.com


Le mardi 6 novembre 2012 00:38:39 UTC+1, XIE Enming a écrit :
Merci, ce sera utile pour nous.
Tu as un oscilloscope toi meme, chuette
Non j'ai utilisé celui du boulot.
 
patch 0001-MINI2440-Add-support-of-PWM-timer.patch (patch pour kernel 3.4.8), donc il faut forcement utiliser le kernel linux 3.4.8?  Pour l'instant, j'utilise le 3.3.7.
meme cas pour Le tarball ?
Tu peux essayer de l'appliquer quand même, il y a de grande chance que cela marche. Sinon tu devras intégrer les modifications par toi même (pas trop compliqué).

merci!
De rien.
 

XIE Enming

unread,
Nov 6, 2012, 5:13:14 AM11/6/12
to concours-li...@googlegroups.com
est-ce que ce sera plus facile si je changer dans la configuration de Buildroot pour choisir une version 3.4.8 de Linux Kernel?

AleaJactaEst

unread,
Nov 6, 2012, 5:10:05 PM11/6/12
to concours-li...@googlegroups.com
Bonjour,

Les deux sont possibles:
  Tu peux tester le patch (ou l'adapter à ton kernel),
  Ou sinon tu changes de version de kernel dans builroot (il est possible de devoir adapter tes anciens patch à la nouvelle version du kernel).

La première solution me semble plus réaliste (il ne devrait pas y avoir trop de modification, voir appliquer manuellement les modifications)

@+
AleaJactaEst

XIE Enming

unread,
Nov 6, 2012, 6:52:07 PM11/6/12
to concours-li...@googlegroups.com
merci,. je vais faire
Reply all
Reply to author
Forward
0 new messages