无线电爱好网

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

S32K144_PKE HT-3 Configuration

2023-2-16 10:38| 发布者: 闪电| 查看: 17| 评论: 0

摘要: 一、流程及运作结果流程介绍PKE HT-3 配置流程(其中细节部分并没有全部展示)如图1.1所示。图 1.1 PKE HT-3 配置流程图运作结果图1.2是 PKE HT-3 认证时整体硬件环境搭建的截图,高频接收使用的是 NCK2912,基站板 ...


S32K144 通过 PTB11 控制 NJJ29C2 RSTN 复位,然后便会在 5s 的时间范围内检测是否 IRQ 置高,因为当前 NJJ29C2 处于 ERROR 状态,NJJ29C2 会通过 RESP_GENERIC 向 S32K144 汇报该信息。一旦检测到 IRQ 置高,S32K144 就会发送 CMD_NOP 命令,取回 RESP_GENERIC。之后要想 NJJ29C2 能够正常处理 S32K144 发送的 SPI 命令,需要保证 NJJ29C2 从 ERROR 状态退出回到 IDLE 状态,这个时候就需要发送 CMD_CLEAR_DEVICE_INFO 将对应的复位信息清理掉。

 

 

具体代码如下所示:

uint8_t rstnPin_Cendric_Reset (void) {

    uint16_t timeCount_5s = 0;

 

    /* pull down the level of RSTN pin of CENDRIC for 1ms to reset */

    OUTPUT_CLEAR(PTB, PTB11);

    Delay_ms(1);

    OUTPUT_SET(PTB, PTB11);

 

    for ( ; ; ) {

        /* check the IRQ line in cycle in 5s*/

        if(is_pit_triggered()) {

           ++timeCount_5s;

 

           if(5000 <= timeCount_5s) {

               printf("\nNo IRQ 5s after resetting CENDRIC...");

               return Cendric_NoIrq;

           }

 

           if(is_Irq_HighLevel()) {

 

               Cendric_CMD_NOP(0);

 

               Cenric_RESP(cendricRespData, CENDRIC_SPI_LENGTH);

 

               /* clear reset source after reset */

               Cendric_CMD_CLEAR_DEVICE_INFO(1, cendricClrRstnRst , sizeof(cendricClrRstnRst));

 

               /* restore counter, reset is done */

               timeCount_5s = 0;

               return Cendirc_RstSuccess;

           }

 

        }

    }

 

  1. NJJ29C2 基础配置 & Impedance Learning

该部分与文档《S32K144 CADS 调试》所描述的流程一致,参数设置上也没有太大区别,具体代码如下所示:

* Note: the length is not fixed,which can be changed */

uint8_t cendricConfigDev[15] = {

        0x08, 0x02, 0x04, 0x40, 0x21, 0x01, 0xD5, 0xFF, 0x10, 0x00, 0x00,

        0x00, 0x01, 0xFF, 0xFF

};

uint8_t cendricConfigAdvanced[6] = {

        0x03, 0xBB, 0xB3, 0xE5, 0x15, 0xF2

};

uint8_t cendricConfigDrv[14] = {

        0xED, 0x02, 0x28, 0x44, 0xED, 0x28, 0xF0, 0x10, 0x82,

        0x38, 0x3F, 0xEB, 0x30, 0xF0

};

uint8_t cendricImpLearning[5] = {

        0x04, 0x01, 0x20, 0x04, 0x05

};

uint8_t cendricDiagResp[1] = { 0x02 };

uint8_t cendricClrRstnRst[1] = { 0x01 };

……

    /* starts PKE LF frame transmission at tx1(High Power Mode) with 1Ap */

    /* HPDR mode TX1-TX2 */

    Cendric_CMD_CONFIG_DEVICE(1, cendricConfigDev, sizeof(cendricConfigDev));

 

    /* This will bring the LF driver duty cycle closer to the target value of 40% */

    Cendric_CMD_CONFIG_ADVANCED(1, cendricConfigAdvanced, sizeof(cendricConfigAdvanced));

 

    /* set initial ZEFF = 10 Ohm, initial inductance value = 345uH */

    Cendric_CMD_CONFIG_DRIVER(0, cendricConfigDrv, sizeof(cendricConfigDrv));

 

    Cendric_CMD_NOP(0);

 

    Cenric_RESP(cendricRespData, CENDRIC_SPI_LENGTH);

 

    /* Antenna TX1 impedance learning (384us CW without regulation) */

    Cendric_CMD_START_LF_TRANSMIT_DATA(1, cendricImpLearning, sizeof(cendricImpLearning));

 

    /* Wait for IRQ in 50ms */

    iftimeout == wait_Irq(50))

    {

        return pkeTask_False;

    }

 

    Cendric_CMD_NOP(0);

 

    Cenric_RESP(cendricRespData, CENDRIC_SPI_LENGTH);

 

    /* get diagnostics information */

    Cendric_CMD_GET_DEVICE_INFO(0, cendricDiagResp, sizeof(cendricDiagResp));

 

    Cendric_CMD_NOP(0);

 

    Cenric_RESP(cendricRespData, CENDRIC_SPI_LENGTH);

 

    /* Wait at minimum 20ms between learning and 1st LF telegram */

    Delay_ms(20);

  1. RSSI Single 测试命令低频信号发送

