ADK 4.3 and Later (Qualcomm BlueCore) Audio Source Application

ADK 4.3 and Later (Qualcomm BlueCore) Audio Source Application USER GUIDE 번역

#qualcomm #csr8675 #adk #translation

ADK 4.3 and Later (Qualcomm BlueCore) Audio Source Application

Overview

오디오 소스 애플리케이션은 QTIL CSR8670 및 CSR8675 IC에서 실행됩니다. Bluetooth를 사용하여 모노 또는 스테레오 오디오 싱크(예: 헤드셋, 사운드바 또는 스피커)에 연결됩니다. 이것은 블루투스 장치가 VoIP(Voice over IP) 통화를 걸거나 받을 수 있도록 하고 PC(Personal Computer)에서 재생되는 음악을 들을 수 있도록 합니다. 또한 iPod 또는 휴대폰과 같은 미디어 플레이어와 같은 다른 휴대용 음악 플레이어 장치에서 Bluetooth를 통해 재생되는 음악을 들을 수 있습니다. 오디오 소스 응용 프로그램은 플러그 앤 플레이 솔루션입니다. 따라서 PC나 기타 음악 재생 장치에 소프트웨어를 설치할 필요가 없습니다. 오디오 소스 응용 프로그램은 4가지 모드에서 작동합니다.

  • USB
  • 아날로그
  • SPDIF
  • I2S

USB 모드에서 연결하면 오디오 소스가 사운드 카드로 열거되고 PC의 기본 오디오 장치가 됩니다. 모든 주요 VoIP 소프트웨어 및 가장 인기 있는 음악 제공업체와 호환됩니다. 아날로그 모드에서 음악 플레이어의 오디오 출력은 오디오 소스 응용 프로그램에 입력됩니다. 결과적으로 휴대용 미디어 플레이어 및 PC에 적합합니다. SPDIF 모드에서 소스 응용 프로그램은 PCM SPDIF 입력을 수락하고 오디오 싱크에 대한 Bluetooth 링크를 통해 오디오를 스트리밍합니다. I2S 모드에서 소스 응용 프로그램은 ATF 보드에서 I2S 입력을 받아들이고 Bluetooth 링크를 통해 오디오를 오디오 링크로 스트리밍합니다. 오디오 소스 애플리케이션은 “ADK 오디오 소스 애플리케이션의 PS 키 구성”에 설명된 구성 PS 키를 사용하여 사용자 정의됩니다. 이를 통해 소스 코드를 변경하지 않고도 오디오 소스의 동작을 변경할 수 있습니다.

To flash the Audio Source application onto suitable hardware

  1. ADK 프로그램 폴더에서 xIDE를 엽니다.
  2. 프로젝트 > 작업 공간 열기를 선택하고 앱 하위 디렉토리에서 소스 애플리케이션을 선택합니다.
  3. 애플리케이션은 USB 모드의 CSR8670/CSR8675 하드웨어에서 실행되도록 설정됩니다. 하드웨어 또는 오디오 모드를 변경하려면 xIDE 프로젝트 환경을 설정하려면을 참조하십시오.
  4. 디버그 > 전송을 선택하고 필요한 전송을 선택합니다.
  5. 빌드 > 활성 프로젝트 빌드(F7)를 선택합니다.
  6. 디버그 > 실행(F5)을 선택합니다.
  7. 관련 PS 키는 소스 프로젝트에 의해 하드웨어에 자동으로 병합됩니다. (참고) 하드웨어에 이미지가 없는 경우 PSTool 응용 프로그램을 사용하여 PS 키를 수동으로 병합합니다. 먼저 source.psr을 병합한 다음, 다음을 수행합니다. □ USB 모드용 source_usb.psr
  8. 이제 응용 프로그램이 하드웨어에서 실행됩니다.

To pair and connect the audio source and an audio sink device

  1. 싱크 기기를 켜고 페어링 모드로 전환합니다.
  2. 오디오 소스 장치를 플러그인\켭니다. 처음에 오디오 소스 장치는 RSSI 레벨을 기반으로 페어링 및 연결에 적합한 장치를 찾습니다. 그런 다음 RSSI 신호가 가장 강한 장치가 연결됩니다.
  3. 추가 헤드셋 장치를 검색하고 페어링하려면 오디오 소스 장치의 MFB 버튼을 2초 동안 누르고 있습니다.
  4. MFB 버튼을 짧게 눌러 이전에 페어링한 장치에 다시 연결합니다.

To clear the source application’s paired device list

경우에 따라 성공적인 연결 또는 재연결을 위해 PDL을 지워야 합니다. 이렇게 하려면 오디오 소스 장치의 MFB 버튼을 7초 동안 누릅니다. 참고 PDL 지우기는 오디오 소스 응용 프로그램이 모든 장치에서 연결 해제된 경우에만 발생합니다. 오디오 소스 응용 프로그램이 장치에 연결되어 있으면 PDL을 지우기 전에 연결이 끊어집니다.

To set up USB mode on the Audio Source application

이 섹션에서는 USB 모드에서 오디오 소스 장치를 사용하여 Skype로 전화를 걸고 음악을 재생하도록 PC를 설정하는 방법에 대해 설명합니다. 오디오 소스 응용 프로그램은 기본적으로 USB 모드에서 실행됩니다. USB와 아날로그 또는 SPDIF 모드 간 전환은 “xIDE 프로젝트 환경을 설정하려면”에 자세히 설명되어 있습니다.

