오디오필 음향연구소 (AudioFeel) ~ 인류를 즐겁게… ~

어셈블리오디오(ASSM Audio System) 개발 시작품 - 제2부 (MPU 보드) 본문

회로기술

어셈블리오디오(ASSM Audio System) 개발 시작품 - 제2부 (MPU 보드)

오디좋아 2017. 1. 18. 20:23

어셈블리오디오(ASSM Audio System) 개발 시작품 - 제2부 (MPU 보드) - Rev 1.5.pdf


ass audio card - MPU - BD Rev.0.11 _ 20170121.zip



제 2 부에서는 

네트워크오디오플레이어(NAP) 기능과 네트워크저장소(NAS)와 외장 대용량 저장소(USB 대용량 저장소, USB 메모리 스틱, 외장 CD 롬 드라이브 등)에 저장된 음악을 플레이 하는데 핵심 부분인 MPU유니트 (메인보드의 1번 슬롯에 설치)에 대해서 알아 보겠습니다.


MPU유니트 보드 만으로는 아무런 기능을 할 수 없습니다. 고성능 컴퓨팅 기능이 가능한 컴퓨터 보드가 필요합니다. 요즘은  85 x 56 x 17mm 정도로 작은 미니 컴퓨터 보드가 여러 종류 판매되고 있습니다. 가격이 저렴하여 구입하기도 쉽습니다. 


MPU유니트에 사용 할 수 있는 미니컴퓨터 보드는 여러 종류가 있습니다.

1. Raspberry Pi 

2. Raspberry Pi 호환 제품

3. 갈릴레오(Galileo)

4. 비글본블랙(BeagleBone Black)

등 외에도 더 있습니다.

 

이 중에서 1번 Raspberry Pi 가 유저 층이 두텁고, 관련 오픈 소스가 많기 때문에 제일 많이 사용하고 있습니다. 

이번 어셈블리오디오에서도 Raspberry Pi 를 사용하고 있습니다.

자세한 제품명은 Raspberry Pi 3 model B 입니다. 또는 Raspberry Pi 2 model B 도 가능합니다.






Raspberry Pi 3 model B 은 


이더넷(LAN) 1포트, 

USB 4 포트, 

HDMI 1포트, 

아날로그 오디오 출력과 콤포지트 영상 출력 1포트, 

실행 프로그램 저장용 Micro SD 카드 슬롯 1개, 

그 외에 

영상 카메라 1포트, 

LCD 모니터 포트 1개, 

WiFi 1포트, 

불루투스 1포트 


가 있습니다. 




어셈블리오디오에서 MPU유니트 보드에 Raspberry Pi 보드를 커넥터 방식으로 장착하게 제작하였습니다.  Raspberry Pi 이외 컴퓨터 보드를 사용할 경우에는 MPU유니트 보드를 수정하면 됩니다.

MPU유니트 보드는 컴퓨터보드에서 I2S 관련 신호선이 필요하며, 경우에 따라서 I2C 관련 신호선과 인터럽트(INT) 1 라인이 필요 할 수도 있습니다.


MPU유니트 보드의 P4에는 LCD 디스플레이와  스위치로 구성된 컨트롤러 보드를 접속합니다. 이 컨트롤러보드(Controller Board)에서 어셈블리오디오의 입력 소스 선택과 헤드폰 / 스피커의 온/오프, 뮤트, 메인 볼륨 조정, 좌우 밸런스 조정 등 제어를 할 수 있습니다.

이 컨트롤러보드를 사용하기 위해서  MPU유니트 보드의 P2의 해당핀을 오픈하면 됩니다. 핀 1과 2, 핀 3과 4, 핀 5와 6을 모두 단선 시키고 P4에 컨트롤러보드를 접속하면 됩니다.


만일 컨트롤러보드를 사용하지 않고 Raspberry Pi 에서 직접 어셈블리오디오의 입력 소스 선택과 헤드폰 / 스피커의 온/오프, 뮤트, 메인 볼륨 조정, 좌우 밸런스 조정 등 모든 제어를 할 수 있다면(Raspberry Pi 의 SD 카드에 해당 프로그램을 설치해야 합니다. 프로그램 개발이 필요합니다) MPU유니트 보드의 P2의 해당 핀을 점퍼로 연결해 주면 됩니다. 핀 1과 2, 핀 3과 4, 핀 5와 6을 모두 쇼트하고 P4는 사용하지 않으면 됩니다.


