
DMA 및 CIP를 사용한 오디오 녹음 및 재생
이 데모는 PIC18F57Q43 Curiosity Nano 플랫폼을 기반으로합니다. 사운드 레코딩 용 ADC 사용, 외부 메모리 모듈과 인터페이스를위한 SPI, 재생 용 DAC, 데이터 전송 용 DMA 및 샘플링 주파수를 정의하기위한 타이머 사용에 대해 자세히 설명합니다. 응용 프로그램은 또한 스위치 디바 닝에 Timer2 HLT 및 CLC의 사용 및 클래스 D 전력 증폭을위한 비교기 및 PWM의 사용을 보여줍니다.
관련 문서
- 직접 메모리 액세스 및 핵심 독립 주변 장치를 사용한 오디오 녹음 및 재생 (AN3548)
사용 된 소프트웨어
- MPLAB® X IDE 6.15 또는 NEWER (microchip.com/mplab/mplab-x-ide)
- MPLAB® XC8 2.45 또는 최신 컴파일러 (microchip.com/mplab/compilers)
- MPLAB® 코드 구성기 (MCC) 5.3.7 또는 Newer (microchip.com/mplab/mplab/mplab-code-configurator)
- MPLAB® 코드 구성기 (MCC) 장치 라이브러리 PIC10 / PIC12 / PIC16 / PIC18 MCUS (microchip.com/mplab/mplab-code-configurator)
- Microchip PIC18F-Q 시리즈 장치 지원 (1.23.425) 또는 최신 (Packs.Download.microchip.com/)
사용 된 하드웨어
- PIC18F57Q43 호기심 나노 평가 키트 (DM164150)
- Curiosity Nano Base for Click Boards ™ (AC164162)
- 마이크 클릭 (Mikroe-2563)
- 플래시 2 클릭 (Mikroe-2267)
- 프로토 클릭에서 구현 된 전원 앰프 (Mikroe-1507)
하드웨어 설정
PIC18F57Q43 Curiosity Nano Board와 필요한 클릭 보드 사이의 필요한 연결은 다음과 같습니다.
- 클릭 1 확장은 마이크 클릭 보드에 연결됩니다. 이것은 AN1 핀을 사용하여 아날로그 음성 신호를 PIC18F57Q43의 ADC로 전송합니다. 마이크 클릭에는 신호 컨디셔닝 및 필터링 회로가 있습니다.
- 클릭 2 확장은 플래시 2 클릭 보드에 연결됩니다. 이 보드에는 Microchip의 SST26VF064B 플래시 메모리 칩이 있으며 SPI를 사용하여 마이크로 컨트롤러와 통신합니다.
- 클릭 3 확장은 프로토 클릭의 맞춤형 클래스 D 전원 증폭기 회로에 연결됩니다.
호기심 나노 보드 연결

프로토 클릭 회로

전체 시스템 설정

프로토 클릭

소프트웨어 설정
MCC는 다음을 구성하는 데 사용됩니다. 각 구성 요소의 자세한 내용 및 설정은 MPLAB X 프로젝트를 참조하십시오.
- 시스템 설정 -CPU 및 인터럽트
- TMR0- 10kHz 샘플링 타이머를 생성하는 데 사용됩니다
- ADCC- 아날로그 오디오 신호의 샘플링 및 양자화에 사용
- DAC1- 아날로그 오디오 신호를 출력하는 데 사용됩니다
- SPI1- 외부 메모리 모듈과 통신하는 데 사용됩니다
- DMA (DMA1, DMA2, DMA3, DMA4, DMA5, DMA6) - 데이터 전송 작업
- PWM1- 오디오 앰프를위한 톱니 파형을 만드는 데 사용
- CMP1- 톱니 파형과 DC 오프셋 DAC 출력을 비교하여 오디오 스피커를 구동하기 위해 PWM 신호를 생성하는 데 사용됩니다.
- TMR2/4- CLC1/2와 함께 버튼을 분해하는 데 사용됩니다.
- CLC1/2- TMR2/4와 함께 버튼을 분해하는 데 사용됩니다.
- UART1- 디버그 메시지를 보내고받는 데 사용됩니다
작업
응용 프로그램을 실행하려면 Curiosity Nano 보드의 버튼을 사용하십시오.
- 기본적으로 응용 프로그램은 "유휴"모드입니다.
- 버튼을 두 번 눌러 "레코드"모드로 들어갑니다. 버튼을 다시 눌러 중지하거나 메모리가 부족할 때까지 시스템은 계속 녹음됩니다. 외부 메모리가 있으면 기록이 저장됩니다. 그렇지 않으면 녹화가 내부 플래시 메모리에 저장됩니다.
- 버튼을 한 번 눌러 "재생"모드로 들어갑니다. 시스템은 버튼을 다시 눌러 중지되거나 전체 녹음이 재생 될 때까지 메모리에 저장된 녹음 오디오를 계속 재생합니다.
- 버튼을 길게 눌러 "지우기"모드로 입력하고 메모리에서 전체 기록을 지우십시오.
프로토 클릭에서 앰프와 함께 특수 버튼을 사용할 수 있습니다. Long Long이 버튼을 눌러 시스템이 간단한 앰프 역할을하고 오디오를 기록하고 저장하지 않는 "Passthrough"모드로 들어갑니다. 이 특수 버튼을 다시 누르면 "Passthrough"모드를 남겨 둡니다.
오디오는 프로토 클릭의 클래스 D 앰프를 통해 재생됩니다. 프로토 클릭에 따라 두 개의 점퍼가 있습니다.
- 점퍼 J1은 마이크 클릭과 헤드폰 마이크 사이에서 오디오 입력 소스를 선택합니다. (헤드폰 마이크가 3.5mm 오디오 잭에 연결되어 있지 않을 때 항상 마이크 클릭을 선택하십시오)
- 점퍼 J2는 외부 스피커와 3.5mm 오디오 잭 사이의 오디오 출력을 선택합니다. 외부 스피커 또는 헤드폰을 3.5mm 오디오 잭에 연결할 수 있습니다.
참고 : 노이즈 유도를 피하기 위해 "Passthrough"모드에서 오디오 출력과 MIC 입력 모두에 대한 헤드폰을 선택하지 않는 것이 좋습니다.
요약
DMA는 다른 구성에서 레지스터, RAM 및 플래시간에 데이터를 전송하는 좋은 방법입니다. CPU를 확보하여 다른 작업을 수행 할뿐만 아니라 속도와 사용 편의성을 허용합니다.
DAC는 8 비트 해상도가 높기 때문에 샘플링 된 오디오 신호를 훨씬 더 잘 재현 할 수 있습니다. DAC의 완충 된 출력은 신호를 저하시키지 않으면 서 서로 다른 주변 장치에 대한 큰 연결을 형성합니다. 이것은 PWM 및 비교기와 함께 사용하여 우수한 클래스 D 파워 앰프를 형성 할 수 있습니다.
TIMER2 HLT는 CLC와 결합하여 우수한 코드 프리 스위치 디 폴링 기술을 결합 할 수 있습니다.