To install the audio source

  1. 오디오 소스 장치를 컴퓨터의 USB 포트에 삽입합니다.
  2. Windows가 하드웨어를 인식하고 새 하드웨어 발견 창을 표시합니다.
  3. Windows는 오디오 소스 장치를 USB 복합 장치(HID 및 오디오)로 열거합니다.
  4. Windows에서 장치 드라이버를 묻는 메시지가 표시되면 자동으로 소프트웨어 설치를 선택합니다. 필요한 경우 PC를 다시 시작합니다.
  5. Windows는 자동으로 오디오 소스 장치를 “Windows 기본(기본) 오디오 장치”로 설치합니다. 선호하는 사운드 재생 및 사운드 녹음 장치 복원. 오디오 소스 장치를 Windows 오디오의 기본 사운드 장치로 사용하지 않으려면 PC의 운영 체제 지침을 따르십시오. Windows Vista\7:
  6. 사운드 속성 창을 엽니다.
  7. 시작\제어판에서 소리를 클릭합니다.
  8. 재생 탭을 클릭하고 일반적으로 선호하는 사운드 재생 장치를 선택합니다.
  9. 기본값 설정을 클릭합니다.
  10. 녹음 탭을 클릭하고 일반적으로 선호하는 녹음 장치를 선택합니다.
  11. 기본값 설정을 클릭합니다.
  12. 확인을 클릭합니다.

To configure Skype to use the audio source device

  1. Skype 애플리케이션을 엽니다.
  2. Skype 도구 메뉴에서 옵션을 클릭하고 일반\오디오 설정을 선택합니다. a. USB 오디오 장치에 대한 마이크 소스 b. 스피커에서 USB 오디오 장치로 c. USB 오디오 장치에 벨 울림
  3. Skype 도구 메뉴에서 옵션을 클릭하고 고급\핫키를 선택합니다. a. 전화 받기 및 전화 거부/끊기 단축키가 활성화되어 있는지 확인하십시오. b. 선택적으로 호출 무시 기능은 핫키 ALT+End로 설정하여 활성화할 수 있습니다.

To make a Skype call

  1. Skype 애플리케이션을 엽니다.
  2. Skype를 사용하여 전화를 걸면 헤드폰에서 Skype 벨소리가 들립니다.
  3. 발신 전화의 경우 스테레오 헤드셋의 MFB 버튼을 눌러 VoIP 오디오 모드를 선택해야 합니다. 오디오 모드를 수동으로 전환하는 방법에 대한 자세한 내용은 를 참조하십시오.
  4. 헤드셋 MFB 버튼을 사용하여 수신 전화를 수락합니다. 그러면 열려 있는 모든 A2DP 미디어 채널이 닫히고 오디오 소스 장치와의 SCO 오디오 연결이 열립니다.
  5. 헤드셋 MFB 버튼을 길게 누르거나 헤드셋의 미디어 버튼을 눌러 통화를 종료할 수 있습니다. (참고) 모노 헤드셋의 경우 SCO를 통해 벨소리가 재생되고 통화 중에 SCO 연결이 열린 상태로 유지됩니다.

To manually switch audio modes

  • 오디오 소스 장치가 스테레오 헤드셋과 연결된 경우 VOIP SCO 오디오와 Music A2DP 오디오 간에 수동으로 전환합니다. 이는 이전 오디오 어댑터 ADK와 다른 동작입니다.
  • PC에서 음악 감상 시 헤드셋의 미디어 버튼을 이용하여 A2DP를 선택할 수 있습니다. VoIP 오디오가 활성화된 경우 스테레오 헤드셋의 미디어 버튼을 누르면 음악 모드로 전환되고 활성 통화가 종료됩니다.
  • VoIP 응용 프로그램을 사용할 때 헤드셋의 MFB 버튼을 사용하여 SCO를 선택할 수 있습니다. 헤드셋 버튼을 짧게 누르면 SCO 오디오로 전환하고 수신 전화에 응답하는 결합된 효과가 있습니다.
  • VoIP 전화를 받을 때 VOIP 모드가 활성화되어 있지 않으면 헤드셋 마이크가 비활성화될 수 있습니다.

To configure Windows Media Player to use the audio source device

  1. Windows Media Player를 엽니다.
  2. 도구\옵션…으로 이동하여 장치 탭을 선택합니다. (참고) 도구 메뉴에 액세스하려면 머리글 표시줄을 마우스 오른쪽 버튼으로 클릭합니다.
  3. 스피커를 선택하고 USB 오디오 장치를 사운드 재생 장치로 선택합니다. (참고) Windows의 경우 CSR 오디오 소스를 선택합니다.

To set up Analog mode in the Audio Source application

이 섹션에서는 오디오를 스트리밍하기 위해 아날로그 모드에서 오디오 소스 장치를 사용하는 방법을 설명합니다. 아날로그 모드에서는 음악을 재생하기 위해 PC나 휴대용 미디어 플레이어를 설정할 필요가 없습니다. 오디오 소스 응용 프로그램은 기본적으로 USB 모드에서 실행됩니다. USB와 아날로그 모드 간 전환은 “다양한 입력 소스 모드 지원”에 자세히 설명되어 있습니다.

To connect the audio source to the music player device

오디오 소스 장치의 입력 라인을 뮤직 플레이어 장치의 오디오 콘센트에 연결합니다. 예를 들어, PC의 경우 입력 라인을 아날로그 스피커 출력에 연결합니다.

To set up SPDIF mode in the Audio Source application

이 섹션에서는 SPDIF 모드에서 오디오 소스 장치를 사용하여 오디오를 스트리밍하는 방법을 설명합니다. (참고) SPDIF에서 음악을 재생하기 위해 PC 또는 휴대용 뮤직 플레이어를 설정할 필요가 없습니다. “오디오 소스 응용 프로그램에서 SPDIF 모드를 설정하려면”에서는 장치를 SPDIF 입력 모드로 전환하는 방법을 설명합니다.

To connect audio source to the SPDIF device

CSR8670 및 CSR8675 개발 보드를 사용할 때 SPDIF를 지원하려면 Qualcomm® H13191 커넥터 보드가 필요합니다. 예를 들어 SPDIF가 있는 USB 사운드 카드가 있는 PC의 경우 사운드 카드 SPDIF 출력을 H13191 커넥터 보드의 입력에 연결합니다.

To set up I2S mode in the Audio Source application

이 섹션에서는 오디오를 스트리밍하기 위해 I2S 모드에서 오디오 소스 장치를 사용하는 방법을 설명합니다.

To connect the Source application to I2S input

소스 애플리케이션은 구성 도구를 사용하여 I2S 입력을 수락하도록 구성할 수 있습니다. I2S 모드는 적합한 I2S 소스 장치에서 소스 애플리케이션을 실행하는 개발 보드에 I2S 입력을 직접 제공하여 테스트할 수 있습니다. 이 오디오는 Bluetooth를 통해 연결된 Sink 장치로 스트리밍됩니다.

To set the xIDE project environment

컴파일 시간 옵션을 변경하여 다른 애플리케이션 빌드를 만들 수 있습니다. 그런 다음 소스 애플리케이션 프로젝트 속성에서 선택하고 필요에 따라 활성화 또는 비활성화할 수 있습니다. 이러한 옵션은 다음에서 자세히 설명합니다.

사용 중인 하드웨어에서 지원하지 않는 프로젝트 옵션을 포함하면 다음 오류가 발생할 수 있습니다.

응용 프로그램은 펌웨어가 지원하지 않는 트랩 세트를 사용합니다.

Supporting different input source modes

오디오 소스 애플리케이션은 USB, 아날로그 및 SPDIF 입력 모드를 지원합니다. USB 및 아날로그/SPDIF 모드에서 사용할 수 있는 다양한 기능이 있습니다. 따라서 USB 또는 USB가 아닌 기능으로 컴파일하는 빌드 컨트롤이 있습니다.

  1. Run xIDE, and open the source.xiw workspace. \apps\source
  2. 필요한 입력 소스로 프로젝트 속성을 수정하십시오. 유선 입력 옵션을 사용으로 설정하면 USB가 아닌 아날로그 또는 SPDIF 입력 모드에 대한 애플리케이션이 구성됩니다.
  3. USB 작업 및 I2S 작업을 위해 source.psr 및 source_usb.psr을 로드합니다. (참고) 유선 오디오의 경우 프로젝트 속성에서 ‘유선 입력’을 활성화하십시오.
  4. 입력 모드는 사용자가 다른 사용 가능한 소스를 구성할 수 있는 옵션이 있는 구성 도구(구성 설정>오디오>입력 유형)를 사용하여 구성됩니다. USB 구성을 위한 사용자 PS 키를 변경하여 런타임에 입력 모드를 결정할 수도 있습니다. USB 오디오가 구성되지 않은 경우 아날로그/SPDIF 입력 모드로 대체됩니다. 그러나 이 경우 나머지 애플리케이션은 아날로그 또는 SPDIF 모드에 대해 올바르게 구성되지 않을 수 있습니다. 예를 들어 지원되는 아날로그, SPDIF 및 USB 모드에 필요한 샘플 속도는 다를 수 있습니다.

Supporting DualStream in the Audio Source application

DualStream 기능을 지원하려면 프로젝트 속성에서 DualStream 옵션을 설정하십시오. 그런 다음 ADK 구성 도구를 사용하여 소스 애플리케이션에서 DualStream을 활성화해야 합니다. 이렇게 하려면 소스 구성 도구의 “설정>Bluetooth>듀얼스트림” 구성 페이지에서 듀얼 스트림 활성화 및 ‘두 장치 모두 연결’ 옵션을 활성화합니다. 사용자는 소스가 연결하려는 두 번째 장치의 Bluetooth 주소를 지정할 수 있습니다.

Enabling button operation in the Audio Source application

프로젝트 속성에서 버튼 옵션을 설정하면 애플리케이션에서 버튼 처리가 활성화됩니다. 버튼 이벤트는 버튼이 source_buttons.button에 정의되어 있는 ButtonParsePro 생성 도구를 사용하여 생성됩니다.

Enabling LED operation in the Audio Source application

프로젝트 속성에서 Leds 옵션을 설정하면 애플리케이션에서 LED 처리가 활성화됩니다. LED 이벤트는 LedParse 생성 도구를 사용하여 생성되며, 여기서 LED는 source_leds.led에 정의됩니다.

Enabling debug output in the Audio Source application

프로젝트 속성에서 디버그 인쇄 옵션을 설정하면 디버그 출력이 활성화됩니다. 특정 파일에 대한 디버그는 source_debug.h 파일을 편집하여 활성화 및 비활성화할 수 있습니다.

Supporting different development boards

오디오 소스 애플리케이션은 두 가지 개발 보드를 지원합니다.

  • H13179 with H13374 module (CSR8675)
  • CNS10001 (CSR8670)

기본적으로 ADK 프로젝트 속성은 USB 모드에서 CSR8670 개발 보드를 지원하도록 설정됩니다. 지원되는 보드를 변경하려면 프로젝트 속성에서 필요한 Qualcomm® BlueCore™ 하드웨어 유형 및 플래시 크기를 선택하십시오(또는 개발 보드가 연결된 쿼리 칩 선택).

Adding Microsoft Lync support

프로젝트 속성에서 MS LYNC 전용 옵션을 설정하면 HFP 전용 오디오 소스가 빌드되고 USB 속도는 16kHz가 됩니다. 즉, USB 속도와 광대역 음성 코덱 속도 간에 샘플 속도 변환이 필요하지 않습니다.

Changing mic channel from 48 kHz to 16 kHz USB rate

기본 USB 속도는 스피커(USB에서 오디오 수신) 및 마이크(USB로 오디오 전송) 모두에 대해 48kHz입니다. 마이크 속도는 프로젝트 속성에서 MIC 16k 사용 옵션을 설정하여 16kHz로 변경할 수 있습니다. USB_MIC_16K 정의는 관련 DSP 애플리케이션에서도 사용해야 합니다.

Including power readings for analog input mode

프로젝트 속성에서 MS LYNC 전용 옵션을 설정하면 하드웨어에서 전력 판독값을 수신합니다. 그런 다음 PSKEY_USR16을 사용하여 판독값을 구성할 수 있습니다. 이렇게 하면 전원 라이브러리가 초기화되는 방식이 변경됩니다. source_power 애플리케이션 파일은 전원 요구 사항을 충족하도록 수정할 수 있습니다.

Configuring A2DP Codecs in the application

기본적으로 a2dp 라이브러리는 등록된 스트림 끝점을 기반으로 A2DP 코덱을 구성합니다. 애플리케이션이 대신 A2DP 코덱을 구성하려는 경우 프로젝트 속성에서 앱 코덱 구성 옵션을 설정합니다. 그런 다음 A2DP_CODEC_CONFIGURE_IND 메시지가 애플리케이션으로 전송되고 애플리케이션 코드는 필요에 따라 이 메시지를 처리할 수 있습니다. 예제 코드는 가이드로 존재합니다.

USB implementation

USB device enumeration under USB mode

USB 인터페이스를 사용하여 랩톱/PC에 연결하면 오디오 소스 장치는 3개의 개별 인터페이스를 제공하는 복합 장치로 열거됩니다.

  • USB Audio Device : 48kHz 16비트 스테레오 싱크 및 48kHz 16비트 모노 소스를 제공하는 양방향 등시성 끝점입니다. 이렇게 하면 오디오 소스 장치가 스테레오 스피커와 모노 마이크 한 쌍으로 표시될 수 있습니다.
  • HID Compliant Consumer Control Device : 오디오 소스 장치가 PC에 미디어 플레이어 제어 명령을 내릴 수 있도록 하는 인터럽트 끝점입니다. 이를 통해 오디오 소스 장치는 오디오 싱크(예: 헤드셋)에서 수신한 AVRCP 명령을 PC로 전달하여 Microsoft의 표준 미디어 플레이어 제어 명령을 이해할 수 있는 음악 플레이어를 제어할 수 있습니다. 이 끝점은 또한 공급업체에서 정의한 명령을 USB 호스트로 보내고 받을 수 있도록 합니다. 애플리케이션에는 기본 공급업체 동작이 구현되어 USB 호스트가 오디오 소스 애플리케이션의 상태를 변경할 수 있고 오디오 소스 장치가 호스트에 상태를 다시 보고할 수 있습니다. 송수신 데이터에 대한 자세한 내용은 섹션 4.2를 참조하십시오.
  • USB Human Interface Device : 오디오 소스 애플리케이션이 PC에 키 코드를 발행할 수 있도록 하는 인터럽트 엔드포인트. 이를 통해 오디오 소스 장치는 Skype와 같은 응용 프로그램을 제어하기 위해 전역 단축키 키 코드를 제공할 수 있습니다.

지원되는 인터페이스는 USB PS 키(PSKEY_USR9)를 사용하여 변경할 수 있습니다. 예를 들어 단방향 오디오만 구현하거나 소비자 컨트롤을 비활성화할 수 있습니다.

USB host communication

기본 HID 소비자 제어 보고서 설명자에는 표준 미디어 명령 외에 호스트와 오디오 소스 장치 간에 공급업체 보고서 데이터를 보낼 수 있도록 공급업체 정의 섹션이 있습니다. 이 공급업체 섹션은 공급업체 요구 사항에 맞게 변경할 수 있습니다. 현재 이 인터페이스는 ADK에 포함된 DongleHost PC 애플리케이션과 통신하는 데 사용되므로 Bluetooth SIG PTS 도구를 사용하여 HFP v1.7 자격 테스트를 실행할 수 있습니다. 응용 프로그램에 사용된 인터페이스는 USB 장치 대 호스트\호스트 대 장치 보고서입니다.

  • 오디오 소스 장치는 보고서 ID가 2인 USB 호스트에 보고서 데이터를 보냅니다.
  • 오디오 소스 장치는 보고서 ID가 2인 USB 호스트로부터 보고서 데이터를 수신합니다.

USB host to device commands

Host connection (0x00)

Get\set state (0x01)

AG call state (0x02)

Signal strength (0x03)

Battery level (0x04)

AG Audio (0x05)

Network (0x06)

AG error (0x07)

AG OK (0x08)

Current call (0x09)

Voice recognition (0x0a)

HF indicator (0x0b)

Link mode (0x0c)

USB device to host commands

Device state (0x00)

Call (0x01)

HFP Audio state (0x02)

Voice recognition (0x03)

Link mode (0x04)

DualStream

DualStream 기능을 사용하면 오디오 소스 장치가 동시에 2개의 A2DP 싱크 장치, 가장 일반적으로 2개의 A2DP 헤드셋으로 오디오를 스트리밍할 수 있습니다.

