Forums

How to "Reset" the DSP using timer interrupts

Started by pf.m...@spidertech-security.com July 16, 2007
Hi

I want make a "DOGWATCH" using the timer1 interrupt.

The question ?

How can I reset the dsp when I am in the interrupt ?

thanks
PF


It is not possible to reset the processor by an instruction,


you can either wait for your HW watch dog, or do all the HW process at reset by SW and call to address 0 (do not forget to reset the Cache L1).


Regards








From: p...@spidertech-security.com
Reply-To: p...@spidertech-security.com
To: c...
Subject: [c6x] How to "Reset" the DSP using timer interrupts
Date: Mon, 16 Jul 2007 06:34:39 -0400
>Hi
>
>I want make a "DOGWATCH" using the timer1 interrupt.
>
>The question ?
>
>How can I reset the dsp when I am in the interrupt ?
>
>thanks
>PF
>
>
>
>
><*> To visit your group on the web, go to:
> http://groups.yahoo.com/group/c6x/
>
><*> Your email settings:
> Individual Email | Traditional
>
><*> To change settings online go to:
> http://groups.yahoo.com/group/c6x/join
> (Yahoo! ID required)
>
><*> To change settings via email:
> mailto:c...
> mailto:c...
>
><*> To unsubscribe from this group, send an email to:
>
c...
>
><*> Your use of Yahoo! Groups is subject to:
> http://docs.yahoo.com/info/terms/
>

__._,_.___







">http://www.dsprelated.com/groups/c6x/1.php



_____________________________________

Note: If you do a simple "reply" with your email client, only the author of this message will receive your answer.  You need to do a "reply all" if you want your answer to be distributed to the entire group.



_____________________________________

About this discussion group:



Archives:  http://www.dsprelated.com/groups/c6x/1.php



To Post:  Send an email to c...



Other DSP Related Groups: http://www.dsprelated.com/groups.php









stime84602797













__,_._,___
PF-

> I want make a "DOGWATCH" using the timer1 interrupt.
>
> The question ?
>
> How can I reset the dsp when I am in the interrupt ?

Why would a DSP external watchdog timer cause an interrupt? Isn't the whole point of
the watchdog that your DSP code has failed (lost, or crashed), and needs to be
Reset? Then you just run the watchdog timer output to the Reset line on the DSP --
easy.

If, on the other hand, you're making the DSP act as a watchdog timer for some other
device, then your question still doesn't make sense. You would reset the other
device -- assert a GPIO.

Half of engineering is to understanding and being able to communicate the problem.

-Jeff
PF.m,
you didn't mention the specific DSP model, so I have to use generalities.

Some of the TI DSPs can be reset by writing to a specific address/register bit.

Most of the TI DSPs require a multi step write operation to properly reset the watchdog.
So messing up that multistep write operation causes an immediate reset.
For instance, if the multi step write operation is write a '1' to a specific bit
then write 0 to the same specific bit; then write 0,0 or 1,1 and the DSP will immediately reset.

Some of the TI DSPs can have the watchdog timer counter written directly.
On those DSPs, write a watchdog timer value that is only 1 or 2 counts away from the timeout
condition. then wait in a nop loop for the timeout to occur.

R. Williams

---------- Original Message -----------
From: p...@spidertech-security.com
To: c...
Sent: Mon, 16 Jul 2007 06:34:39 -0400
Subject: [c6x] How to "Reset" the DSP using timer interrupts

> Hi
>
> I want make a "DOGWATCH" using the timer1 interrupt.
>
> The question ?
>
> How can I reset the dsp when I am in the interrupt ?
>
> thanks
> PF
------- End of Original Message -------
We are using the 6416 and we are moving to the 6455 or 642X (64X+).

