Watchdog TLE9471 auf default beim Wechsel vom STOP_MODE in NORMAL_MODE

OP #7974398
Lesenswert?

Hallo, ich habe ein S32K144 Evalboard und ein TLE9471-3ES Evalboard mit SPI miteinander verbunden. Die Kommunikation an für sich funktioniert, allerdings habe ich Probleme beim Watchdog vom TLE9471.

Mein Vorgehen, ich initialisiere den TLE9471 (Watchdog Timer = 1000ms) und gehe dann in den STOP_MODE (Watchdog muss nicht mehr getriggert werden). Nach ~2 Sekunden, wechsle ich zurück in den NORMAL_MODE und muss den Watchdog Triggern. Dies mache ich auch (laut Code), dennoch wird der Watchdog vom TLE getriggert und setzt diesen zurück. Nur wenn ich das komplette SBC_Init ausführe, funktioniert es. Dann ist es wie ein kompletter Neustart.

Im Datenblatt habe ich nichts gefunden, dass beim Wechseln von den verschiedenen Modes etwas gemacht werden muss.

1
SBC_ErrorCode errCode;
2
errCode = SBC_Write_RegField(SBC_WK_CTRL_0, SBC_WK_CTRL_0_WD_STM_EN_1_Msk, SBC_WK_CTRL_0_WD_STM_EN_1_Pos, SBC_WD_STM_EN_1_NOWATCHDOG_STOPMODE, NULL);
3
errCode = SBC_Write_RegField(SBC_WD_CTRL, SBC_WD_CTRL_WD_STM_EN_0_Msk, SBC_WD_CTRL_WD_STM_EN_0_Pos, SBC_WD_STM_EN_0_NOTACTIVE_STOPMODE, NULL);
4
errCode = SBC_Mode_Stop();
5
for(;;)
6
{
7
    if (counter >= 2105483) // ~500 ms
8
    {
9
        counter = 0;
10
        if (counter2 >= 4)
11
        {
12
            wd_timer2 = SBC_Read_RegField(SBC_WD_CTRL, SBC_WD_CTRL_WD_TIMER_Msk, SBC_WD_CTRL_WD_TIMER_Pos);
13
            if (0 == state)
14
            {
15
                errCode = SBC_Mode_Normal();
16
                wd_timer3 = SBC_Read_RegField(SBC_WD_CTRL, SBC_WD_CTRL_WD_TIMER_Msk, SBC_WD_CTRL_WD_TIMER_Pos);
17
                //SBC_Init();
18
                //errCode = SBC_Write_RegField(SBC_WD_CTRL, SBC_WD_CTRL_WD_TIMER_Msk, SBC_WD_CTRL_WD_TIMER_Pos, SBC_WD_TIMER_1000MS, NULL);
19
                state = 1;
20
            }
21
            counter2 = 5;
22
            errCode = SBC_WD_Trigger();
23
        }
24
    }
25
    counter++;
26
    counter2++;
27
}

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren