내장형 오디오 피드백 파일을 위한 오디오 코덱 및 마이크로 컨트롤러를 선택하고 사용하는 방법

작성자: Jacob Beningo

DigiKey 북미 편집자 제공

내장형 시스템 내에 알람 및 알림을 비롯한 버저 대신, 사용자 피드백을 위해 고충실도 오디오를 제공해야 하는 필요성이 점점 더 증가하고 있습니다. 과거에는 비프음이나 새소리가 효과적이었지만 오늘날의 사용자는 MP3와 같은 파일 형식에서 오디오 재생을 통해서만 생성될 수 있는 고급 음향을 기대합니다. 문제는 오디오 재생이 어려워 보일 수 있거나 시스템에 비용과 복잡성이 추가될 수 있다는 점입니다. 본능적으로 가장 먼저 찾는 것은 MP3를 재생할 수 있는 마이크로 컨트롤러이지만, 이를 선택할 경우 대개 부품 명세서(BOM)에 수 달러가 추가되고 내장형 소프트웨어에 상당한 복잡성이 더해집니다.

추가적인 비용과 소프트웨어 복잡성 간에 균형을 유지하는 데 특히 능란한 해결책 중 하나는 오디오 코덱을 사용하는 것입니다. 오디오 코덱은 마이크로 컨트롤러의 오디오 데이터 스트림을 수용할 뿐만 아니라 개발자가 오디오 재생 시스템을 신중하게 조정하여 시스템에서 재생되는 음향의 품질을 향상시킬 수 있는 여러 기능을 보유하고 있습니다.

이 기사에서는 오디오 코덱의 역할, 선택 시 개발자가 고려해야 할 주요 특성, 이를 효과적으로 적용하는 방법에 대해 설명합니다. 여기에서는 AKM Semiconductor, Texas Instruments, Maxim Integrated의 솔루션을 예제로 소개 및 사용합니다. 결론에서는 코덱을 사용하여 시스템 비용을 낮추면서 오디오 재생 응용 개발을 가속화하는 방법에 대한 유용한 정보를 제공합니다.

오디오 코덱이란?

오디오 코덱은 오디오 정보를 포함하는 디지털 데이터 스트림을 인코딩 또는 디코딩할 수 있는 하드웨어 부품입니다1. 오디오 코덱은 마이크로 컨트롤러에서 오디오 처리의 부담을 덜 수 있기 때문에 유용합니다. 이는 소프트웨어 복잡성을 크게 낮추며 비용과 기능이 적절한 마이크로 컨트롤러를 응용 제품에 사용할 수 있도록 합니다.

일반적인 오디오 코덱에는 다음과 같은 여러 기능 블록이 포함되어 있습니다.

  • 인코딩된 디지털 오디오 데이터를 전송하거나 수신하기 위한 I2S 인터페이스
  • 오디오 코덱의 제어 레지스터를 구성하거나 읽기 위한 I2C 인터페이스
  • 아날로그 디지털 컨버터(ADC)에 연결되는 마이크 입력
  • 적어도 하나의 오디오 출력 채널(예: 스피커 출력)(그러나 대부분 라인 출력도 포함하고 있으며 스테레오 재생을 위해 여러 스피커 출력을 포함할 수도 있음)
  • 오디오 재생 및 녹음을 조정하기 위한 고역 통과, 저역 통과, 노치, 이퀄라이저 필터를 포함하는 디지털 블록

낮은 비용과 오디오 기능으로 인기가 높은 오디오 코덱의 예로 AKM Semiconductor의 AK4637EN 24비트 오디오 코덱을 들 수 있습니다(그림 1). AK4637EN은 펄스 폭 변조(PWM) 신호로 비프음을 생성하는 데 사용할 수 있는 비프음 생성기 입력 이외에도 이러한 모든 기능을 포함하고 있습니다.

모노 스피커 출력을 갖춘 AKM Semiconductor AK4637EN 오디오 코덱 구성도(확대하려면 클릭)그림 1: AK4637EN은 오디오 재생 및 녹음 기능이 있는 모노 스피커 출력을 갖춘 오디오 코덱입니다. 이 장치는 또한 오디오 충실도를 향상시키기 위해 들어오고 나가는 오디오를 필터링하는 데 사용할 수 있는 내부 오디오 블록을 포함하고 있습니다. (이미지 출처: AKM Semiconductor)

개발자는 오디오 코덱의 주요 차별화 요소가 모노 또는 스테레오 오디오를 출력하는지 여부와 디지털 블록 기능임을 알게 됩니다. 예를 들어, AK4637EN은 고역 필터, 저역 필터, 4대역 이퀄라이저, 오디오 레벨 채널 기능 및 단일 대역 이퀄라이저를 제공합니다. 후자는 노치 필터로 사용할 수 있습니다. 개발자가 이러한 디지털 필터를 설정하는 방법은 시스템의 소리에 큰 영향을 줄 수 있습니다.