So please, in the 6416 how/where I need write. (Doc's?)
And also in the 6455 ?

Thanks
PF

-----Original Message-----
From: Richard Williams [mailto:r...@lewiscounty.com]
Sent: 17 2007 2:32
To: pf.melamed; c...
Subject: Re: [c6x] How to "Reset" the DSP using timer interrupts

PF.m,
you didn't mention the specific DSP model, so I have to use generalities.

Some of the TI DSPs can be reset by writing to a specific address/register bit.

Most of the TI DSPs require a multi step write operation to properly reset the watchdog.
So messing up that multistep write operation causes an immediate reset.
For instance, if the multi step write operation is write a '1' to a specific bit
then write 0 to the same specific bit; then write 0,0 or 1,1 and the DSP will immediately reset.

Some of the TI DSPs can have the watchdog timer counter written directly.
On those DSPs, write a watchdog timer value that is only 1 or 2 counts away from the timeout
condition. then wait in a nop loop for the timeout to occur.

R. Williams

---------- Original Message -----------
From: p...@spidertech-security.com
To: c...
Sent: Mon, 16 Jul 2007 06:34:39 -0400
Subject: [c6x] How to "Reset" the DSP using timer interrupts

> Hi
>
> I want make a "DOGWATCH" using the timer1 interrupt.
>
> The question ?
>
> How can I reset the dsp when I am in the interrupt ?
>
> thanks
> PF
------- End of Original Message -------

Hi PF,

a reliable watchdog must always reset the processor hardware. You can't
do this in an interrupt because any program crash might have disabled
interrupts or mangled the interrupt vector table.

The preferred solution is one of the many processor supervisor ICs,
featuring power-on reset, power supply supervisor, and watchdog.

To build a watchdog from timer 1, you can connect the TOUT1 output to the
DSP Reset input via an inverter (probably wired-or with any existing reset
controller). Then configure timer 1 to the desired timeout period, and set
timer CTL register to 0x3C1 (clock mode, internal clock).
If your program fails to restart the timer before the counter expires,
TOUT1 will go high and (via the inverter) reset the DSP. The inverter is
required because TOUT1 defaults to low after reset.

Regards,
Adolf Klemenz, D.SignT

At 06:34 16.07.2007 -0400, p...@spidertech-security.com wrote:

>Hi
>
>I want make a "DOGWATCH" using the timer1 interrupt.
>
>The question ?
>
>How can I reset the dsp when I am in the interrupt ?
>
>thanks
>PF
>
PF.M

As far as I an tell, the 6416 does not even have a builtin watchdog.
However, a write to a bit port that triggers an externally attached one shot timer who's output is
routed into the /reset pin would do the job of properly resetting the CPU.

R. Williams
---------- Original Message -----------
From: "pf.melamed"
To: "Richard Williams" ,
Sent: Tue, 17 Jul 2007 09:41:57 +0300
Subject: RE: [c6x] How to "Reset" the DSP using timer interrupts

> We are using the 6416 and we are moving to the 6455 or 642X (64X+).
>
> So please, in the 6416 how/where I need write. (Doc's?)
> And also in the 6455 ?
>
> Thanks
> PF
>
> -----Original Message-----
> From: Richard Williams [mailto:r...@lewiscounty.com]
> Sent: 17 2007 2:32
> To: pf.melamed; c...
> Subject: Re: [c6x] How to "Reset" the DSP using timer interrupts
>
> PF.m,
> you didn't mention the specific DSP model, so I have to use generalities.
>
> Some of the TI DSPs can be reset by writing to a specific address/register bit.
>
> Most of the TI DSPs require a multi step write operation to properly reset the watchdog.
> So messing up that multistep write operation causes an immediate reset.
> For instance, if the multi step write operation is write a '1' to a specific bit
> then write 0 to the same specific bit; then write 0,0 or 1,1 and the DSP will immediately reset.
>
> Some of the TI DSPs can have the watchdog timer counter written directly.
> On those DSPs, write a watchdog timer value that is only 1 or 2 counts away from the
> timeout condition. then wait in a nop loop for the timeout to occur.
>
> R. Williams
>
> ---------- Original Message -----------
> From: p...@spidertech-security.com
> To: c...
> Sent: Mon, 16 Jul 2007 06:34:39 -0400
> Subject: [c6x] How to "Reset" the DSP using timer interrupts
>
> > Hi
> >
> > I want make a "DOGWATCH" using the timer1 interrupt.
> >
> > The question ?
> >
> > How can I reset the dsp when I am in the interrupt ?
> >
> > thanks
> > PF
> ------- End of Original Message -------
>