Keiang's electronics hobby side

This website deals with the topics of electronics, digital signal processing and embedded programming.

flag-english flag-german

Audio Analyser basierend auf einem Mikrocontroller von Silicon Labs

Mikrocontroller C8051F121 erfasst und visualisiert Audio-Daten auf einem Grafik-LCD


 

Microcontroller based Audio Analyzer V1.5


Das Projekt ist entstanden als ich auf der Suche nach einer Anwendung für ein neues Grafik-LCD gewesen bin. Primäres Ziel war es dabei eine Grafikbibliothek für ein Echtzeitbetriebssystem zu entwickeln, die es mehreren Task quasi zeitglich ermöglicht Ausgaben auf dem Display zu erzeugen, ohne das es zu Ressourcenkonflikten (unter anderem wegen dem Dateninterface zum LCD) kommt. Ein weiteres Ziel war es das relativ langsame Dateninterface zum Grafik-LCD "T6963C" möglichst effizient zu nutzen und damit die dafür notwendige Prozessorzeit auf ein Minimum zu reduzieren oder alternativ eine maximale fps (Frames per Second) auf dem Display zu erreichen.

Die eingesetzte Hardwareumgebung (Zielplattform) besteht aus dem C8051F121 Mikrocontroller von der Firma Silicon Labs zusammen mit einer RAM Erweiterung von 32kB. Das Grafik-LCD mit dem Controller T6963C ist per Memory Mapped IO in den Adress- / Datenbus des Mikrocontrollers eingebunden und hat eine Auflösung von 240 * 128 Pixel.


Grafikbibliothek für embedded Echtzeitbetriebssystem



interne Funktionsweise der Grafikbibliothek:
Grafikbibliothek für embedded Echtzeitbetriebssystem

Die Bibliothek bietet die üblichen Funktionen an um Texte, primitive graphische Objekte und Diagramme ausgeben zu können:

  • Linien
  • Rechtecke
  • Kreise
  • Teilkreise
  • Liniendiagrammen
  • Balkendiagramme

 


Software "Audio Analyser"



Der Algorithmus für die Darstellung der Audiodaten ist denkbar einfach: Die analogen Audiodaten werden über einen Anti-Aliasing-Filter (Tiefpassfilter) geschickt und anschließend von einem AD-Wandler mit 15kHz abgetastet.
Die Verarbeitung der Daten erfolgt dabei Blockweise. Wenn ein Block mit genügend Daten in dem Speicher Buff 1 erfasst wurde, werden diese Daten in den oberen Teil des Displays als Linendiagramm dargestellt. Im gleichen Zyklus wird aus dem Speicher Buff 1 eine Summe gebildet und das Ergebnis dem Schiebespeicher Buff 2 als Element eingetragen. Zusätzlich wird das berechnete Summenelement aus Buff 1 auf der rechten Seite vom Display als Balkendiagramm dargestellt und dient als Peakmonitor. Die Ausgabe des Buff 2 auf dem unteren Teil des Displays erfolgt ebenfalls im gleichen Zyklus. ...thats it


Blockschaltbild der Software "Audio Analyser"

Blockschaltbild: Audio Analyzer

 

 


Anti-Aliasing-Filter (Tiefpassfilter)


 

Tschebyscheff-Filter 4. Ordnung
Um den Hardware-Aufwand möglichst gering zu halten wurde ein recht einfacher Tschebyscheff-Filter der 4. Ordnung verwendet. Für die notwendigen Operationsverstärker wurde der Baustein CA3140N der Firma Intersil verwendet, welcher keine negative Versorgungsspannung benötigt und damit die Hardware weiter vereinfacht.
Die Grenzfrequenz des aktiven Tiefpassfilters liegt bei 5kHz, abgetastet wird mit 15kHz. Das Signal-Rausch-Verhältnis mit diesem Filter liegt bei -49 dB und ist damit Ausreichend für die 8bit AD-Wandlung.

 

 

Frequenzgang und Phasenlage

Frequenzgang Tschebyscheff  4. Ordnung

 


Videos




KeiAng

Published on: Monday, 04. May 2015 (12169 reads)
Copyright © by Keiang's electronics hobby side

Printer Friendly Page

[ Go back ]

Electronic Projects