
Perekaman dan pemutaran audio menggunakan DMA dan CIP
Demo ini didasarkan pada platform nano Curiosity PIC18F57Q43. Ini merinci penggunaan ADC untuk perekaman suara, SPI untuk berinteraksi dengan modul memori eksternal, DAC untuk pemutaran, DMA untuk transfer data, dan penggunaan timer untuk menentukan frekuensi pengambilan sampel. Aplikasi ini juga menunjukkan penggunaan Timer2 HLT dan CLC untuk sakelar debouncing, dan pembanding dan PWM untuk amplifikasi daya Kelas D.
Dokumentasi terkait
- Rekaman dan pemutaran audio menggunakan akses memori langsung dan periferal independen inti (AN3548)
Perangkat lunak digunakan
- MPLAB® X IDE 6.15 atau lebih baru (microchip.com/mplab/mplab-x-ide)
- MPLAB® XC8 2.45 atau kompiler yang lebih baru (microchip.com/mplab/compilers)
- MPLAB® Code Configurator (MCC) 5.3.7 atau lebih baru (microchip.com/mplab/mplab-code-configurator)
- MPLAB® Code Configurator (MCC) Perpustakaan Perangkat PIC10 / PIC12 / PIC16 / PIC18 MCUS (microchip.com/mplab/mplab-code-configurator)
- Microchip PIC18F-Q Series Dukungan perangkat (1.23.425) atau lebih baru (packs.download.microchip.com/)
Perangkat keras digunakan
- PIC18F57Q43 Curiosity Nano Evaluasi Kit (DM164150)
- Curiosity Nano Base for Click Boards ™ (AC164162)
- Mic Click (Mikroe-2563)
- Flash 2 Klik (Mikroe-2267)
- Penguat daya diimplementasikan pada klik proto (mikroe-1507)
Pengaturan Perangkat Keras
Koneksi yang diperlukan antara papan nano PIC18F57Q43 Curiosity dan papan klik yang diperlukan ditampilkan di bawah ini:
- Ekspansi klik 1 terhubung ke papan klik mic. Ini menggunakan pin AN1 untuk mentransfer sinyal suara analog ke ADC on-board PIC18F57Q43. Klik MIC memiliki sirkuit pengkondisian dan penyaringan sinyal
- Ekspansi klik 2 terhubung ke papan klik Flash 2. Papan ini memiliki chip memori flash SST26VF064B dengan microchip dan menggunakan SPI untuk berkomunikasi dengan mikrokontroler
- Ekspansi klik 3 terhubung ke sirkuit penguat daya Kelas D yang dibuat khusus pada klik proto
Koneksi Papan Nano Curiosity

Sirkuit klik proto

Pengaturan Sistem Lengkap

Klik Proto

Pengaturan Perangkat Lunak
MCC digunakan untuk mengonfigurasi yang berikut. Lihat proyek MPLAB X untuk detail dan pengaturan untuk setiap komponen.
- Pengaturan Sistem - CPU dan interupsi
- TMR0 - Digunakan untuk menghasilkan 10 kHz pengambilan waktu pengambilan sampel
- ADCC - Digunakan untuk pengambilan sampel dan kuantisasi sinyal audio analog
- DAC1 - Digunakan untuk mengeluarkan sinyal audio analog
- SPI1 - Digunakan untuk berkomunikasi dengan modul memori eksternal
- DMA (DMA1, DMA2, DMA3, DMA4, DMA5, DMA6) - Operasi Transfer Data
- PWM1 - Digunakan untuk membuat bentuk gelombang gigi gergaji untuk penguat audio
- CMP1 - Digunakan untuk membandingkan bentuk gelombang gigi gergaji dengan output DC -offset DAC untuk menghasilkan sinyal PWM untuk menggerakkan speaker audio
- TMR2/4 - Bersamaan dengan CLC1/2, digunakan untuk menepis tombol
- CLC1/2 - Bersamaan dengan TMR2/4, digunakan untuk menebus tombol
- UART1 - Digunakan untuk mengirim dan menerima pesan debug
Operasi
Untuk menjalankan aplikasi, gunakan tombol pada papan nano Curiosity.
- Secara default, aplikasi dalam mode "Idle".
- Tekan ganda tombol untuk memasukkan mode "Rekam". Sistem akan terus merekam sampai tombol ditekan lagi untuk berhenti, atau kehabisan memori. Jika ada memori eksternal, perekaman akan disimpan di sana. Kalau tidak, perekaman akan disimpan dalam memori flash internal.
- Tekan tombol sekali untuk memasuki mode "Playback". Sistem akan terus memainkan audio yang direkam yang disimpan dalam memori sampai tombol ditekan lagi untuk berhenti, atau jika seluruh rekaman diputar.
- Tekan lama tombol untuk memasukkan mode "Hapus" dan hapus seluruh rekaman dari memori.
Tombol khusus tersedia pada klik proto bersama dengan penguat. Tekan Long Tombol ini untuk memasukkan mode "Passthrough" di mana sistem bertindak sebagai penguat sederhana dan tidak merekam dan menyimpan audio. Tekan tombol khusus ini lagi untuk meninggalkan mode "Passthrough".
Audio akan dimainkan melalui penguat Kelas D pada Klik Proto. Ada dua jumper di atas klik proto:
- Jumper J1 memilih sumber input audio antara klik mic dan mic headphone. (Selalu pilih Mic Klik saat mic headphone tidak terhubung ke jack audio 3.5mm)
- Jumper J2 memilih output audio antara speaker eksternal dan jack audio 3.5mm. Speaker eksternal atau headphone dapat dihubungkan ke jack audio 3.5mm.
Catatan: Disarankan untuk menghindari pemilihan headphone untuk output audio dan input mic bersama dalam mode "Passthrough" untuk menghindari induksi kebisingan.
Ringkasan
DMA adalah cara yang bagus untuk mentransfer data antara register, RAM dan flash dalam konfigurasi yang berbeda. Ini memungkinkan kecepatan dan kemudahan penggunaan, selain membebaskan CPU untuk melakukan tugas -tugas lain.
DAC memungkinkan reproduksi sinyal audio sampel yang lebih baik karena resolusi 8-bit yang lebih tinggi. Output buffered dari DAC membentuk koneksi yang bagus ke periferal yang berbeda secara langsung, tanpa merendahkan sinyal. Ini dapat digunakan bersama dengan PWM dan pembanding untuk membentuk penguat daya Kelas D yang sangat baik.
Timer2 HLT dapat dikombinasikan dengan CLC untuk teknik debouncing sakelar bebas kode yang sangat baik.