IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Embarqué Discussion :

Y a-t-il des microcontroleurs avec des DAC décents embarqués?


Sujet :

Embarqué

  1. #1
    Membre expérimenté
    Profil pro
    Développeur en systèmes embarqués retraité
    Inscrit en
    Mars 2006
    Messages
    946
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2006
    Messages : 946
    Points : 1 351
    Points
    1 351
    Par défaut Y a-t-il des microcontroleurs avec des DAC décents embarqués?
    Hello,

    Après avoir expérimenté un nombre conséquent de synthés analogiques, je passe au modulaire. Et si possible le plus possible en DIY. Etant assez à l'aise avec l'Arduino, j'ai donc immédiatement pensé à lui pour le premier module que j'aimerais réaliser, un convertisseur MIDI->CV/GATE.

    En gros, on reçoit des commandes midi sur un port série et on les transforme pour chaque note en un couple tension tout ou rien 0v-12v (appelée GATE) et tension analogique (appelée control voltage ou CV) correspondant à chaque note, au standard 1 volt par octave. Comme il y a 12 demis-tons par octave on a un écart de 0.083333v entre chaque note. A la louche, si on veut des notes justes, il faut au minimum 12 bits de résolution.

    Quelle ne fut pas ma surprise de constater qu'il n'y a pas de DAC utilisable dans la famille Arduino! Il y a bien des PWM 8 bits, mais pas assez précis. Le cahier des charges n'est pas trop sévère: Surveillance du midi, calcul de 1 à 10 valeurs puis mise à jours de ces valeurs sur les DAC toutes les millisecondes. A part le problème des DAC, c'est du ressort d'un Arduino Nano à 2 euros.

    J'ai aussi regardé du coté des ESP32, même problème. On peut bien sûr ajouter à n'importe quel micro des DAC en I2C, mais ça, c'est le plan B, je regarde d'abord du côté embarqué. Bref, quelqu'un connaitrait une famille de micros qui embarquerait des DAC 12 bits? Google ne m'a pas trop aidé sur ce coup là...

    A+

    Pfeuh

  2. #2
    Modérateur

    Avatar de Vincent PETIT
    Homme Profil pro
    Consultant en Systèmes Embarqués
    Inscrit en
    Avril 2002
    Messages
    3 185
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Consultant en Systèmes Embarqués
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2002
    Messages : 3 185
    Points : 11 551
    Points
    11 551
    Par défaut
    Salut,
    Si tu veux un DAC 12 bits, il faut passer sur un Arduino DUE https://store.arduino.cc/arduino-due à base de micro ARM, c'est bien trop puissant pour ce que tu veux faire mais il y a un vrai DAC. Voir doc du microcontrôleur ici https://www.microchip.com/wwwproducts/en/ATsam3x8e

    Ou bien tu peux passer sur la plateforme Nucleo STM32 genre celle celle-ci https://www.st.com/en/evaluation-too...eo-f303re.html. Voir doc ici https://www.st.com/en/microcontrolle...m32f303re.html

    Pour l'ESP32 il est trop exotique et on n'a pas assez d'informations sur le DAC, et si il est à la hauteur de l'ADC ça craint, 12 LSB de non linéarité c'est incroyable Si un LSB (valeur d'un pas) serait de 10mV, par exemple, alors tu as 120mV d'incertitude sur tes 83mV d'écart entre-deux octaves.

    Avec un PWM lissé il reste le problème de l'ondulation résiduelle et plus on l'atténue plus on rend le système lent (moins réactif)
    La science ne nous apprend rien : c'est l'expérience qui nous apprend quelque chose.
    Richard Feynman

  3. #3
    Membre expérimenté
    Profil pro
    Développeur en systèmes embarqués retraité
    Inscrit en
    Mars 2006
    Messages
    946
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2006
    Messages : 946
    Points : 1 351
    Points
    1 351
    Par défaut
    Merci Vincent pour cette réponse claire et détaillée. Aucun micro ne semble convenir puisqu'il me faudra à la louche une dizaine de DAC (polyphonie 8 voix + pitchbend + modulation), ça reste toutefois possible avec un multiplexeur analogique externe.

    Il me reste une piste avant d'attaquer le plan B, c'est une combinaison de 2 PWM pour arriver à 16 bits... On les met dans un sommateur à AOP après avoir reduit un des deux d'un gain de 256. En théorie ça marche, mais je suis surtout softeux... Du coup une Arduino Méga conviendrait bien, elle a des PWM à foison et est beaucoup moins chère qu'une Due.

    Je mettrai ici la suite de mes aventures, j'avance mais sans précipitation.

  4. #4
    Modérateur

    Avatar de Vincent PETIT
    Homme Profil pro
    Consultant en Systèmes Embarqués
    Inscrit en
    Avril 2002
    Messages
    3 185
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Consultant en Systèmes Embarqués
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2002
    Messages : 3 185
    Points : 11 551
    Points
    11 551
    Par défaut
    Salut,
    Je viens de lire la doc de l'ATmega2560 et il possède 12 PWM de 16 bits de résolution. Donc de la précision.

    Suivie d'un filtre passe bas du 3ème ordre (voir plus) tu aura en plus très peu d'ondulation résiduelle.

    Restera à adapter en impédance avec un AOP suiveur après le filtre.
    La science ne nous apprend rien : c'est l'expérience qui nous apprend quelque chose.
    Richard Feynman

Discussions similaires

  1. Réponses: 0
    Dernier message: 22/02/2018, 10h49
  2. Problème avec le DAC du MKRZERO
    Par maxlelezard dans le forum Arduino
    Réponses: 6
    Dernier message: 07/09/2017, 18h39
  3. Réponses: 3
    Dernier message: 05/12/2013, 15h19
  4. [CR] Est il possible de créer des univers avec Seagate Info?
    Par Frank dans le forum SAP Crystal Reports
    Réponses: 1
    Dernier message: 27/06/2002, 16h22

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo