This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

CC2564MODA: cc2564MODA i2s issue

Part Number: CC2564MODA
Other Parts Discussed in Thread: CC2564C

Hello Team,

we are working with the cc2564MOD Bluetooth module, we are able to load the init script (TIInit_6.7.16.bts) and able to pair,connect and play the songs through Uart by using A2DP profile.

We have configured the bluetooth as a slave and we are giving 3MHz BCLK with 48kbps sample rate. When we try to call using HFP protocol, we are getting audio with lot of noise. We have probed using oscilloscope at the audio pins we have observed that only on one channel we are able to see the data and on other channel we are unable to see the data.

After adding the below command in the script we are able to get the data on i2s.

Send_HCI_VS_Write_CODEC_Config 0xFD06, 0x0c00, 0x01, 0x0000bb80, 0x0001, 0x00, 0x00, 0x00, 0x0020, 0x0001, 0x00, 0x0020, 0x0001, 0x01, 0x40, 0x0000, 0x0000, 0x00, 0x0000, 0x0000, 0x01, 0x00

Wait_HCI_Command_Complete_VS_Write_CODEC_Config_Event 5000, 0x00, 0xfd06, 0x00

below i attached the oscilloscope images.

Could you help us in sorting out this issue.

Thanks & Regards,

shivasagar.

  • Hi Shivasagar,

    For the oscilloscope captures, did you probe the AUD_IN device pin? Are these I2S scope captures? You mentioned using UART and then I2S, for the best audio quality, I recommend using the I2S peripheral.

    It looks like you have not configured a data size for your second channel. You have 0x20 as your Channel 1 data size, but 0x00 as your Channel 2 data size. I recommend using the same size for both channels, but make sure that Channel 2's offset accounts for Channel 1. For example, to begin reading Channel 2 immediately after Channel 1 data is sent, you should use a data offset of 0x21 (Channel 1 data size + 1). Try these new settings:

    Send_HCI_VS_Write_CODEC_Config 0xFD06, 0x0c00, 0x01, 0x0000bb80, 0x0001, 0x00, 0x00, 0x00, 0x0020, 0x0001, 0x00, 0x0020, 0x0001, 0x01, 0x40, 0x0020, 0x0021, 0x00, 0x0020, 0x0021, 0x01, 0x00

    What was the rationale behind setting your Fsynch Multiplier to 0x40?

    Thanks,
    Jacob

  • Hi Jacob,

    Thanks for giving support....

    Q:For the oscilloscope captures, did you probe the AUD_IN device pin? Are these I2S scope captures? 

    whatever we captured that we are probed on AUD_OUT pin, means from Bluetooth we are getting data while doing call, presently we are testing only one way communication.

    As you suggested we have modified the setting as below.

    Send_HCI_VS_Write_CODEC_Config 0xFD06, 0x0c00, 0x01, 0x0000bb80, 0x0001, 0x00, 0x00, 0x00, 0x0020, 0x0001, 0x00, 0x0020, 0x0001, 0x01, 0x00, 0x0020, 0x0021, 0x00, 0x0020, 0x0021, 0x01, 0x00

    still we are not getting data on negative cycles, please find the below attachments. yellow is framesync(48kbps) and green is AUD_OUT.

    How we can get data from only one channel ?. As per the datasheet we can enable only one channel also, if possible could you please share the configuration.

    we are expecting the data like below.

    could you please suggest how we can get the data as expected above.

  • Hi Shiva,

    I am checking to see how you can configure just one channel. Can you also try increasing your frame sync duty cycle to be the same length as your channel sizes? For example, you have your channel sizes set as 0x20, can you try setting your frame sync duty cycle to be the same value? Can you share the I2S captures again after you have done so?

    Also, make sure that the CC2564MODA frame sync edge is using the opposite edge than the edge the audio codec is sampling/asserting. If the audio codec is asserting on the rising edge, you should use the falling edge on the CC2564MODA. 

    Thanks,
    Jacob

  • Hi jacob,

    As you said we changed the frame sync duty cycle to be same as length of channel size  but still we are getting the same waveform. i updated the screenshots below please find.

    please help us to get the wave forms as expected as above conversation.

    Thanks and regards,

    shivasagar.

  • Hi Shiva,

    Which microcontroller are you using with the CC2564MODA? Are you using one of our Bluetooth stacks with the microcontroller, or are you just sending HCI commands?

    Thanks,
    Jacob

  • Hi jacob,
    we are using imx6 ultra lite processor that will run with Linux Os , and we have connected module through Uart 4-wire, bluez stack we are using in linux.
    by using bluetoothctl command we are able to pair, trust and connect.
    Thanks and regards,
    shivasagar.
  • Hi Shiva,

    At this point, I think we should verify that the audio on the device is being handled correctly by the codec. Can you try using the same Send_HCI_VS_Write_CODEC_Config command you just tried, but changing the PCM Direction to be 0x00 (Master)? This is important so that the CC2564B device is driving the clock. Next, can you run the HCI_VS_Set_Pcm_Loopback_Enable (0xFE28) command immediately after to loop audio on your device? You should then be able to either listen to the audio being sent to the device or scope the AUD_IN and AUD_OUT pins to ensure the audio is not getting corrupted. You do not need a Bluetooth connection for this test as it is a local test for the PCM interface.

    If you observe noise and/or corrupted data, the PCM configuration is the problem. Otherwise, it is a Bluetooth issue.

    Thanks,
    Jacob

  • Hi jacob,

    i was tested with your inputs, i was enabled the loop back by using the command "HCI_VS_Set_Pcm_Loopback_Enable", after passing this command we were able to see the frame sync and bclk clock without connecting the bluetooth. (3Mhz bclk and 48K frame sync is generating).

    we have given 1.8v to the AUD_IN pin, at this time we were able to see the 1.8v on AUD_OUT.

    Thanks & Regards,

    Shiva sagar.

  • Hi Shiva,

    Does AUD_IN match the waveform of AUD_OUT? Are the two signals identical? And is data only present during the Frame Sync periods?

    You may want to refer to this E2E thread.

    Thanks,
    Jacob

  • HI jacob,

    1.Does AUD_IN match the waveform of AUD_OUT?  Are the two signals identical?

    Yes, The AUD_IN and AUD_OUT waveform is matched and both are identical with the same 1.8v.

    2. Data only present during the Frame Sync periods?

    we tested one case by giving the below configurations

    Send_HCI_VS_Write_CODEC_Config 0xFD06, 3072, 0x00, 0x0000bb80, 0x0000, 0x01, 0x00, 0x00, 0x0010, 0x0001, 1, 0x0010, 0x0001, 0x00, 0x00, 0x0010, 0x0011, 1, 0x0010, 0x0011, 0x00, 0x00

    -> Instead of 32bits we given 16bits on pcm configuration.

    ->we have given 1.8v on AUD_IN , but on AUD_OUT  we got the 1.8v on only first channel(positive cycles) with respect to frame sync, we attached the wave forms below. 

    -> But, after changing the data bits to 16 to 32, we got the 1.8v continuously on AUD_OUT(straight line with 1.8v), In this case AUD_IN and AUD_OUT are identical.

    Send_HCI_VS_Write_CODEC_Config 0xFD06, 3072, 0x00, 0x0000bb80, 0x0000, 0x01, 0x00, 0x00, 0x0020, 0x0001, 1, 0x0020, 0x0001, 0x00, 0x00, 0x0020, 0x0021, 1, 0x0020, 0x0021, 0x00, 0x00

    But, whenever doing phone call we were unable to get the data on second channel.

    Thanks and Regards,

    shiva sagar.

  • Hi jacob,

    we were using the TIInit_6.7.16.bts, i attached the bts file below please find. iam unable to attach the bts file so i converted into .txt.

    #--------------------------------------------------------------------------------
    # Description : Orca L PG 2.0 ROM Initialization Script
    #
    # Compatibility: Orca, 7.0.16 ROM
    #
    # Last Updated: 24-Nov-2016  13:13:48.45
    #
    # Version     : TI_P7_16.35
    #
    #
    #
    #
    # Notes       : Use this script on Orca L PG 2.0, 7.0.16 ROM device only (FW v7.0.16)
    #--------------------------------------------------------------------------------
    
    #################################################################
    ## START of CC256x Add-On
    #################################################################
    
    ## Change UART baudrate
    #Send_HCI_VS_Update_Uart_HCI_Baudrate 0xFF36, 0x0001c200
    Send_HCI_VS_Update_Uart_HCI_Baudrate 0xFF36, 0x002dc6c0
    Wait_HCI_Command_Complete_VS_Update_Uart_HCI_Baudrate_Event 5000, 0x01, 0xff36, 0x00
    
    Com_SetParams 3000000, 1
    #################################################################
    ## END of CC256x Add-On
    #################################################################
    
    Send_HCI_VS_Start_VS_Lock 0xFE37, 0x07, 0x10
    Wait_HCI_Command_Complete_VS_Start_VS_Lock_Event 5000, 0x00, 0xfe37, 0x00
    
    
    Send_HCI_VS_Write_Memory_Block 0xFF05, 0x00086140, 0xfa, "07:10:47:23:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:FF:B5:00:90:47:68:FF:20:26:30:C0:5D:00:28:26:D0:01:38:1D:D0:01:38:2A:D1:FF:24:95:34:E5:19:29:88:08:20:01:26:B6:46:37:4A:FE:44:10:47:00:29:01:D1:02:20:07:E0:E5:19:29:88:08:20:B6:46:31:4A:FE:44:10:47:48:1C:E9:88:0C:1C:44:43:60:2C:0F:D9:0F:E0:FF:20:99:30:C0:5B:5E:28:09:DB:C4:1C:08:E0:FF:20:ED:30:C4:5B:10:2C:02:DD:06:20:44:43:00:E0:60:24:41:20:00:21:01:22:96:46:1C:4A:FE:44:10:47:01:90:61:08:40:18:01:30:80:01:80:09:02:90:18:4D:00:26:A8:7B:00:28:1F:D0:28:7C:39:78:81:42:1B:D1:15:48:00:2E:00:D0:14:30:00:68:80:06:80:0E:01:99:08:18:80:01:80:09:02:99:01:22:96:46:0F:4A:FE:44:10:47:29:7B:03:91:01:22:96:46:0C:4A:FE:44:10:47:02:28:01:DA"
    Wait_HCI_Command_Complete_VS_Write_Memory_Block_Event 5000, 0x00, 0xff05, 0x00
    Send_HCI_VS_Write_Memory_Block 0xFF05, 0x0008623a, 0xfa, "03:98:04:19:28:35:01:36:02:2E:D8:D3:00:98:44:60:07:48:33:30:00:90:FF:BD:C0:46:93:E4:04:00:38:1D:08:00:0C:05:1A:00:39:7A:04:00:AD:45:05:00:7B:BF:02:00:AD:45:05:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:78:B5:01:24:A6:46:DB:48:FE:44:00:47:06:1C:DA:4D:28:68:DA:49:09:88:08:18:80:01:80:09:31:1C:A6:46:D7:4A:FE:44:10:47:00:28:0C:D4:D6:48:00:78:04:28:08:D1:D5:48:00:78:03:28:04:D1:2E:60:A6:46:E4:48:FE:44:00:47:E3:4D:28:68:19:21:49:01:08:18:80:01:80:09:31:1C:A6:46:CA:4A:FE:44:10:47:00:28:4C:D4:2E:60:DD:48:01:78:DD:48"
    Wait_HCI_Command_Complete_VS_Write_Memory_Block_Event 5000, 0x00, 0xff05, 0x00
    Send_HCI_VS_Write_Memory_Block 0xFF05, 0x00086334, 0xfa, "00:88:08:43:1A:D0:00:29:18:D0:22:21:E4:48:20:22:12:5C:01:2A:12:D1:09:5C:00:29:0F:D0:41:7F:08:29:0C:D1:09:21:41:77:E5:48:03:21:A6:46:E4:4A:FE:44:10:47:04:20:A6:46:E3:49:FE:44:08:47:00:25:68:1C:00:04:00:0C:A6:46:E0:49:FE:44:08:47:00:28:1D:D0:81:7C:0A:02:C1:7C:11:43:0A:02:01:7D:11:43:0A:02:41:7D:11:43:00:91:69:1C:00:78:A8:22:42:43:D8:48:80:5C:40:00:D5:4A:12:5A:D6:48:40:5D:E5:4B:1B:56:7B:20:80:00:A6:46:E4:4E:FE:44:30:47:01:35:07:2D:D5:DB:E2:48:00:68:50:28:05:D9:E1:48:00:21:A6:46:C7:4A:FE:44:10:47:78:BD:30:B5:05:1C:9C:4C:7E:34:A0:78:03:28:0F:D1:20:88:00:28:0C:D1:E8:69:02:28:09:D1:01:20:86:46:D7:48:FE:44:00:47:02:20:A0:70:D5:48:CA:30:28:62:30:BD:F8:B5:06:1C:B7:69:B0:8A:00:90:D2:49:40:1A:0A:D0:97:38:51:D0:8C:38:45:D0:01:38:3C:D0:22:38:2B:D0:01:38"
    Wait_HCI_Command_Complete_VS_Write_Memory_Block_Event 5000, 0x00, 0xff05, 0x00
    Send_HCI_VS_Write_Memory_Block 0xFF05, 0x0008642e, 0xfa, "25:D0:F8:BD:21:20:C5:5D:38:1C:00:21:01:24:A6:46:E2:4A:FE:44:10:47:7D:21:C9:00:41:43:DE:48:01:60:00:2D:41:D0:FF:2D:3F:D0:38:1C:29:1C:A6:46:DB:4A:FE:44:10:47:DB:48:02:21:A6:46:DA:4A:FE:44:10:47:00:28:0E:D1:D4:48:D8:49:09:68:01:60:09:E0:01:20:D7:49:08:80:05:E0:38:1C:01:21:8E:46:D5:49:FE:44:08:47:38:1C:00:99:00:22:01:23:9E:46:D2:4B:FE:44:18:47:0C:E0:38:1C:01:21:8E:46:CF:49:FE:44:08:47:05:E0:38:1C:01:21:8E:46:CD:49:FE:44:08:47:CC:48:9E:30:30:62:F8:BD:01:24:A6:46:CA:48:FE:44:00:47:A6:46:C9:48:FE:44:00:47:F8:BD:70:B5:85:69:00:7D:44:21:40:1A:01:28:26:D9:0F:38:0C:D0:28:38:2B:D1:28:78:03:28:28:D1:3B:20:C0:43:05:21:49:57:81:42:22:DD:68:71:70:BD:28:78:00:28:1D:D1:DF:4E:30:1C:01:24:A6:46:DE:49:FE:44:08:47:A8:70:E8:1C:31:1C:0A:22:A6:46:DB:4B:FE:44:18:47"
    Wait_HCI_Command_Complete_VS_Write_Memory_Block_Event 5000, 0x00, 0xff05, 0x00
    Send_HCI_VS_Write_Memory_Block 0xFF05, 0x00086528, 0xfa, "28:1C:A6:46:D9:49:FE:44:08:47:70:BD:46:48:00:78:04:28:04:D1:01:20:86:46:AD:48:FE:44:00:47:70:BD:70:B5:04:1C:66:69:20:7F:17:22:80:1A:3E:4D:24:D0:68:38:34:D1:FF:20:7D:30:80:5D:0D:28:2F:D1:20:69:01:78:30:1C:01:24:A6:46:C9:4A:FE:44:10:47:01:1C:25:D0:08:68:B0:42:22:D1:77:3D:28:78:01:28:1E:D0:08:79:00:28:1B:D0:C3:4D:2C:70:4D:20:A6:46:C2:4A:FE:44:10:47:00:20:28:70:70:BD:82:3D:28:78:05:28:0D:DB:FF:20:79:30:81:5D:30:1C:24:23:01:25:AE:46:BA:4D:FE:44:28:47:BB:48:B9:49:08:18:20:62:70:BD:70:B5:05:1C:2C:69:A2:8E:23:8F:93:42:32:DD:B6:48:01:78:60:8D:01:30:41:43:08:04:00:0C:82:42:29:DA:C6:26:31:5D:C9:09:25:D1:10:1A:B0:49:08:18:83:42:20:DD:C5:20:00:5D:01:28:01:D0:03:28:1A:D1:30:5D:01:28:05:D1:CE:21:09:5D:10:29:04:D0:11:29:02:D0:02:28:0A:D0:70:BD:B5:20:00:5D"
    Wait_HCI_Command_Complete_VS_Write_Memory_Block_Event 5000, 0x00, 0xff05, 0x00
    Send_HCI_VS_Write_Memory_Block 0xFF05, 0x00086622, 0xfa, "00:21:01:22:96:46:E4:4A:FE:44:10:47:02:20:30:55:E3:49:97:20:C0:00:40:18:28:62:70:BD:C0:46:47:76:04:00:5C:61:08:00:4A:61:08:00:39:7A:04:00:45:10:08:00:2C:24:08:00:70:B5:02:69:D4:8E:15:8F:A5:42:1A:DD:C8:21:8B:5C:40:21:19:40:DE:11:F6:01:31:43:12:D1:2C:1B:58:49:86:31:09:78:09:02:8C:42:0B:DD:02:2B:09:D1:C7:21:89:5C:01:29:01:D0:03:29:03:D1:E9:49:E7:4A:51:18:01:62:70:BD:21:6B:08:00:58:61:08:00:84:18:08:00:46:61:08:00:30:B5:E3:49:E3:4A:13:32:1F:20:00:23:01:24:A6:46:E1:4D:FE:44:28:47:E2:48:00:88:40:0A:00:D2:00:24:DE:48:04:70:30:BD:C0:46:50:17:08:00:10:B5:DD:49:DD:4A:5D:32:1F:20:00:23:01:24:A6:46:D6:4C:FE:44:20:47:10:BD:00:04:1A:00:B5:F5:04:00:F9:15:05:00:D9:8F:01:00:20:0C:1A:00:CD:18:08:00:59:15:08:00:10:B5:68:4B:1B:78:40:8D:01:30:43:43:1C:04:24:0C"
    Wait_HCI_Command_Complete_VS_Write_Memory_Block_Event 5000, 0x00, 0xff05, 0x00
    Send_HCI_VS_Write_Memory_Block 0xFF05, 0x0008671c, 0xfa, "65:4B:91:42:07:DB:88:1A:19:1B:88:42:0C:DD:01:21:09:04:40:1A:10:BD:A1:42:02:DA:18:1B:82:42:01:DC:88:1A:10:BD:88:1A:18:18:10:BD:C0:46:78:20:08:00:85:87:04:00:C8:62:08:00:F8:21:19:00:3F:83:02:00:11:24:03:00:06:FD:00:00:F8:B5:0E:1C:04:1C:00:90:01:25:AE:46:E2:49:FE:44:08:47:20:1C:03:21:AE:46:E0:4A:FE:44:10:47:07:1C:12:48:04:1C:04:3C:26:80:00:98:07:21:AE:46:0D:4A:FE:44:10:47:00:28:01:D1:70:08:60:80:0B:48:02:21:AE:46:0B:4A:FE:44:10:47:00:28:07:D1:38:1C:70:43:08:49:08:60:AE:46:D2:49:FE:44:08:47:F8:BD:C0:46:BC:62:08:00:51:2A:00:00:65:67:08:00:04:50:1A:00:6B:F7:04:00:6C:4F:08:00:62:61:08:00:E9:6A:08:00:A9:25:05:00:B1:6F:08:00:45:70:08:00:7D:5E:00:00:F3:6D:08:00:35:6F:08:00:F8:B5:00:90:45:69:68:7C:10:28:11:D1:28:7C:BF:49:06:28:0B:D0:0A:88:01:2A:0A:D1"
    Wait_HCI_Command_Complete_VS_Write_Memory_Block_Event 5000, 0x00, 0xff05, 0x00
    Send_HCI_VS_Write_Memory_Block 0xFF05, 0x00086816, 0xfa, "01:28:01:D0:00:20:05:E0:00:20:08:80:03:20:28:74:01:E0:01:20:08:80:68:7C:0D:28:1B:D1:28:7C:00:28:18:D1:B4:4F:02:26:38:1C:01:24:A6:46:B3:49:FE:44:08:47:03:E0:A6:46:B1:49:FE:44:08:47:00:28:06:D0:01:7A:0D:29:F6:D1:AE:49:4C:31:00:98:01:62:0C:37:01:3E:E8:D1:68:7C:06:28:0A:D1:28:7C:AA:49:06:28:04:D0:08:88:01:28:03:D1:00:20:00:E0:01:20:08:80:F8:BD:60:12:08:00:ED:2F:01:00:09:59:05:00:51:BC:04:00:69:7D:02:00:64:61:08:00:93:E4:04:00:85:F8:00:00:18:0F:00:00:1D:E4:00:00:2E:2E:08:00:FF:FF:00:00:F8:B5:00:90:82:69:51:78:C7:69:0B:1F:70:D0:21:3B:D4:48:33:D0:01:3B:73:D1:04:23:BB:80:0C:23:DE:19:49:00:12:78:0A:43:32:70:01:36:00:78:00:28:02:D1:06:25:28:1C:01:E0:07:20:06:25:30:70:01:36:30:1C:0D:21:01:24:A6:46:C8:4A:FE:44:10:47:06:1C:A6:46:C7:48:FE:44:00:47:C0:06"
    Wait_HCI_Command_Complete_VS_Write_Memory_Block_Event 5000, 0x00, 0xff05, 0x00
    Send_HCI_VS_Write_Memory_Block 0xFF05, 0x00086910, 0xfa, "C0:0E:81:02:C3:48:00:78:40:06:40:0E:08:43:07:21:C9:01:01:43:09:04:09:0C:30:1C:A6:46:BC:4A:FE:44:10:47:30:E0:04:23:BB:80:0C:23:DE:19:49:00:12:78:0A:43:32:70:01:36:00:78:00:28:02:D1:06:25:28:1C:01:E0:07:20:06:25:30:70:01:36:30:1C:0D:21:01:24:A6:46:AF:4A:FE:44:10:47:06:1C:A6:46:AE:48:FE:44:00:47:C0:06:C0:0E:81:02:AA:48:00:78:40:06:40:0E:08:43:07:21:C9:01:01:43:09:04:09:0C:30:1C:A6:46:A3:4A:FE:44:10:47:7D:80:03:20:38:80:D5:48:D4:49:09:18:00:98:01:62:F8:BD:10:79:27:28:04:D1:50:79:1E:28:01:D1:23:20:50:71:F8:BD:C0:46:CB:A3:00:00:ED:92:00:00:30:B5:05:1C:EC:69:21:88:08:04:00:0E:02:02:25:20:00:02:10:1A:10:D0:2F:22:12:02:80:1A:27:D1:08:06:00:0E:04:28:23:D1:60:7A:01:21:8E:46:C1:49:FE:44:08:47:00:28:10:D0:30:BD:21:78:A8:20:48:43:BE:4A:10:5C:00:28:13:D0"
    Wait_HCI_Command_Complete_VS_Write_Memory_Block_Event 5000, 0x00, 0xff05, 0x00
    Send_HCI_VS_Write_Memory_Block 0xFF05, 0x00086a0a, 0xfa, "84:48:C0:38:00:78:00:28:0E:D1:BA:48:40:5C:07:28:0A:DB:20:1C:01:21:8E:46:B8:49:FE:44:08:47:B7:49:B1:48:78:30:40:18:28:62:30:BD:82:04:00:00:45:9F:00:00:C7:71:08:00:A9:86:00:00:99:71:08:00:55:31:19:00:3E:A6:1B:00:87:72:08:00:AD:99:00:00:30:B5:05:69:AB:48:00:21:01:24:A6:46:AA:4A:FE:44:10:47:AA:49:01:28:01:D0:00:20:01:E0:08:68:01:30:08:60:A6:46:E4:48:FE:44:00:47:00:28:08:D0:A6:46:E2:48:FE:44:00:47:00:28:02:D0:02:20:E0:49:08:80:E0:49:E8:68:88:42:22:D1:DF:48:00:78:80:08:1E:D2:E1:48:41:7F:05:29:1A:D1:02:21:41:77:DB:48:00:78:E8:70:58:48:C1:38:00:78:FF:28:05:D1:DB:48:03:21:A6:46:DB:4A:FE:44:10:47:D5:4D:2C:80:A6:46:D5:48:FE:44:00:47:2C:80:A6:46:D2:48:FE:44:00:47:30:BD:00:B5:00:21:01:22:96:46:D3:4A:FE:44:10:47:D1:49:08:80:00:BD:B1:2F:00:00:65:2A:00:00"
    Wait_HCI_Command_Complete_VS_Write_Memory_Block_Event 5000, 0x00, 0xff05, 0x00
    Send_HCI_VS_Write_Memory_Block 0xFF05, 0x00086b04, 0xfa, "CD:16:03:00:44:61:08:00:5C:18:08:00:4F:0C:04:00:5B:0C:04:00:89:3F:04:00:46:61:08:00:F8:B5:C8:48:00:88:C0:08:C7:4C:22:88:CB:49:8A:42:39:D0:CB:49:09:78:03:29:35:D1:61:88:8D:1A:C3:4A:83:1A:88:42:02:D5:00:22:D7:43:00:E0:01:27:00:2D:02:D5:00:22:D6:43:00:E0:01:26:BD:4A:12:78:96:46:BC:4A:12:78:94:46:01:22:00:92:BB:4A:B7:42:11:D1:76:46:36:06:36:16:5E:43:67:46:3E:41:00:2D:04:DC:00:2B:0B:DD:12:78:96:19:08:E0:00:2B:06:DC:12:78:B6:1A:03:E0:16:78:00:2B:00:DC:76:42:E0:4A:12:78:DE:4B:1A:70:02:E0:61:88:00:26:00:96:E0:4A:12:68:13:1C:73:43:1B:15:21:80:60:80:DA:48:00:78:31:1C:00:DA:49:42:81:42:04:DD:00:2E:00:D5:40:42:50:43:03:15:12:4D:41:3D:E8:6F:1E:18:D3:48:00:78:50:43:00:0D:B1:1A:00:DA:49:42:81:42:15:D8:00:98:00:28:12:D0:CE:48:00:78:00:28:0E:D0:E7:48:02:21"
    Wait_HCI_Command_Complete_VS_Write_Memory_Block_Event 5000, 0x00, 0xff05, 0x00
    Send_HCI_VS_Write_Memory_Block 0xFF05, 0x00086bfe, 0xfa, "01:24:A6:46:43:4A:FE:44:10:47:00:28:05:D1:EE:67:30:1C:A6:46:E2:49:FE:44:08:47:F8:BD:C0:46:31:4F:08:00:E7:2A:00:00:FB:4F:08:00:89:91:04:00:F0:B5:05:1C:AE:69:EF:69:38:88:DA:49:40:1A:3E:D0:D9:49:40:1A:01:28:2F:D9:25:38:51:D1:D8:48:00:88:00:28:4D:D0:30:1C:01:24:A6:46:D4:49:FE:44:08:47:FF:20:1C:30:81:5D:00:29:01:D1:02:21:81:55:FF:21:1E:31:89:5D:00:29:04:D1:82:5D:01:2A:01:D0:00:2A:06:D1:01:29:0A:D1:80:5D:03:28:07:D0:02:28:05:D0:30:1C:A6:46:E7:49:FE:44:08:47:24:E0:30:1C:A6:46:E5:49:FE:44:08:47:1E:E0:3A:20:80:5D:00:28:1F:D0:38:1C:01:21:8E:46:14:49:FE:44:08:47:13:E0:DC:48:00:78:05:28:14:DB:FF:20:26:30:82:5D:30:1C:07:21:00:23:01:24:A6:46:DA:4E:FE:44:30:47:38:1C:A6:46:09:49:FE:44:08:47:D5:49:5F:20:00:01:40:18:28:62:F0:BD:C0:46:CA:04:00:00:61:DE:00:00"
    Wait_HCI_Command_Complete_VS_Write_Memory_Block_Event 5000, 0x00, 0xff05, 0x00
    Send_HCI_VS_Write_Memory_Block 0xFF05, 0x00086cf8, 0xfa, "0B:34:04:00:C8:18:08:00:50:15:08:00:8D:08:04:00:D9:A3:02:00:F8:21:19:00:6B:F7:04:00:C8:62:08:00:F0:B5:85:B0:07:1C:B8:69:04:90:B9:8A:E8:48:08:1A:26:D0:E8:49:40:1A:5E:D1:E7:4D:C3:48:00:78:02:28:59:D1:01:24:A6:46:E5:48:FE:44:00:47:00:28:52:D1:A6:46:E3:48:FE:44:00:47:00:28:4C:D1:A6:46:2F:48:FE:44:00:47:00:28:46:D1:28:78:00:28:43:D1:A8:78:00:28:40:D1:A6:20:A6:46:E8:49:FE:44:08:47:3A:E0:04:98:00:21:6A:46:01:24:A6:46:E5:4B:FE:44:18:47:02:A8:00:21:06:22:A6:46:E2:4B:FE:44:18:47:00:25:02:E0:68:1C:05:04:2D:0C:DF:48:00:78:85:42:22:DA:11:20:40:01:68:43:DD:49:0E:18:10:20:80:19:69:46:A6:46:DB:4A:FE:44:10:47:00:28:EA:D1:68:46:02:A9:A6:46:D7:4A:FE:44:10:47:00:28:E2:D0:B0:78:01:28:DF:D0:04:98:BA:49:3A:22:A6:46:D2:4B:FE:44:18:47:D1:48:E2:30:38:62:05:B0:F0:BD"
    Wait_HCI_Command_Complete_VS_Write_Memory_Block_Event 5000, 0x00, 0xff05, 0x00
    Send_HCI_VS_Write_Memory_Block 0xFF05, 0x00086df2, 0xfa, "10:B5:19:4C:13:48:04:80:01:20:86:46:CD:48:FE:44:00:47:CC:49:08:60:0F:48:04:80:44:80:10:BD:19:DE:01:00:CD:33:04:00:4A:24:19:00:7B:86:03:00:11:22:08:00:4A:56:08:00:82:07:1A:00:F9:8E:03:00:50:17:08:00:00:04:1A:00:B5:F5:04:00:60:61:08:00:51:2A:00:00:50:1D:18:00:54:61:08:00:68:10:00:00:4E:61:08:00:4F:61:08:00:52:61:08:00:FF:FF:00:00:2C:24:08:00:F0:B5:06:1C:35:69:D5:27:7F:00:B1:69:00:29:52:D0:8A:88:50:18:52:18:13:7A:5A:08:F8:2B:01:D3:43:7A:00:E0:00:23:00:7A:C0:07:C0:0F:84:46:39:20:40:5D:AC:4C:25:28:01:D1:13:2A:32:D0:0A:28:03:D1:0F:2A:25:D0:13:2A:23:D0:3A:20:40:5D:20:28:01:D1:19:2B:13:D0:18:2A:2F:D1:24:28:2D:D1:78:5D:02:28:05:D1:28:1C:01:21:8E:46:9C:49:FE:44:08:47:28:1C:01:21:8E:46:9A:49:FE:44:08:47:F0:BD:FF:20:6D:30:40:19:01:22:96:46:96:4A:FE:44"
    Wait_HCI_Command_Complete_VS_Write_Memory_Block_Event 5000, 0x00, 0xff05, 0x00
    Send_HCI_VS_Write_Memory_Block 0xFF05, 0x00086eec, 0xfa, "10:47:F6:34:12:E0:28:1C:61:46:24:23:01:25:AE:46:93:4D:FE:44:28:47:08:E0:28:1C:61:46:13:22:24:23:01:25:AE:46:8E:4D:FE:44:28:47:EC:34:34:62:F0:BD:4D:61:08:00:4C:61:08:00:51:61:08:00:53:61:08:00:50:61:08:00:BC:62:08:00:78:B5:00:26:00:96:01:24:A6:46:84:48:FE:44:00:47:83:4D:A8:6D:69:46:A6:46:82:4A:FE:44:10:47:17:21:00:98:01:70:A8:6D:00:99:32:1C:A6:46:7E:4B:FE:44:18:47:7E:4D:0C:20:A8:81:28:69:40:88:0C:28:0C:D0:01:26:B6:02:00:2E:08:D0:A6:46:79:48:FE:44:00:47:01:3E:28:69:40:88:0C:28:F4:D1:A6:46:75:48:FE:44:00:47:78:BD:04:50:1A:00:CD:16:03:00:03:08:00:00:F0:F4:00:00:05:68:03:00:62:61:08:00:F0:B5:87:B0:06:90:6D:48:07:68:01:24:A6:46:64:48:FE:44:00:47:6A:4E:30:1C:01:30:C0:5D:6D:46:28:71:F0:5D:68:71:A8:1D:0B:21:C9:01:C9:59:A6:46:65:4A:FE:44:10:47:AF:21"
    Wait_HCI_Command_Complete_VS_Write_Memory_Block_Event 5000, 0x00, 0xff05, 0x00
    Send_HCI_VS_Write_Memory_Block 0xFF05, 0x00086fe6, 0xfa, "C9:00:C9:59:A6:46:61:4A:FE:44:10:47:57:21:09:01:C9:59:A6:46:5E:4A:FE:44:10:47:22:3E:F1:59:A6:46:5B:4A:FE:44:10:47:A6:46:56:48:FE:44:00:47:12:20:28:70:06:98:57:49:00:22:01:AB:A6:46:56:4C:FE:44:20:47:07:B0:F0:BD:C3:0F:08:00:17:08:05:00:35:F7:01:00:D9:E5:01:00:1D:42:02:00:45:10:08:00:F8:B5:00:90:48:48:07:68:01:25:AE:46:3F:48:FE:44:00:47:00:24:45:4E:30:1C:32:38:C4:51:30:1C:2A:38:C4:51:30:1C:22:38:C4:51:B1:20:C0:00:C4:51:30:1C:1A:38:C4:51:59:20:00:01:C4:51:30:1C:12:38:C4:51:08:20:C0:19:04:21:AE:46:3C:4A:FE:44:10:47:B3:20:C0:00:C4:51:57:20:00:01:C4:51:AF:20:C0:00:C4:51:0B:20:C0:01:C4:51:01:3E:F4:55:AE:46:2D:48:FE:44:00:47:00:98:2F:49:01:39:22:1C:AE:46:30:4B:FE:44:18:47:F8:BD:05:04:00:00:19:1C:00:00:C1:0F:08:00:99:51:03:00:9B:33:03:00:30:B5:85:69"
    Wait_HCI_Command_Complete_VS_Write_Memory_Block_Event 5000, 0x00, 0xff05, 0x00
    Send_HCI_VS_Write_Memory_Block 0xFF05, 0x000870e0, 0xfa, "24:20:00:21:01:24:A6:46:27:4A:FE:44:10:47:B7:21:48:55:51:25:AD:00:28:1C:A6:46:24:49:FE:44:08:47:00:28:05:D1:28:1C:22:49:A6:46:22:4A:FE:44:10:47:30:BD:C0:46:89:E4:04:00:81:2A:00:00:15:5F:05:00:33:4F:08:00:00:00:08:00:81:94:03:00:D9:3E:02:00:25:00:00:00:47:76:04:00:5C:61:08:00:91:74:04:00:91:F7:01:00:8B:09:04:00:8B:F7:00:00:85:F8:00:00:47:15:05:00:14:54:08:00:BD:59:05:00:E7:59:05:00:14:24:08:00:21:8F:03:00:85:26:04:00:DC:50:08:00:A6:05:00:00:D5:2A:00:00:2A:FE:00:00:1D:26:05:00:99:94:03:00:A9:25:05:00:93:E4:04:00:CB:D7:03:00:00:66:E3:01:C7:D5:03:00:40:1E:80:00:D8:4B:19:50:D6:49:0A:50:F7:46:00:B5:D6:4A:01:8B:91:42:07:D0:40:69:40:30:2C:21:01:22:96:46:EC:4A:FE:44:10:47:EB:48:2B:30:00:BD:FC:B5:01:90:45:69:00:24:B8:20:40:5D:01:28:37:D1:C7:26:70:5D"
    Wait_HCI_Command_Complete_VS_Write_Memory_Block_Event 5000, 0x00, 0xff05, 0x00
    Send_HCI_VS_Write_Memory_Block 0xFF05, 0x000871da, 0xfa, "01:28:0D:D0:03:28:0B:D0:28:1C:01:21:8E:46:EA:49:FE:44:08:47:BF:20:40:5D:01:28:27:D1:6C:8D:25:E0:C0:20:44:55:77:5D:74:55:28:1C:01:21:8E:46:E2:49:FE:44:08:47:77:55:BF:26:70:5D:01:28:16:D1:E9:8E:2A:8F:28:1C:01:23:9E:46:DD:4B:FE:44:18:47:00:04:00:0C:04:28:06:DD:6C:8D:C0:1E:84:42:06:DB:04:04:24:0C:03:E0:03:21:C0:20:41:55:74:55:28:8D:61:1C:41:43:08:04:00:0C:01:99:88:61:D1:49:FC:39:09:78:C9:09:10:D3:2E:8D:31:1C:01:24:A6:46:EC:4A:FE:44:10:47:00:96:EB:48:02:78:BB:20:43:5D:3A:20:A6:46:EE:4C:FE:44:20:47:ED:48:B5:30:FC:BD:01:1C:0A:7B:EC:48:00:2A:02:D0:C9:69:02:29:01:D1:63:30:F7:46:E9:49:43:39:08:18:F7:46:02:8A:01:79:0A:29:00:DB:0A:21:E5:48:8A:42:01:DD:65:30:F7:46:5B:30:F7:46:01:6A:C8:7B:00:02:89:7B:01:43:B5:48:52:30:02:88:DF:48:91:42:01:D1:2D:30:F7:46"
    Wait_HCI_Command_Complete_VS_Write_Memory_Block_Event 5000, 0x00, 0xff05, 0x00
    Send_HCI_VS_Write_Memory_Block 0xFF05, 0x000872d4, 0xfa, "29:30:F7:46:F0:B5:DC:49:00:7F:C0:00:40:18:02:1F:13:88:87:48:DA:38:18:40:10:80:2F:27:3F:02:EF:4D:2F:82:0C:04:24:0C:2C:80:14:26:08:E0:64:20:01:21:8E:46:EB:49:FE:44:08:47:70:1E:06:06:36:0E:A8:89:80:0B:01:D2:00:2E:F1:D1:A8:89:40:05:40:0F:17:D0:07:20:00:02:68:81:2F:82:EB:48:28:81:2C:80:14:24:08:E0:64:20:01:21:8E:46:DD:49:FE:44:08:47:60:1E:04:06:24:0E:A8:89:80:0B:01:D2:00:2C:F1:D1:A8:89:68:88:BC:48:FF:30:34:30:F0:BD:10:B5:01:6A:DF:4A:12:68:92:88:12:13:92:07:93:0F:DD:4A:02:2B:01:D0:13:88:00:E0:03:8B:44:68:0C:19:44:60:83:61:48:88:18:1A:10:80:AF:48:E7:30:10:BD:70:B5:05:1C:68:68:00:28:1A:D1:D3:4E:35:20:00:01:84:19:20:68:01:21:8E:46:D1:49:FE:44:08:47:20:7F:00:28:0D:D0:CF:48:00:78:02:28:09:D0:E0:7F:50:21:41:43:71:18:48:8E:01:30:48:86:60:8A:01:38:60:82"
    Wait_HCI_Command_Complete_VS_Write_Memory_Block_Event 5000, 0x00, 0xff05, 0x00
    Send_HCI_VS_Write_Memory_Block 0xFF05, 0x000873ce, 0xfa, "00:20:C3:49:08:60:01:20:86:46:C6:48:FE:44:00:47:68:60:C5:48:65:30:70:BD:C5:48:D5:30:F7:46:00:B5:40:69:01:21:8E:46:C2:49:FE:44:08:47:C2:48:35:30:00:BD:41:69:09:7C:06:29:02:D1:01:21:BF:4A:11:80:0F:21:81:60:BE:48:53:30:F7:46:C1:68:43:68:0A:78:0C:2A:07:D1:BB:4A:12:78:00:2A:01:D1:06:22:00:E0:07:22:4A:70:43:61:B7:48:09:30:F7:46:10:B5:80:69:B4:49:09:78:00:29:09:D1:06:24:04:70:01:30:00:21:01:22:96:46:B1:4A:FE:44:10:47:08:E0:07:24:04:70:01:30:00:21:01:22:96:46:AC:4A:FE:44:10:47:04:70:01:30:0D:21:01:24:A6:46:A8:4A:FE:44:10:47:E9:49:A6:46:A5:4A:FE:44:10:47:E8:48:5D:30:10:BD:01:1C:E8:48:02:78:E6:48:00:2A:01:D0:5D:30:F7:46:28:22:8A:60:C0:1C:F7:46:E3:49:09:78:05:29:02:D1:01:21:E2:4A:11:70:23:21:81:60:E1:48:27:30:F7:46:10:B5:01:7E:00:7D:08:43:DE:4C:0A:D0"
    Wait_HCI_Command_Complete_VS_Write_Memory_Block_Event 5000, 0x00, 0xff05, 0x00
    Send_HCI_VS_Write_Memory_Block 0xFF05, 0x000874c8, 0xfa, "00:20:ED:49:08:70:01:20:86:46:EC:48:FE:44:00:47:20:1C:79:30:10:BD:20:1C:71:30:10:BD:81:69:4A:78:C2:60:49:78:18:29:01:DB:17:21:C1:60:E4:48:39:30:F7:46:C0:46:04:F3:1A:00:80:7B:08:00:D9:FC:00:00:F0:B5:45:68:87:68:01:24:A4:02:05:E0:01:20:86:46:E7:48:FE:44:00:47:01:3C:A8:78:69:78:09:1A:E5:4E:03:29:10:D0:C9:1C:0E:D0:00:2C:0E:D0:03:28:02:DB:C0:1E:00:06:00:0E:34:21:41:43:48:19:03:30:38:60:30:1C:21:30:F0:BD:00:2C:E0:D1:04:21:DA:48:0A:1C:23:1C:01:24:A6:46:D9:4C:FE:44:20:47:30:1C:25:30:F0:BD:C0:46:99:94:03:00:F9:8C:00:00:10:B5:D4:4C:A0:88:01:21:8E:46:D3:49:FE:44:08:47:00:28:01:D1:EC:48:A0:80:EA:48:FF:30:6E:30:10:BD:15:86:00:00:0D:67:08:00:62:4F:08:00:F8:B5:04:1C:A0:69:0E:21:0E:18:21:7F:00:29:2C:D1:30:1C:01:25:AE:46:EB:49:FE:44:08:47:00:28:01:D1:00:27"
    Wait_HCI_Command_Complete_VS_Write_Memory_Block_Event 5000, 0x00, 0xff05, 0x00
    Send_HCI_VS_Write_Memory_Block 0xFF05, 0x000875c2, 0xfa, "08:E0:AE:46:E8:49:FE:44:08:47:00:78:A8:21:41:43:E6:48:47:5C:38:1C:AE:46:E9:49:FE:44:08:47:80:00:00:90:38:1C:AE:46:E1:49:FE:44:08:47:AE:46:E0:49:FE:44:08:47:02:1C:02:36:30:1C:00:99:51:18:AE:46:DD:4A:FE:44:10:47:A0:69:60:60:DB:48:81:30:F8:BD:DC:48:1B:30:F7:46:AD:45:05:00:A5:21:08:00:D9:49:0A:1C:3A:32:12:78:09:78:89:18:41:60:D7:48:83:30:F7:46:FB:8B:04:00:A9:86:00:00:AD:99:00:00:C6:05:00:00:0F:AA:00:00:55:DE:02:00:00:A0:1B:00:F8:B5:00:25:00:95:B9:49:D2:48:00:88:88:42:01:D0:01:26:06:E0:28:1C:01:21:8E:46:C9:4A:FE:44:10:47:2E:1C:95:4F:01:24:3C:76:A6:46:C6:48:FE:44:00:47:3D:72:C5:4F:B8:6D:69:46:A6:46:8C:4A:FE:44:10:47:15:21:00:98:01:70:00:98:46:70:B8:6D:00:99:2A:1C:A6:46:BE:4B:FE:44:18:47:BD:48:3B:30:F8:BD:C0:46:18:80:1B:00:C3:8E:03:00:10:B5:04:1C"
    Wait_HCI_Command_Complete_VS_Write_Memory_Block_Event 5000, 0x00, 0xff05, 0x00
    Send_HCI_VS_Write_Memory_Block 0xFF05, 0x000876bc, 0xfa, "9F:49:B9:48:00:88:88:42:05:D1:00:20:01:21:8E:46:B0:4A:FE:44:10:47:01:20:A0:60:B4:48:57:30:10:BD:03:13:00:00:D4:48:08:00:48:61:08:00:84:45:08:00:A3:56:05:00:CE:0F:08:00:29:19:02:00:0F:1A:02:00:81:26:01:00:DB:EF:04:00:B9:28:05:00:44:61:08:00:DB:22:03:00:31:4F:08:00:5D:86:02:00:E7:2A:00:00:FE:B5:00:90:86:69:00:6A:01:90:30:89:00:28:01:D1:00:24:73:E0:31:68:2D:24:64:4A:2C:20:80:18:02:90:3E:23:01:9D:5B:5D:00:78:83:42:06:D0:A0:5C:83:42:01:D1:01:27:02:E0:02:27:00:E0:00:27:48:68:00:0F:1D:D2:30:1C:01:25:AE:46:92:49:FE:44:08:47:04:1C:30:68:00:28:05:D0:00:1F:31:1C:AE:46:8E:4A:FE:44:10:47:30:89:00:28:49:D1:4A:21:01:98:08:5C:00:28:44:D1:02:2F:42:D0:FF:21:02:98:39:54:3E:E0:08:25:4C:1B:86:48:00:2F:11:D1:21:88:00:29:03:D1:00:20:30:60:70:60:07:E0:21:88:40:18"
    Wait_HCI_Command_Complete_VS_Write_Memory_Block_Event 5000, 0x00, 0xff05, 0x00
    Send_HCI_VS_Write_Memory_Block 0xFF05, 0x000877b6, 0xfa, "31:1C:01:22:96:46:7D:4A:FE:44:10:47:00:20:20:80:11:E0:01:2F:0F:D1:A1:88:00:29:03:D1:00:20:30:60:70:60:06:E0:40:18:31:1C:01:22:96:46:74:4A:FE:44:10:47:00:20:A0:80:30:89:01:38:30:81:E0:78:40:07:40:0F:05:43:E5:70:30:89:00:28:09:D1:4A:21:01:98:08:5C:00:28:04:D1:02:2F:02:D0:FF:21:02:98:39:54:08:34:00:98:44:60:63:48:51:30:FE:BD:C0:46:A3:1B:00:00:5D:15:00:00:A5:E0:01:00:64:61:08:00:6D:17:08:00:29:22:08:00:2F:85:03:00:C1:CB:03:00:F0:B5:05:1C:AE:69:00:24:6C:60:10:E0:11:20:40:01:60:43:59:49:0F:18:10:20:C0:19:31:1C:01:22:96:46:56:4A:FE:44:10:47:00:28:00:D1:6F:60:01:34:54:48:00:78:84:42:EA:DB:53:48:47:30:F0:BD:1E:17:08:00:F1:CA:03:00:91:90:03:00:30:B5:45:69:68:7A:FF:28:0D:D0:01:24:A6:46:4C:49:FE:44:08:47:C2:21:08:5C:02:28:04:D0:68:7A:A6:46:48:49:FE:44"
    Wait_HCI_Command_Complete_VS_Write_Memory_Block_Event 5000, 0x00, 0xff05, 0x00
    Send_HCI_VS_Write_Memory_Block 0xFF05, 0x000878b0, 0xfa, "08:47:48:48:CF:30:30:BD:17:8F:03:00:BD:59:05:00:1F:03:00:00:DF:87:04:00:14:24:08:00:19:90:01:00:F0:B5:81:68:81:61:46:68:B8:20:80:5D:40:4F:02:28:0C:D1:01:24:A6:46:3C:48:FE:44:00:47:00:28:05:D0:A6:46:3A:48:FE:44:00:47:01:28:02:D0:38:1C:C0:1C:F0:BD:00:25:68:1C:00:04:00:0C:A6:46:16:49:FE:44:08:47:00:28:0A:D0:FF:21:C1:31:08:18:01:78:02:29:02:D0:00:7D:02:28:01:D1:BC:20:84:55:01:35:07:2D:E8:DB:38:1C:8F:30:F0:BD:89:8D:01:00:FF:FF:00:00:28:49:09:78:80:69:C1:70:27:48:63:30:F7:46:00:B5:40:68:01:21:8E:46:26:49:FE:44:08:47:23:48:57:30:00:BD:C0:46:F5:2A:00:00:D9:8F:01:00:CB:18:08:00:E9:76:04:00:C5:76:04:00:D5:2A:00:00:39:14:02:00:C5:79:04:00:9D:B1:03:00:87:0F:08:00:79:95:01:00:29:D9:00:00:11:DE:02:00:14:54:08:00:E7:59:05:00:59:DD:02:00:60:61:08:00:D5:44"
    Wait_HCI_Command_Complete_VS_Write_Memory_Block_Event 5000, 0x00, 0xff05, 0x00
    Send_HCI_VS_Write_Memory_Block 0xFF05, 0x000879aa, 0xfa, "00:00:ED:20:05:00:4D:0B:04:00:13:22:05:00:00:00:18:00:00:00:08:00:81:94:03:00:33:4F:08:00:8D:D0:03:00:0B:34:04:00:1F:33:04:00:5D:27:05:00:19:DE:01:00:CD:33:04:00:BD:A6:00:00:5A:56:08:00:B1:82:00:00:73:16:02:00:DB:EF:04:00:FF:B5:68:46:FE:F7:2E:FE:FF:BD:FF:B5:68:46:FE:F7:53:FE:FF:BD:FF:B5:68:46:FD:F0:70:FA:FF:BD:FF:B5:68:46:FE:F7:D7:FD:FF:BD:FF:B5:68:46:FF:F7:5C:FB:FF:BD:FF:B5:68:46:FD:F0:39:FA:FF:BD:FF:B5:68:46:FE:F7:50:FE:FF:BD:FF:B5:68:46:FE:F7:CD:FC:FF:BD:FF:B5:68:46:FF:F7:66:F9:FF:BD:FF:B5:68:46:FE:F7:41:FD:FF:BD:FF:B5:68:46:FE:F7:CE:FE:FF:BD:FF:B5:68:46:FE:F7:6F:FD:FF:BD:FF:B5:68:46:FE:F7:2C:FC:FF:BD:FF:B5:68:46:FE:F7:C7:FC:FF:BD:FF:B5:68:46:FF:F7:EE:F9:FF:BD:FF:B5:68:46:FF:F7:CD:F8:FF:BD:FF:B5:68:46:FE:F7:DE:FF:FF:BD:FF:B5:68:46:FE:F7"
    Wait_HCI_Command_Complete_VS_Write_Memory_Block_Event 5000, 0x00, 0xff05, 0x00
    Send_HCI_VS_Write_Memory_Block 0xFF05, 0x00087aa4, 0x0e, "09:FF:FF:BD:FF:B5:68:46:FE:F7:8A:FF:FF:BD"
    Wait_HCI_Command_Complete_VS_Write_Memory_Block_Event 5000, 0x00, 0xff05, 0x00
    Send_HCI_VS_Write_Memory_Block 0xFF05, 0x00087b78, 0x88, "00:B5:F8:F0:41:FA:00:BD:A7:71:08:00:01:74:08:00:5F:73:08:00:8F:73:08:00:19:74:08:00:ED:73:08:00:3B:74:08:00:8D:74:08:00:A5:74:08:00:E7:73:08:00:69:61:08:00:00:00:00:00:BD:74:08:00:E5:74:08:00:75:75:08:00:8D:78:08:00:09:75:08:00:BB:72:08:00:D9:72:08:00:51:76:08:00:B9:76:08:00:D1:78:08:00:41:79:08:00:A1:75:08:00:13:76:08:00:21:76:08:00:1D:77:08:00:45:78:08:00:4F:79:08:00:6D:50:18:00:C7:71:08:00:A3:72:08:00"
    Wait_HCI_Command_Complete_VS_Write_Memory_Block_Event 5000, 0x00, 0xff05, 0x00
    Send_HCI_VS_Write_Memory_Block 0xFF05, 0x001af304, 0x80, "1E:8D:00:00:2C:23:03:00:3A:DF:02:00:3A:1A:02:00:64:86:02:00:E8:28:05:00:7E:15:00:00:A6:E0:01:00:54:85:03:00:52:27:01:00:7C:BF:02:00:FF:FF:FF:FF:2E:CC:03:00:C8:90:03:00:F0:8E:01:00:22:28:05:00:BE:59:05:00:72:DE:02:00:6E:DF:02:00:64:DD:02:00:22:45:00:00:BE:A6:00:00:08:83:00:00:B8:14:02:00:AE:B1:03:00:F8:95:01:00:F4:20:05:00:CE:D0:03:00:C6:16:02:00:70:A5:01:00:BC:86:00:00:66:AA:00:00"
    Wait_HCI_Command_Complete_VS_Write_Memory_Block_Event 5000, 0x00, 0xff05, 0x00
    Send_HCI_VS_Write_Memory_Block 0xFF05, 0x00180000, 0xfa, "F0:B5:62:4E:07:22:32:70:10:23:73:70:47:20:B0:70:23:20:F0:70:03:25:28:1C:5E:49:01:39:01:24:A6:46:5B:4F:FE:44:38:47:B2:78:F3:78:28:1C:59:49:A6:46:57:4E:FE:44:30:47:28:1C:56:49:01:31:A6:46:56:4A:FE:44:10:47:28:1C:B9:21:C9:00:A6:46:52:4A:FE:44:10:47:A6:46:51:48:FE:44:00:47:51:4B:00:21:08:1C:1A:68:00:2A:04:D0:02:07:15:0F:22:1C:AA:40:11:43:02:07:12:0F:0F:2A:05:D1:C5:08:06:22:2A:40:49:4D:A9:52:00:21:04:33:01:30:20:28:E9:D3:3F:20:46:49:08:70:A6:46:46:48:FE:44:00:47:44:49:08:60:C8:20:44:49:08:80:3C:23:44:48:03:70:02:20:43:49:08:70:FF:22:43:48:02:70:43:48:04:70:43:48:04:70:43:48:04:70:43:48:03:70:28:23:43:70:14:23:83:70:08:20:40:4B:18:70:40:48:0C:25:05:73:0B:23:83:73:0D:23:43:73:81:20:00:03:3D:4B:18:60:40:48:03:1C:5A:33:1C:60:00:27:3A:4B:1F:70:3B:4B"
    Wait_HCI_Command_Complete_VS_Write_Memory_Block_Event 5000, 0x00, 0xff05, 0x00
    Send_HCI_VS_Write_Memory_Block 0xFF05, 0x001800fa, 0xfa, "3A:4E:33:80:02:70:3B:4A:13:80:4F:30:04:70:09:20:21:21:C9:00:0F:22:38:4B:A6:46:38:4E:FE:44:30:47:3A:4E:30:1C:36:38:04:21:A6:46:35:4A:FE:44:10:47:20:1C:86:46:34:49:FE:44:08:47:30:1C:29:1C:A6:46:30:4A:FE:44:10:47:30:1C:29:1C:A6:46:30:4A:FE:44:10:47:2F:4E:A8:19:A6:46:2F:49:FE:44:08:47:30:1C:A6:46:2C:49:FE:44:08:47:A6:46:2B:48:FE:44:00:47:38:1C:A6:46:2B:49:FE:44:08:47:28:49:08:60:29:48:07:60:29:48:07:60:29:48:07:80:0A:20:29:49:08:70:F0:BD:F8:4F:08:00:7B:88:04:00:C6:05:00:00:65:88:04:00:63:02:18:00:80:7B:08:00:84:F3:1A:00:BF:11:08:00:58:61:08:00:47:76:04:00:4A:61:08:00:51:61:08:00:52:61:08:00:53:61:08:00:4E:61:08:00:4F:61:08:00:50:61:08:00:10:31:19:00:15:13:08:00:D8:11:08:00:F4:20:08:00:64:61:08:00:60:61:08:00:FF:FF:00:00:62:4F:08:00:18:24:08:00"
    Wait_HCI_Command_Complete_VS_Write_Memory_Block_Event 5000, 0x00, 0xff05, 0x00
    Send_HCI_VS_Write_Memory_Block 0xFF05, 0x001801f4, 0xfa, "B0:3E:18:00:31:06:04:00:9D:F5:04:00:C3:8E:03:00:36:02:1A:00:B5:F5:04:00:A0:17:08:00:CB:07:04:00:07:58:02:00:C0:62:08:00:C5:79:04:00:C4:62:08:00:C8:62:08:00:62:61:08:00:2D:22:08:00:70:B5:45:4D:AE:7F:01:24:A6:46:41:48:FE:44:00:47:B0:42:F8:D1:03:20:17:21:89:01:A6:46:3D:4A:FE:44:10:47:AD:7F:A6:46:3A:48:FE:44:00:47:A8:42:F9:D1:FE:E7:70:B5:3A:49:08:1F:3A:4A:10:60:04:24:37:48:04:70:46:48:02:1C:70:3A:21:23:9B:18:01:25:1D:70:35:4D:0D:60:02:25:55:71:34:4D:4D:60:03:25:15:70:33:4D:8D:60:14:71:33:4C:CC:60:16:24:A4:18:05:25:25:70:31:4D:0D:61:06:25:D5:74:30:4D:4D:61:07:25:95:71:95:1D:2E:4E:8E:61:08:26:A6:77:2D:4C:CC:61:09:24:94:70:2C:4C:0C:62:0A:24:AC:77:2B:4C:4C:62:0B:24:5C:77:2A:4C:8C:62:0C:24:D4:71:29:4A:CA:62:0D:22:5A:75:28:4A:0A:63:0E:22:02:70:28:4A"
    Wait_HCI_Command_Complete_VS_Write_Memory_Block_Event 5000, 0x00, 0xff05, 0x00
    Send_HCI_VS_Write_Memory_Block 0xFF05, 0x001802ee, 0xd6, "4A:63:0F:22:42:70:27:4A:8A:63:10:22:C2:73:26:4A:CA:63:01:38:11:22:02:70:25:4A:0A:64:12:22:02:71:24:4A:4A:64:13:22:C2:77:23:48:88:64:00:20:25:49:08:80:25:49:08:80:19:21:49:01:1F:4A:11:80:4B:21:09:01:1E:4A:11:80:21:49:22:4A:11:80:1D:49:08:70:70:BD:C5:83:04:00:65:88:04:00:3C:4E:08:00:F2:4F:08:00:70:62:08:00:70:52:08:00:63:7A:08:00:4F:7A:08:00:6D:7A:08:00:77:7A:08:00:59:7A:08:00:9F:7A:08:00:A9:7A:08:00:95:7A:08:00:8B:7A:08:00:81:7A:08:00:45:7A:08:00:09:7A:08:00:27:7A:08:00:E4:52:08:00:13:7A:08:00:F5:79:08:00:FF:79:08:00:31:7A:08:00:3B:7A:08:00:1D:7A:08:00:98:23:08:00:32:24:08:00:54:1D:18:00:44:61:08:00:46:61:08:00:FF:FF:00:00:50:1D:18:00"
    Wait_HCI_Command_Complete_VS_Write_Memory_Block_Event 5000, 0x00, 0xff05, 0x00
    Send_HCI_VS_Write_Memory_Block 0xFF05, 0x00184ea0, 0xfa, "70:B5:06:1C:5A:4C:A0:8A:0F:28:1D:DA:20:89:00:28:1A:D0:58:48:04:21:01:25:AE:46:5A:4A:FE:44:10:47:00:28:11:D1:20:1C:AE:46:53:49:FE:44:08:47:01:1C:08:30:52:4A:10:80:0C:20:00:19:AE:46:52:4A:FE:44:10:47:A0:8A:0F:28:E1:DB:4D:48:40:30:30:62:70:BD:F8:B5:80:8A:FF:21:0B:31:88:42:5B:D0:FF:21:45:31:88:42:16:D1:55:48:00:78:02:28:12:D1:54:49:FF:20:3D:30:40:18:00:90:45:48:40:5C:00:26:86:42:10:D3:51:25:AD:00:28:1C:01:24:A6:46:41:49:FE:44:08:47:00:28:6C:D1:28:1C:3F:49:A6:46:3F:4A:FE:44:10:47:F8:BD:B1:00:00:98:45:58:00:2D:2F:D0:C2:20:40:5D:00:28:2B:D0:B6:20:41:5D:00:29:27:D1:C5:20:40:5D:01:28:23:D0:24:20:01:24:A6:46:3E:4A:FE:44:10:47:00:06:00:0E:B7:22:51:5D:81:42:17:D0:50:55:00:28:14:D1:2F:8D:39:1C:2D:48:A6:46:2D:4A:FE:44:10:47:29:8E:79:18:08:1A:40:1E:39:1C"
    Wait_HCI_Command_Complete_VS_Write_Memory_Block_Event 5000, 0x00, 0xff05, 0x00
    Send_HCI_VS_Write_Memory_Block 0xFF05, 0x00184f9a, 0xfa, "A6:46:28:4A:FE:44:10:47:40:00:28:86:28:8E:40:08:28:86:01:36:25:48:00:78:B3:E7:00:20:01:24:A6:46:23:49:FE:44:08:47:01:1C:00:90:21:4D:28:68:01:30:28:60:2B:27:FF:00:1F:4E:20:48:00:8C:32:68:10:18:80:01:80:09:A6:46:21:4A:FE:44:10:47:00:28:11:DD:00:98:30:60:28:68:03:28:0A:D9:00:20:A6:46:17:49:FE:44:08:47:15:48:38:5C:A6:46:14:49:FE:44:08:47:00:20:28:60:F8:BD:A0:17:08:00:4A:0C:1A:00:4D:0B:04:00:32:02:1A:00:A5:57:02:00:6B:F7:04:00:8B:09:04:00:1B:0A:00:00:CB:D7:03:00:00:66:E3:01:C7:D5:03:00:FF:FF:FF:01:AD:45:05:00:2F:2E:08:00:C5:79:04:00:C4:62:08:00:C0:62:08:00:48:10:08:00:49:11:02:00:45:10:08:00:14:24:08:00:93:E4:04:00:39:7A:04:00:FC:B5:00:90:2D:48:BE:30:00:78:02:28:42:D1:2C:49:FF:20:3D:30:40:18:01:90:23:48:40:5C:00:26:37:E0:B1:00:01:98:45:58:00:2D"
    Wait_HCI_Command_Complete_VS_Write_Memory_Block_Event 5000, 0x00, 0xff05, 0x00
    Send_HCI_VS_Write_Memory_Block 0xFF05, 0x00185094, 0xa4, "2F:D0:C2:20:40:5D:00:28:2B:D0:B6:20:41:5D:00:29:27:D1:C5:20:40:5D:01:28:23:D0:24:20:01:24:A6:46:1E:4A:FE:44:10:47:00:06:00:0E:B7:22:51:5D:81:42:17:D0:50:55:00:28:14:D1:2F:8D:39:1C:11:48:A6:46:17:4A:FE:44:10:47:29:8E:79:18:08:1A:40:1E:39:1C:A6:46:13:4A:FE:44:10:47:40:00:28:86:28:8E:40:08:28:86:01:36:08:48:00:78:86:42:C5:D3:00:98:41:68:81:61:FF:21:41:60:06:48:04:49:08:18:FC:BD:C0:46:1B:0A:00:00:FF:FF:FF:01:2F:2E:08:00:77:02:00:00:FD:A2:01:00:87:0F:08:00:14:24:08:00:93:E4:04:00:AD:45:05:00"
    Wait_HCI_Command_Complete_VS_Write_Memory_Block_Event 5000, 0x00, 0xff05, 0x00
    Send_HCI_VS_Goto_Address 0xFF83, 0x00087b79, 0x00000000, 0x00000000, 0x00000000, 0x00000000
    Wait_HCI_Command_Complete_VS_Goto_Address_Event 5000, 0x00, 0xff83, 0x00
    
    
    
    
    #Send_HCI_VS_Sleep_Mode_Configurations 0xFD0C, 0x01, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0064
    #Wait_HCI_Command_Complete_VS_Sleep_Mode_Configurations_Event 5000, 0x00, 0xfd0c, 0x00
    Send_HCI_VS_Read_Modify_Write_Hardware_Register 0xFD09, 0x001a6058, 0x1000, 0x1000
    Wait_HCI_Command_Complete_VS_Read_Modify_Write_Hardware_Register_Event 5000, 0x00, 0xfd09, 0x00
    Send_HCI_VS_Read_Modify_Write_Hardware_Register 0xFD09, 0x001a6010, 0x0010, 0x0010
    Wait_HCI_Command_Complete_VS_Read_Modify_Write_Hardware_Register_Event 5000, 0x00, 0xfd09, 0x00
    Send_HCI_VS_DRPb_Set_RF_Calibration_Info 0xFD76, 0x01, 0x00005421, 0x00005761, 0x14, 0x05, 0x0a, 0x05, 0x00, 0x07, 0x06, 0x0a, 0x04, 0x05, 0x08, 0x09, 0x0b, 0x0c, 0x0d, 0x0e, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x00000000
    Wait_HCI_Command_Complete_VS_DRPb_Set_RF_Calibration_Info_Event 5000, 0x00, 0xfd76, 0x00
    Send_HCI_VS_DRPb_Enable_RF_Calibration 0xFD80, 0x00, 0x00000001, 0x01
    Wait_HCI_Command_Complete_VS_DRPb_Enable_RF_Calibration_Event 5000, 0x00, 0xfd80, 0x00
    Send_HCI_VS_DRPb_Enable_RF_Calibration 0xFD80, 0x3c, 0x00005ff0, 0x00
    Wait_HCI_Command_Complete_VS_DRPb_Enable_RF_Calibration_Event 5000, 0x00, 0xfd80, 0x00
    Send_HCI_VS_Fast_Clock_Configuration_btip 0xFD1C, 0xff, 0x00001388, 0x000007d0, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0xfa, 0x00, 0x00, 0x0000
    Wait_HCI_Command_Complete_VS_Fast_Clock_Configuration_btip_Event 5000, 0x00, 0xfd1c, 0x00
    
    
    
    Send_HCI_VS_Stop_VS_Lock 0xFE38
    Wait_HCI_Command_Complete_VS_Stop_VS_Lock_Event 5000, 0x00, 0xfe38, 0x00
    
    #################################################################
    ## START of CC2564 Adds-On
    #################################################################
    
    ## Enable fast clock XTAL support
    Send_HCI_VS_Fast_Clock_Configuration_btip 0xFD1C, 0x01, 0x00001388, 0x000007d0, 0xff, 0xff, 0x04, 0xff, 0xff, 0xff, 0xfa, 0x00, 0x00, 0x0000
    Wait_HCI_Command_Complete_VS_Fast_Clock_Configuration_btip_Event 5000, 0x00, 0xfd1c, 0x00
    
    #LE Enable
    Send_HCI_VS_LE_Enable 0xFD5B, 0x01, 0x01
    Wait_HCI_Command_Complete_VS_LE_Enable_Event 5000, 0x00, 0xfd5b, 0x00
    
    ## Enable eHCILL
    #Send_HCI_VS_hcill_parameters 0xFD2B, 0x0010, 0x0050, 0x96
    Send_HCI_VS_hcill_parameters 0xFD2B, 0x0000, 0x0000, 0x00
    Wait_HCI_Command_Complete_VS_hcill_parameters_Event 5000, 0x00, 0xfd2b, 0x00
    
    #Send_HCI_VS_Sleep_Mode_Configurations 0xFD0C, 0x01, 0x01, 0x00, 0xff, 0xff, 0xff, 0xff, 0x0064
    Send_HCI_VS_Sleep_Mode_Configurations 0xFD0C, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0064
    Wait_HCI_Command_Complete_VS_Sleep_Mode_Configurations_Event 5000, 0x00, 0xfd0c, 0x00
    #i2s/pcm
    Send_HCI_VS_Write_CODEC_Config 0xFD06, 3072, 0x00, 0x0000bb80, 0x0000, 0x01, 0x00, 0x00, 0x0020, 0x0001, 0x01, 0x0020, 0x0001, 0x00, 0x00, 0x0020, 0x0021, 0x01, 0x0020, 0x0021, 0x00, 0x00
    Wait_HCI_Command_Complete_VS_Write_CODEC_Config_Event 5000, 0x00, 0xfd06, 0x00
    
    #Send_HCI_VS_Set_Pcm_Loopback_Enable 0xFE28, 0x01
    #Wait_HCI_Command_Complete_VS_Set_Pcm_Loopback_Enable_Event 5000, 0x00, 0xfe28, 0x00
    
    
    #################################################################
    ## END of CC2564 Adds-On
    #################################################################
    
    

  • Hi Shiva,

    I will follow up this week.

    Thanks,
    Jacob

  • Hello Shiva,

    Remember that you should provide HCITester with commands in hex format. I'm not sure it will interpret the decimal "3072" correctly. This would be the "0xc00" value you used before for 3MHz. 

    You should probably change your direction parameter back to PCM slave:

    Do you know what clock edge direction (based on the PCM clock) your codec begins to sample the audio? If your codec is sampling on the rising PCM clock edge (0x00), you should configure your CH1 in_edge and CH2 in_edge to sample on the negative clock edge (0x01). CH1 out_edge and CH2 out_edge should be opposite of the in_edges. If you are not sure, can you try swapping the values of the in_edges and out_edges?

    Also, your PCM clock rate should be at least 64 times the frame sync frequency (BCLK >= 64 * WCLK). This is because you are using two 32 bit channels for stereo data. If you use 16 bit channels, the PCM clock rate only needs to be at least 32 times the frame sync frequency. Assuming you use two 32 bit channels, your PCM clock rate should be: 0x30000. This may be greater than the CC2564C allows, so I recommend using the 16 bit channels if this does not work.

    think your command should look like:

    Send_HCI_VS_Write_CODEC_Config 0xFD06, 0x30000, 0x01, 0x0000bb80, 0x0000, 0x01, 0x00, 0x00, 0x0020, 0x0001, 0x01, 0x0020, 0x0001, 0x00, 0x00, 0x0020, 0x0021, 0x01, 0x0020, 0x0021, 0x00, 0x00

    Wait_HCI_Command_Complete_VS_Write_CODEC_Config_Event 5000, 0x00, 0xfd06, 0x00

    Additionally, it would be helpful to see the PCM clock in this oscilloscope capture.

    Thanks,
    Jacob

  • Hi Jacob,

    we configured the commands in hex format and in decimal format(3072) both are working, we were configured the direction to slave and tested the in_edge, out_edge like you mention above but still we are not getting any luck on this, we were unable to get the data on the negative pulse.

    Can you please test this case with your device.

    if you get the data on the negative pulse, please provide the commands and wave forms.

    Thanks for giving support.

    Thanks & Regards,

    Shiva sagar.

  • Hi Shiva,

    I may be able to test this, but I do not have the same hardware setup as you. Are you able to take HCI logs according to this guide? 

    bt_logger_tool.pdf

    From what I can tell, it looks like your device is configured for single channel. You may need to review your profile setup in BlueZ.

    Thanks,
    Jacob