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 [题目] 写一个函数,求两个整数的 ...
随机推荐
- python的static方法和class方法
class Caculator(object): name = "caculator" def __init__(self, x, y): self._x = x self._y ...
- [py]flask操作cookie&django的seesion和cookie机制
浏览器同源策略(same-origin policy) csrf攻击防御核心点总结 django的cookie和session操作-7天免登录 flask操作cookie&django的see ...
- nginx_tcp模块集成到openresty(安装ngx_tcp_lua_module模块)
git地址:https://github.com/bigplum/nginx-tcp-lua-module openresty 本身是使用http协议进行通讯的, 但是项目中经常有要求输入是使用tcp ...
- 拖拽控件java版
Button vv = new Button("vvvv"); DragSource.getDefaultDragSource().createDefaultDragGestur ...
- python自动化系列
1.pytnon环境及IDE 文件还是txt的,是如何查找到python 的呢? 是通过path查找的,且还按以下打印出的内容逐步查找的 mac版
- Entity Framework学习初级篇3--LINQ TO Entities
LINQ 技术(即LINQ to Entities)使开发人员能够通过使用LINQ 表达式和LINQ 标准查询运算符,直接从开发环境中针对实体框架对象上下文创建灵活的强类型查询.LINQ to Ent ...
- How to compile and install Snort from source code on Ubuntu
http://www.tuicool.com/articles/v6j2Ab Snort is by far the most popular open-source network intrusio ...
- 判断一个url是否是图片
public bool RemoteFileExists(string fileUrl) { bool result = false;//下载结果 WebResponse response = nul ...
- EF There is already an open DataReader associated with this Command
捕捉到 System.InvalidOperationException _HResult=-2146233079 _message=意外的连接状态.在使用包装提供程序时,请确保在已包装的 DbCon ...
- input 滑块功能range javascript方法使用
<script> var rangelist=document.querySelectorAll('[type="range"]'); for(var i=0; i&l ...