right spindle supply short to gnd-- compact version
hardware guy found that the R1004 lead to this error, but this error should not be checked, because the secondary hall spindle is not used.
2019/4/15-13:00 b_HallcomShortGnd = lb_SetError
use debugger for the board without R1004, it ran into
Dia_HandleErrorsSensorHallSecondary,
if (FALSE != b_DIAGNOSTIC_HANDLE_STATUS( ID_SPINDLE2_HALLCOM_SHORT_GND ) )
{
lps_ErrorResultField->b_HallcomShortGnd = lb_SetError;
}
#define b_DIAGNOSTIC_HANDLE_STATUS(Id) Dia_HandleErrorStatus( aps_Error, \
&C_U8_CONFIG_PTR_DTC_APPL_ERR_CONFIG[Id],\
&lb_SetError )
#define C_U8_CONFIG_PTR_DTC_APPL_ERR_CONFIG (ms_DiagnosisDtcConfig.ps_DtcApplErrConfig)
if( 0 != aps_Inst->s_ErrorHall.u16_State )
{ /* send error only in case of changes !! */
SCI_Write_HallSensor_HallSensorError (&aps_Inst->s_ErrorHall , ae_Instance);
}
Dia_BufferAllReceivedErrors
SCI_Read_HallSensor_Error (&ls_Error, E_SHA_HALL_SECONDARY); if (E_SHA_HALL_MAX_NUM_OF_HALLS > ae_Inst) { *(aps_Error) = gs_Sci_Data_Buffer.SensorHallErr[ae_Inst].s_Error; }
Dia_BufferReceivedErrors ( ls_Error.u16_State,
ls_Error.u16_Error,
DTC_BUFFER_Dia_HandleErrorsSensorHallSecondary );
2019/4/15-13:20 //lps_ErrorResultField->b_HallcomShortGnd
comment //lps_ErrorResultField->b_HallcomShortGnd = lb_SetError;
and then found invalid position from diagnosis-last interrupt reason read
18:18 b_MinUBatInputOK and b_Hall... different in new/old board
in SensorHall.c
in SenserHall_Diagnostic()
this if condition was not meeted in the board with R1004, but meeted in the old board
if( (FALSE != aps_ReqPorts->b_MinUBatInputOK ) &&
(FALSE != aps_ReqPorts->b_HallSupplyStable ) &&
(FALSE != aps_ReqPorts->b_HallSignalStable ) )
watched the 3 variable are all TRUE for Primary and Secondary for old board
but when R1004 is removed, only b_MinUBatInputOK is TRUE, the other 2 are FALSE
b_MinUBatInputOK are both TRUE for primary and secondary Hall Sensor
( b_MinUBatUndershot and b_MinUBatBackupUndershot are assigned
in Environment.c
in Env_DetermineUBatUnderVoltageErrorFlags() )
11:29 b_UHallStable, b_UHallRangeValid and b_HallSupplyStable
b_HallSupplyStable is determined by b_UHallRangeValid
aps_RequiredPorts->b_HallSupplyStable = ( (FALSE != ms_SensorHallConfigVar.b_UHallRangeValid) &&
(FALSE == ms_SensorHallConfigVar.b_UHallSwitchedOffByShortToGnd [ae_Instance]) )
? TRUE : FALSE;
b_UHallRangeValid is determined by b_UHallStable
in SensorHall_ReadRequiredPorts:
if (FALSE != l_Pmg_StableFlags.s_Bits.b_UHallStable)
{
ms_SensorHallConfigVar.b_UHallRangeValid = TRUE;
}
13:10 b_UHallStable be assigned in Pmg_UpdateHCOMStableFlag
b_UHallRangeValid is assigned from b_UHallStable
in PowerManager_cfg.c
Pmg_UpdateHCOMStableFlag()
/* Hall Supply A and B shall behavior in the same way, not working independantly*/
aps_ProvidedPorts->u_StableFlags.s_Bits.b_UHallStable = FALSE;
16:16 b_HallSupplyB is 0
watched:
aps_ProvidedPorts->u_StateOfControlledOutputs.s_Bits.b_HallSupplyB
is 0 when R1004 is removed.
in Pmg_UpdateHCOMStableFlag():
if( (FALSE != aps_ProvidedPorts->u_StateOfControlledOutputs.s_Bits.b_HallSupplyA)
&& (FALSE != aps_ProvidedPorts->u_StateOfControlledOutputs.s_Bits.b_HallSupplyB) )
{
SCI_Call_Bsw_SetDigitalOutput(E_BSW_DO_SUP_HCOM_A, TRUE);
SCI_Call_Bsw_SetDigitalOutput(E_BSW_DO_SUP_HCOM_B, TRUE);
SCI_Timer_Load(C_S_PMG_TIMER.e_HallStable, as_Par.u16_UHallStableDelayTime);
}
else
{
SCI_Call_Bsw_SetDigitalOutput(E_BSW_DO_SUP_HCOM_A, FALSE);
SCI_Call_Bsw_SetDigitalOutput(E_BSW_DO_SUP_HCOM_B, FALSE);
aps_ProvidedPorts->u_StableFlags.s_Bits.b_UHallStable = FALSE;
}
16:30
try code:
SensorHall_ReadRequiredPorts()
aps_RequiredPorts->b_HallSupplyStable =
Pmg_UpdateHCOMStableFlag()
aps_ProvidedPorts->u_StableFlags.s_Bits.b_UHallStable =
result: left spindle hall supply short to gnd
b_MinUBatInputOK, b_HallSupplyStable and b_HallSignalStable are all TRUE for both Primary and Secondary.
18:27
watch in SensorHall_Diagnostic
aps_ReqPorts->u16_HallSupplyVoltage is 0 for both Primary and Secondary
18:28
make it run OK when comment
//SensorHall_Diagnostic (aps_Inst, aps_ReqPorts);
so that it will diagnostic none.
Question:
why diagnosis cannot get the right hall voltage?
19:20
in Sci_loHwAbMapping.cfg:
DIGITAL_OUTPUT_CFG ( E_BSW_DO_SUP_HCOM_A , BSWIF_DO_SBC_SUP_HCOM_GROUP_A )
in Bswif.c
{BSWIF_DO_SBC_SUP_HCOM_GROUP_A, SBC_DO_OUT1 },
One Day Later
2019/4/18--10:15
reality, only //SensorHall_Diagnostic control the error
todo:
why there is error? how to make it OK keeping diagnosis?
right spindle supply short to gnd-- compact version的更多相关文章
- right spindle supply short to gnd
hardware guy found that the R1004 lead to this error, but this error should not be checked, because ...
- 【转】 svn 错误 以及 中文翻译
直接Ctrl+F 搜索你要找的错 # # Simplified Chinese translation for subversion package # This file is distribute ...
- How to read a scientific paper
How to read a scientific paper Nothing makes you feel stupid quite like reading a scientific journal ...
- Git - Tutorial官方【转】
转自:http://www.vogella.com/tutorials/Git/article.html#git_rename_branch Lars Vogel Version 5.8 Copyri ...
- Modules you should know in Python Libray
前两天被问到常用的python lib和module有哪些?最常用的那几个,其他的一下子竟然回答不上.想想也是,一般情况下,遇到一个问题,在网上一搜,顺着线索找到可用的例子,然后基本没有怎么深究.结果 ...
- Config File Settings Of EF——实体框架的配置文件设置
我亦MSDN 原文地址 http://msdn.microsoft.com/en-us/data/jj556606 Entity Framework allows a number of settin ...
- The YubiKey NEO
The YubiKey NEO The YubiKey line of hardware one-time-password (OTP) generators has been on the mark ...
- SVN错误信息汇总
svn错误信息 # # Simplified Chinese translation for subversion package # This file is distributed under ...
- 52. 不用+、-、×、÷做加法[add two numbers without arithmetic]
[本文链接] http://www.cnblogs.com/hellogiser/p/add-two-numbers-without-arithmetic.html [题目] 写一个函数,求两个整数的 ...
随机推荐
- (转)Ctrl+H 浪潮Raid配置文档
说明 本手册适用于LSI芯片Raid卡 包括但不限于Inspur 2008/2108 Raid卡.LSI 9240/9260/9261/9271 等Raid卡. 不同型号的Raid卡在某些功能上的支持 ...
- nginx 多级反向代理获取客户端真实IP
set_real_ip_from ; set_real_ip_from ; set_real_ip_from ; set_real_ip_from ; set_real_ip_from 127.0.0 ...
- SpringMVC的Model ModeMap ModelAndView @ModelAttribute @SessionAttribute区分
Spring MVC整理系列(05)————Spring MVC配置解析及整合SpriSpring MVC之@ModelAttribute.@SessionAttributes以及Model的使用介绍 ...
- iNotify.js通知JS 实现浏览器的 title 闪烁、滚动、声音提示、chrome、Firefox、Safari等系统通知。
https://github.com/jaywcjlove/iNotify JS 实现浏览器的 title 闪烁.滚动.声音提示.chrome.Firefox.Safari等系统通知. 这是重 ...
- Node.js进击基础一(5-11事件模块)
res.on res有on方法. 在nodejs中不存在浏览器里的冒泡捕获等行为,集成了一个模块events,对外暴露一个对象EventEmitter ,EventEmitter作用只有2个事件的发射 ...
- cocos2dx 3.x(纯代码实现弹出对话框/提示框/警告框)
头文件: // // PopAlertDialog.h // macstudycocos2dx // // Created by WangWei on 15/6/8. // // #ifndef ...
- Tomcat任意文件上传漏洞CVE-2017-12615
文章来源:https://blog.csdn.net/qq1124794084/article/details/78044756 漏洞影响的tomcat版本为tomcat7.0.0-7.0.81版本 ...
- linux编写脚本检测本机链接指定IP段是否畅通
linux编写脚本检测本机链接指定IP段是否畅通,通过ping命令检测指定IP,检测命令执行结果,若为0表示畅通,若为1表示不通,以此判断网络是否畅通,但是指定机器禁用ping命令除外.代码如下: # ...
- 强化学习--Policy Gradient
Policy Gradient综述: Policy Gradient,通过学习当前环境,直接给出要输出的动作的概率值. Policy Gradient 不是单步更新,只能等玩完一个epoch,再 ...
- MySql获取两个日期间的时间差
[1]MySql 语言获取两个日期间的时间差 DATEDIFF 函数可以获得两个日期之间的时间差.但是,这个函数得出的结果是天数. 需要直接获取秒数可使用TIMESTAMPDIFF函数.应用示例如下: ...