Raspberry Pi Zero W/2W - 게임보이 만들기 3 - 오디오 설계


이번에 설계할 부분은 오디오 출력 부분이다. 
Raspberry Pi Zero의 경우는 별도의 오디오 출력 포트가 존재하지 않는다. 그 대신 PWM 을 지원하는 GPIO18, GPIO13 또는 GPIO19 를 오디오 출력 에 사용할 수 있다. 예전에는 사용자가 오디오 출력에 사용할 포트를 직접 커널 파일로 구성하여 시스템에 추가 해주어야 했는데, 이제는 audremap.dtbo 파일이 OS 에 내장되기 때문에 그럴 필요가 없다.

오디오 출력을 하기 위해서는 하드웨어 회로 구성과 config.txt 파일 마지막 줄에 dtoverlay=audremap,pins_12,13 를 추가해주면 된다. 


참고로 PWM0 는 12,18 번이 PWM1은 13,19 번이 채널을 공유하기 때문에 오디오 포트로 오버레이 설정시 주의가 필요하다. 예를 들어 동일 채널의 포트에 오디오 출력을 하고 있는 중에 LED 제어 같은 다른 용도로도 사용하게 되면 오디오 출력에 문제가 발생할 수 있다.



오디오 회로는 위와 같이 설계하였다. 필요한 경우 필터 회로를 구성할 수 있도록 FB와 MLCC를 두었다. 사용하지 않을 가능성이 높지만 재미 요소 중 하나가 될지도 모른다.

XPT9971와 같은 형태의 오디오 앰프는 MODE 의 상태에 때라 동작 방식이 다르다. LOW 에서는 AB Class 로 HIGH 에서는 D Class 앰프로 동작한다. 내가 알기로 XPT9971 의 경우 MODE 는 내부 풀업으로 기본 세팅되어 있다. 따라서 AB Class 로 사용하고 싶다면 LOW 로 세팅해주면 된다. D Class 는 효율 중심이고 AB Class 는 음질이 괜찮다고 하지만 솔직히 이렇게 저렴한 앰프는 그런 차이는 느끼기 힘들다고 생각한다. 실제로 소리가 달라지긴 하는데 둘 다 구리다.

SD 의 경우 앰프를 켜고 끄는데 사용할 수 있는데 HIGH 일 때 꺼지고 LOW 일 때 켜진다고 보면 된다. 그리고 퍽 소리가 신경 쓰일 수 있는데 별도 스위치 회로를 구성해 앰프가 확실하게 켜진 다음 스피커 회로가 닫히도록 하거나, 소프트스타터 혹은 릴레이를 사용하는 쪽이 퍽 소리를 확실하게 예방할 수 있다. 퍽 소리는 보통 앰프가 켜질때 나기 때문이다.



만약 앰프 회로 없이 사용한다면 위의 회로만 구성해도 된다. 여기에 스피커를 직접 연결하면 소리가 정말 작을 것 이고 이어폰이나 다른 앰프에 연결해야 한다.

다음은 PCB 설계 부분이다.


LS 부분이 스피커가 연결되는 곳이다. 

사실 이번 설계는 XPT9971를 소모하기 위한 방편이다. 원래는 UDA1334 로 i2s 방식의 오디오 인터페이스를 구성하려고 했는데 알아보니 UDA1334 가 단종이였고, 알리에서 팔긴 하는데 구지 이걸 써야 할까 하는 생각도 들었다. 그리고 가장 간단한 방법은 MAX98357 을 사용하는 것이다. 회로도 간단하며 디코딩 부터 오디오 증폭까지 한방에 해결된다. 하지만 이것도 마우저나 디지키 단가를 보자면 IC 를 직접 사는 것 보다 알리에서 보드 사다가 뜯어다 쓰는 것이 저렴하게 먹힌다. 


LCSC 는 항상 느끼는 부분이지만 단가가 아주 대단한 것 같다. 970원? ㅋㅋㅋ 웃음만 나온다.

Comments

Popular posts from this blog

[Python] - 블루투스 모듈 HC-06의 MAC 주소를 이용하여 통신 포트 찾기

[POE] - 패스 오브 엑자일 획득키 F 의 사용법 (Path of Exile)

[Arduino] - HC-06를 이용해 PC 와 Arduino 블루투스 연결

[Raspberry Pi] - 라즈베리 파이에서 멀티미디어 감상에 적절한 비디오 세팅