Bosch Sensortec Community

    cancel
    Showing results for 
    Search instead for 
    Did you mean: 

    BMM150 does not generate interrupt signal

    BMM150 does not generate interrupt signal

    hvginno
    Occasional Visitor

    Hi everyone!

    I'm trying to configure threshold interrupt for bmm150. After lots of effort, I can not generate any interrupt signal from bmm150. Bellow, I tried configuring high threshold in Y axis, a interrupt will be generated when magnetic in Y axis exceeds 300 uT.

    const int THR_INTERRUPT = 0x32; // 50*6 = 300(micro T)
    uint16_t desired_settings = BMM150_INT_PIN_EN_SEL | BMM150_INT_LATCH_SEL |/*** END ***/
    BMM150_INT_POLARITY_SEL | BMM150_HIGH_THRESHOLD_SETTING_SEL | BMM150_HIGH_THRESHOLD_INT_SEL;
    state->settings.int_settings.int_pin_en = BMM150_INT_ENABLE;
    state->settings.int_settings.int_polarity = BMM150_ACTIVE_HIGH_POLARITY;
    state->settings.int_settings.int_latch = BMM150_NON_LATCHED;
    state->settings.int_settings.high_int_en = BMM150_THRESHOLD_Y;
    state->settings.int_settings.high_threshold = THR_INTERRUPT;
    int8_t rslt = bmm150_set_sensor_settings(desired_settings, state);
    BMM_INST_LOG(LOW, this, "Config thredhold for interrupt finished, rslt = %d, thredhold = %d", rslt, THR_INTERRUPT);

    // Read registers after configuring
    for(int i = 0; i <= 19; i++) {
    bmm150_get_regs(state->scp_service, state->com_port_info.port_handle, 0x40 + i, &reg_data, 1, state);
    BMM_INST_LOG(LOW, this, "Register 0x%x: 0x%x", 0x40 + i, reg_data);
    }

    After configuring, I checked the log and saw that my configuring code is implemented already. And bellow are values of registers read from bmm150 after I configured threshold interrupt:

    Register 0x40: 0x32
    Register 0x41: 0x5
    Register 0x42: 0x29
    Register 0x43: 0x7
    Register 0x44: 0x59
    Register 0x45: 0xf8
    Register 0x46: 0x25
    Register 0x47: 0x0
    Register 0x48: 0xb0
    Register 0x49: 0x64
    Register 0x4a: 0x0
    Register 0x4b: 0x1
    Register 0x4c: 0x6
    Register 0x4d: 0x2f
    Register 0x4e: 0x45
    Register 0x4f: 0x0
    Register 0x50: 0x32
    Register 0x51: 0x7
    Register 0x52: 0xe
    Register 0x53: 0xff

     My bmm150 is working well, I used a magnet to make Y axis exceeds 300 uT but there is no interrupt generated in INT pin. Does anyone help me figure out the problem. Thank so much !

    1 REPLY 1

    Jet
    Occasional Contributor

    Hi Sir:

         If you want to use BMM150 interrupt feature, you should choose Normal mode.

        Please see the following picture and modify your sourece code.

    Jet_0-1610436484604.png

       Hopefully, it can help you.

     

     

    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