46
IS2083 IS2083 SDK User's Guide Introduction This document describes how to use the IS2083 Software Development Kit (SDK) to implement different use cases of Bluetooth ® applications. It provides the software architecture, memory outline, pin usage and configuration, and API message flow chart with working examples. IS2083 SDK provides sample code for various Bluetooth and MCU applications such as Multi-Speaker, Bluetooth setup, Bluetooth Low Energy profile and role control, interfaces to control external hardware (UART/I2C), and GPIO management (control and detection). The user can implement the sample code to use the desired application on IS2083BM. © 2019 Microchip Technology Inc. User Guide DS50002894A-page 1

IS2083 SDK User's Guide - ww1.microchip.comww1.microchip.com/downloads/en/DeviceDoc/IS2083_SDK_User_Guide-DS... · of Bluetooth ® applications. It provides the software architecture,

  • Upload
    others

  • View
    114

  • Download
    5

Embed Size (px)

Citation preview

  • IS2083 IS2083 SDK User's Guide

    IntroductionThis document describes how to use the IS2083 Software Development Kit (SDK) to implement different use casesof Bluetooth® applications. It provides the software architecture, memory outline, pin usage and configuration, andAPI message flow chart with working examples.

    IS2083 SDK provides sample code for various Bluetooth and MCU applications such as Multi-Speaker, Bluetoothsetup, Bluetooth Low Energy profile and role control, interfaces to control external hardware (UART/I2C), and GPIOmanagement (control and detection). The user can implement the sample code to use the desired application onIS2083BM.

    © 2019 Microchip Technology Inc. User Guide DS50002894A-page 1

  • Table of Contents

    Introduction ....................................................................................................................................................1

    1. Quick References....................................................................................................................................4

    1.1. Reference Documentation............................................................................................................41.2. Software Prerequisites................................................................................................................. 4

    2. IS2083 SDK Overview............................................................................................................................ 6

    2.1. Directory Structure....................................................................................................................... 62.2. Project Targets............................................................................................................................. 62.3. Creating the HEX File...................................................................................................................72.4. Code Size and RAM Size.............................................................................................................92.5. API Description Files..................................................................................................................10

    3. IS2083 SDK Architecture...................................................................................................................... 13

    3.1. Supported Features and Profiles................................................................................................143.2. SDK Application and Service Segment......................................................................................16

    3.2.1. Features of Application and Service Segment.............................................................173.2.2. Profile and Library Configuration ................................................................................ 19

    4. Serial Quad I/O (SQI) Flash Layout...................................................................................................... 20

    5. IS2083BM Pin Descriptions.................................................................................................................. 22

    5.1. Analog and I2S Audio.................................................................................................................225.2. SAR ADC................................................................................................................................... 245.3. Microphone Selection.................................................................................................................265.4. UART Interface...........................................................................................................................275.5. I2C Interface...............................................................................................................................285.6. Button Pattern ........................................................................................................................... 295.7. LED Setup..................................................................................................................................305.8. GPIO Configuration....................................................................................................................325.9. PWM Control..............................................................................................................................335.10. Heap Memory.............................................................................................................................335.11. Message and Timer....................................................................................................................33

    6. Appendix A: Software Flow Diagram.................................................................................................... 35

    6.1. CSB Connection for Broadcast and Stereo Mode......................................................................356.2. BLE Connection and Transparent Service................................................................................. 356.3. BLE Service Table Usage...........................................................................................................366.4. Peripherals Usage......................................................................................................................396.5. Device Firmware Upgrade..........................................................................................................40

    6.5.1. Common Device Firmware Upgrade........................................................................... 406.5.2. USB Device Firmware Upgrade...................................................................................416.5.3. Over-the-Air (OTA) Firmware Upgrade........................................................................41

    7. Revision History.................................................................................................................................... 43

    The Microchip Website.................................................................................................................................44

    IS2083

    © 2019 Microchip Technology Inc. User Guide DS50002894A-page 2

  • Product Change Notification Service............................................................................................................44

    Customer Support........................................................................................................................................ 44

    Microchip Devices Code Protection Feature................................................................................................ 44

    Legal Notice................................................................................................................................................. 44

    Trademarks.................................................................................................................................................. 45

    Quality Management System....................................................................................................................... 45

    Worldwide Sales and Service.......................................................................................................................46

    IS2083

    © 2019 Microchip Technology Inc. User Guide DS50002894A-page 3

  • 1. Quick References

    1.1 Reference DocumentationPlease go to https://www.microchip.com/IS2083 or https://www.microchip.com/BM83 to get the following documents:

    • IS2083 Reference Design Application Note• BM83 Bluetooth® Audio Development Board User's Guide• BM83 Bluetooth® Stereo Audio Module Data Sheet• IS2083 Bluetooth® Stereo Audio SoC Data Sheet• IS2083 Bluetooth® Audio Application Design Guide Application Note• IS2083 SDK Debugger User’s Guide• BM83_MSPK2_API_1.x.x.chm• BM83_SDK_1.x.x_API.chm

    1.2 Software Prerequisites• IS2083 SDK package, available at www.microchip.com/BM83.• Keil® development tools without a current product license run as a Lite/Evaluation edition. IS2083 SDK requires

    a PK51 Professional Developer’s Kit. The developer needs to apply a license for the kit.• Keil μVision® IDE: go to https://www.keil.com/download/product/, enter your PSN or LIC to download “C51

    V9.59”:

    Then, you will find “C51 V9.59”:

    After installation, please go to “File > License Management...” to add your PK51 professional license. Then go to“IS2083 SDK package\Application” and start “MSPKv2_Application_IS2083B.uvproj”. Go to “Help" and "AboutuVision" to check the following version numbers. Make sure all the version numbers are identical to those as listed:

    • Tool Chain version 9.59.0.0• C Compiler version 9.59.0.0• Assembler version 3.15.3.0

    IS2083Quick References

    © 2019 Microchip Technology Inc. User Guide DS50002894A-page 4

    https://www.microchip.com/wwwproducts/en/IS2083https://www.microchip.com/wwwproducts/en/BM83http://www.microchip.com/BM83https://www.keil.com/download/product/

  • • Linker version 4.66.93.0• Librarian version 4.30.1.0• Hex Converter version 1.47.0

    Even with a valid PK51 professional license, if the support period is expired on or before C51 v9.59 (May 13, 2018),there may be a “code size limit” problem and the developer will need to renew the license:

    IS2083Quick References

    © 2019 Microchip Technology Inc. User Guide DS50002894A-page 5

  • 2. IS2083 SDK OverviewThis section provides an overview of the IS2083 SDK application and project targets. The SDK contains two parts:one is an SDK library to provide a set of API to control basic Bluetooth profile and hardware peripheral; the secondpart is application code to provide application examples to show how to base on SDK library to provide differentBluetooth speaker features such as a multi-speaker application.

    2.1 Directory StructureThe top-level directory has a folder structure as shown in the following image:Figure 2-1. SDK Folder Structure

    2.2 Project TargetsThere are five project targets provided in the projects. All the targets provide basic Bluetooth features. The details areexplained in the following table:

    IS2083IS2083 SDK Overview

    © 2019 Microchip Technology Inc. User Guide DS50002894A-page 6

  • Table 2-1. Project Targets

    Features

    MSP

    Kv2

    _App

    _Bas

    ic

    MSP

    Kv2

    _App

    _PB

    AP

    MSP

    Kv2

    _App

    _MSP

    K

    MSP

    Kv2

    _App

    _Tur

    nkey

    MSP

    Kv2

    _App

    _MSP

    K_D

    ebug

    HFP, A2DP and AVRCP ✓ ✓ ✓ ✓ ✓

    PBAP X ✓ X X X

    iAP2/SPP X X ✓ X X1

    Multi-speaker X X ✓ ✓ ✓

    More Config tools parameters X X X ✓ X

    JTAG Debug2 X X X X ✓

    Note: 1. iAP requires HW I2C to communicate with ACP chips. While debugger is enabled, iAP cannot work due to the

    fact that the HW I2C pinouts are occupied by JTAG Debugger.2. For the procedure to set up the debugger, see the IS2083 SDK Debugger User’s Guide.

    2.3 Creating the HEX FilePerform the following steps to create the HEX file:

    1. After the Keil C installation, right-click MSPKv2_Application_IS2083B.uvproj and select Build Target.

    IS2083IS2083 SDK Overview

    © 2019 Microchip Technology Inc. User Guide DS50002894A-page 7

  • Figure 2-2. Build Target

    2. Refer to the IS2083 SDK Debugger User’s Guide for details to setup the debugger. The user can enable JTAGdebug by using "ENABLE_JTAG_DEBUG" buildoption.The user can enable this buildoption in the SDK source code or put it in the pre-processor. See the followingfigure to set up the pre-processor in Keil μVision.Figure 2-3. Enable JTAG Debug

    3. Once the target is successfully built, the following screen appears:

    IS2083IS2083 SDK Overview

    © 2019 Microchip Technology Inc. User Guide DS50002894A-page 8

  • Figure 2-4. Output Screen

    4. Find the MSPKv2_App_XXX file at Application/Build/hex.Note:  Download the hex files to the BM83 module using the isUpdate tool and test the features. For more details ondownloading .hex file refer to the BM83 Bluetooth® Audio Development Board User's Guide, and to update thefirmware with .hex file refer to 6. Appendix A: Software Flow Diagram.

    2.4 Code Size and RAM SizeAfter building the target, the MSPKv2_App_XXX.MAP memory map file is available at Application\Build\output. In the following figure, the program size containing code and xdata is shown.The maximum code size is 512 Kbytes, while RAM size is 36 Kbytes. Therefore, in order to calculate the remainingmemory, use the below example:

    Remaining code size = 512K – 470670 bytes = 53618 bytes

    Remaining RAM size = 36K – (38229 – 4096) = 2731 bytes, where 4096 is HCONST used.

    Table 2-2. Remaining Sources of Project Target

    Resource MSPKv2_App_Basic MSPKv2_App_PBAP MSPKv2_App_MSPK MSPKv2_App_Turnkey

    Remain RAM(Bytes)

    2682 2425 2677 2689

    Remain code(Bytes)

    50563 14438 18022 17243

    Figure 2-5. Code Size

    IS2083IS2083 SDK Overview

    © 2019 Microchip Technology Inc. User Guide DS50002894A-page 9

  • The user can check the used code and RAM size of each module from the list file inside the Application\Build\output\List folder.Figure 2-6. Used Code Size

    Sum up the CODE SIZE, HDATA size and all constant size to get the used code size. XDATA SIZE is the used RAMsize.

    2.5 API Description FilesIS2083 SDK provides both SDK API and MSPK application code. The developer can make use of the SDK API andcustomize the application code for their purposes. “BM83_MSPK2_API_1.x.x.chm” and“BM83_MSPK2_API_1.x.x.chm” are help files to describe SW modules, structures, function and variables of “MSPKApplication code” and “IS2083 SDK” respectively.

    If you encounter problems with reading the chm files, e.g. only blank white page on the right-hand side, please right-click the files, choose properties and select unblock in the following settings:

    In BM83_MSPK2_API_1.x.x.chm, you can find 41 IS2083 SDK API modules and each module provides the relatedsoftware structures, definition, functions and variables. Some of the modules will include the flow chart to show how itworks. The developer can make use of these SDK API to create their own Services layer and App layer.

    IS2083IS2083 SDK Overview

    © 2019 Microchip Technology Inc. User Guide DS50002894A-page 10

  • In “BM83_MSPK2_API_1.x.x.chm”, there are 13 Application SW modules to illustrate how the MSPK application layerworks with IS2083 SDK to provide a set of speaker user interfaces and multi-speaker functions. The developer canrefer to these modules to customize their desired speaker features.

    IS2083IS2083 SDK Overview

    © 2019 Microchip Technology Inc. User Guide DS50002894A-page 11

  • IS2083IS2083 SDK Overview

    © 2019 Microchip Technology Inc. User Guide DS50002894A-page 12

  • 3. IS2083 SDK ArchitectureThe IS2083 SDK architecture is described as follows:

    • IS2083 contains ROM and SQI Flash memory:– ROM contains baseband controller to call the SDK code in Flash periodically.– Flash contains the whole SDK software including SDK library and application code.

    • When the system is powered on, the SQI Flash content is loaded on RAM by ROM bootloader. Application andLibrary are available in the SQI Flash.

    • The Bluetooth stack and peripheral/common are implemented in the SDK.• There are 3 priority tasks provided in the system as follows:

    – High– Medium– Low

    The following figure shows application and stack code of 8051 images.Figure 3-1. Priority Task

    The Controller runs in the high and medium tasks while the Stack and Application runs in the low priority task.SDK library receives event from the program ROM and then dispatches the event to application code throughsome callback function.

    • SDK contains Sample code and Library.– Sample code contains Application and Profiles, which are presented in source code format.– Library provides API functions, which are presented in hex and header file format.

    IS2083IS2083 SDK Architecture

    © 2019 Microchip Technology Inc. User Guide DS50002894A-page 13

  • Figure 3-2. SDK Structure

    Application

    Profiles

    Adapter API Adapter EVT (Task_ADP)

    ROM Patch

    Host Stack(Task_Uplayer)

    DSP(Task_DSP)

    USB(Task_USB)

    Pooling Loop

    HCI CMD ACL

    CTC (Task_CTC)

    HCI EVT

    HCI/BBLC/LMP/CTC2(Task_BBManager)

    Uti_Task

    Tiny OS

    Main loop

    ISR

    Controller ROM

    Flash

    Whole Task_ADP

    H

    M

    L

    L LL

    L

    Sample Code

    SDK Library

    Message

    CallbackFunction call

    Note:  The application software is provided as source code and can be customized.

    3.1 Supported Features and ProfilesThe SDK supports various Bluetooth profiles, therefore, the user can use the same profiles or build new desiredprofiles.

    Table 3-1. Supported Profiles

    Profile Name Description

    HFP 1.7.x Supports Hands-Free role.

    HSP 1.2 Supports Headset role.

    AVRCP 1.6.x Supports Controller (CT) and Target (TG) role. Supports AVRCP Browsing.

    A2DP 1.3.x Supports Sink role.

    SPP 1.2 Supports SPP features.

    PBAP 1.2.x Supports Phone Book Client Equipment (PCE).

    GATT-Based Profile Transparent Profile

    GAP Supports BLE and BT procedures.

    L2CAP • Supports basic L2CAP mode.• Supports flow control, retransmissions, and streaming.• Supports LE Credit Based Flow Control mode.

    SDP Supports Client and Server role.

    RFCOMM Supports multiple emulated serial ports.

    IS2083IS2083 SDK Architecture

    © 2019 Microchip Technology Inc. User Guide DS50002894A-page 14

  • ...........continuedProfile Name Description

    AVRCP Supports channel establishment.

    AVDTP • Supports signaling channel establishment.• Supports streaming media channel establishment.

    GOEP Supports pushing a data object.

    Supports pulling a data object.

    Supports Single Response mode.

    ATT/GATT Supports Client and Server role.

    SMP • Supports LE legacy pairing.• Supports LE secure connections.

    CSB Microchip propriety connection-less broadcast protocol on Bluetooth channel toprovide Concert mode and Stereo mode.

    IAP2 Supports external zccessory protocol and ACP3.0 chip.

    Table 3-2. SDK Features

    Features Description

    AUDIO DSP Provides analog or I2S audio output. Various DSP audioprocessing and DSP OTA tuning.

    PMU Controls codec power. For more details, see pmu.h file.

    Interfaces HW-I2C & SW-I2C, UART

    Detection and Control ADC, GPIO, PWM

    Drivers I2C sta369 external codec, buttons, LED, Flash,Charging, USB battery charger

    Software upgrade DFU, OTA

    IS2083IS2083 SDK Architecture

    © 2019 Microchip Technology Inc. User Guide DS50002894A-page 15

  • 3.2 SDK Application and Service SegmentFigure 3-3. SDK Application and Service Segment

    SDK provides event-driven architecture, so the Application should register a function callback to receive the eventfrom SDK library. The Application contains App Segment, Service Segment, set of profiles, adapter event callbackand API functions. The sample code makes use of the API function to ask the SDK library to perform certainfunctions.

    The Application_Init function is the SDK entry point. The user should put the required application initialization inthis function. Once the system is powered on, it follows the following sequence to start up the system. User can makeuse of the Timer and Message API function to create an event and add the code inside the message handler, refer tosection 5.11 Message and Timer. The user can also create their own application layer with the help of the servicelayer and can create their own service for a particular set of features.

    IS2083IS2083 SDK Architecture

    © 2019 Microchip Technology Inc. User Guide DS50002894A-page 16

  • Figure 3-4. Initialization Sequence

    3.2.1 Features of Application and Service SegmentApplication Segment contains the following:

    • Application Initialization– Application_Init is the first function to be executed after the sytem bootup.– Initialize services in demand– Register callback functions

    • State Machine– For the Bluetooth Software Module (BTM) behavior determination (for example, play tone or flash the LED

    based on the BTM status)– Update the BTM status via UART event

    • Configuration Data (UI Parameter)– Parameters definition (for example, define the BT local device name)– For behavior or features determination/option (for example, enable a function)

    • Bluetooth Handler– Bluetooth link coexistence management (for example, multi-link)– Update the BTM status via UART event– Play tone or flash the LED based on the link status– Read the parameters/settings from configured data

    • Bluetooth Low Energy (BLE) Handler– Bluetooth Low Energy behavior control (for example, auto-disconnect)– Advertising control under Embedded mode– Update the Bluetooth Low Energy status via UART event

    • CSB Handler– Behavior control related to CSB

    • Play tone or flash LED based on the CSB status

    IS2083IS2083 SDK Architecture

    © 2019 Microchip Technology Inc. User Guide DS50002894A-page 17

  • • Link back to remote phone or enter the Pairing mode after the connection of Stereo/Concert mode isestablished.

    – Update the CSB status via UART event• UART Command/Event Handler

    – Parse and handle the UART command– Assemble the data for each UART event– AudioUARTCommandSet_Summary_table listed down the supported UART command with description

    • MMI Action/Event Handler– Handle the MMI action come from UART command and button behavior– MMI Action referred the action list supported by 0x02 UART command specified in

    AudioUARTCommandSet_Summary_table• Both of UART and MMI handler determine what will be executed based on current BTM status

    – for example, if BTM receives the Play UART command but A2DP is not connected, BTM will attempt toconnect to the last connected device if it exists.

    • Audio Handler and Control (Includes Audio/Voice/Tone)– Related status notification– Set the audio/voice/tone/DSP related parameters read from configured data (for example, Internal/External

    codec type, Audio/Voice SRC enable/disable, and so on.)– EQ control function

    • Button Handler– Button behavior (for example, Long/Short press) and MMI action/event mapping

    The Service Segment provides different services to support the Application Segment. The user needs to use init()function in Application Segment to register a particular service with register callback functions.

    For example, in the APP_init function of Application.c, it uses AUDIO_SRV_Init and BT_CSB_SRV_Init foraudio and CSB services. Application segment can handle the audio service callback event inAUDIO_CTRL_SrvEventHandler and the CSB service callback event in BT_CSB_HANDLER_EventHandler.Figure 3-5. Service Segment Support to Application Segment

    SDK provides the following services:

    • Bluetooth Services– Bluetooth link creation/termination (integrate the APIs of profiles and GAP into a completed connection and

    authentication flow)– Manage and record the device and link database– Initialize each profile– Integrate the status reported from each profile (for example, music playback status, call status, and so on.)– Features related to Bluetooth profiles (for example, Play/Pause of AVRCP; Answer/Hang up call of HFP,

    and so on.)• Bluetooth Low Energy Service

    – Package the API of BLE GAP

    IS2083IS2083 SDK Architecture

    © 2019 Microchip Technology Inc. User Guide DS50002894A-page 18

  • • CSB Service– CSB link creation/termination– Package the API for the CSB synchronization action (for example, synchronize the volume between master

    and slave speakers)• Configuration Data Services

    – Get parameters from SQI Flash– Store parameters to SQI Flash

    • Audio Service– Package the API for the features related to audio, voice and tone

    • Volume level setting• Aux-in mode enable/disable• EQ mode setting

    • UART Services– Command parser (including a state machine) for the RX data– Package the event data with header and checksum for the TX data– UART event queue for software flow control

    • LED Services– Provide the generic LED flash pattern– The LED flash pattern can be set by config. data

    • External Codec Control under Embedded mode (leverage the implementation from MCU code)– ST codec

    3.2.2 Profile and Library ConfigurationThe Application layer can make use of Service Segment to carry different Bluetooth functions. The user can enable/disable Bluetooth profiles to free up the memory size for other purposes.

    For example, open bt_service.h and use the following macro definitions to turn on specific profiles.Figure 3-6. Macro Definitions

    IS2083IS2083 SDK Architecture

    © 2019 Microchip Technology Inc. User Guide DS50002894A-page 19

  • 4. Serial Quad I/O (SQI) Flash LayoutFigure 4-1. SQI Flash Layout

    The SQI Flash layout shows all the components stored in the memory. The 2 MB Flash, Flash header, 8051 MCUimage, DSP image and voice prompt occupy two banks – B0 and B1. One of the blocks is used as a temporarystorage during OTA firmware upgrade and prevents accidental power-off during software upgrade. During the systemboot up, ROM code searches for the valid flash header to load the valid B0 or B1.

    Application configuration data is stored in the FACTORY_CONFIG or RUNTIME_CONFIG sections as listed :

    IS2083Serial Quad I/O (SQI) Flash Layout

    © 2019 Microchip Technology Inc. User Guide DS50002894A-page 20

  • • FACTORY CONFIG – contains the parameters from configuration tools.• RUNTIME_CONFIG – contains the run-time update configuration settings such as playback volume. The

    software will find the value in RUNTIME_CONFIG first, then in FACTORY_CONFIG and finally in MCODE(defined in App_cfg_xxx.h)

    • IB_MP_CALIB_VALUE – contains the calibrated value of BM83 module such as RF-related parameters.• SDK_RUNTIME_UPDATE – contains eight sets of Bluetooth pairing information.• Reserved or DSP_2ND_IMAGE_B0 / B1 – used for DSP software or other purposes.

    The user can store the desired data in Reserved for Application Layer, which provides up to 24 KB data. Forexample, use Flash API to put external amplifier EQ coefficient or more voice prompt data. The user must handle theaddressing to read and write this location.

    IS2083Serial Quad I/O (SQI) Flash Layout

    © 2019 Microchip Technology Inc. User Guide DS50002894A-page 21

  • 5. IS2083BM Pin DescriptionsThis section explains the use of the IS2083BM pins with API, to provide multiple features.

    5.1 Analog and I2S AudioThe following APIs are provided for setting up the codec output type:

    • I2S : AUDIO_DSP_CODEC_OUTPUT_TYPE_I2S1_OUTPUT• Analog : AUDIO_DSP_CODEC_OUTPUT_TYPE_ANALOG_OUTPUT• AUDIO_DSP_SetCodecOutputType (analog or I2S) or select it through Config tools.• AUDIO_DSP_SetI2s Parameter (i2s parameter).

    Config tools generate the I2S parameter and it saves in Flash. The system loads those parameters and sets itthrough this function.

    Figure 5-1. CODEC Output Type

    IS2083IS2083BM Pin Descriptions

    © 2019 Microchip Technology Inc. User Guide DS50002894A-page 22

  • Figure 5-2. I2S Modes

    • Select I2S output port to configure PIN #1 to PIN #4 as I2S.• Select MCLK check box to configure PIN #5 of BM83 Module as MCLK to codec.

    Table 5-1. I2S Mode Pin Description

    IS2083BM BGA BallNumber

    BM83 Pin Number Type Pin Name Description

    C3 1 I DR1 I2S input data

    B3 2 I/O RFS1 I2S left/right clock

    B2 3 I/O SCLK1 I2S Bit Clock

    C2 4 O DT1 I2S output data

    D2 5 O MCLK1 I2S Master Clock

    The following pins are configured for analog port:

    IS2083IS2083BM Pin Descriptions

    © 2019 Microchip Technology Inc. User Guide DS50002894A-page 23

  • Table 5-2. Analog Port Pin Description

    IS2083BM BGANumber

    BM83 Pin no. Type Name Description

    A5 6 O AOHPR R-channel analog headphone output

    A3 7 O AOHPM Headphone common mode output/sense input

    A2 8 O AOHPL L-channel analog headphone output

    The following pins are used for analog audio input:

    Table 5-3. Analog Audio Input Pin Description

    IS2083BM BGA Number BM83 Pin no. Type Name Description

    F3 11 I AIR Right channel analog input

    G3 12 I AIL Left channel analog input

    5.2 SAR ADCSDK provides API to detect ADC values using ADC_CH_SK1 and ADC_CH_SK2 channels. Both channels provide10-bit successive approximation register ADC (SAR ADC) values. The following figures show SK1 and SK2 channelbehavior with the input voltage from 0V to 1.4V.Figure 5-3. SK1 Channel

    IS2083IS2083BM Pin Descriptions

    © 2019 Microchip Technology Inc. User Guide DS50002894A-page 24

  • Figure 5-4. Sk2 Channel

    App_adc_handler is an example to show how to use the API provided in adc.h file to get the ADC value.The following APIs are provided for ADC detection:

    • ADC_Init (voltage difference)• ADC_GetValue (channels, *read value)

    ADC_CH_SK1 and ADC_CH_SK2 channels correspond to the different pins as mentioned in the following table.

    Table 5-4. Pins for ADC Detection

    IS2083BMBGA Number

    BM83 PinNumber

    Type Channels Pin Name Default function in SDK

    NA 22 I ADC_CH_ADAP ADAP_IN Adapter detection

    NA 23 I ADC_CH_BATTERY BAT_IN Battery detection performed inSDK library

    J4 27 I SK1 SK1_AMB_DET Connect to external ambientcircuit for temperature valuedetection

    J5 28 I SK2 SK2_KEY_AD No use in SDK

    These two ADC channels can be connected to external analog input signal. In BM83 EVB, ADC_CH_SK1 isconnected to external ambient temperature circuit and in the SDK, by default, ADC_CH_SK1 is used for thetemperature measurement. GUI tools provide the parameter settings for the temperature measurement.ADC_CH_SK2 is not used in the SDK, therefore the user can make use of this channel for the desired purpose.

    IS2083IS2083BM Pin Descriptions

    © 2019 Microchip Technology Inc. User Guide DS50002894A-page 25

  • Figure 5-5.  Ambient Temperature Circuit

    5.3 Microphone SelectionThe IS2083BM SoC or BM83 Module supports two analog microphone channels and one stereo digital microphone

    • Analog microphone: MIC-1 and MIC-2 (AUDIO_DSP_ANALOG_MIC)• Digital microphone: DMIC1_R and DMIC1_L (AUDIO_DSP_DIGITAL_MIC)

    In audio_dsp.h, use the following APIs to control the microphone and to configure it using GUI configuration tool:• AUDIO_DSP_SetMicrophoneNum• AUDIO_SRV_SetMicType (Mic Type)

    The following table shows the pins for microphone selection.

    Table 5-5. Microphone Selection

    IS2083BM BGANumber

    BM83Pin no.

    Type Name Description

    A1 9 I MICN2 MIC-2 mono differential analog negative input

    B1 10 I MICP2 MIC-2 mono differential analog positive input

    C1 13 I MICN1 MIC-1 mono differential analog negative input

    D1 14 I MICP1 MIC-1 mono differential analog positive input

    E1 15 P MICBIAS Electric microphone biasing voltage

    E2 17 O DMIC_CLK Digital MIC clock output

    IS2083IS2083BM Pin Descriptions

    © 2019 Microchip Technology Inc. User Guide DS50002894A-page 26

  • ...........continuedIS2083BM BGANumber

    BM83Pin no.

    Type Name Description

    F2 18 I DMIC1_R Digital MIC right input

    E3 19 I DMIC1_L Digital MIC left input

    5.4 UART InterfaceSDK provides a UART interface so the developer can use it to communicate with external peripherals or use it asdebug port to display message.

    UART service uses UART API to provide a general function to set UART parameters, sending and receiving the datafrom host MCU. The propriety MCHP UART command header is integrated in the UART service. These are theUART parameters as listed:

    In uart_service.c, find UART_SRV_Init to initialize and configure UART parameters as listed:• Baudrate• Enable or disable flow control• Rx notify length• Rx buffer pointer and length• Tx buffer pointer and length• Enable of disable Parity

    The following APIs are provided for UART interface:

    • UART_Init ( parameters )• UART_SRV_AssembleEventPacket (outgoing packet information)• UART_SRV_EventHandler ( incoming packet event)

    App_uart.c is an example of the use of the UART API to send and receive. By default, when Host modeconfiguration is used on BM83 EVB, RTS and TX_IND are not needed. Thus, the user can use it as free GPIO.

    Table 5-6. UART Interface - Pin Description

    IS2083BM BGANumber

    BM83 Pin no. Type Name Description

    J2 29 I/O UART_RXDP8_6

    • UART Rx• TCK• GPIO P8_61

    J3 30 I/O UART_TXD

    P8_5

    • UART Tx• GPIO P8_51

    J7 31 I/0 UART_RTS

    P3_4

    • UART RTS• GPIO P3_42

    H9 48 I/O UART_CTSP3_7

    • GPIO P3_7

    F8 49 I/O UART_TX_IND P0_0 • BM83 wakes up the MCU in casethe MCU shuts down UART inPower-Down mode

    • GPIO P0_0

    IS2083IS2083BM Pin Descriptions

    © 2019 Microchip Technology Inc. User Guide DS50002894A-page 27

  • Note: 1. Make sure that the PCB circuit for both IOs does not influence UART function while it is configured as Test

    mode for FW upgrade, when using P8_5 and P8_6 as GPIO. Review your customized circuit while using thesetwo pins as GPIO. It is recommended to reserve UART port (P8_5 and P8_6) for Flash download in Test modeduring production.

    2. GPIO P3_4 is pulled low to enter Test mode. If you want to use this pin to control external peripherals, proceedwith caution to ensure that the pin is not pulled LOW and accidentally enters the Test mode.

    5.5 I2C Interfacei2c.h provides various API functions to setup and control I2C interface. SDK provides both HW-I2C and SW-I2C fordifferent purposes. HW-I2C and SW-I2C share same I2C service functions. The I2C service function uses the SW-I2C API function when build option "SW_I2C_IMPLEMENT" is enabled. Otherwise, the I2C service function uses HW-I2C. User can select desired GPIO for SW-I2C. P2_6 is by default as SDA while P2_3 is by default as SCL.sta369bw.c shows how to use HW-I2C interface to control external amplifier.SW-I2C supports the following bus speed (in Hz):

    • 50K• 25K• 12.5K

    HW-I2C supports the following bus speed (in Hz):• 400K• 200K• 100K• 50K

    The following API sequences are provided for using I2C interface:

    • I2C_Config• I2C_Read• I2C_Write• I2C_CombineWriteRead• I2C_Close

    The following APIs are provided to switch from one I2C slave (A) to the other (B), using this sequence:• I2C_Config (Address-A, Speed-A)• I2C_Write (Data-A)• I2C_Close• I2C_Config (Address-B, Speed-B)• I2C_Write (Data-B)

    Table 5-7. I2C Interface - Pin Description

    IS2083BM BGANumber

    BM83 Pinno.

    Type Name Description

    B6 46 I/O TDI_CPU

    SCL

    P1_2

    Data pin to connect J-Link debugger, HW-I2CClock, and GPIO P1_2.

    B5 47 I/O TCK_CPU

    SDA

    P1_3

    Clock pin to connect J-Link debugger, HW-I2C Data, and GPIO P1_3.

    H3 21 I/O P2_6 SW-I2C SDA (default)/GPIO

    IS2083IS2083BM Pin Descriptions

    © 2019 Microchip Technology Inc. User Guide DS50002894A-page 28

  • ...........continuedIS2083BM BGANumber

    BM83 Pinno.

    Type Name Description

    B9 42 I/O P2_3 SW-I2C SCL (default)/GPIO

    Note:  In the example sample code, GPIO P2_3 and P2_6 are default configured for SW I2C, however other GPIOscan also be utilized for SW I2C function.

    5.6 Button PatternThe SDK provides API to detect GPIO based key driver, and different button pressing patterns to detect a buttonpattern from the pin. App_button.c is an example of how to use the API provided in button.h to handle differentbutton assignments on BM83 EVB. The configuration tool provides a simple way to configure the buttons with a set offunctions.

    Figure 5-6. GPIO Assignment

    There are 3 button types, and the user can define the timing of each press:

    • Short press• Long press• Multiple press

    App_button.c provides corresponding events:• BUTTON_EVT_LONG_PRESS_IND with ID and pressed time

    IS2083IS2083BM Pin Descriptions

    © 2019 Microchip Technology Inc. User Guide DS50002894A-page 29

  • • BUTTON_EVT_LONG_REPEAT_PRESS_IND with ID and repeat count• BUTTON_EVT_MULTIPLE_CLICK_IND with ID and click time• BUTTON_EVT_SHORT_PRESS_IND with ID and pressed time• BUTTON_EVT_RELEASE_IND with ID and repeat count

    The following APIs are provided for controlling buttons:• BUTTON_EnableCheckPress• BUTTON_EventRegistration

    With the correct jumper configuration, BM83 EVB can use the following pins for button detection.

    Table 5-8. Button Description

    IS2083BM BGANumber

    BM83 PinNumber

    Type Pin Name Description

    E8 33 I/O PLAYPAUSE

    P0_2

    • “PLAY/PAUSE” button on EVB• GPIO P0_2

    H2 35 I/O SEL

    P0_6

    • “SEL” button on EVB• GPIO P0_6

    F9 38 I/0 REV

    P0_3

    • “REV” button on EVB• GPIO P0_3

    E9 39 I/O VOLUP

    P2_7

    • “VOL_UP” button on EVB• GPIO P2_7

    D9 40 I/O VOLDOWN

    P0_5

    • “VOL_DOWN” button on EVB• GPIO P0_5

    B8 44 I/O FWD

    P0_1

    • “FWD” button on EVB• GPIO P0_1

    Note: 1. MFB is a special button, and must be configured as power-on/off key.2. GPIO Port 8 API - button detect driver is currently not implemented like other GPIO APIs.3. These GPIOs are 'default' configured for Audio control button function in the UI Config tool/SDK.

    Table 5-9. MFB Button Description

    IS2083BM BGA Number BM83 Pin no. Type Name Description

    K4 26 I MFB Multi-function push button and poweron key

    5.7 LED SetupThe SDK provides API to control two LEDs using LED_service. The LED pins are internally connected to the PMU,therefore, the user can control the intensity of LEDs.

    The following APIs are provided for controlling LEDs:• LED_Init• LED_SingleFlash (ID, pattern parameter)• LED_ComboFlash (IDs, pattern parameter)• LED_IntensityControl (ID, current flow to LED)

    IS2083IS2083BM Pin Descriptions

    © 2019 Microchip Technology Inc. User Guide DS50002894A-page 30

  • There are several settings provided in the configuration tool to configure the LED’s parameters. App_led is a filewhich provides and LED application to load the parameters and use the API to provide different blinking patternscorresponding to different modes.

    Figure 5-7. LED Setup

    IS2083IS2083BM Pin Descriptions

    © 2019 Microchip Technology Inc. User Guide DS50002894A-page 31

  • Figure 5-8. LED Block Diagram

    Table 5-10. LED Description

    IS2083BM BGA Number BM83 Pin no. Type Name Description

    J8 32 I LED1 For LED-1 control through PMU

    J9 34 I LED2 For LED-2 control through PMU

    5.8 GPIO ConfigurationThere are several GPIOs provided in IS2083BM. Gpio.h provides several API functions to control the GPIOs listedbelow:

    • GPIO_RangeConfigDirection• GPIO_PinConfigDirection• GPIO_PortConfigDirection• GPIO_PinSet• GPIO_PinClear• GPIO_PortSet• GPIO_PortClear• GPIO_PortWrite

    The following is an example to configure GPIO as input and output pins respectively.

    To configure a GPIO to be Input pin do the following:

    GPIO_PinConfigDirection(GPIO_P07, GPIO_DIR_INPUT);GPIO_PinRead(GPIO_P07, &readValue);

    IS2083IS2083BM Pin Descriptions

    © 2019 Microchip Technology Inc. User Guide DS50002894A-page 32

  • To configure a GPIO to be Output pin:GPIO_PinConfigDirection(GPIO_P07, GPIO_DIR_OUTPUT);GPIO_PinSet(GPIO_P07) to provide a logic HIGHGPIO_PinClear(GPIO_P07) to provide a logic LOW

    5.9 PWM ControlThe SDK provides the PWM_1 API to control PWM with various configurations. The parameter settings are listed asfollows:

    • Polarity initial high or low• Clock Source• Period 16-bit counter• Toggle Point 16-bit counter

    The following APIs are provided for PWM control:• PWM_ConfigAndStart (channel, configuration parameters)• PWM_Stop (channel)• PWM_Reset

    The following is a sequence to set up PWM parameter and start PWM output:

    pwm clock Source = PWM_CLOCK_SRC_1; //16MHZ clock as source pwm polarity = PWM_POL_START_LOW; //start from low pwm period = 16000; //1KHZ PWM pwm togglePoint = 3200; //80% low, 20% high setting PWM_Reset(); PWM_ConfigAndStart(PWM_CHANNEL_1, &pwmConfig);

    Table 5-11. PWM Description

    IS2083BM BGA Number BM83 Pin no. Type Pin Name Description

    C9 41 I/O PWM1

    P1_6

    PWM1 output

    GPIO P1_6

    5.10 Heap MemoryThe SDK provides heap memory for temporary storage or computation. Heap memory is divided into blocks. Eachblock size is 32 bytes and 0x79 blocks are defined. Hence, the heap memory is 32 x 121 (0x79) = 3872 bytes, whereAPP_HEAP_BLOCK_NUM: 0x79 and HEAP_BLOCK_SIZE: 32.The following APIs are provided for heap memory:

    • HEAP_Init• HEAP_Alloc• HEAP_Free

    5.11 Message and TimerThere are two timers provided for different purposes:

    • Precise timer – each tick is 0.625 ms.• General timer – each tick is 640 ms.

    The SDK provides a method to generate a message and let the registered handler receive the message for furtherhandling. The following APIs are provided to start and stop the timer, and send or handle messages.

    The following APIs are provided for time ticks counting:

    IS2083IS2083BM Pin Descriptions

    © 2019 Microchip Technology Inc. User Guide DS50002894A-page 33

  • • MESSAGE_SetPreciseTimer• MESSAGE_StopPreciseTimer• MESSAGE_SetTimer• MESSAGE_StopTimer• MESSAGE_Send• MESSAGE_EventRegistration

    Note:  Message_EventRegistration will receive both message and timer events.

    IS2083IS2083BM Pin Descriptions

    © 2019 Microchip Technology Inc. User Guide DS50002894A-page 34

  • 6. Appendix A: Software Flow DiagramThis section provides the flow diagram of software modules.

    6.1 CSB Connection for Broadcast and Stereo ModeBroadcast and Stereo mode uses CSB to create master/slave and lets them connect. There are three stages to setup a speaker to be Broadcast/Stereo mode: CSB idle, CSB Connecting and CSB Connected.

    After CSB is connected, put master into Connecting mode to add new slave into the Concert group.

    6.2 BLE Connection and Transparent ServiceWhen there is a new BLE connection, BLE gap will pass an event to BLE service and app will pass event 0x20 to theexternal MCU.

    IS2083Appendix A: Software Flow Diagram

    © 2019 Microchip Technology Inc. User Guide DS50002894A-page 35

  • When there is a Transparent service request from the mobile app, the service layer will receive any BLE GAP eventand BLE handler will ask BLE transparent modules to check if it is Transparent service, and then it will communicatewith the mobile app.

    6.3 BLE Service Table UsageSDK supports GATT server and the developer can add and customize the BLE service table to include new BLEservices. The following is an example how to create a Transparent Service including Service declaration,Characteristic declaration, Characteristic Value declaration and Client Characteristic Configuration Descriptiondeclaration in file “ble_transparent.c”

    IS2083Appendix A: Software Flow Diagram

    © 2019 Microchip Technology Inc. User Guide DS50002894A-page 36

  • IS2083Appendix A: Software Flow Diagram

    © 2019 Microchip Technology Inc. User Guide DS50002894A-page 37

  • IS2083Appendix A: Software Flow Diagram

    © 2019 Microchip Technology Inc. User Guide DS50002894A-page 38

  • 6.4 Peripherals UsageSDK supports battery change notification. App layer can register a callback function and it will receive the event onceSDK finds the battery changes.

    SDK supports UART communication to talk with externals. App layer registers a callback function and it can send andreceive data through UART.

    IS2083Appendix A: Software Flow Diagram

    © 2019 Microchip Technology Inc. User Guide DS50002894A-page 39

  • 6.5 Device Firmware Upgrade8051 firmware, DSP firmware and voice prompt can be upgraded using Device Firmware Upgrade (DFU). DFU canbe done either over OTA (Over The Air), USB (Application mode) or UART (Test mode).

    6.5.1 Common Device Firmware UpgradeSDK can provide a separate function to upgrade 8051 and DSP separately. With this firmware upgrade, the App layerneeds to provide the CRC information and image fragment to the SDK.

    IS2083Appendix A: Software Flow Diagram

    © 2019 Microchip Technology Inc. User Guide DS50002894A-page 40

  • 6.5.2 USB Device Firmware UpgradeSDK can support DFU during Application mode. When there is a USB plug in, App layer will receive an event to allowUSB DFU or not. After App layer confirm, SDK will automatically handle the whole DFU process and pass an event toApp layer once it finishes.

    6.5.3 Over-the-Air (OTA) Firmware UpgradeThe following APIs are provided for an OTA firmware upgrade:

    • OTA_StartResponse()• OTA_SetEncrytionInfo()• OTA_EnableService()• OTA_DisableService()• BLE_GATTS_ConfigureBuildInService

    Make use of built-in Air-Patch service (Bluetooth Low Energy services) so that a mobile phone can upgrade BM83through Bluetooth Low Energy on these services.

    IS2083Appendix A: Software Flow Diagram

    © 2019 Microchip Technology Inc. User Guide DS50002894A-page 41

  • Figure 6-1. Air-Patch Service

    Air Patch Service

    Air Patch ServerAir Patch Client

    Smartphone BM83

    Figure 6-2. CFB Mode

    IS2083Appendix A: Software Flow Diagram

    © 2019 Microchip Technology Inc. User Guide DS50002894A-page 42

  • 7. Revision History

    Revision Date Section Description

    A 07/2019 Document Initial Revision

    IS2083Revision History

    © 2019 Microchip Technology Inc. User Guide DS50002894A-page 43

  • The Microchip WebsiteMicrochip provides online support via our website at http://www.microchip.com/. This website is used to make filesand information easily available to customers. Some of the content available includes:

    • Product Support – Data sheets and errata, application notes and sample programs, design resources, user’sguides and hardware support documents, latest software releases and archived software

    • General Technical Support – Frequently Asked Questions (FAQs), technical support requests, onlinediscussion groups, Microchip design partner program member listing

    • Business of Microchip – Product selector and ordering guides, latest Microchip press releases, listing ofseminars and events, listings of Microchip sales offices, distributors and factory representatives

    Product Change Notification ServiceMicrochip’s product change notification service helps keep customers current on Microchip products. Subscribers willreceive email notification whenever there are changes, updates, revisions or errata related to a specified productfamily or development tool of interest.

    To register, go to http://www.microchip.com/pcn and follow the registration instructions.

    Customer SupportUsers of Microchip products can receive assistance through several channels:

    • Distributor or Representative• Local Sales Office• Embedded Solutions Engineer (ESE)• Technical Support

    Customers should contact their distributor, representative or ESE for support. Local sales offices are also available tohelp customers. A listing of sales offices and locations is included in this document.

    Technical support is available through the web site at: http://www.microchip.com/support

    Microchip Devices Code Protection FeatureNote the following details of the code protection feature on Microchip devices:

    • Microchip products meet the specification contained in their particular Microchip Data Sheet.• Microchip believes that its family of products is one of the most secure families of its kind on the market today,

    when used in the intended manner and under normal conditions.• There are dishonest and possibly illegal methods used to breach the code protection feature. All of these

    methods, to our knowledge, require using the Microchip products in a manner outside the operatingspecifications contained in Microchip’s Data Sheets. Most likely, the person doing so is engaged in theft ofintellectual property.

    • Microchip is willing to work with the customer who is concerned about the integrity of their code.• Neither Microchip nor any other semiconductor manufacturer can guarantee the security of their code. Code

    protection does not mean that we are guaranteeing the product as “unbreakable.”

    Code protection is constantly evolving. We at Microchip are committed to continuously improving the code protectionfeatures of our products. Attempts to break Microchip’s code protection feature may be a violation of the DigitalMillennium Copyright Act. If such acts allow unauthorized access to your software or other copyrighted work, youmay have a right to sue for relief under that Act.

    Legal NoticeInformation contained in this publication regarding device applications and the like is provided only for yourconvenience and may be superseded by updates. It is your responsibility to ensure that your application meets with

    IS2083

    © 2019 Microchip Technology Inc. User Guide DS50002894A-page 44

    http://www.microchip.com/http://www.microchip.com/pcnhttp://www.microchip.com/support

  • your specifications. MICROCHIP MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY KIND WHETHEREXPRESS OR IMPLIED, WRITTEN OR ORAL, STATUTORY OR OTHERWISE, RELATED TO THE INFORMATION,INCLUDING BUT NOT LIMITED TO ITS CONDITION, QUALITY, PERFORMANCE, MERCHANTABILITY ORFITNESS FOR PURPOSE. Microchip disclaims all liability arising from this information and its use. Use of Microchipdevices in life support and/or safety applications is entirely at the buyer’s risk, and the buyer agrees to defend,indemnify and hold harmless Microchip from any and all damages, claims, suits, or expenses resulting from suchuse. No licenses are conveyed, implicitly or otherwise, under any Microchip intellectual property rights unlessotherwise stated.

    TrademarksThe Microchip name and logo, the Microchip logo, Adaptec, AnyRate, AVR, AVR logo, AVR Freaks, BesTime,BitCloud, chipKIT, chipKIT logo, CryptoMemory, CryptoRF, dsPIC, FlashFlex, flexPWR, HELDO, IGLOO, JukeBlox,KeeLoq, Kleer, LANCheck, LinkMD, maXStylus, maXTouch, MediaLB, megaAVR, Microsemi, Microsemi logo, MOST,MOST logo, MPLAB, OptoLyzer, PackeTime, PIC, picoPower, PICSTART, PIC32 logo, PolarFire, Prochip Designer,QTouch, SAM-BA, SenGenuity, SpyNIC, SST, SST Logo, SuperFlash, Symmetricom, SyncServer, Tachyon,TempTrackr, TimeSource, tinyAVR, UNI/O, Vectron, and XMEGA are registered trademarks of Microchip TechnologyIncorporated in the U.S.A. and other countries.

    APT, ClockWorks, The Embedded Control Solutions Company, EtherSynch, FlashTec, Hyper Speed Control,HyperLight Load, IntelliMOS, Libero, motorBench, mTouch, Powermite 3, Precision Edge, ProASIC, ProASIC Plus,ProASIC Plus logo, Quiet-Wire, SmartFusion, SyncWorld, Temux, TimeCesium, TimeHub, TimePictra, TimeProvider,Vite, WinPath, and ZL are registered trademarks of Microchip Technology Incorporated in the U.S.A.

    Adjacent Key Suppression, AKS, Analog-for-the-Digital Age, Any Capacitor, AnyIn, AnyOut, BlueSky, BodyCom,CodeGuard, CryptoAuthentication, CryptoAutomotive, CryptoCompanion, CryptoController, dsPICDEM,dsPICDEM.net, Dynamic Average Matching, DAM, ECAN, EtherGREEN, In-Circuit Serial Programming, ICSP,INICnet, Inter-Chip Connectivity, JitterBlocker, KleerNet, KleerNet logo, memBrain, Mindi, MiWi, MPASM, MPF,MPLAB Certified logo, MPLIB, MPLINK, MultiTRAK, NetDetach, Omniscient Code Generation, PICDEM,PICDEM.net, PICkit, PICtail, PowerSmart, PureSilicon, QMatrix, REAL ICE, Ripple Blocker, SAM-ICE, Serial QuadI/O, SMART-I.S., SQI, SuperSwitcher, SuperSwitcher II, Total Endurance, TSHARC, USBCheck, VariSense,ViewSpan, WiperLock, Wireless DNA, and ZENA are trademarks of Microchip Technology Incorporated in the U.S.A.and other countries.

    SQTP is a service mark of Microchip Technology Incorporated in the U.S.A.

    The Adaptec logo, Frequency on Demand, Silicon Storage Technology, and Symmcom are registered trademarks ofMicrochip Technology Inc. in other countries.

    GestIC is a registered trademark of Microchip Technology Germany II GmbH & Co. KG, a subsidiary of MicrochipTechnology Inc., in other countries.

    All other trademarks mentioned herein are property of their respective companies.© 2019, Microchip Technology Incorporated, Printed in the U.S.A., All Rights Reserved.

    ISBN: 978-1-5224-4781-8

    Quality Management SystemFor information regarding Microchip’s Quality Management Systems, please visit http://www.microchip.com/quality.

    IS2083

    © 2019 Microchip Technology Inc. User Guide DS50002894A-page 45

    http://www.microchip.com/quality

  • AMERICAS ASIA/PACIFIC ASIA/PACIFIC EUROPECorporate Office2355 West Chandler Blvd.Chandler, AZ 85224-6199Tel: 480-792-7200Fax: 480-792-7277Technical Support:http://www.microchip.com/supportWeb Address:http://www.microchip.comAtlantaDuluth, GATel: 678-957-9614Fax: 678-957-1455Austin, TXTel: 512-257-3370BostonWestborough, MATel: 774-760-0087Fax: 774-760-0088ChicagoItasca, ILTel: 630-285-0071Fax: 630-285-0075DallasAddison, TXTel: 972-818-7423Fax: 972-818-2924DetroitNovi, MITel: 248-848-4000Houston, TXTel: 281-894-5983IndianapolisNoblesville, INTel: 317-773-8323Fax: 317-773-5453Tel: 317-536-2380Los AngelesMission Viejo, CATel: 949-462-9523Fax: 949-462-9608Tel: 951-273-7800Raleigh, NCTel: 919-844-7510New York, NYTel: 631-435-6000San Jose, CATel: 408-735-9110Tel: 408-436-4270Canada - TorontoTel: 905-695-1980Fax: 905-695-2078

    Australia - SydneyTel: 61-2-9868-6733China - BeijingTel: 86-10-8569-7000China - ChengduTel: 86-28-8665-5511China - ChongqingTel: 86-23-8980-9588China - DongguanTel: 86-769-8702-9880China - GuangzhouTel: 86-20-8755-8029China - HangzhouTel: 86-571-8792-8115China - Hong Kong SARTel: 852-2943-5100China - NanjingTel: 86-25-8473-2460China - QingdaoTel: 86-532-8502-7355China - ShanghaiTel: 86-21-3326-8000China - ShenyangTel: 86-24-2334-2829China - ShenzhenTel: 86-755-8864-2200China - SuzhouTel: 86-186-6233-1526China - WuhanTel: 86-27-5980-5300China - XianTel: 86-29-8833-7252China - XiamenTel: 86-592-2388138China - ZhuhaiTel: 86-756-3210040

    India - BangaloreTel: 91-80-3090-4444India - New DelhiTel: 91-11-4160-8631India - PuneTel: 91-20-4121-0141Japan - OsakaTel: 81-6-6152-7160Japan - TokyoTel: 81-3-6880- 3770Korea - DaeguTel: 82-53-744-4301Korea - SeoulTel: 82-2-554-7200Malaysia - Kuala LumpurTel: 60-3-7651-7906Malaysia - PenangTel: 60-4-227-8870Philippines - ManilaTel: 63-2-634-9065SingaporeTel: 65-6334-8870Taiwan - Hsin ChuTel: 886-3-577-8366Taiwan - KaohsiungTel: 886-7-213-7830Taiwan - TaipeiTel: 886-2-2508-8600Thailand - BangkokTel: 66-2-694-1351Vietnam - Ho Chi MinhTel: 84-28-5448-2100

    Austria - WelsTel: 43-7242-2244-39Fax: 43-7242-2244-393Denmark - CopenhagenTel: 45-4450-2828Fax: 45-4485-2829Finland - EspooTel: 358-9-4520-820France - ParisTel: 33-1-69-53-63-20Fax: 33-1-69-30-90-79Germany - GarchingTel: 49-8931-9700Germany - HaanTel: 49-2129-3766400Germany - HeilbronnTel: 49-7131-72400Germany - KarlsruheTel: 49-721-625370Germany - MunichTel: 49-89-627-144-0Fax: 49-89-627-144-44Germany - RosenheimTel: 49-8031-354-560Israel - Ra’ananaTel: 972-9-744-7705Italy - MilanTel: 39-0331-742611Fax: 39-0331-466781Italy - PadovaTel: 39-049-7625286Netherlands - DrunenTel: 31-416-690399Fax: 31-416-690340Norway - TrondheimTel: 47-72884388Poland - WarsawTel: 48-22-3325737Romania - BucharestTel: 40-21-407-87-50Spain - MadridTel: 34-91-708-08-90Fax: 34-91-708-08-91Sweden - GothenbergTel: 46-31-704-60-40Sweden - StockholmTel: 46-8-5090-4654UK - WokinghamTel: 44-118-921-5800Fax: 44-118-921-5820

    Worldwide Sales and Service

    © 2019 Microchip Technology Inc. User Guide DS50002894A-page 46

    http://www.microchip.com/supporthttp://www.microchip.com

    IntroductionTable of Contents1. Quick References1.1. Reference Documentation1.2. Software Prerequisites

    2. IS2083 SDK Overview2.1. Directory Structure2.2. Project Targets2.3. Creating the HEX File2.4. Code Size and RAM Size2.5. API Description Files

    3. IS2083 SDK Architecture3.1. Supported Features and Profiles3.2. SDK Application and Service Segment3.2.1. Features of Application and Service Segment3.2.2. Profile and Library Configuration

    4. Serial Quad I/O (SQI) Flash Layout5. IS2083BM Pin Descriptions5.1. Analog and I2S Audio5.2. SAR ADC5.3. Microphone Selection5.4. UART Interface5.5. I2C Interface5.6. Button Pattern5.7. LED Setup5.8. GPIO Configuration5.9. PWM Control5.10. Heap Memory5.11. Message and Timer

    6. Appendix A: Software Flow Diagram6.1. CSB Connection for Broadcast and Stereo Mode6.2. BLE Connection and Transparent Service6.3. BLE Service Table Usage6.4. Peripherals Usage6.5. Device Firmware Upgrade6.5.1. Common Device Firmware Upgrade6.5.2. USB Device Firmware Upgrade6.5.3. Over-the-Air (OTA) Firmware Upgrade

    7. Revision HistoryThe Microchip WebsiteProduct Change Notification ServiceCustomer SupportMicrochip Devices Code Protection FeatureLegal NoticeTrademarksQuality Management SystemWorldwide Sales and Service