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.

Host control mode, CC8530+AIC3204+MCU problems, need pro's consultancy.

here just four questions, anyone can answer any of them is welcome and appreciated.

1.   How to get mute status feedback from PC side (both input and output mute) through EHIF at host control.   

Because in EMIF protocol, we CAN NOT find the Mute status feedback, but in normal 8520/30 controlling AIC3204 mode, we captured mute command through I2C when PC side press mute button on volume slider(see picture PC Slider.png) , this means 8520/30 dongle side DOES inform  8520/30 slave to mute codec and update the mute status, but in EHIF protocol, engineer just CAN NOT find Mute status except the volume status.

2.  Can MCU through 8530 slave and master(dongle) know what OS is on PC side?   It may needs TI’s driver and firmware level has this feature, just kindly ask whether TI has made this feature in their firmware?

3.  another question is can 8530 slave has digital volume control over the I2S channel audio stream?   Like we can change digital MEMS microphone (I2S interface to 8530 slave) volume and then send to dongle at PC side.

  • here is our block diagram,  with the illustration of the bi-directional volume and mute change events to update both on device side(slave side) and PC side(master side).  the problem is EMIF doesnt provide mute status on 8520 slave side to inform MCU that PC side has mute or not on volume slider.

    issue also exsists for MIC volume and mute, see PC side mic properties window

     

     

  • Hi Pin, 

    1. You will need to do the following:
    Master side volume control: Set Slave to  Master remote input volume to your desired tunable range. Default is minimum volume 0dB and this does not allow for any control. Set the minimum to -20 dB (and your desirable default volume)
    Slave side volume contro: Set the output and input volume to be remotely controlled

    From the Users Guide
    "Muting shall occur if the volume setting corresponds to -128.0 dB", so this means there is no separate command to know mute status. 

    2. This is not possible I'm afraid. We use standard USB Audio and HID class for our device.

    3. From User Guide section 3.5.4: "The actual volume control takes place in the external audio device." So the answer is no. We do no digital adjustment of the audio stream. 

    Hope this clarifies things.
    Regards,
    Kjetil 

     

  • thank you, Kjetil, the No. 2 and No. 3 are clear. No. 1 still have some questions 

    1. You will need to do the following:
    Master side volume control: Set Slave to  Master remote input volume to your desired tunable range. Default is minimum volume 0dB and this does not allow for any control. Set the minimum to -20 dB (and your desirable default volume)   here we found output volume read out at -128db when two status happened to PC side, A. volume slider is moved to bottom, B. PC side user has muted the speaker.   The range ceiling is PC side top is 0db as you said.   The most complex thing is each step of PC slider volume correspondents to a db value at slave side, but the value is none linear, why?  and the none linear relationship is different between Xp and Win7.
    Slave side volume contro: Set the output and input volume to be remotely controlled.  Under the USB master mode we didnt find input volume can be controllable on PC side as the above captured picture of microphone properties window showing you. Neither can we read out the value of input volume on slave side, the mic input volume always read out at FC00 (-128db).  how can we use the input volume at USB dongle mode?  maybe you can have a try if you got USB dongle and connect it to PC.

    From the Users Guide
    "Muting shall occur if the volume setting corresponds to -128.0 dB", so this means there is no separate command to know mute status. 

    2. This is not possible I'm afraid. We use standard USB Audio and HID class for our device.

    3. From User Guide section 3.5.4: "The actual volume control takes place in the external audio device." So the answer is no. We do no digital adjustment of the audio stream. 

  • Hi Pin, 

    With regards to the non-linearity and difference between Xp and Win7 then this is embedded into the Windows OS and nothing we control. We only set the range of the slider, but the steps and linearity is as is from the OS side. Can't think of an obvious way to get around this. 

    For slave side:

    - Make sure you have a negative number as minimum volume for the remote input volume in the USB configuration. If this is set to zero you will not have any range to play with in windows.
    - Make sure you select remote input volume on your microphone (slave) (meaning that the usb host is controlling the input volume).
    - Make sure the minimum input volume on your mic is negative (since the volume setting coming from the pc is 0 or below).
    - Depending on your selected audio device you must most likely add a fixed volume as well, since the input volume in the audio device definition file is often 0 or above.

    Hope this helps. 

    Regards, 
    Kjetil 

  • thank you for your enlightment, Kjetil,  we tested it and found two issues and one progress.

    A. two issues

    1. the readouts of microphone bottom volume is always -15db, not the -20db as we follow your above configurations and download to our board. even we change to other figure, readouts still -15db. why? can you have a try.  we use the EHIF command to get back input volume readouts when move microphone slider to bottom level.

     

    2. why there is no microphone volume increase and decrease,  compared to output volume has volume control. see the attached.

    B. one progress is

    in microphone readouts, mute status will get -128db, and bottom volume readouts is -15db (though its not matching -20db), so there is difference to distinguish bottom volume and mute. 

    then one question is how to make this for output, means how to make bottom volume readouts is not set to -128db but other value?

    Kjetil you are great and the first who can answer our questions, thanks a lot!

  • hello, Kjetil, thank you very much for last time answers, it really helps a lot.  but as we still have some issues when testing your configuration .

    1. When -20db is programmed as the minimum volume of input volume (microphone), but the readout is -15db, doesn't match -20db, when PC slider of volume is moved to bottom, only when PC microphone muted, the readout is -20db.   The inconsistency exists for output volume, the minimum volume is set to -63.5db(see the picture below), but readout is -128db, while this time its same as PC muted output(different to input volume bottom level readout is -15db and mute status is -20db).

    2. The fixed offset mean for what offset, at both output volume and input volume configuration (as the green circles marked on picture below)

    3. is there no microphone volume increase and decrease command in 8531 firmware?  As for standard USB audio class protocol, both input and output have volume control.



  • Hi Pin Guo,

    I tried this on my Windows 7 computer now and it works as it should. I do the following:

    Testing the output volume...

    -setting minimum output volume to -20 dB (both for the USB master and the slave)

    -Fixed offset should be 0.
    -Pulling output volume cursor all the way to the bottom (see first picture):
    -Use VC_GET_VOLUME on the slave and I read out FF60 = -160 => -20 dB
    -Then I mute the output by clicking the mute icon and read out FFC0 = -1024 => -128 dB

    -setting minimum volume to -10 dB (both for the USB master and the slave)
    -Pulling output volume cursor all the way to the bottom.
    -Use VC_GET_VOLUME on the slave and I read out FFB0 = -80 => -10 dB
    -Then I mute the output and read out FFC0 = -1024 => -128 dB


    Testing the input volume:

    -setting minimum input volume to -20 dB (both for the USB master and the slave)

    -Fixed offset on the slave's remote input volume should be +20 dB
    -Pulling the input volume cursor all the way to the bottom (see second picture):
    -Use VC_GET_VOLUME and I read out FF60 = -160 => -20 dB
    -muting the input by clicking the mute symbol and I read out FC00 = -1024 => -128 dB

    -setting minimum input volume to -10 dB (both for the USB master and the slave)

    -Fixed offset on the slave's remote input volume should be +10 dB
    -pulling cursor all the way to the bottom and read out FFB0 = -80 => -10 dB
    -muting the input and read out FC00 = -1024 => -128 dB

    Double check that you are using VC_GET_VOLUME correct. There is a parameter for whether to read input or output volume for example.

    Best regards

    Kristoffer