Reply by crandel_z October 28, 20092009-10-28
Thank you Joe. I will implement it.

--- In m..., Joe Radomski wrote:
>
> any interrupt bits that were set prior to the "reset" remain untouched so if you enable global interrupts it will jump to FFFF if an interrupt routine is no longer there..
>
> not having a vector is BAD practice.. you should make a spurious interrupt handler and point all non used interrupts to this routine so you can determine the soource of the trouble.
>
>
>
> --- On Tue, 10/27/09, crandel_z wrote:
>
>
> From: crandel_z
> Subject: [msp430] Re: How to do a real reset ?
> To: m...
> Date: Tuesday, October 27, 2009, 9:44 AM
>
>
>
>
>
>
> I think I understood the problem.
>
> When I re-enable the interrupts are not jumping to old addresses. The not used interrupts (in the new firmware) are jumping to 0xFFFF.
>
> Crandel
>
> --- In msp430@yahoogroups. com, Joe Radomski wrote:
> >
> > That should not be.. the vectors are fetched from flash memory... I have done this myself on several projects and have never had an issue with the vectors.. if you are vectoring the flash vectors to RAM through a routine that checks the validity, then thats anotehr issue
> >
> >
> >
> > --- On Tue, 10/27/09, crandel_z wrote:
> >
> >
> > From: crandel_z
> > Subject: [msp430] Re: How to do a real reset ?
> > To: msp430@yahoogroups. com
> > Date: Tuesday, October 27, 2009, 7:56 AM
> >
> >
> >
> >
> >
> >
> > My problem is that a update the firmware included the interrupt vector.
> > When I do reset. The interrupts keep jumping to the old values, until I unplug/plug the my card.
> >
> > Crandel
> >
> > --- In msp430@yahoogroups. com, "lslonim2" wrote:
> > >
> > > I'm familiar with the older parts in the line, but I think you are expecting too much from a reset. The registers are not supposed to be initialized by a reset. They may come up in a certain way after a powerup, but it's not guaranteed. They are random.
> > >
> > > Lloyd
> > >
> > > --- In msp430@yahoogroups. com, "crandel_z" wrote:
> > > >
> > > > Hi, I write a program that allow to update the flash program. After that I need to do a reset.
> > > >
> > > > I try to use watchdog and to call to 0x3100 to do the reset. But they not do a real reset, they do like a restart. Some registers are not initialized.
> > > >
> > > > There are another way to do a reset ?
> > > >
> > > > Thanks
> > > >
> > > > Crandel
> > > >
> > > > pd: I use MSP430F2618
> > > >
> > >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>

Beginning Microcontrollers with the MSP430

Reply by old_cow_yellow October 27, 20092009-10-27
What is a "real reset"?
What reset is not real?

--- In m..., John Westmoreland wrote:
>
> To All:
>
> Isn't this akin to the classic WDOG problem?
>
> You need external circuitry - such as an external WDOG - that fully asserts
> /RST - this is the only way to fully guarantee the part is reset correctly -
> basically the same as the classic WDOG problem.
>
> Regards,
> John W.
>
> On Tue, Oct 27, 2009 at 9:09 AM, Joe Radomski wrote:
>
> >
> >
> > any interrupt bits that were set prior to the "reset" remain untouched so
> > if you enable global interrupts it will jump to FFFF if an interrupt routine
> > is no longer there..
> >
> > not having a vector is BAD practice.. you should make a spurious interrupt
> > handler and point all non used interrupts to this routine so you can
> > determine the soource of the trouble.
> >
> >
> > --- On Tue, 10/27/09, crandel_z >
> > wrote:
> >
> > From: crandel_z >
> >
> > Subject: [msp430] Re: How to do a real reset ?
> > To: m...
> > Date: Tuesday, October 27, 2009, 9:44 AM
> >
> >
> >
> >
> > I think I understood the problem.
> >
> > When I re-enable the interrupts are not jumping to old addresses. The not
> > used interrupts (in the new firmware) are jumping to 0xFFFF.
> >
> > Crandel
> >
> > --- In msp430@yahoogroups. com, Joe Radomski wrote:
> > >
> > > That should not be.. the vectors are fetched from flash memory... I have
> > done this myself on several projects and have never had an issue with the
> > vectors.. if you are vectoring the flash vectors to RAM through a routine
> > that checks the validity, then thats anotehr issue
> > >
> > >
> > >
> > > --- On Tue, 10/27/09, crandel_z wrote:
> > >
> > >
> > > From: crandel_z
> > > Subject: [msp430] Re: How to do a real reset ?
> > > To: msp430@yahoogroups. com
> > > Date: Tuesday, October 27, 2009, 7:56 AM
> > >
> > >
> > >
> > >
> > >
> > >
> > > My problem is that a update the firmware included the interrupt vector.
> > > When I do reset. The interrupts keep jumping to the old values, until I
> > unplug/plug the my card.
> > >
> > > Crandel
> > >
> > > --- In msp430@yahoogroups. com, "lslonim2" wrote:
> > > >
> > > > I'm familiar with the older parts in the line, but I think you are
> > expecting too much from a reset. The registers are not supposed to be
> > initialized by a reset. They may come up in a certain way after a powerup,
> > but it's not guaranteed. They are random.
> > > >
> > > > Lloyd
> > > >
> > > > --- In msp430@yahoogroups. com, "crandel_z" wrote:
> > > > >
> > > > > Hi, I write a program that allow to update the flash program. After
> > that I need to do a reset.
> > > > >
> > > > > I try to use watchdog and to call to 0x3100 to do the reset. But they
> > not do a real reset, they do like a restart. Some registers are not
> > initialized.
> > > > >
> > > > > There are another way to do a reset ?
> > > > >
> > > > > Thanks
> > > > >
> > > > > Crandel
> > > > >
> > > > > pd: I use MSP430F2618
> > > > >
> > > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> >
> >
> >
> >
> >
>
>

Reply by John Westmoreland October 27, 20092009-10-27
To All:

Isn't this akin to the classic WDOG problem?

You need external circuitry - such as an external WDOG - that fully asserts
/RST - this is the only way to fully guarantee the part is reset correctly -
basically the same as the classic WDOG problem.

Regards,
John W.

On Tue, Oct 27, 2009 at 9:09 AM, Joe Radomski wrote:

> any interrupt bits that were set prior to the "reset" remain untouched so
> if you enable global interrupts it will jump to FFFF if an interrupt routine
> is no longer there..
>
> not having a vector is BAD practice.. you should make a spurious interrupt
> handler and point all non used interrupts to this routine so you can
> determine the soource of the trouble.
> --- On Tue, 10/27/09, crandel_z >
> wrote:
>
> From: crandel_z > Subject: [msp430] Re: How to do a real reset ?
> To: m...
> Date: Tuesday, October 27, 2009, 9:44 AM
> I think I understood the problem.
>
> When I re-enable the interrupts are not jumping to old addresses. The not
> used interrupts (in the new firmware) are jumping to 0xFFFF.
>
> Crandel
>
> --- In msp430@yahoogroups. com, Joe Radomski wrote:
> >
> > That should not be.. the vectors are fetched from flash memory... I have
> done this myself on several projects and have never had an issue with the
> vectors.. if you are vectoring the flash vectors to RAM through a routine
> that checks the validity, then thats anotehr issue
> >
> >
> >
> > --- On Tue, 10/27/09, crandel_z wrote:
> >
> >
> > From: crandel_z
> > Subject: [msp430] Re: How to do a real reset ?
> > To: msp430@yahoogroups. com
> > Date: Tuesday, October 27, 2009, 7:56 AM
> >
> >
> >
> >
> >
> >
> > My problem is that a update the firmware included the interrupt vector.
> > When I do reset. The interrupts keep jumping to the old values, until I
> unplug/plug the my card.
> >
> > Crandel
> >
> > --- In msp430@yahoogroups. com, "lslonim2" wrote:
> > >
> > > I'm familiar with the older parts in the line, but I think you are
> expecting too much from a reset. The registers are not supposed to be
> initialized by a reset. They may come up in a certain way after a powerup,
> but it's not guaranteed. They are random.
> > >
> > > Lloyd
> > >
> > > --- In msp430@yahoogroups. com, "crandel_z" wrote:
> > > >
> > > > Hi, I write a program that allow to update the flash program. After
> that I need to do a reset.
> > > >
> > > > I try to use watchdog and to call to 0x3100 to do the reset. But they
> not do a real reset, they do like a restart. Some registers are not
> initialized.
> > > >
> > > > There are another way to do a reset ?
> > > >
> > > > Thanks
> > > >
> > > > Crandel
> > > >
> > > > pd: I use MSP430F2618
> > > >
> > >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
>
>
>


Reply by Joe Radomski October 27, 20092009-10-27
any interrupt bits that were set prior to the "reset" remain untouched so if you enable global interrupts it will jump to FFFF if an interrupt routine is no longer there..

not having a vector is BAD practice.. you should make a spurious interrupt handler and point all non used interrupts to this routine so you can determine the soource of the trouble.

--- On Tue, 10/27/09, crandel_z wrote:
From: crandel_z
Subject: [msp430] Re: How to do a real reset ?
To: m...
Date: Tuesday, October 27, 2009, 9:44 AM


