본문 바로가기
DSP/ADAU1701

ADAU1701(2) DSP 보드 준비와 Throw 실험

by gigasound 2021. 12. 13.

 

 

 

 


ADAU1701 보드 준비 - Throw 실험

이번 글에서는 ADAU1701의 보드를 처음에 어떻게 설치해서 사용해야 하는지 설명하겠습니다. 

그리고 마음 급하신 분들을 위해서 입력 신호를 출력으로 그냥 내보내는 Throw를 구현해 보겠습니다. 

좀 긴 내용입니다. 


SigmaStudio 설치

앞선 글에서 설명한 것과 같이 AnalogDevice에서 SigmaStudio를 구해서 설치합니다. 모든 프로그램이 그렇지만 SigmaStudio도 내용을 알면 사용하기 편리합니다. 지긋지긋한 코딩의 양도 확 줄어들고, 실제 DSP를 동작하고 조정하는 것도 가능합니다. 이를 위해서라도 USBi는 무조건 필요합니다. 

설치가 하고 실행하면 아래와 같은 프로그램이 보입니다. 이제 시작입니다.  

 


보드 준비

보드와 USBi를 먼저 연결하고 과감하게 노트북에 USB를 연결합니다. USBi를 잘못 연결하면 다시 사야 되니까 조심하세요.  제 보드에는 검은색 선이 아래쪽(10번 핀)으로 되어 있네요. 다른 보드는 가끔 방향이 거꾸로 된 경우도 있습니다. 

PC의 장치관리자에서 USBi가 보여야 합니다. 이게 안 보이면 큰일이죠. 이때는 SigmaStudio를 설치하시고 c:\..\AnalogDevices\SigmaStudio 4.6\Setup이나 USB drivers의 내용을 이용해서 드라이버를 설치하시면 됩니다. 


SigmaStudio에서 프로젝트 생성

  • SigamStudio는 프로젝트 단위로 DSP를 구현하게 됩니다. 프로그램에서 File->New Project를 실행하면 갑자기 프로그램 왼쪽의 Tree ToolBox에 SigmaStudio에서 취급 가능한 DSP, 코덱, 주변 장치들이 보이게 됩니다.
  • 이상태에서 먼저 File->Save로 적당한 이름으로 프로젝트를 기록합니다. 먼저 하시는 게 좋습니다. 이 프로젝의 특성을 고려해서 ..\ADAU1701\Throw\Throw.dspproj로 기록했습니다.

Hardware Configuration

  • 프로젝트에서 제일 먼저 할 일은 Tree ToolBox에서 사용될 장비를 끌어다가 Hardware Configuration 화면에 배치하는 것입니다.
  • 이 화면은 어떤 DSP를 주변 소자와 어떻게 사용할지 결정합니다. 이때 중심이 되는 것은 DSP가 아니고 USBi입니다.
  • 먼저 아래 그림과 같이 부품을 배치합니다. 이때 USB가 USBi를 의미하며 색상이 적색이면 SigmaStudio와 USBi가 연결되지 않았다는 뜻입니다. 잘 연결해서 이 부분을 녹색이 되게 해야 합니다.
  • 위의 글처럼 장치 관리자에서 USBi가 보이면 SigmaStudio에서도 잘 연결된 상태로 보입니다.
  • ADAU1701과 E2Prom을 배치합니다. ADAU1701은 우리가 사용할 DSP이름이고, 처음에는 E2Prom을 사용하지 않아도 되지만 나중에는 이걸 어차피 활용해야 하기 때문에 여기서 설명하겠습니다.
  • ADAU1701은 기록 능력이 없습니다. 그래서 DSP가 동작하는 방식은 E2Prom에 기록해서 사용합니다. 특별한 경우가 아니고서는  ADAU1701가 부팅할 때 연결되어 있는 E2Prom의 내용을 읽어와 초기화합니다.
  • 각 부품에 보면 마름모 꼴의 연결 포트(port)가 보입니다. 이 포트에 마우스를 이동한 다음에 클릭하면서 원하는 다른 포트로 연결하면 두 장치가 연결됩니다. 포트의 종류도 여러 가지가 있어서 서로 맞지 않는 포트면 연결 자체가 안 됩니다.
  • 이 포트 연결 기능은 SigmaStudio가 쉽게 DSP를 구현하게 해주는 막강한 기능입니다. 포트의 연결은 부품 간 통신 연결이자 오디오 신호의 흐름을 만드는 방법입니다.

  • 아래 그림과 같이 연결합니다. 그러면 USBi에 I2C라는 것이 두 개 보입니다. USBi가 두 부품을 I2C로 연결하고, 통신하는 주소를 보여주고 있습니다. 
  • 이 내용은 USBi가 두 부품을 인식하고 제어할 준비가 되었다는 것입니다. 참으로 편리합니다.
  • 연결선을 삭제하고 싶으면 선 위에 마우스를 올려놓고 삭제(Delete) 키보드를 누르면 끝입니다.
  • 부품을 마우스로 선택하고 이동하면, 연결선도 자동으로 변경됩니다. 참으로 편리합니다. 이 기능을 직접 C#으로 구현해 봤는데 고려해야 할 내용이 많아서 고생한 적이 있습니다. 


Schematic

  • 화면의  Hardware Configuration 옆에 보면 Schematic이 생성되어 있을 것입니다.
  •  Schematic은 DSP에 신호 흐름을 그리는 곳입니다.

  • 이곳을 클릭해서 진입합니다. 그러면 아무것도 안 보이지만 Tree ToolBox의 모습이 변합니다.  
  • 이곳에서 원한 DSP 기능을 찾아서 Schematic에 배치하고 포트를 연결하는 작업이 SigmaStudio에서 DSP를 구현하는 전부입니다.
  • Tree ToolBox의 DSP 기능은 사용하는 DSP에 따라서 조금씩 다릅니다. 이는 AnalogDevice의 Sigma-DSP의 종류에 따라 결정됩니다. 


입출력 포트의 설정 

  • Schematic에서 가장 먼저 해야 할 일은 DSP이 입출력 포트를 설정하는 일입니다.
  • ADAU1701에도 입출력 특성을 사용자가 조정할 수 있으나, 편리하게 사용하기 위해서 별도의 외부 코덱을 사용하지 않고 ADAU1701에 포함된 코덱을 사용하겠습니다.   
  • Tree ToolBox에서 아래 그림과 같이 Input과 Output을 선택해서 화면에 배치합니다.
  • Input은 하나만 선택이 가능하고 Output은 DSP에 따라 선택할 수 있는 숫자와 종류가 다릅니다. ADAU1701은 4개의 DAC로 출력을 설정할 수 있습니다.

 

  • 입출력 포트를 배치한 예입니다. 원하는 데로 배치하면 됩니다. 그리고 원하는 위치로 이동도 가능합니다. 이때 입력 포트에는 두 개 마 활성 표시가 되어 있습니다. ADAu1701에 기본 입력이 2개이기 때문입니다. 

  • 일단 간단한 Throw 실험을 위해 DAC2와 DAC3는 삭제하고 입출력 포트를 직접 연결합니다. 그러면 회로 작업은 끝입니다. 


ADAU1701 내부 설정 보기

  • ADAU1701의 입출력 설정을 확인해 보겠습니다.
  • 화면의 Hardware Configuration을 선택하고 아래에서 IC1 - 170x\140x Register Control을 선택하면 복잡한 화면이 보입니다.
  • 이 화면이 ADAU1701의 기능을 설정하는 중요한 화면입니다. 뮈 굳이 지금은 건들 이유는 없고 단지 입력과 출력 내용을 한번 보기 위해서 사용합니다. 
  • 아래 그림의 위쪽에 보면 Real All 버튼이 있습니다. 이 버튼이 현재 ADAU1701의 설정 상태를 읽어와서 화면에 표시하게 도와줍니다. 
  • Audio ADCs에 두 개의 입력이 있고 이것이 Schematic에서 보인 Input에 해당합니다. 
  • Audio DACs에 네 개의 출력이 있습니다. 이것이 Schematic에서 보인  DAC 출력에 해당합니다.
  • ADC와 DAC가 모두 DSP Core와 연결되어 있으며 DSP Core가 실제 신호처리 연산을 수행하는 곳입니다. 


Compile

  • 다시 Schematic으로 돌아갑니다.
  • 현재 프로젝트라면 굳이 돌아갈 필요는 없지만, 나중에는 오류를 보기 위해서 Schematic에서 작업하는 것이 좋습니다.
  • 컴파일은 Schematic의 내용을 분석해서 오류를 찾거나, DSP에 신호처리를 수행하는 코드를 만들고, DSP에 이를 복사하는 역할을 수행합니다. 
  • 컴파일러는 크게 세 개의 버튼에 의해 수행됩니다. 

  • 첫 번째 버튼인 Link Project는  Schematic의 내용이 적합한지 검사하는 기능으로 보시면 됩니다. 
  • 그러면 아래 그림과 같이 DSP에 신호 흐름이 어떻게 연결되고 적합한지 보입니다. 이때 오류가 발생하면 Error/OUtput에 내용이 보입니다. 

  • 창을 닫고 두 번째 버튼인 Link compile connect를 실행합니다. 
  • 그러면 프로그램 아래 Capture 부분에 뭐라고 나옵니다. 그냥 무시하세요. 잘 되었단 뜻입니다.

  • 마지막으로 세 번째 버튼인 Link Compile Project를 눌러서 DSP에 컴파일된 DSP 코드를 복사하면 됩니다. 
  • 이번엔 아래 Capture 부분에 색이 변하면서 뭐라고 나옵니다. 잘 된 것입니다.


실험

  • 아래 보드에서 분홍색 오디오 커넥터가 입력 포트입니다. 여기에 입력 신호를 연결합니다. 
  • 출력은 아래 부분의 오른쪽이 DAC0,1에 해당합니다. 여기에 스피커나 이어폰을 연결해서 들으면 됩니다.  
  • 입력 신호가 그대로 출력되는데, 매우 깨끗하게 들립니다. 

 

매우 간단하게 구현이 가능합니다. 이게 AnalogDevice의 Sigma-DSP의 편리함입니다. 

다음에는 이퀄라이저를 구현해 보겠습니다.


광고 한 번만 꾹 눌러 주세요. 저에게 도움이 됩니다. 

 

https://github.com/gigasound/ADAU1701.git  


위의 내용을 참조용으로만 사용해주세요. 무단 도용이나 무단 복제는 불허합니다.

기타 문의 사항은 gigasound@naver.com에 남겨 주시면 고맙겠습니다.

'DSP > ADAU1701' 카테고리의 다른 글

ADAU1701(5) 레벨미터, DSP 회로그리기 오류  (0) 2021.12.20
ADAU1701(4) Equalizer, Mute  (0) 2021.12.17
ADAU1701(3) Treble, Bass, Volume  (0) 2021.12.16
ADAU1701(1) 프로젝트 준비  (0) 2021.12.09