Developer Portal Community

    cancel
    Showing results for 
    Search instead for 
    Did you mean: 
    SOLVED

    Noise sensor

    pampi
    Member

    Noise sensor

    Hi,

    I try to use the noise sensor. I found the function BSP_Mic_AKU340_Sense(), but it returns by every call the same integer value: -2147483648

    Do I do something wrong?

    I found the implementation in a post on https://xdk.bosch-connectivity.com/community/-/message_boards/message/449418#_19_message_450159.

    Thx

    François

    3 REPLIES 3
    pampi
    Member

    Re: Noise sensor

    I found the answer in the BSP_Mic_AKU340.c

    /*
    * Deprecated */
    int32_t BSP_Mic_AKU340_Sense(void)
    {
    return INT32_MIN;
    }
    #endif /* BCDS_FEATURE_BSP_MIC_AKU340 */

    I found this function NoiseSensor_ReadRmsValue. Is this the right function to use? It returns me always 0.

    float rmsValue;
    NoiseSensor_ReadRmsValue(&rmsValue, 10U);

    Padmapriya
    Long-established Member

    Re: Noise sensor

    Hello,

    Please use the interface functions of Noise sensor module from xdk110\Common\source\Sensor\NoiseSensor.c. From application, noise sensor can be used by sequentially calling the functions,

    1. NoiseSensor_Setup()
    2. NoiseSensor_Enable()
    3. NoiseSensor_ReadRmsValue()

    You can refer VirtualXdkDemo application on usage of noise sensor.

    alexenergy
    New Poster

    Re: Noise sensor

    I have used the three methods:

    1. NoiseSensor_Setup()
    2. NoiseSensor_Enable()
    3. NoiseSensor_ReadRmsValue()

    But it returns me the same value every time.

    Changing the frequency to ADC_CENTRAL_NO_OF_SAMPLES, I notice that the NoiseSensor.c/ProcessCH4Data method is visited twice per second. The first, it reads the correct value, and after, reads a constant value.

    I also have noticed that the method AdcCentral.c/receiveProcess has been visited twice. But I have no access to BCDS_GuardedTask.c/GuardedTask_Initialize method to continue investigating.

    On the other hand, I have found the Mcu_Adc.c/McuAdcDmaScanChannelCb method, that choose between two buffers to write, and the em_dma.c/DMA_IRQHandler method, that toggle the adcPtr->_DriverCtx.PointerValue value, to use one of the two buffers each time. When I set Mcu_Adc.c/McuAdcDmaScanChannelCb/currentActiveBuff local variable to 1, the values seems to be right, despite the twice method call. But, doing that doesn't seem the correct way to fix the problem. I need to use ADC to read others sensors too, and doing that, maybe will not be good.

    Icon--AD-black-48x48Icon--address-consumer-data-black-48x48Icon--appointment-black-48x48Icon--back-left-black-48x48Icon--calendar-black-48x48Icon--center-alignedIcon--Checkbox-checkIcon--clock-black-48x48Icon--close-black-48x48Icon--compare-black-48x48Icon--confirmation-black-48x48Icon--dealer-details-black-48x48Icon--delete-black-48x48Icon--delivery-black-48x48Icon--down-black-48x48Icon--download-black-48x48Ic-OverlayAlertIcon--externallink-black-48x48Icon-Filledforward-right_adjustedIcon--grid-view-black-48x48IC_gd_Check-Circle170821_Icons_Community170823_Bosch_Icons170823_Bosch_Icons170821_Icons_CommunityIC-logout170821_Icons_Community170825_Bosch_Icons170821_Icons_CommunityIC-shopping-cart2170821_Icons_CommunityIC-upIC_UserIcon--imageIcon--info-i-black-48x48Icon--left-alignedIcon--Less-minimize-black-48x48Icon-FilledIcon--List-Check-grennIcon--List-Check-blackIcon--List-Cross-blackIcon--list-view-mobile-black-48x48Icon--list-view-black-48x48Icon--More-Maximize-black-48x48Icon--my-product-black-48x48Icon--newsletter-black-48x48Icon--payment-black-48x48Icon--print-black-48x48Icon--promotion-black-48x48Icon--registration-black-48x48Icon--Reset-black-48x48Icon--right-alignedshare-circle1Icon--share-black-48x48Icon--shopping-bag-black-48x48Icon-shopping-cartIcon--start-play-black-48x48Icon--store-locator-black-48x48Ic-OverlayAlertIcon--summary-black-48x48tumblrIcon-FilledvineIc-OverlayAlertwhishlist