I think I understood the problem.

When I re-enable the interrupts are not jumping to old addresses. The not used interrupts (in the new firmware) are jumping to 0xFFFF.

Crandel

--- In msp430@yahoogroups. com, Joe Radomski wrote:
>
> That should not be.. the vectors are fetched from flash memory... I have done this myself on several projects and have never had an issue with the vectors.. if you are vectoring the flash vectors to RAM through a routine that checks the validity, then thats anotehr issue
>
>
>
> --- On Tue, 10/27/09, crandel_z wrote:
>
>
> From: crandel_z
> Subject: [msp430] Re: How to do a real reset ?
> To: msp430@yahoogroups. com
> Date: Tuesday, October 27, 2009, 7:56 AM
>
>
>
>
>
>
> My problem is that a update the firmware included the interrupt vector.
> When I do reset. The interrupts keep jumping to the old values, until I unplug/plug the my card.
>
> Crandel
>
> --- In msp430@yahoogroups. com, "lslonim2" wrote:
> >
> > I'm familiar with the older parts in the line, but I think you are expecting too much from a reset. The registers are not supposed to be initialized by a reset. They may come up in a certain way after a powerup, but it's not guaranteed. They are random.
> >
> > Lloyd
> >
> > --- In msp430@yahoogroups. com, "crandel_z" wrote:
> > >
> > > Hi, I write a program that allow to update the flash program. After that I need to do a reset.
> > >
> > > I try to use watchdog and to call to 0x3100 to do the reset. But they not do a real reset, they do like a restart. Some registers are not initialized.
> > >
> > > There are another way to do a reset ?
> > >
> > > Thanks
> > >
> > > Crandel
> > >
> > > pd: I use MSP430F2618
> > >
> >
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>



Reply by Michael October 27, 20092009-10-27
Lloyd,
> The registers are not supposed to be initialized by a reset. They
> may come up in a certain way after a powerup, but it's not
> guaranteed. They are random.
Where do you get that information from? You coudn't be any wronger. Registers are initialized by a POR; what is not initialized is the contents of RAM.