Using DualStream in the audio source device

섹션 2.2에 설명된 절차를 사용하여 두 개의 A2DP 싱크 장치를 페어링하고 오디오 소스 장치에 연결할 수 있습니다. 두 개의 A2DP 싱크 장치가 연결되면 오디오 소스에서 보낸 동일한 오디오 스트림이 두 장치에서 모두 들려야 합니다. 오디오 소스 응용 프로그램은 하나의 A2DP 장치에 대한 연결만 자동으로 시작하거나 두 개의 A2DP 장치에 대한 연결을 시도하도록 구성할 수 있습니다. 이 동작은 PSKEY_USR2의 자동 연결 보조 장치 기능을 사용하여 변경할 수 있습니다. 또는 MFB 버튼을 눌러 첫 번째 연결을 끊지 않고 오디오 소스 장치에서 두 번째 연결을 시작할 수 있습니다. (참고) 오디오 소스 장치가 두 번째 장치에 연결을 시도하는 동안 오디오가 일시 중단됩니다.

Codecs used in DualStream mode

A2DP를 동시에 두 장치로 스트리밍할 때 사용할 수 있는 유일한 A2DP 코덱은 다음과 같습니다.

  • SBC
  • Qualcomm FastStream
  • Qualcomm aptX

두 스트림 모두 동일한 코덱을 사용하도록 구성해야 합니다. 다른 코덱을 사용하도록 구성된 두 번째 스트림이 연결되면 오디오 소스 응용 프로그램은 두 스트림을 모두 닫았다가 SBC 코덱을 사용하여 다시 엽니다.

aptX Low Latency는 DualStream 모드에서 지원되지 않습니다.

Behavior of DualStream implementation

DualStream 모드가 활성화되면 오디오 소스 장치는 항상 두 링크 모두에 대해 마스터 역할을 선호합니다. 이것은 최고 품질의 오디오를 유지합니다. SBC 코덱의 경우 오디오 소스 장치가 스캐터넷 시나리오에 들어가면 드롭아웃이 발생하지 않는 오디오 스트림을 유지하기 위해 비트풀이 동적으로 낮아집니다. 링크 중 하나에 링크 손실이 발생하면 나머지 링크가 중단 없는 스트리밍을 계속할 수 있고 전송의 영향을 받지 않도록 비트풀을 더 낮출 수 있습니다. 잘못된 링크에서 발생합니다. 정상 작동, 스캐터넷 시나리오 및 불량 링크 시나리오에서 사용되는 비트풀은 모두 기본 애플리케이션에서 DSP로 전송되며 기본 설정을 변경할 필요가 없지만 애플리케이션 엔지니어가 수정할 수 있습니다.

Limitations of DualStream implementation

이 섹션에서는 DualStream 모드와 관련된 몇 가지 제한 사항을 나열합니다.

  • DualStream 작동 중에 두 스트림은 동일한 구성을 공유해야 합니다. 즉, 코덱, 샘플링 속도 등의 차이가 없어야 합니다. 오디오 소스 애플리케이션은 필요한 경우 스트림을 재구성하여 이러한 경우를 보장합니다.
  • A2DP 오디오의 높은 표준을 유지하려면 두 개의 스트림이 활성 상태일 때 Bluetooth EDR 장치만 사용해야 합니다. 기본 동작은 오디오 소스 응용 프로그램이 A2DP 연결에서 원격 장치의 기능을 확인하는 것입니다.
  • 두 번째 장치가 연결되고 장치 중 하나가 Bluetooth EDR을 지원하지 않으면 두 번째 연결이 끊어집니다.
  • 두 개의 장치로 스트리밍할 때 저지연 코덱을 사용하는 경우 오디오 소스 장치가 두 링크의 마스터여야 한다는 제한이 있습니다. 그렇지 않으면 오디오 품질이 눈에 띄게 저하됩니다. 이는 수신기의 버퍼링이 제한되어 있는 코덱의 낮은 대기 시간 특성 때문입니다. 저지연 코덱은 단방향 오디오 전용으로 구성해야 합니다. 즉, 오디오는 오디오 소스 장치에서만 전송되어야 합니다.

Audio source states

오디오 소스 애플리케이션은 다음 애플리케이션 상태를 정의합니다. 각 Bluetooth 프로필에는 자체 상태 머신이 있지만 애플리케이션에서 사용하는 기본 상태 머신은 다음과 같습니다.

  • SOURCE_STATE_INITIALISING : 하드웨어에 전원이 공급된 직후 오디오 소스 응용 프로그램은 응용 프로그램을 사용할 수 있도록 설정하는 동안 초기화 중 상태로 들어갑니다. 초기화 상태에서 PS 구성을 읽고 Bluetooth 프로필을 초기화합니다.
  • SOURCE_STATE_POWERED_OFF : 오디오 소스 장치는 아날로그 또는 SPDIF 모드에서 전원을 끌 수 있습니다. 이 상태는 하드웨어의 전원이 켜져 있지만 장치의 전원이 논리적으로 꺼져 있을 때 사용됩니다.
  • SOURCE_STATE_TEST_MODE : 이 상태는 오디오 소스 애플리케이션이 DUT(테스트 중인 장치) 모드로 들어갈 때 입력됩니다.
  • SOURCE_STATE_IDLE : 오디오 소스 응용 프로그램은 다음에 입력해야 하는 상태를 결정해야 하는 과도 상태로 유휴 상태가 됩니다. 예를 들어, 장치의 전원을 처음 켜면 IDLE이 되고 다음으로 이동할 상태를 결정합니다. 예를 들어 장치 연결을 기다리는 경우 SOURCE_STATE_CONNECTABLE로 이동하고 페어링할 장치를 문의하는 경우 SOURCE_STATE_INQUIRING으로 이동합니다.
  • SOURCE_STATE_CONNECTABLE : 오디오 소스 장치는 이 상태에서 연결할 수 있습니다. 즉, 어댑터가 다른 작업을 수행하지 않기 때문에 다른 장치를 연결할 수 있습니다.
  • SOURCE_STATE_DISCOVERABLE : 오디오 소스 장치는 이 상태에서 검색 가능합니다. 즉, 어댑터가 다른 작업을 수행하지 않기 때문에 다른 장치와 페어링할 수 있습니다.
  • SOURCE_STATE_CONNECTING : 오디오 소스 장치가 다른 장치에 연결 중입니다.
  • SOURCE_STATE_INQUIRING : 오디오 소스 장치가 페어링 후 연결할 장치를 요청합니다.
  • SOURCE_STATE_CONNECTED : 오디오 소스 장치가 하나 이상의 다른 장치에 연결되어 있습니다.

