请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:TMAG5173-Q1 工具与软件:
您好!
我将 测试该传感器以进行 AFE 检查。
根据安全手册、执行时间为200us。 但我在那个时间得到了错误的结果。 我需要至少500us 才能完成转换并获得正确的结果。
我正在尝试尽可能缩短测试执行时间。 我在哪里做错了?
配置寄存器
0xCCU、//DEVICE_CONFIG_1
0x00U、//DEVICE_CONFIG_2
0x40U、//SENSOR_CONFIG_1
0x00U、//SENSOR_CONFIG_2

AFE 校验代码
uint16_t w_TMAG5173_checkAFE(tmag5173_t *ps_tmag)
{
//6.3.7 Analog Front-End (AFE) Check (SM#7) 200 μsec
int16_t i_adcp[3] = {0}, i_adcn[3] = {0};
uint16_t w_status = 0U;
//positive AFE
v_TMAG5173_setMagChannelsTrig(ps_tmag, TMAG5173_MAG_CH_XYZPAFE);
//DEVICE_DELAY_US(500U);
while(w_status == 0U)
{
i_adcp[2] = i_TMAG5173_getResultZ(ps_tmag);
w_status = ps_tmag->aw_values[2] & 0x01U;
}
if(w_status != 0U)
{
v_TMAG5173_getResultXY(ps_tmag);
i_adcp[0] = i_TMAG5173_calcResult16(ps_tmag->aw_values[0], ps_tmag->aw_values[1]);
i_adcp[1] = i_TMAG5173_calcResult16(ps_tmag->aw_values[2], ps_tmag->aw_values[3]);
}
//negative AFE
v_TMAG5173_setMagChannelsTrig(ps_tmag, TMAG5173_MAG_CH_XYZNAFE);
DEVICE_DELAY_US(500U);
i_adcn[2] = i_TMAG5173_getResultZ(ps_tmag);
w_status = ps_tmag->aw_values[2] & 0x01U;
if(w_status != 0U)
{
v_TMAG5173_getResultXY(ps_tmag);
i_adcn[0] = i_TMAG5173_calcResult16(ps_tmag->aw_values[0], ps_tmag->aw_values[1]);
i_adcn[1] = i_TMAG5173_calcResult16(ps_tmag->aw_values[2], ps_tmag->aw_values[3]);
}
return w_TMAG5173_checkAFE_Limits(ps_tmag, i_adcp, i_adcn);
}