Raspberry Pi 의 전원은 별도로 공급 해 주어야 합니다. Raspberry Pi 의 J1(POW IN)에 5V 2A 이상 AC to DC 어댑터를 접속 해 줍니다.

Raspberry Pi 의 J10(Etherrnet)에는 공유기의 출력 포트와 연결합니다.

Raspberry Pi 의 J11과 J12(USB)에는 외장하드 드라이브, USB 메모리, USB CDROM 드라이브 등을 연결합니다.

공유기의 다른 출력 포트에 PC를 연결 합니다.

공유기의 입력(WAN)에는 외부 인터넷 라인을 연결하면 뮤직플레이어에서 인터넷라디오, 스트리밍 오디오 등을 플레이 할 수 있습니다.

이때 공유기를 유무선겸용으로 사용하면 스마트폰에서 뮤직플레이어를 제어할 수 있습니다. 


Raspberry Pi 가 동작하기 위해서 필요한 프로그램은 뒷면에 있는 Micro SD 카드 슬롯에 프로그램이 설치된 Micro SD 카드를 삽입하고 전원을 넣어주면 동작합니다.

필요에 따라서 USB 용 키보드와 마우스를 USB 포트에 연결하여 사용할 수 있습니다.

대용량 외장 하드드라이브를 USB포트에 접속하여 NAS 로 사용할 수 있습니다.


이번 어셈블리오디오에는 Runeaudio (Raspberry Pi 용)라는 뮤직플레이어 프로그램을 사용하였습니다.

Runeaudio 라는 뮤직플레이어 프로그램은 인터넷으로 연결된 PC에서 선곡 편집 등을 할 수  있으며, 성능도 안정되어 있고 사용도 편리합니다. 스마트폰에는 Runeaudio 사이트에서 앱을 다운로드 설치하면 편리하게 사용할 수 있습니다. 

이외에 다른 Raspberry Pi 용 뮤직플레이어 들도 많이 있으니 선택하여 설치하면 됩니다. (볼루미오; volumio 등) 



- 어셈블리오디오를 사용하기 위한 설치 방법 -



1. 유무선공유기 설정


공유기에 Raspberry Pi 를 접속하면 PC에서 Raspberry Pi 를 제어 할 수 있습니다.

그런데 한가지 불편한 일이 있습니다. Raspberry Pi의 전원을 재 연결하면  Raspberry Pi 의 IP가 변경될 수 있습니다. 그럴 때마다 Raspberry Pi 의 IP 주소를 찾아야 하는 불편이 생깁니다.

그래서 공유기에서 IP주소를 고정하는 방법을 알아 보겠습니다.

본인이 사용하는 공유기로 예를 들겠습니다. 

공유기는 ipTIME N104R 입니다.

PC와 공유기의 출력 포트가 연결되어 있을 때 PC에서 익스폴로러 또는 크롬 브라우저 주소창에 192.168.0.1 을 치면 공유기 설정창이 열립니다. 

 (192.168.0.1 주소는 IP 공유기가 1대 연결되었을 때는 정확합니다. 그런데 공유기가 직렬로 2대 이상 연결되어 있을때는 rpi 가 연결된 공유기의 주소를 찾아야 합니다.)


ID와 패스워드를 넣고 들어가서 관리도구로 들어갑니다.

고급설정 / 네트워크관리 / "내부 네트워크 설정" 에서 맨 아래 "수동 IP 할당 설정" 오른쪽에 현재 접속된 기기가 표시될 것입니다. 

"현재 설정된 IP 주소" / "네트워크 기기 고유번호" 순서로 표시됩니다.

하나는 현재 PC일 것이고 다른 하나는  Raspberry Pi 일 것입니다. 또 다른 기기가 연결되어 있다면 표시 되어 있을 것입니다.

 Raspberry Pi 라고 판단되는 앞 체크박스를 클릭하여 체크하고 "추가" 버튼을 누르면 저장됩니다. 이때 위 IP 주소 칸에 맨 오른쪽 칸에 원하는 숫자로 수정하여 저장해도 됩니다.