Man machine interface

MMI(Man Machine Interface)는 완전히 구성할 수 있지만 다음과 같은 기본 동작이 있습니다. 관련 버튼에 할당된 PIO/VREG_EN을 결정하려면 사용 중인 개발 보드의 애플리케이션 구성을 참조하십시오.

  • Power On/Off (for Analog or SPDIF mode) : 아날로그 또는 SPDIF 모드에서 전원 켜기/끄기 버튼은 오디오 소스 장치의 전원 주기를 수행하는 데 사용됩니다. 오디오 소스 장치의 전원이 켜져 있지 않은 경우 전원 켜기/끄기 버튼을 길게 누르면(2초) 오디오 소스 응용 프로그램이 초기화 상태로 들어가 다시 연결을 시도하거나 새 장치 검색을 시작합니다. 오디오 소스 장치의 전원이 켜져 있는 경우 전원 켜기/끄기 버튼을 길게 누르면(2초) 오디오 소스 응용 프로그램이 기존 연결(사용 가능한 경우)을 끊고 장치의 전원을 끕니다.
  • MFB
    • Short Press : 오디오 소스 응용 프로그램이 연결 중 상태를 입력하여 이전에 페어링된 장치에 다시 연결을 시도하도록 합니다.
    • Long Press : 오디오 소스 응용 프로그램이 현재 연결된 장치(있는 경우)에서 연결을 끊고 문의 중 상태로 전환되도록 합니다. 연결할 새 장치를 검색하기 시작합니다. 길게 누르기 지속 시간은 2초입니다.
    • Very Long Press : MFB 버튼을 7초 동안 누르고 있으면 오디오 소스 애플리케이션이 PDL을 삭제합니다.

PS Key configuration

이 부록에서는 응용 프로그램에서 사용하는 사용자 PS 키에 대해 자세히 설명합니다. PS Key 변경 시 PS Key에 상세하게 기재되어 있는 모든 단어를 설정해야 합니다. ADK는 오디오 소스 응용 프로그램에서 사용하는 PS 키를 설정하기 위한 구성 도구를 지원합니다. 도구를 시작하려면 시작 메뉴 아래 ADK의 도구 폴더에 ADK가 설치한 “소스 구성 도구” 바로 가기를 사용합니다. 소스 구성 도구는 소스 PSR 파일을 직접 읽고 쓸 수 있거나 BlueCore 장치에서 USR 키 설정을 읽고 쓰는 데 사용할 수 있습니다. 장치 읽기 버튼은 PS에서 현재 구성을 읽는 데 사용할 수 있습니다. 이렇게 하면 장치에 설정된 현재 구성을 반영하도록 구성 도구가 설정되며, 이 구성에서 수정할 수 있습니다. 그런 다음 메뉴 표시줄에 있는 장치 쓰기 버튼을 사용하여 다음을 수행할 수 있습니다. 메뉴 모음의 드롭다운 메뉴에서 선택한 인터페이스를 통해 개발 보드에 구성을 프로그래밍합니다. (참고) 이 부록에 명시된 모든 값은 16진수입니다.

PSKEY_USR0: Company ID

회사 ID를 나타냅니다.

PSKEY_USR1: Bluetooth Profiles

Bluetooth 프로필은 이 PS 키 내에서 활성화됩니다.

HF 표시기 기능 및 S4 오디오 설정은 HFP v1.7이 활성화된 경우 소스 응용 프로그램에서 기본적으로 활성화됩니다.

PSKEY_USR2: DualStream

DualStream은 이 PS 키를 사용하여 활성화하고 구성할 수 있습니다.

PSKEY_USR3: Features

기능을 변경하는 데 사용됩니다.

중간자 기능 비트: 이 기능 비트를 활성화하려면 중간자 모드를 지원하기 위해 소스 애플리케이션의 추가 고객 개발이 필요합니다. 보안 연결 전용 모드를 테스트하기 위한 테스트 목적으로 활성화해야 합니다.

PSKEY_USR4: SBC Configuration

SBC 구성을 변경하는 데 사용됩니다.

PSKEY_USR5: Faststream configuration

Faststream 구성을 변경하는 데 사용됩니다.

PSKEY_USR6: A2DP Codecs

사용 중인 A2DP 코덱을 변경하는 데 사용됩니다. 연결 기본 설정은 미디어 연결을 시작할 때 코덱을 시도하는 순서를 지정하는 데 사용됩니다. 숫자가 낮을수록 기본 설정이 커집니다(각 코덱에 고유한 번호를 사용해야 함).

