
Audioaufnahme und Wiedergabe mit DMA und CIPS
Diese Demo basiert auf der Curiosity Nano -Plattform PIC18F57Q43. Es beschreibt die Verwendung von ADC für die Tonaufnahme, SPI für die Schnittstelle mit dem externen Speichermodul, DAC für die Wiedergabe, DMA für Datenübertragungen und die Verwendung von Timern zur Definition der Abtastfrequenz. Die Anwendung demonstriert auch die Verwendung von Timer2 HLT und CLC für das Schalter -Debouncing sowie den Komparator und PWM für die Leistungsverstärkung der Klasse D.
Verwandte Dokumentation
- Audioaufzeichnung und Wiedergabe mit direktem Speicherzugriff und den unabhängigen Kernperipheriegeräten (AN3548)
Software verwendet
- MPLAB® X IDE 6.15 oder neuer (microchip.com/mplab/mplab-x-ide)
- MPLAB® XC8 2.45 oder ein neuerer Compiler (microchip.com/mplab/compilers)
- MPLAB® Code Configurator (MCC) 5.3.7 oder neuer (microchip.com/mplab/mplab-code-configurator)
- MPLAB® Code Configurator (MCC) Gerätebibliotheken PIC10 / PIC12 / PIC16 / PIC18 MCUS (microchip.com/mplab/mplab-code-configurator)
- Microchip PIC18F-Q-Serie-Geräteunterstützung (1.23.425) oder neuer (packs.download.microchip.com/)
Hardware verwendet
- PIC18F57Q43 Curiosity Nano Evaluierungskit (DM164150)
- Curiosity Nano Base für Click Boards ™ (AC164162)
- Mikrofonklick (Mikroe-2563)
- Flash 2 Click (Mikroe-2267)
- Power-Verstärker, der auf einem Proto-Klick implementiert ist (Mikroe-1507)
Hardware -Setup
Die erforderlichen Verbindungen zwischen dem PIC18F57Q43 Curiosity Nano Board und den erforderlichen Klickplatinen sind unten dargestellt:
- Die Klick 1 -Erweiterung stellt eine Verbindung zum Mikrofon -Click -Board her. Damit überträgt der AN1-Pin das analoge Sprachsignal in das ADC an Bord des PIC18F57Q43. Das MIC -Klick verfügt über eine Signalkonditionierung und Filterschaltung an Bord
- Die Erweiterung der Klick 2 wird hergestellt mit der Flash 2 -Klickplatine. Diese Karte verfügt über den SST26VF064B -Flash -Speicherchip von Microchip und verwendet SPI, um mit dem Mikrocontroller zu kommunizieren
- Die Klick 3 -Erweiterung stellt eine Verbindung zu einem benutzerdefinierten Stromverstärker -Schaltkreis der Klasse D auf einem Protoklick her
Neugier Nano Board -Verbindungen

Proto -Klickschaltung

Vollständiges System -Setup

Protoklick

Software -Setup
MCC wird verwendet, um Folgendes zu konfigurieren. Details und Einstellungen für jede Komponente finden Sie im MPLAB X -Projekt.
- System -Setup - CPU und Interrupts
- TMR0 - Wird verwendet, um 10 kHz -Probenahme -Timer zu erzeugen
- ADCC - Wird zur Probenahme und Quantisierung des analogen Audiosignals verwendet
- DAC1 - Wird verwendet, um das analoge Audiosignal auszugeben
- SPI1 - Wird verwendet, um mit dem externen Speichermodul zu kommunizieren
- DMA (DMA1, DMA2, DMA3, DMA4, DMA5, DMA6) - Datenübertragungsvorgänge
- PWM1 - Wird verwendet, um eine Sägezahnwellenform für den Audioverstärker zu erstellen
- CMP1 - Wird verwendet, um die Sägezahnwellenform mit dem DC -Offset -DAC -Ausgang zu vergleichen, um PWM -Signal zu erzeugen, um den Audio -Lautsprecher zu fahren
- TMR2/4 - zusammen mit CLC1/2 werden verwendet, um Schaltflächen zu entlarven
- CLC1/2 - zusammen mit TMR2/4 werden verwendet, um Schaltflächen zu entlarven
- UART1 - Wird zum Senden und Empfangen von Debug -Nachrichten verwendet
Betrieb
Verwenden Sie zum Ausführen der Anwendung die Taste auf der Curiosity Nano -Karte.
- Standardmäßig befindet sich die Anwendung im "Leerlauf" -Modus.
- Drücken Sie die Taste, um den "Datensatz" -Modus einzugeben. Das System wird weiterhin aufgezeichnet, bis die Taste erneut gedrückt wird, um zu stoppen, oder es geht aus dem Speicher aus. Wenn ein externer Speicher vorhanden ist, wird die Aufzeichnung dort gespeichert. Andernfalls wird die Aufzeichnung im internen Flash -Speicher gespeichert.
- Drücken Sie die Taste einmal, um den "Wiedergabe" -Modus einzugeben. Das System spielt weiterhin den im Speicher gespeicherten Audio, bis die Taste erneut gedrückt wird, um zu stoppen, oder wenn die gesamte Aufnahme abgespielt wird.
- Lange drücken Sie die Taste, um den Modus "ERASE" einzugeben und die gesamte Aufzeichnung aus dem Speicher zu löschen.
Auf dem Protoklick ist eine spezielle Schaltfläche zur Verfügung, die zusammen mit dem Verstärker klickt. Lange drücken Sie diesen Taste, um den "Passthrough" -Modus einzugeben, in dem das System als einfacher Verstärker fungiert und das Audio nicht aufzeichnet und speichert. Drücken Sie diese spezielle Taste erneut, um den "Durchgang" -Modus zu verlassen.
Der Audio wird über den Verstärker der Klasse D auf Protoklick gespielt. An Bord befinden sich zwei Jumper an Bord des Proto -Klicks:
- Jumper J1 wählt die Audio -Eingangsquelle zwischen MIC -Klick und Kopfhörer -Mikrofon aus. (Wählen Sie immer Mikrofonklick, wenn das Kopfhörermikrofes nicht mit der 3,5 -mm -Audiobuchse angeschlossen ist.)
- Jumper J2 wählt die Audioausgabe zwischen externem Lautsprecher und 3,5 -mm -Audio -Buchse aus. Ein externer Lautsprecher oder ein Kopfhörer kann an die 3,5 -mm -Audiobuchse angeschlossen werden.
HINWEIS: Es wird empfohlen, die Auswahl von Kopfhörern sowohl für die Audioausgabe als auch für die MIC -Eingabe im "Passhrough" -Modus zu vermeiden, um die Rauschinduktion zu vermeiden.
Zusammenfassung
Die DMA ist eine großartige Möglichkeit, Daten zwischen Registern, RAM und Flash in verschiedenen Konfigurationen zu übertragen. Es ermöglicht Geschwindigkeit und Benutzerfreundlichkeit, zusätzlich zur Freigabe der CPU, um andere Aufgaben auszuführen.
Der DAC ermöglicht aufgrund der höheren 8-Bit-Auflösung eine viel bessere Reproduktion von Audiosignalen mit abgetasteten Audio. Die gepufferte Ausgabe des DAC bildet eine großartige Verbindung zu verschiedenen Peripheriegeräten direkt, ohne das Signal zu verschlechtern. Dies kann zusammen mit dem PWM und dem Komparator verwendet werden, um einen hervorragenden Leistungsverstärker der Klasse D zu bilden.
Timer2 HLT kann mit CLC kombiniert werden, um eine hervorragende Code-Free-Switch-DeBouncing-Technik zu erzielen.