공유기 관리페이지를 닫으면 됩니다.

이렇게 하여 저장된 IP주소에 의해서 해당되는 기기는 항상 지정된 IP주소로 접속하게 되어 어셈블리오디오를 사용하는데 편리합니다.

* 정보 출처 :  



2. 뮤직플레이어 Runeaudio 설치


뮤직플레이어 Runeaudio를 Raspberry Pi 의 마이크로 SD 카드에 저장하는 방법을 알아 보겠습니다.


Runeaudio 사이트 메인 페이지에서 (인터넷 검색) 우측아래 "DOWNLOAD" 클릭 / 

여러 가지 미니 컴퓨터 종류가 있습니다. 해당하는 미니 컴퓨터 종류에서 "Download Latest Version" 를 클릭하면 내 PC 로 다운로드 됩니다. (RASPBERRY PI, RASPBERRY PI 2, RASPBERRY PI 3 등)

이 파일은  SD 카드에 저장될 파일을 이미지로 만든 것이기 때문에 설치가 쉽습니다. 

다운로드 한 압축파일을 압축을 풀고 그 경로를 확인 해 둡니다.


다음으로 이미지 파일을 SD카드에 저장하기 위해서 다음 프로그램이 필요합니다. 

인터넷에서 검색하여 다운로드 합니다.


https://sourceforge.net/projects/win32diskimager/


에서 Win32DiskImager 를 다운로드 합니다.


다운로드 한 Win32DiskImager 를 실행하여 설치합니다.


마이크로 SD카드(4G 이상이면 가능하나 16G를 권장)를 PC에 연결합니다.


PC에서 Win32DiskImager 를 실행하면 "Image File" 창 바로 옆에 버튼을 클릭하여 앞에 다운로드한 Runeaudio 이미지 파일을 선택합니다. 그 옆에 현재 연결된 SD카드가 표시되는데, 

만일 여러개의 SD카드가 있다면 확인하여 선택합니다. 다른 SD카드가 선택되어 완료되면 복구할 수 업습니다.

다음 "Write" 버튼을 클릭하고...., 완료되면, 마이크로 SD 카드를 빼서 Raspberry Pi 의 밑면에 SD카드 슬롯에 삽입하고 5V 2A 아답타를 연결합니다.


PC에서 인터넷 주소창에 앞에 공유기에서 설정한 Raspberry Pi 의 IP주소를 입력하면 Runeaudio 의 화면이 열립니다.


바로 Runeaudio 를 사용할 수도 있으나 소리가 안 날 수도 있으며 16bit 음원 재생 시 잡음이 들릴 수도 있습니다.



3. 뮤직플레이어 Runeaudio 설정


Raspberry Pi에 Runeaudio 이미지 파일이 설치되면  Runeaudio 의 설정 값을 변경해 주어야 정상적으로 사용할 수도 있습니다.


다음 2가지 작업을 하기 위해서 PC에 프로그램을 하나 더 설치 해 주어야 합니다.


Putty 라는 통신 프로그램으로 PC와 Raspberry Pi와 접속하여 Raspberry Pi의 내부 설정 값을 변경 할 수 있습니다.


http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html


에서 putty.exe 를 다운로드 하여 실행합니다.



3-1. 어셈블리오디오에서 사용하는 I2S 방식 DAC에 관한 설정.


사용한 DAC : ES9018K2M 


PC에서 putty 실행 "Host Name"에 Raspberry Pi 의 IP 주소를 넣고 엔터

열린 창에서 


Login as : root

Password : rune



사진과 같이 다음을 입력합니다.


# cd /Enter

# cd /boot Enter

# nano config.txt Enter


새로 열리는 도스창에서 아래와 같이 수정 및 문장 추가를 합니다.



1, 2, 3 행 맨 앞에 "#" 을 삭제합니다.




 4, 5, 6, 8 행 맨 앞에 "#" 을 삭제합니다.

7 행은 새로 추가 작성 합니다. 

dtoverlay=rpi-dac


