Forum: Digitale Signalverarbeitung / DSP / Machine Learning TMS320F2806 Watchdog


von Dennis M. (Firma: Buckeljunge) (dennism)


Lesenswert?

Hallo zusammen, wurde gerne wissen ob das Watchdog Beispiel von der TI 
Homepage einfach übernommen werden kann, um im Falle eines 
Softwarecrashes das System zu resetten. Hier ein Paar Zeilen Code, 
eigentlich komplett aus dem Example übernommen,
1
EALLOW;  // This is needed to write to EALLOW protected registers
2
PieVectTable.WAKEINT = &wakeint_isr;
3
EDIS;
4
5
// Clear the counters
6
   WakeCount = 0; // Count interrupts
7
   LoopCount = 0; // Count times through idle loop
8
9
// Connect the watchdog to the WAKEINT interrupt of the PIE
10
// Write to the whole SCSR register to avoid clearing WDOVERRIDE bit
11
   EALLOW;
12
   SysCtrlRegs.SCSR = BIT1;
13
   EDIS;
14
15
// Enable WAKEINT in the PIE: Group 1 interrupt 8
16
// Enable INT1 which is connected to WAKEINT:
17
   PieCtrlRegs.PIECTRL.bit.ENPIE = 1;   // Enable the PIE block
18
   PieCtrlRegs.PIEIER1.bit.INTx8 = 1;   // Enable PIE Gropu 1 INT8
19
   IER |= M_INT1;                       // Enable CPU INT1
20
   EINT;                                // Enable Global Interrupts
21
22
23
interrupt void wakeint_isr(void)
24
{
25
  WakeCount++;
26
  
27
  // Acknowledge this interrupt to get more from group 1
28
  PieCtrlRegs.PIEACK.all = PIEACK_GROUP1;
29
}

Also, jedes mal beim Systemstart wird meine ISR funktion vier mal 
aufgerufen (WakeCount steht dann auf 4, weil einige 
Initialisierungsprozesse mehr Zeit benötigen), und danach läuft alles 
prima, wie es sein soll.

Mein Problem ist, wenn ich kurzzeitig versuche das System zu stören 
(durch Zufall gerit mein JTAG Kabel unter einen Kleinen Ofen, der bei 
mir auf dem tisch steht, und als ich dann den Ofen ausgeschaltet hatte, 
da gabs anscheinend intern eine Art Entladung im Ofen und dadurch wurde 
anscheinend eine Art elektrisches/magnetisches Feld im Kabel induziert 
und mein System blieb hängen). Nur nach dieser Störung reagiert meine 
Platine überhaupt nicht mehr, ich muss diese vom Strom trennen und 
wieder einstecken damit alles wieder einwandfrei funktionieren tut.

Is mein Watchdog falsch initialisiert, oder ist die Hardware schuld? Bin 
momentan ratlos wie ich das angehen soll, wenn das die Platine is, dann 
wäre es ein richtiger Tritt in die Eier.

von Dennis M. (Firma: Buckeljunge) (dennism)


Lesenswert?

Hab das JTAG Kabel abgeklemmt, bis jetzt alles in Ordnung.

von Alex (Gast)


Lesenswert?

Ich arbeite mit einem TMS320F28335. Mit angestecktem JTAG-Kabel habe ich 
die gleichen Probleme gehabt. Im Datenblatt ist erwähnt, dass der 
TRST-Pin einen externen (zusätzlichen) Pull-Down Widerstand benötigt, 
der aber in den den Design-Richtlinien für die JTAG-Anbindung nicht 
erwähnt wird. Vielleicht hilft das.

Ein über das JTAG-Kabel ausgelöster Controllerabsturz müsste durch den 
Watchdog allerdings erkannt werden.

Gruß,
Alex

von Dennis M. (Firma: Buckeljunge) (dennism)


Lesenswert?

Habe folgendes in Datenblatt stehen,

NOTE: Do not use pullup resistors on TRST; it has an internal pull-down 
device. TRST is an active high test pin and must be maintained low at 
all times during normal device operation. An external pulldown resistor 
is required on this pin. The value of this resistor should be based on 
drive strength of the debugger pods applicable to the design. A 
2.2-k(Ohm) resistor generally offers adequate protection. Since this is 
application-specific, it is recommended that each target board be 
validated
for proper operation of the debugger and the application.

Anscheinend müsste ich meiner Schaltung wohl nen PullDown spendieren.

Danke für den Tipp!

Wieso jetzt aber mein Watchdog nicht reagiert? Kann leider nicht 
debuggen, da mein CodeComposerStudio angibt, dass mit der 
Spannungsversorgung was nicht stimmt, und die RealTime Überwachung 
danach nicht mehr anwendbar ist.

Gruß
Dennis

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.