Libérez votre CPU, utilisez l’accès direct mémoire : le DMA

Magazine
Marque
Hackable
Numéro
36
Mois de parution
janvier 2021
Domaines


Résumé

L’article « Pilotez de manière optimale vos afficheurs LED » de Hackable Magazine no34 illustre la manière dont on doit envisager la programmation embarquée : ne pas faire maladroitement en software ce que le hardware prend en charge. Depuis bientôt 10 ans, les microcontrôleurs 32 bits proposent en standard un ou plusieurs contrôleurs DMA qui transfèrent des données entre mémoire et périphériques sans mobiliser le CPU, n’attendons donc pas pour les mettre au travail.


L’accès direct à la mémoire est largement utilisé par les systèmes d’exploitation pour l’architecture PC, l’IBM PC 5150 original embarquant un circuit Intel 8237 à ces fins. Nous verrons, dans l’historique succin qui va suivre, que cette technologie est arrivée très rapidement après l’invention de l’ordinateur. Cependant, en ce qui concerne les microcontrôleurs, le DMA est arrivé tardivement, les vénérables PIC16 et les incontournables AVR 8 bits utilisés par la plateforme Arduino en sont dépourvus. Il faudra attendre l’arrivée des cœurs ARM 32 bits comme moteur des MCU (microcontroller unit), vers 2010, pour que le contrôleur DMA devienne un standard. Il équipe maintenant les gammes les plus performantes des MCU 8 bits, comme la gamme XMEGA du constructeur AVR. Dans la suite de cet article, nous allons poser le problème de la performance des entrées/sorties, puis présenter chronologiquement les solutions qui furent trouvées. Nous décrirons...

Cet article est réservé aux abonnés. Il vous reste 98% à découvrir.
à partir de 21,65€ HT/mois/lecteur pour un accès 5 lecteurs à toute la plateforme
J'en profite


Articles qui pourraient vous intéresser...

Une brève histoire des ASIC libres

Magazine
Marque
Hackable
Numéro
36
Mois de parution
janvier 2021
Domaines
Résumé

Derrière les annonces sur l’initiative Google/Skywater, à l'heure où NVIDIA rachète ARM et donc booste mécaniquement RISC-V, c'est toute une industrie qui va lentement, et inexorablement, basculer vers... un peu plus d'ouverture. Pour faire le point et envisager tout ce qu’il reste à faire, voici une rapide rétrospective, une petite revue des pratiques et de l’histoire de l'industrie impitoyable des galettes de silicium.

Une carte pilote de LED RGB hackée en kit de développement FPGA à bas coût

Magazine
Marque
Hackable
Numéro
35
Mois de parution
octobre 2020
Domaines
Résumé

Dans cet article, nous allons vous proposer un Hack au sens noble du terme, qui consiste à détourner un produit de son usage prévu initialement pour en faire autre chose. Le produit en question est une carte de contrôle de panneaux de LED disponible pour 15 $ sur le site chinois de vente en ligne AliExpress. Il s’avère que la Colorlight 5A-75B est constituée d’un FPGA ECP5. Voilà qui peut faire un excellent kit de développement ECP5 à très bas coût.

Le module du moment : Décodeur DTMF

Magazine
Marque
Hackable
Numéro
35
Mois de parution
octobre 2020
Domaines
Résumé

DTMF, pour dual-tone multi-frequency est un encodage où chaque symbole d'un alphabet de 16 correspond à un couple de deux fréquences audibles, parmi une collection de 8, utilisées de concert. Initialement créé pour la téléphonie fixe, ce système permet historiquement d'encoder les pressions sur les touches d'un téléphone (« 0 » à « 9 », « A » à « D », plus « * » et « # ») et de transmettre le signal correspondant sous forme de sons.

Motoriser une antenne directionnelle avec un ESP8266

Magazine
Marque
Hackable
Numéro
35
Mois de parution
octobre 2020
Domaines
Résumé

Cet article aurait pu s'intituler « pointez les choses dans le ciel avec un ESP8266 », car en réalité, l'application de ce qui va suivre à la réception de signaux venus de l'espace n'est qu'une utilisation parmi tant d'autres. Notre objectif ici sera de motoriser une antenne de façon à la pointer automatiquement en direction d'un émetteur mobile, et plus exactement, un satellite en orbite basse (< 2000 km). Le tout, bien entendu, en le suivant alors qu'il se déplace.