对于 HT-3 数据的处理并不是本篇的重点,所以就不再介绍,具体代码如下:

/* global char variable - IDE,change it according to Key Fob */

uint8_t gcv_Ide[4]={0xA6, 0x6F, 0x35, 0xE1};

……

uint8_t cendricHt3Data[26] = {

        0x14, 0x01, 0x20, 0x00, 0x7F, 0x00, 0x00, 0x00, 0x00,

        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,

        0x00, 0x00, 0x00, 0x04, 0x01, 0x20, 0x02, 0x5D

};

……

    /* transmit RSSI Single Command via LF signal */

    wakeupId[0] = gcv_Ide[0];

    wakeupId[1] = gcv_Ide[1];

    wakeupId[2] = gcv_Ide[2];

 

    /* Wake Up ID transmitted */

    /* 1. Swap last byte of IDE

       2. OR with 0x0F */

    wakeupId[3] = (gcv_Ide[3] & 0x00) | ((gcv_Ide[3] & 0x0F) << 4);

    wakeupId[3] |= 0x0F;

 

    /* calculate MAC to transmit & RESPONSE to validate */

    HT3_MAC_RESPONSE_CAL();

 

#if (DEBUG == 1)

    printf("\nWakeup ID Value:");

    printf("%02X", giv_Wup);

#endif

 

    /* store gcv_Ide to meet the requirements of SPI transmission sequence */

    cendricHt3Data[5] = wakeupId[0];

    cendricHt3Data[6] = wakeupId[1];

    cendricHt3Data[7] = wakeupId[2];

    cendricHt3Data[8] = wakeupId[3];

 

    /* store HT-3 data(12 bytes)

     * Command: 0x0F (1 byte) + 64 bit challenge (8 bytes) +

     * 16 bit MAC (2 bytes) + CRC (1 byte) */

    for (i = 0; i < 12; i++) {

        cendricHt3Data[i + 9] = PKECMDHT3AuthData[i];

    }

 

    Cendric_CMD_START_LF_TRANSMIT_DATA(0, cendricHt3Data, sizeof(cendricHt3Data));

 

    /* Wait for IRQ in 50ms */

    iftimeout == wait_Irq(50))

    {

        return pkeTask_False;

    }

 



路过

雷人

握手

鲜花

鸡蛋

QQ|关于本站|小黑屋|Archiver|手机版|无线电爱好网 ( 粤ICP备15040352号 ) 无线电爱好技术交流5 无线电爱好技术交流1无线电爱好技术交流9开关电源讨论群LED照明应用、电源无线电爱好技术交流4无线电爱好技术交流8无线电爱好技术交流10无线电爱好技术交流11

粤公网安备 44030702001224号

GMT+8, 2023-2-16 10:41 , Processed in 0.124800 second(s), 17 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2020, Tencent Cloud.

返回顶部