오디오 코덱은 경우에 따라 오디오 재생에 익숙하지 않은 개발자들을 주눅들게 할 수 있습니다. 예를 들어, AK4637EN은 단순 오디오 코덱이지만 규격서를 살펴보면 64개 구성 가능 레지스터가 있음을 쉽게 알 수 있습니다. 처음에는 많은 것처럼 보일 수 있지만 이러한 레지스터의 대부분은 사용 가능한 다양한 디지털 필터에 대한 필터 계수를 설정하는 데 사용됩니다. 시스템에서 오디오를 올바르게 출력하는 데 필요한 것은 몇 가지 뿐이므로 초보자가 상상하는 것보다 훨씬 더 간단하게 오디오 코덱용 드라이버를 개발할 수 있습니다.

오디오 코덱을 선택하는 방법

제품 개발을 위한 무언가를 선택하는 데 있어 중요한 요인 중 하나는 비용이며, 오디오 코덱도 마찬가지입니다. 개발자는 자신이 지불한 만큼의 제품을 구입할 수 있다는 것을 기억해야 합니다. 따라서 오디오의 경우 팀은 주요 솔루션 파라미터에 대해 설계 요구 사항을 신중하게 비교해야 합니다.

가장 먼저 고려해야 할 사항은 오디오 코덱에서 요구되는 출력입니다. 여러 가지 다양한 선택이 있습니다. 예를 들어, AK4637EN은 라인 출력과 모노 스피커 출력이 있습니다. 1.29W에서 두 개의 스피커를 구동할 수 있는 Texas Instruments TLV320AIC3110IRHBR 스테레오 오디오 코덱과 같은 다른 코덱도 있습니다(그림 2).

TI TLV320AIC3110IRHBR - 스테레오 출력 및 증폭을 갖춘 오디오 코덱을 보여주는 구성도(확대하려면 클릭)그림 2: TI TLV320AIC3110IRHBR은 마이크 입력 이외에 스테레오 출력 및 증폭을 갖춘 오디오 코덱입니다. 이 코덱은 내부 증폭기에서 1.29W를 구동할 수 있으며 프로그래밍 가능한 디지털 오디오 블록을 포함하고 있습니다. (이미지 출처: Texas Instruments)

Maxim Integrated MAX9867과 같은 다른 오디오 코덱은 한 쌍의 헤드폰만 구동하도록 설계되었습니다(그림 3). MAX9867에는 일반적인 I2S 및 I2C 디지털 인터페이스뿐만 아니라 디지털 방식으로 선택할 수 있는 스테레오 마이크 입력 및 두 개의 라인 입력을 갖추고 있습니다.

Maxim Integrated MAX9867 오디오 코덱 구성도그림 3: Maxim Integrated MAX9867 오디오 코덱은 스테레오 헤드폰을 구동할 수 있으며 디지털 마이크와 입력 간에 선택할 수 있습니다. (이미지 출처: Maxim Integrated)

출력 유형에 대해(또는 입력) 이러한 세 가지 솔루션 중 하나를 결정하는 것은 중요한 초기 결정입니다.

개발자들은 또한 이러한 코덱이 무엇을 구동하게 되는지도 고려해야 합니다. 즉, 오디오 코덱이 헤드폰을 직접 구동하게 되는지 또는 스피커 또는 한 쌍의 스피커를 구동하게 되는지 또한 출력 정격은 어떻게 되는지 고려해야 합니다. 시스템이 5W 스피커를 구동하는 경우 이를 수행하는 내장형 시스템에 대한 옵션은 많지 않습니다. 대신에, 개발자는 라인 아웃을 선택하고 별도의 D급 증폭기를 사용하여 스피커를 직접 구동할 수 있습니다. 그러면 설계 유연성을 제공하면서도 비용을 일부 절약할 수 있습니다.

마지막으로 고려해야 할 두 가지 사항은 내부 라우팅과 디지털 필터링 기능입니다. 다음은 오디오 코덱에 대해 실제 차별화와 비용 차이가 결정되는 경우입니다. 예를 들어, TLV320AIC311IRHBR에는 스피커 팝핑을 최소화하고 오디로 재생으로의 매끄러운 전환을 위한 디팝(de-pop) 및 소프트 스타트 기능이 있습니다. 이 장치에는 또한 각각의 출력 채널 및 디지털 볼륨 제어를 위한 내부 믹서가 포함되어 있습니다.

