LoRa 모듈 E22-900T22S Breakout Board 설계 2

Image
지난번 설계 에서 두 가지 업데이트 사항이 있다. 첫 번째로 3.3V 로 로직 컨버터를 거치지 않고 직접 통신할수 있는 포트를 구성하였다.  이 포트를 통해 3.3V 동작의 MCU를 사용할때 좀 더 빠르게 회로를 구성  할수 있을것으로 기대한다. 두 번째로 동작 전압 레벨이 서로 다른 MCU 와 Lora 모듈이 통신할때 사용할 기준전압을 직접 인가 할 수 있도록 하였다. 보드에는 위 와같은 점퍼가 주어지는데 3.3V 나 5V 로 점프 시키지 않을 경우 VREF 핀에 사용할 소스전압을 직접 인가해 주어야한다. 특수한 경우가 아니라면 Vref를 사용하는일은 없을것 같다. 위사 진들은 이번에 제작한 테스트 모듈이다.  왼쪽은 E22-900T22S 모듈이고 오른쪽은 ATmega328P/PB 3.3V 8Mhz 보드를 준비했다. 오른쪽의 보드는 ATmega328P/PB 를 모두 장착하여 사용할 수 있도록 설계했다. E22-900T22S 보드의 전체 회로는 다음과 같다. 동작 전압 레벨이 서로 다른 장치와 통신 할 수 있도록 레벨 컨버터를 추가 하였고, 핀 헤더를 장착하여 다른 MCU 보드와 통신하거나 점퍼를 수정해서 USB 시리얼 통신을 할수 있도록 했다. 모듈의 테스트는 mischianti의 E22 라이브러리 를 사용했다. 정리가 아주 잘 되어있는 라이브러리로 생각된다. 아래 코드는 라이브러리에 포함된 시리얼 입력을 LoRa 통신으로 전송하는 예제이다. Lora ATmega328p AUX D3 RX D4 TX D5 M1 D6/GND M0 D7/GND 송신측 코드 #include "Arduino.h" #include "LoRa_E22.h" LoRa_E22 e22ttl(4, 5, 3, 7, 6); void setup() { Serial.begin(9600); delay(500); // Startup all pins and UART e22ttl.begin(); Serial.println(&q

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

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

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

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