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.

[参考译文] TMAG5273:TMAG5273 ws 模式中断触发问题

Guru**** 2668435 points
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/sensors-group/sensors/f/sensors-forum/1290803/tmag5273-tmag5273-ws-mode-interrupt-triggered-problem

器件型号:TMAG5273

存在一个奇怪的问题、在触发阈值范围内、进入 ws 模式将立即唤醒。 例如、如果当前磁场强度为1mT 且我将阈值设置为小于1.25mT、则会发生中断。 然后、如果我将其配置为进入 ws 模式、它将立即被唤醒。 唤醒后、我将其配置为在连续转换模式下运行大约10秒、并继续重复之前的操作。 如果我将其配置为进入 ws 模式、它也会立即被唤醒。 下面是两种切换模式的配置。

RetTypeDef hall_sensor_logic_set_continuous_mode(void)
{
    RetTypeDef ret = RET_OK;
    uint8_t value;

    if (g_op_mode == CONTINUOUS_MODE)
    {
        DEBUG_LOG_ERROR("[HALL] already in continuous mode.\r\n");
        return RET_OK;
    }
    g_op_mode = CONTINUOUS_MODE;

    DEBUG_LOG_ERROR("[HALL] set continuous mode.\r\n");

    value = 0x14;
    hall_sensor_hal_write_byte(TMAG5273_REG_DEVICE_CONFIG_1, &value);

    value = 0x87;
    hall_sensor_hal_write_byte(TMAG5273_REG_SENSOR_CONFIG_1, &value);

    value = 0x00;
    hall_sensor_hal_write_byte(TMAG5273_REG_INT_CONFIG_1, &value);

    value = 0x14;
    hall_sensor_hal_write_byte(TMAG5273_REG_SENSOR_CONFIG_2, &value);

    value = 0xC5;
    hall_sensor_hal_write_byte(TMAG5273_REG_MAG_GAIN_CONFIG, &value);

    value = 0x02;
    hall_sensor_hal_write_byte(TMAG5273_REG_DEVICE_CONFIG_2, &value);

    return ret;
}


RetTypeDef hall_sensor_logic_set_w_s_mode(void)
{
    RetTypeDef ret = RET_OK;
    uint8_t value;

    if (g_op_mode == W_S_MODE)
    {
        DEBUG_LOG_ERROR("[HALL] already in W&S mode.\r\n");
        return RET_OK;
    }
    g_op_mode = W_S_MODE;

    DEBUG_LOG_ERROR("[HALL] set W&S mode.\r\n");

    value = 0x14;
    hall_sensor_hal_write_byte(TMAG5273_REG_DEVICE_CONFIG_1, &value);

    value = 0x17;
    hall_sensor_hal_write_byte(TMAG5273_REG_SENSOR_CONFIG_1, &value);

    value = 0x20;
    hall_sensor_hal_write_byte(TMAG5273_REG_SENSOR_CONFIG_2, &value);

    value = 0x64;
    hall_sensor_hal_write_byte(TMAG5273_REG_INT_CONFIG_1, &value);

    value = 0x04;
    hall_sensor_hal_write_byte(TMAG5273_REG_X_THR_CONFIG, &value);

    value = 0x23;
    hall_sensor_hal_write_byte(TMAG5273_REG_DEVICE_CONFIG_2, &value);

    return ret;
}

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    大家好、Shawn、

    感谢您在传感器论坛发帖!

    查看您的代码、发现您正在将0x20写入 SENSOR_CONFIG_2。 采用这种配置  时、MAG_THR_DIR = 1h、这会将中断设置为在字段低于阈值时发生。

    由于您的阈值已设置为1.25mT 且您的字段为1mT、因此满足中断条件、应发生中断。  

    此致!

    ~艾丽西亚