PSKEY_USR7: Remote device Bluetooth address

PSKEY_USR3(기능)의 재연결 정책이 마지막 장치에 연결로 설정된 경우 연결할 원격 장치를 지정합니다. 블루투스 주소는 일반적으로 nap:uap:lap 형식으로 표시되지만 여기서는 거꾸로 되어 단어에서 사용되지 않는 비트가 0으로 설정됩니다. 예를 들어, nap:uap:lap 형식의 주소가 다음과 같은 경우 1234:56:789abc, 이 PS 키에 0078 9abc 0056 1234로 입력됩니다.

PSKEY_USR8: Timers

동글에서 사용하는 다양한 타이머를 변경하는 데 사용됩니다.

PSKEY_USR9: USB

동글의 USB 구성을 변경하는 데 사용됩니다.

PSKEY_USR10: aptX configuration

aptX 구성을 변경하는 데 사용됩니다.

PSKEY_USR11: Lower power settings

동글의 저전력 설정을 변경하는 데 사용됩니다. 스니프 모드로 들어갑니다. A2DP 저전력 설정은 이 PS 키의 첫 번째 항목 다음에 HFP 항목이 와야 합니다. 예를 들어 A2DP 테이블 항목 수가 2로 설정되고 HFP 테이블 항목 수가 1로 설정된 경우 항목 1은 첫 번째 A2DP 저전력 설정이고 항목 2는 두 번째 A2DP 저전력 설정입니다. 항목 3은 유일한 HFP 저전력 설정입니다. 총 10개의 저전력 항목이 있을 수 있습니다.

이것은 최대 10개의 항목을 반복합니다.

PSKEY_USR12: HFP Audio Configuration

HFP 오디오 구성 매개변수를 변경하는 데 사용됩니다.

PSKEY_USR13: Second A2DP Device

DualStream이 활성화된 경우 이 PS 키는 PSKEY_USR3(기능)의 연결 정책이 마지막 장치에 연결로 설정될 때 연결되어야 하는 두 번째 A2DP 장치의 두 번째 Bluetooth 주소를 지정할 수 있습니다. 블루투스 주소는 일반적으로 nap:uap:lap 형식으로 표시되지만 여기서는 거꾸로 되어 단어에서 사용되지 않는 비트가 0으로 설정됩니다. 예를 들어, nap:uap:lap 형식의 주소가 1234:56:789abc이면 이 PS 키에 0078 9abc 0056 1234로 입력됩니다.

PSKEY_USR14: aptX Low Latency Configuration

aptX 저지연 구성을 변경하는 데 사용됩니다.

PSKEY_USR15: PIN Codes

레거시 페어링을 사용할 때 시도한 PIN 코드를 변경하는 데 사용됩니다.

PSKEY_USR16: Power readings

INCLUDE_POWER_READINGS 정의가 애플리케이션에서 활성화된 경우 전력 판독값을 구성하는 데 사용됩니다.

PSKEY_USR17: PIO config

SPDIF 입력에 대한 PIO를 구성하는 데 사용됩니다.

PSKEY_CONNLIB0– PSKEY_CONNLIB7: paired remote device stored attributes

이 PS 키는 변경할 필요가 없습니다. 원격 페어링 장치의 속성을 저장하는 데 사용됩니다.

PSKEY_40: Number of Paired Devices

이 PS 키는 저장할 페어링 장치의 수를 설정합니다. 최대 8개의 페어링된 장치입니다. (참고) 이 PS 키가 변경되면 페어링된 장치 목록을 장치에서 제거해야 합니다. 이것은 동글에서 수동 ‘페어링된 장치 목록 삭제(PDL)’ 버튼을 눌러 수행됩니다.

Configuration of LED and button patterns

Configuration of LED patterns

ADK에는 ledparse.exe 파일이 포함되어 있습니다. 프로젝트 빌드 프로세스 동안 오디오 소스 애플리케이션을 위한 간단한 LED 제어 모듈을 자동 생성합니다. ADK 설치에 포함된 ledparse.exe 파일은 다음 위치에 있습니다.