개발자는 오디오 코덱에 필요한 요구 사항과 BOM 및 회로망으로 인해 사용되는 기판 공간 크기를 신중하게 비교해야 합니다.

오디오 재생 시스템

오디오 코덱으로 작업하는 경우 오디오 코덱 외부에 성공적인 오디오 재생을 달성하는 데 필요한 여러 다양한 블록이 있다는 것을 알고 있어야 합니다. 재생에 대해 결정되는 응용 제품 및 방법에 따라 정확한 블록은 약간 다를 수 있지만 그림 4에 일반적인 구성도가 표시되어 있습니다.

오디오 재생 시스템에 대한 일반적인 연결 제품 구성도를 보여주는 구성도그림 4: 일반적인 내장형 응용 제품의 오디오 재생 시스템에 대한 일반적인 연결 블록 구성도는 오디오 파일을 위한 저장 공간이 필요함을 보여줍니다. 이러한 저장 공간은 마이크로 컨트롤러 또는 외부 메모리에 위치할 수 있습니다. (이미지 출처: Beningo Embedded Group)

이 구성도에는 논의가 필요한 여러 지점이 있습니다. 먼저, 오디오 재생 파일을 저장하는 데 사용할 수 있는 몇 가지 방법이 필요합니다. 여기에는 두 가지 옵션이 있습니다. 마이크로 컨트로러 플래시 메모리 내부에 파일을 저장하는 방법과 플래시 메모리 외부에 저장하는 방법입니다. 이러한 선택은 오디오 파일의 크기와 마이크로 컨트롤러에 있는 내부 플래시 메모리의 크기에 따라 결정됩니다.

개발자는 또한 오디오 재생 형식도 고려해야 합니다. 가장 일반적인 방법은 MP3를 사용하는 것입니다. 이 경우, 선택한 마이크로 컨트롤러에 MP3 디코딩을 지원하는 소프트웨어 스택이 있어야 합니다. 이를 통해 MP3 파일을 열고 I2S를 통해 동적 메모리 액세스(DMA) 컨트롤러를 사용하여 푸시할 수 있습니다. 또한 I2S 포트도 마스터/슬레이브 및 여러 다른 모드에 대해 구성할 수 있으므로 데이터가 정확한 속도로 코덱에 전달되도록 하려면 이를 신중하게 검토해야 합니다.

앞에서 언급한대로, 외부 오디오 증폭기는 응용 제품에 따라 필요할 수도 있고 필요하지 않을 수도 있습니다. 일반적인 코덱은 약 1W ~ 1.5W를 출력하며 이는 소형 스피커를 구동하는 데 유용합니다. 3W 이상의 대형 스피커를 구동하려면 외부 증폭기를 사용해야 합니다. 가장 광범위하게 사용되는 것은 D급입니다. 이 증폭기에는 반드시 가변 이득이 필요하지는 않습니다. 오디오 코덱은 디지털 방식으로 볼륨 제어를 조정하여 광범위한 출력 전력을 제공할 수 있습니다.

종종 간과되는 영역 중 하나는 벌크 정전 용량입니다. 오디오가 재생될 경우 전력을 크게 소비할 수 있습니다. 기판에 충분한 정전 용량이 없는 경우 출력 품질에 큰 영향을 줄 수 있으며 원치 않는 여러 다른 잡음과 함께 윙하는 소리가 날 수 있습니다. 이는 테스트 동안 전력 레일을 주의깊게 모니터링하여 감지할 수 있습니다. 출력 회로망을 조정하기 위해 다른 정전 용량 값을 시도할 수 있도록 PC 기판 개발 동안 기판에 추가 공간을 남겨 두는 것이 좋습니다.

오디오 코덱을 선택 및 사용하기 위한 유용한 정보

