Forum: Mikrocontroller und Digitale Elektronik Watchdog TLE9471 auf default beim Wechsel vom STOP_MODE in NORMAL_MODE


von Chandler B. (chandler)


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
}

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.