<설치된 디렉터리="">\tools\bin\ 오디오 소스 ADK에 대한 LED 패턴은 ledparse 도구가 소스 파일인 source_leds.c 및 source_leds.h를 읽고 생성하는 source_leds.led에 정의되어 있습니다. 이 소스 파일에는 LED 코드가 포함되어 있습니다. LED 패턴은 ledPlay를 호출하여 활성화됩니다. 오디오 소스 애플리케이션에는 상태 및 이벤트를 기반으로 LED 패턴을 시작하기 위한 source_led_handler.c 파일이 포함되어 있습니다. leds_show_state() 함수는 현재 상태에 대한 올바른 패턴으로 ledsPlay를 호출합니다. leds_show_event() 함수는 생성된 이벤트에 대한 올바른 패턴으로 ledsPlay를 호출합니다. ### Configuration of button patterns buttonparsepro.exe 파일은 ADK에 포함되어 있습니다. 프로젝트 빌드 프로세스 중에 오디오 소스 응용 프로그램에 대한 간단한 버튼 제어 모듈을 자동 생성합니다. ADK 설치에 포함된 buttonparsepro.exe 파일은 다음 위치에 있습니다. <설치된 디렉터리="">\tools\bin\ 오디오 소스 애플리케이션에 대한 버튼 패턴은 buttonparsepro 도구가 소스 파일인 source_buttons.c 및 source_buttons.h를 읽고 생성하는 source_buttons.button에 정의되어 있습니다. 이러한 소스 파일에는 버튼 코드가 포함되어 있습니다. Button 이벤트는 다음의 button_msg_handler() 함수로 전송됩니다. source_button_handler.c는 버튼 이벤트에 대해 작동합니다. ## Implementation details ### Connection to a remote device 오디오 소스 응용 프로그램은 원격 장치에 연결하는 방법에 영향을 주는 다양한 방법으로 구성할 수 있습니다. 오디오 소스 장치가 헤드셋과 미리 페어링되어 배송되는 경우 원격 장치의 Bluetooth 주소는 PSKEY_USR7에 있어야 하고 PSKEY_USR3에는 재연결 정책 기능이 0(마지막 장치 연결)으로 설정되어 있어야 합니다. 그러면 오디오 소스 장치는 새 장치가 페어링 및 연결될 때까지 항상 이 장치에 연결을 시도합니다. 재연결 정책 기능이 PSKEY_USR3에서 0(마지막 장치 연결)으로 설정되어 있지만 PSKEY_USR7에 주소가 입력되지 않은 경우 오디오 소스 애플리케이션은 연결할 장치를 검색하기 위해 조회를 수행합니다. PSKEY_USR3에서 재연결 정책 기능이 1(페어링된 장치 연결)로 설정되어 있으면 PSKEY_USR7이 무시되고 오디오 소스 애플리케이션은 페어링된 장치 목록을 검색하여 각 장치에 차례로 연결을 시도합니다. DualStream이 활성화되면 PSKEY_USR13을 사용하여 A2DP를 지원하는 추가 원격 장치의 주소를 저장할 수 있습니다. 이 PS 키는 PSKEY_USR3에서 재연결 정책 기능이 0(마지막 장치 연결)으로 설정된 경우 두 번째 장치를 연결할 때 사용됩니다. DualStream이 활성화되어 있고 PSKEY_USR3에서 재연결 정책 기능이 1(페어링된 장치 연결)로 설정되어 있으면 PSKEY_USR13이 무시되고 오디오 소스 애플리케이션은 페어링된 장치 목록에서 연결할 두 번째 장치를 검색합니다. 연결 동작은 타이머 PS 키(PSKEY_USR8) 및 기능 PS 키(PSKEY_USR3)를 변경하여 여러 방식으로 변경할 수 있습니다. 이러한 구성 가능한 기능은 예를 들어 연결 시도 사이의 대기 시간 및 연결 재시도 횟수를 변경할 수 있습니다. 오디오 소스 응용 프로그램은 항상 AGHFP, A2DP, AVRCP의 순서로 각 프로필을 연결합니다. 연결을 시도하기 전에 원격 장치에서 각 프로필에 대한 서비스 검색이 수행되므로 원격 장치가 범위 내에 있고 응답하는 경우 각 프로필이 매번 시도됩니다. ### Limitations of analog mode operation 아날로그 또는 SPDIF 모드에서 소스 응용 프로그램을 사용하는 경우 USB 모드에는 적용되지 않는 다음과 같은 제한 사항이 있습니다. - HFP 프로필은 아날로그 또는 SPDIF 모드 장치에서 사용하기 위한 것이 아닙니다. HFP 프로필과 연결된 오디오는 라우팅되지 않으므로 소스 응용 프로그램 쪽이나 원격 쪽에서 들을 수 없습니다. - 양방향 A2DP 코덱을 사용하면 오디오가 한 방향으로만 들립니다. Source 애플리케이션에서 전송되는 오디오는 들리지만 Source에 도착하는 오디오는 라우팅되지 않습니다. ## USB dongle ADK host application USB 동글 ADK 호스트 응용 프로그램은 USB를 통해 BlueCore 하드웨어에서 실행되는 소스 응용 프로그램과 통신하는 데 사용되는 PC 응용 프로그램입니다. PC 응용 프로그램은 소스 응용 프로그램의 상태를 변경하고 소스 응용 프로그램의 현재 상태를 표시하는 데 사용됩니다. HFP v1.7 인증 테스트를 통과하려면 소스 애플리케이션이 Bluetooth SIG PTS 인증 소프트웨어에 대해 실행되어야 합니다. PC 응용 프로그램은 테스트 AG 기능을 수행하여 이러한 자격 테스트를 통과할 수도 있습니다. 호스트 응용 프로그램은 USB 공급업체 ID(VID)가 0x0a12이고 USB 제품 ID(PID)가 0x1004인 USB 장치를 검색합니다. VID\PID가 다른 USB 장치는 HKEY_LOCAL_MACHINE\SOFTWARE\CSR\DONGLE ADK 2.0 HOST 아래의 레지스트리 키에 작성하여 지정됩니다. 필요한 USB VID가 있는 VID 이름으로 새 DWORD 값 항목을 만들고 필요한 USB PID가 있는 PID 이름으로 다른 DWORD 값 항목을 만듭니다. 64비트 시스템에서 실행되는 동글 호스트의 경우 키는 HKEY_LOCAL_MACHINE\SOFTWARE\Wow64 32Node\CSR\DONGLE ADK 2.0 HOST입니다. 동글 호스트 응용 프로그램에는 향상된 안전 표시기 및 배터리 잔량 표시기 지원 옵션이 있습니다. 두 지표 모두 기본적으로 활성화되어 있습니다. 앱에는 AG 측에서 HFP SLC가 설정된 후 보안 링크 또는 보안 링크 없음을 표시하는 새 탭 링크 모드가 추가되었습니다. "USB 동글 ADK 호스트 응용 프로그램"은 tools\bin 하위 디렉터리에 있는 ADK에 포함되어 있습니다.