> > I try to use watchdog and to call to 0x3100 to do the reset. But
> > they not do a real reset, they do like a restart. Some registers
> > are not initialized.
There are 2 type of signals that cause registers to set to a predefined value: POR (Power On Reset) and PUC (Power Up Clear).
A POR causes a PUC, but not the other way around. As far as I know, the only thing you can force by software is a PUC, by writing an invalid password to the Flash controler or the watchdog (there is a 3rd that I don't remember). But a PUC doesn't reset many things, like for example the interrupt enable flags. So if you plan to force a PUC, be sure that your initialization routines don't assume some bits of the registers are 0s or 1's (like interrupt enable bits), but specifically set them to the value you need them to be.

Regards,
Michael K.

--- In m..., "lslonim2" wrote:
>
> I'm familiar with the older parts in the line, but I think you are expecting too much from a reset. The registers are not supposed to be initialized by a reset. They may come up in a certain way after a powerup, but it's not guaranteed. They are random.
>
> Lloyd
>
> --- In m..., "crandel_z" wrote:
> >
> > Hi, I write a program that allow to update the flash program. After that I need to do a reset.
> >
> > I try to use watchdog and to call to 0x3100 to do the reset. But they not do a real reset, they do like a restart. Some registers are not initialized.
> >
> > There are another way to do a reset ?
> >
> > Thanks
> >
> > Crandel
> >
> > pd: I use MSP430F2618
>

Reply by crandel_z October 27, 20092009-10-27
I think I understood the problem.

When I re-enable the interrupts are not jumping to old addresses. The not used interrupts (in the new firmware) are jumping to 0xFFFF.

Crandel

--- In m..., Joe Radomski wrote:
>
> That should not be.. the vectors are fetched from flash memory... I have done this myself on several projects and have never had an issue with the vectors.. if you are vectoring the flash vectors to RAM through a routine that checks the validity, then thats anotehr issue
>
>
>
> --- On Tue, 10/27/09, crandel_z wrote:
>
>
> From: crandel_z
> Subject: [msp430] Re: How to do a real reset ?
> To: m...
> Date: Tuesday, October 27, 2009, 7:56 AM
>
>
>
>
>
>
> My problem is that a update the firmware included the interrupt vector.
> When I do reset. The interrupts keep jumping to the old values, until I unplug/plug the my card.
>
> Crandel
>
> --- In msp430@yahoogroups. com, "lslonim2" wrote:
> >
> > I'm familiar with the older parts in the line, but I think you are expecting too much from a reset. The registers are not supposed to be initialized by a reset. They may come up in a certain way after a powerup, but it's not guaranteed. They are random.
> >
> > Lloyd
> >
> > --- In msp430@yahoogroups. com, "crandel_z" wrote:
> > >
> > > Hi, I write a program that allow to update the flash program. After that I need to do a reset.
> > >
> > > I try to use watchdog and to call to 0x3100 to do the reset. But they not do a real reset, they do like a restart. Some registers are not initialized.
> > >
> > > There are another way to do a reset ?
> > >
> > > Thanks
> > >
> > > Crandel
> > >
> > > pd: I use MSP430F2618
> > >
> >
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>

Reply by Joe Radomski October 27, 20092009-10-27
That should not be.. the vectors are fetched from flash memory... I have done this myself on several projects and have never had an issue with the vectors.. if you are vectoring the flash vectors to RAM through a routine that checks the validity, then thats anotehr issue

--- On Tue, 10/27/09, crandel_z wrote:
From: crandel_z
Subject: [msp430] Re: How to do a real reset ?
To: m...
Date: Tuesday, October 27, 2009, 7:56 AM


My problem is that a update the firmware included the interrupt vector.
When I do reset. The interrupts keep jumping to the old values, until I unplug/plug the my card.

Crandel

--- In msp430@yahoogroups. com, "lslonim2" wrote:
>
> I'm familiar with the older parts in the line, but I think you are expecting too much from a reset. The registers are not supposed to be initialized by a reset. They may come up in a certain way after a powerup, but it's not guaranteed. They are random.
>
> Lloyd
>
> --- In msp430@yahoogroups. com, "crandel_z" wrote:
> >
> > Hi, I write a program that allow to update the flash program. After that I need to do a reset.
> >
> > I try to use watchdog and to call to 0x3100 to do the reset. But they not do a real reset, they do like a restart. Some registers are not initialized.
> >
> > There are another way to do a reset ?
> >
> > Thanks
> >
> > Crandel
> >
> > pd: I use MSP430F2618
>



Reply by crandel_z October 27, 20092009-10-27
My problem is that a update the firmware included the interrupt vector.
When I do reset. The interrupts keep jumping to the old values, until I unplug/plug the my card.

Crandel

--- In m..., "lslonim2" wrote:
>
> I'm familiar with the older parts in the line, but I think you are expecting too much from a reset. The registers are not supposed to be initialized by a reset. They may come up in a certain way after a powerup, but it's not guaranteed. They are random.
>
> Lloyd
>
> --- In m..., "crandel_z" wrote:
> >
> > Hi, I write a program that allow to update the flash program. After that I need to do a reset.
> >
> > I try to use watchdog and to call to 0x3100 to do the reset. But they not do a real reset, they do like a restart. Some registers are not initialized.
> >
> > There are another way to do a reset ?
> >
> > Thanks
> >
> > Crandel
> >
> > pd: I use MSP430F2618
>

Reply by Joe Radomski October 27, 20092009-10-27
not necessarily true.. a POR sets many registers to s specific value.. there are different types of restes.. You have to look at the family guides to see what type of reset causes what action to be taken..

--- On Tue, 10/27/09, lslonim2 wrote:
From: lslonim2
Subject: [msp430] Re: How to do a real reset ?
To: m...
Date: Tuesday, October 27, 2009, 7:26 AM


I'm familiar with the older parts in the line, but I think you are expecting too much from a reset. The registers are not supposed to be initialized by a reset. They may come up in a certain way after a powerup, but it's not guaranteed. They are random.

Lloyd

--- In msp430@yahoogroups. com, "crandel_z" wrote:
>
> Hi, I write a program that allow to update the flash program. After that I need to do a reset.
>
> I try to use watchdog and to call to 0x3100 to do the reset. But they not do a real reset, they do like a restart. Some registers are not initialized.
>
> There are another way to do a reset ?
>
> Thanks
>
> Crandel
>
> pd: I use MSP430F2618
>



Reply by lslonim2 October 27, 20092009-10-27
I'm familiar with the older parts in the line, but I think you are expecting too much from a reset. The registers are not supposed to be initialized by a reset. They may come up in a certain way after a powerup, but it's not guaranteed. They are random.

Lloyd

--- In m..., "crandel_z" wrote:
>
> Hi, I write a program that allow to update the flash program. After that I need to do a reset.
>
> I try to use watchdog and to call to 0x3100 to do the reset. But they not do a real reset, they do like a restart. Some registers are not initialized.
>
> There are another way to do a reset ?
>
> Thanks
>
> Crandel
>
> pd: I use MSP430F2618
>