모두 작성 후 Ctrl + o 키 누르고,  

Enter 키 누르고,

Ctrl + x 키를 눌러 나옵니다.


# reboot Enter


재 부팅합니다.



PC 또는 스마트폰에서 Runeaudio를 접속하고 우측 상단에 "MENU" 를 클릭하고 "MPD" 를 클릭하면 위 화면이 열리며, Audio output interface 항목을 클릭하여 "snd_rpi_rpi_dac" 을 선택합니다.


하단 중앙에 Playback 탭을 클릭하면 Runeaudio를 사용할 수 있습니다.



3-2. 16bit 음원 재생 시 잡음문제 해결방법.

내용 추가 예정 입니다.


관련 정보는 http://cafe.naver.com/audiostudy ,  http://cafe.naver.com/pipc 를 참고하세요.



4. MPU 유니트의 규정:


4-1. MPU의 I2S 출력(Main Board 방향): 

커넥터 P1 (2x32, Female, Right Angle) 의 Pin 47, 48, 49 50 으로 출력됩니다. 

모두 3.3V 레벨 신호입니다.


Data Out:  Pin 47, 

LRCK Out: Pin 48, 

BCK Out:  Pin 49 

MCLK Out: Pin 50


4-2. MPU의 I2C 입/출력과 인터럽트(INT) 입/출력(Main Board 방향)

커넥터 P1 (2x32, Female, Right Angle) 의 Pin 9, 10, 7 으로 출력됩니다. 

모두 3.3V 레벨 신호입니다. 

또한, 메인보드에 설치된 각 유니트를 제어 할 경우에 한해서 I2C 신호가 Main Board 선로에 존재해야 합니다. (I2C Master에서 제어) 즉  유니트를 제어하는 경우에만 I2C 신호가 존재하고 그렇지 않은 경우에는 0V 레벨 또는 3.3V 레벨로 고정되어 있어야 합니다. (노이즈 최소화 목적)


SDA 입/출력: Pin 9

SCL 입/출력: Pin10

INT 입/출력: Pin 7


4-3MPU의 I2C 입/출력과 인터럽트(INT) 입/출력(Controller Board 방향)

커넥터 P4 (1x5, Male) 의 Pin 3, 4, 2 로 출력됩니다. 

모두 3.3V 레벨 신호입니다. 

또한, 메인보드에 설치된 각 유니트를 제어 할 경우에 한해서 I2C 신호가 Main Board 선로에 존재해야 합니다. (I2C Master에서 제어) 즉  유니트를 제어하는 경우에만 I2C 신호가 존재하고 그렇지 않은 경우에는 0V 레벨 또는 3.3V 레벨로 고정되어 있어야 합니다. (노이즈 최소화 목적)


SDA 입/출력: Pin 3

SCL 입/출력: Pin4

INT 입/출력: Pin 2

+5V 전원: Pin 1
GND: Pin 5


4-4. I2C Master 선택 및 설정

메인보드에 설치된 각 유니트를 제어하는 Master 를 두 가지 방법에서 선택 할 수 있습니다.


첫 번째 방법으로, Controller Board를 Master로 사용하는 방법.

LCD Display와 키로 구성된 Controller Board 에 의해서 제어하는 방법입니다. Controller Board 와 P4를 케이블(5 Pin, 1:1 결선)로 연결하고, P2의 해당 핀을 오픈 하면 됩니다. 

(핀 1과 2, 핀 3과 4, 핀 5와 6을 모두 단선)


두 번째 방법으로, Raspberry Pi를 Master로 사용하는 방법.

Raspberry Pi 에서 직접 메인보드를 제어를 할 수 있다면(Raspberry Pi 의 SD 카드에 해당 프로그램을 설치해야 합니다. 프로그램 개발이 필요합니다) MPU 유니트 보드의 P2의 해당 핀을 점퍼로 연결해 주고 P4는 사용하지 않으면 됩니다. (핀 1과 2, 핀 3과 4, 핀 5와 6을 모두 쇼트)



다음 제 3 부에서는 DAC 유니트에 대해서 알아 보겠습니다.



- 누구에게든 새로운 기회가 되기를 바랍니다 -


Comments