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的更多相关文章

  1. right spindle supply short to gnd

    hardware guy found that the R1004 lead to this error, but this error should not be checked, because ...

  2. 【转】 svn 错误 以及 中文翻译

    直接Ctrl+F 搜索你要找的错 # # Simplified Chinese translation for subversion package # This file is distribute ...

  3. How to read a scientific paper

    How to read a scientific paper Nothing makes you feel stupid quite like reading a scientific journal ...

  4. Git - Tutorial官方【转】

    转自:http://www.vogella.com/tutorials/Git/article.html#git_rename_branch Lars Vogel Version 5.8 Copyri ...

  5. Modules you should know in Python Libray

    前两天被问到常用的python lib和module有哪些?最常用的那几个,其他的一下子竟然回答不上.想想也是,一般情况下,遇到一个问题,在网上一搜,顺着线索找到可用的例子,然后基本没有怎么深究.结果 ...

  6. Config File Settings Of EF——实体框架的配置文件设置

    我亦MSDN 原文地址 http://msdn.microsoft.com/en-us/data/jj556606 Entity Framework allows a number of settin ...

  7. The YubiKey NEO

    The YubiKey NEO The YubiKey line of hardware one-time-password (OTP) generators has been on the mark ...

  8. SVN错误信息汇总

    svn错误信息  # # Simplified Chinese translation for subversion package # This file is distributed under ...

  9. 52. 不用+、-、×、÷做加法[add two numbers without arithmetic]

    [本文链接] http://www.cnblogs.com/hellogiser/p/add-two-numbers-without-arithmetic.html [题目] 写一个函数,求两个整数的 ...

随机推荐

  1. dfs1321

    比较抽象吧,看到题时一点思想也没有,参考了别人的代码才知道...渣渣 #include <iostream>#include <stdio.h>#include <str ...

  2. MySQL 基础 DDL和DML

    DDL 数据库定义语句 创建数据库 create table if exits 数据库.表名( field1 数据类型 约束类型 commit 字段注释, field2 数据类型 约束类型 commi ...

  3. 添加了unimportant 之后,需要调整的参数

    count = count1+count2-count_unimportant_union*10 这个10需要调参.因为我们TOPN取的是10,所以如果两个词完全相同,正常情况下会有22个非0值.( ...

  4. zhaoyin

    1.什么时候用到事务,单个update操作会用到事务吗? 银行转账 /**//*--使用事务--*/ use stuDB go --恢复原来的数据 --update bank set currentM ...

  5. 部分还款-还款试算接口与还款接口-python

    一.还款试算.还款接口, 1.只传入参数loan_Code 2.还款接口参数化以下: "loanCode": loanCode1,"orderId": orde ...

  6. cocos2d JS-(JavaScript) 静态方法的例子

    function User(name, age) { this.name = name; this.age = age; } var user = new User('angela',26); Use ...

  7. java的运行机制及初步相关配置(jdk)

    java的运行机制: 计算机高级语言的类型主要有编译型和解释型两种,而java语言是两种类型的结合. java首先利用文本编译器编写java源程序,源文件的后缀名为.java:再利用编译器(javac ...

  8. 001-http协议-请求报文以及服务器响应状态

    Http协议的几个概念: 1.连接(Connection):浏览器和服务器之间传输数据的通道. 一般请求完毕就关闭,http不保持连接.不保持连接会降低处理速度(因为建立连接速度很慢),保持连接的话就 ...

  9. 第一章 JS基础

    1.JavaScript的作用:表单验证,减轻服务器压力动态效果动态改变页面内容 2.JavaScript的组成ECMAScript语法规定BOM对象模型(浏览器对象模型)DOM对象模型(文档对象模型 ...

  10. Unity shader学习之遮罩纹理

    什么是遮罩? 遮罩允许我们可以保护某些区域,使它们奂于某些修改. 例如下面的例子,使用遮罩来控制高光反射. 转载请注明出处:http://www.cnblogs.com/jietian331/p/71 ...