오디오 코덱은 내장형 소프트웨어를 크게 간소화하고 응용 제품에 뛰어난 음질의 오디오를 제공할 수 있습니다. 오디오 코덱은 이전에 이를 사용해 보지 않은 사용자의 경우 다루기 어려울 수 있습니다. 오디오 코덱을 성공적으로 활용하기 위해 다음과 같이 설계 팀이 유념해야 할 여러 "유용한 정보"가 있습니다.

  • 마이크로 컨트로러 내에 직접 메모리 액세스 컨트롤러(DMA) 기능을 사용하여 CPU 개입을 최소화하면서 오디오 코덱을 공급할 수 있습니다. 이는 코덱에 데이터가 “고갈"되지 않도록 하는 데 도움이 될 수 있습니다.
  • 오디오가 재생되지 않는 경우 코덱의 음소거 기능을 사용하여 저레벨 출력 잡음이 스피커에 도달하지 않도록 방지할 수 있습니다.
  • 재생을 비활성화하거나 활성화하는 경우 오디오 코덱의 소프트 음소거 기능을 사용하여 스피커의 팝핑 및 기타 원치 않는 잡음을 방지할 수 있습니다.
  • 단자 응용 제품을 사용하여 코덱이 초기화된 이후 코덱 레지스터를 출력할 수 있습니다. 이는 문제를 디버깅하거나 스피커 출력 회로망 및 인클로저를 조정할 때 특히 유용합니다.
  • 코덱에 포함된 내부 디지털 필터 메커니즘을 활용할 수 있습니다. 이 디지털 필터를 사용하여 개발자는 출력을 평준화하고, 원치 않는 고주파 및 저주파를 필터링하며, 음향 시스템의 품질을 최대화할 수 있습니다.
  • 음향을 조율하는 것은 회로 기판 및 스피커를 인클로저에 설치할 때만 유용할 수 있습니다. 인클로저와 실장은 큰 차이를 만들기 때문입니다.

개발자는 먼저 Maxim Integrated의 MAX9867에 대한 MAX9867EVKIT+ 평가 키트를 실험하는 것으로 시작할 수 있습니다(그림 5).

MAX9867용 Maxim MAX9867EVKIT+ 평가 키트 이미지그림 5: MAX9867용 MAX9867EVKIT+ 평가 키트는 USB 케이블을 통해 PC에 연결되며 RCA 입력, 헤드폰 출력, 광섬유 송신 및 수신 모듈을 갖추고 있습니다. (이미지 출처: Maxim Integrated)

이 키트는 기판 및 연관 소프트웨어로 구성되어 있으며 Sony/Philips 디지털 인터페이스(S/PDIF)를 사용하여 오디오 데이터를 보내고 받도록 구성되어 제공됩니다( I2S를 사용하도록 설정할 수도 있음). 이 키트에는 두 개의 RCA 입력 잭, 두 개의 3.5mm 아날로그 출력 헤드폰 잭, 광섬유 수신 및 송신 모듈이 포함되어 있습니다. 소프트웨어는 Windows와 호환되며 USB 케이블을 통해 PC에 연결될 경우 개발자가 MAX9867의 설정으로 실험할 수 있는 그래픽 사용자 인터페이스(GUI)로 열립니다(그림 6).

Windows 기반 GUI 이미지(확대하려면 클릭)그림 6: Windows 기반 GUI를 사용하면 클록 및 디지털 오디오(선택된 탭)부터 시작하여 레지스터 1 및 레지스터 2(오른쪽)에 이르는 다양한 MAX9867 설정을 실험할 수 있습니다. (이미지 출처: Maxim Integrated)

결론

내장형 시스템 사용자는 고품질 오디오에 익숙해 졌으며 이는 알람, 경보 및 다른 사용자 오디오 피드백을 위한 과거의 버저 및 비프음 대신 예상되기까지 합니다. 이로 인해 개발 팀은 자체 시스템에서 MP3 재생 기능을 구현해야 합니다. 이는 처음에는 복잡한 작업으로 보일 수 있습니다. 그러나 개발자는 마이크로 컨트롤러와 함께 올바른 오디오 코덱을 사용하고 여러 설계 우수 사례에 따라 오디오 응용 제품에 관련된 비용과 복잡성 간에 균형을 유지할 수 있습니다.

참고 자료:

  1. https://en.wikipedia.org/wiki/Audio_codec
DigiKey logo

면책 조항: 이 웹 사이트에서 여러 작성자 및/또는 포럼 참가자가 명시한 의견, 생각 및 견해는 DigiKey의 의견, 생각 및 견해 또는 DigiKey의 공식 정책과 관련이 없습니다.

작성자 정보

Image of Jacob Beningo

Jacob Beningo

Jacob Beningo는 임베디드 소프트웨어 컨설턴트로서 현재 십여 개국 이상의 국가에 있는 고객들과 협력하여 제품 품질, 비용, 출시 기간을 향상시켜 고객의 비즈니스를 극적으로 변화시키고 있습니다. 그는 인기 있는 강연자이자 기술 교육자이며 임베디드 소프트웨어 개발 기술에 대해 200개 이상의 기사를 발표했습니다. 그는 미시간 대학교 공학 석사 학위를 비롯하여 세 개의 학위를 소지하고 있습니다. 월간 Embedded Bytes 뉴스레터를 수신하려면 jacob@beningo.com 및 Jacob Beningo의 웹 사이트인 www.beningo.com으로 언제든지 문의해 주세요.

게시자 정보

DigiKey 북미 편집자