Watchdog XMEGA Problem

pvs-deck
PowerUser
Avatar
Gender:
Age: 53
Homepage: pvs-deck.de
Posts: 1340
Registered: 02 / 2009
Subject:

Re: Watchdog XMEGA Problem

 · 
Posted: 08.04.2015 - 20:16  ·  #17
Quote by rh

Hallo,

bei den XMegas kann man den Watchdog via Fuses aktivieren!
Das ist da der sichere Weg. Und die Watchdogs beim XMega haben einen separaten OSC.

rolf


Hallo rolf,

ich muß da Merlin wohl recht geben, (hinterher ist man immer Schlauer ;) ).
Heute war ein erneuter Termin im EMV-Prüflabor (langsam wird es lästig :( )

Die Burst- und Surge-Tests bis 1kv waren kein Problem mehr nachdem ich den Watchdog direkt als erstes gestartet hatte (Danke für den Hinweis / Tipp an Harald_K), das war wohl das Problem beim ersten Test.

Bei 2kv kam der XMEGA-Prozessor ganz schön aus den Takt, nachdem sich der I2C-PCA ab und an aufgehängt hatte, habe ich in der Loop ab und an eine Abfrage mit TWISTAT auf Funktion geprüft, sobald keine Antwort kam, habe ich dann einen Reset durchgeführt. Damit ist Klasse B der Norm erfüllt. Neustart und Rückkehr zum definierten Zustand.

ABER!! Beim ESD-Test (Luftüberschlag), passiert es bei ca. jeden 10. mal das sich der XMEGA komplett aufhängt. Der Interne-Watchdog führt leider auch dann keinen Reset mehr durch, die Kiste hängt einfach. Der Hardwarereset (Extern) läuft aber.
Wenn ich das richtig verstanden habe, sollte doch der Watchdog unabhängig vom Programm, Task, Process laufen :(

Jetzt muss ich nacharbeiten (hoffentlich das letzte mal), dazu ergeben sich ein paar Fragen an euch :)

1. Bei einigen ATMEGAs gab es das Fusebit WDTON (WatchdogTimerOn), beim XMEGA kann ich im Manual nichts finden, gibt es das nicht mehr?

2. Wenn ich einen externen Watchdog-Baustein einsetzen würde (noch keine Erfahrung bis jetzt), wie löst man die Punkte:
- Verhindern eines Neustartes beim Flashen der Firmware über Programmer ISP?
- Verhindern eines Neustartes beim Flashen der Firmware über Bootloader?

Könnt ihr evtl. einen Empfehlen der zuverlässig arbeitet (Störunanfällig ist),günstig und gut lieferbar ist?

Wenn ich mit dem AVRco Task/Prozesssystem arbeite und sich evtl. ein Task/Prozess aufhängt, müsste ich hier wohl vor dem Triggern des externen Watchdogs die anderen Tasks/Prozesse mit Variablen überwachen oder?
Es könnte ja passieren das sich ein Treiber beim arbeiten mit "Procedure Lock (p : process);" aufhängt oder?

Und wie stelle ich sicher das bei Verwendung der AVRco-Treiber trotzdem der Externe Watchdog innerhalb der Triggerzeit angesteuert wird?
Wie lange sperren die AVRco-Treiber max. das System100ms ( ich denke da an FAT16 usw.)

Was ich aber nicht ganz verstehe in der Norm, weil ich meine Steuerung in ein Hutschienengehäuse gepackt habe muss die Steuerung mit dem ESD-Tester komplett abgefahren werden. Hätte ich die Leiterplatte auf einen Hutschienenadapter (offene Leiterplatte) montiert, müsste dies nicht gemacht werden??? Warum?
Auch wenn ich meine Steuerung in einen Hutschienengehäuse montiere, wird diese immer in einen Steuerkasten oder Verteilung eingebaut, ich hänge diese nie so an die Wand? Kann mir das Jemand erklären?`

Gruß
Thorsten
Harald_K
 
Avatar
 
Subject:

Re: Watchdog XMEGA Problem

 · 
Posted: 08.04.2015 - 21:20  ·  #18
also ich hab grad mal ins Datenblatt geguckt ...

ziemlich bunt, das Teil, sieht eher aus wie ein Werbeprospekt ;)

also der Watchdog wird beim Reset aktiviert, wenn man
- in FuseByte1 die Bits 3..0 mit dem Verzögerungswert vorbesetzt (die werden beim Reset in Watchdog-Ctrl PER3..0 geladen
und
- in FuseByte4 das Bit 1 setzt, damit beim Reset in Watchdog-Ctrl auch das Enable-Bit WDEN gesetzt wird

letzteres müßte das "WDTON" der alten megas sein
pvs-deck
PowerUser
Avatar
Gender:
Age: 53
Homepage: pvs-deck.de
Posts: 1340
Registered: 02 / 2009
Subject:

Re: Watchdog XMEGA Problem

 · 
Posted: 08.04.2015 - 21:53  ·  #19
Quote by Harald_K

also ich hab grad mal ins Datenblatt geguckt ...

ziemlich bunt, das Teil, sieht eher aus wie ein Werbeprospekt ;)

also der Watchdog wird beim Reset aktiviert, wenn man
- in FuseByte1 die Bits 3..0 mit dem Verzögerungswert vorbesetzt (die werden beim Reset in Watchdog-Ctrl PER3..0 geladen
und
- in FuseByte4 das Bit 1 setzt, damit beim Reset in Watchdog-Ctrl auch das Enable-Bit WDEN gesetzt wird

letzteres müßte das "WDTON" der alten megas sein


OK, das habe ich übersehen:

Code

...and the ENABLE bit in the watchdog CTRL register is automatically
set at reset and cannot be cleared from the application software. The WEN bit in the watchdog WINCTRL
register is not set automatically, and needs to be set from software. A reset is required before this bit will be read
correctly after it is changed


Ich hatte immer nur das "WDLOCK" und habe dann weiter gesucht ;)
Danke Dir

Gruß
Thorsten
pvs-deck
PowerUser
Avatar
Gender:
Age: 53
Homepage: pvs-deck.de
Posts: 1340
Registered: 02 / 2009
Subject:

Re: Watchdog XMEGA Problem

 · 
Posted: 21.04.2015 - 08:00  ·  #20
Hallo Harald_K.

Code

...and the ENABLE bit in the watchdog CTRL register is automatically
set at reset and cannot be cleared from the application software. The WEN bit in the watchdog WINCTRL
register is not set automatically, and needs to be set from software. A reset is required before this bit will be read
correctly after it is changed


Ok, ich bekomme es damit nicht zum laufen, ich habe dazu extra einen Tasteingang mit einer Dauerschleife belegt. Der XMEGA friert einfach ein ???

Abgesehen davon, das sich der Interne-Watchdog bei den EMV-Prüfungen voll verabschiedet.

@Rolf;
Noch mal zurück zum Thema externer Watchdog, ich habe verschiedene Externe ICs gefunden unter anderen auch den Ti TPS3823-33DBVTG4 der hat einen Timer von 200ms.
Ich kann von meinem Programm aus sicherstellen, den Timer alle 200ms zu reseten. Ich möchte aber nicht den Timer über einen Interrupt reseten. Der soll schön im Hauptprogramm (Loop) arbeiten und die anderen Processe über Hilfs-Variablen überwachen.

Wenn ich richtig verstanden habe, blockieren die AVRco-Treiber nie so lange die anderen Tasks/Prozesse oder? Ich bin mir mit dem FAT16-MMC unsicher.

200ms sind ja nicht gerade lang, wenn ich überlege wie lange eine größere Datei benötigen kann.

@all: Kennt Jemand ein vergleichbares Produkt mit 500ms bis 1,6s, diese Zeit-Bereiche wären besser. Da es sowieso nur in Ausnahmefällen passieren sollte und die Steuerung nicht so schnell reagieren muss ist das ok.

Gruß
Thorsten
rh
Administrator
Avatar
Gender:
Location: Germany
Age: 24
Homepage: e-lab.de
Posts: 5558
Registered: 03 / 2002
Subject:

Re: Watchdog XMEGA Problem

 · 
Posted: 21.04.2015 - 11:31  ·  #21
Hallo Thorsten,

im Multitasking Betrieb wird sichergestellt dass ein Task/Prozess Wechsel nach den voreingestellten Ticks durchgeführt wird.

rolf
pvs-deck
PowerUser
Avatar
Gender:
Age: 53
Homepage: pvs-deck.de
Posts: 1340
Registered: 02 / 2009
Subject:

Re: Watchdog XMEGA Problem

 · 
Posted: 21.04.2015 - 11:34  ·  #22
Quote by rh

Hallo Thorsten,

im Multitasking Betrieb wird sichergestellt dass ein Task/Prozess Wechsel nach den voreingestellten Ticks durchgeführt wird.

rolf


Hallo rolf,

wunderbar, dann werde ich mal diesen Watchdog-Chip testen :)

Gruß
Thorsten
Thomas.AC
Benutzer
Avatar
Gender: n/a
Age: 43
Posts: 308
Registered: 07 / 2013
Subject:

Re: Watchdog XMEGA Problem

 · 
Posted: 28.04.2015 - 19:21  ·  #23
Hallo pvs-deck

schreibst du die Fusebytes manuell oder setzt du
Ovverride_Fuses sowie ProgFuses wie in meinem Beispielcode?

Gruß

Code

program watchdog_untested;

Device = xmega128A1U, VCC = 3.3;

Define_Fuses
    Override_Fuses; // did you set this ?
    NoteBook   = A;
    COMport    = USB;
    FuseBits1  = [WDPER2, WDPER1, WDPER0];     // 2s watchdog, I think
    FuseBits4  = [WDLOCK];
    FuseBits5  = [BODLEVEL1, BODLEVEL2, BODACT0]; // BOD=2.8V if USB variant
    ProgFuses = true; // did you set this ?
    //ProgEEprom = true;

Import SysTick, Watchdog;

Define
    OSCtype        = extXTAL=8000000, PLLmul=4, prescA=1, prescB=1, prescC=1, faildet;
    SysTick        = 10;
    StackSize      = 256, iData;
    FrameSize      = 256, iData;
    Watchdog       = msec2000; // dont care due to fuses


Implementation

{$IDATA}

begin
 loop
 watchdogTrig;
 endloop;
end watchdog_untested.

Mathias
Benutzer
Avatar
Gender: n/a
Location: Weingarten - Baden
Posts: 307
Registered: 07 / 2003
Subject:

Re: Watchdog XMEGA Problem

 · 
Posted: 29.04.2015 - 11:09  ·  #24
Hallo,
wegen dem externen Watchdog-IC.
Habe einen Schaltplan gezeichnet.

Ist das so in Ordung?

Danke

Gruß
Mathias
You must be logged in or your permissions are to low to see this Attachment(s).
Selected quotes for multi-quoting:   0

Registered users in this topic

Currently no registered users in this section

The statistic shows who was online during the last 5 minutes. Updated every 90 seconds.
MySQL Queries: 15 · Cache Hits: 14   140   154 · Page-Gen-Time: 0.028376s · Memory Usage: 2 MB · GZIP: on · Viewport: SMXL-HiDPI