Q
I have got the problem with ADuC812. When I turn off
and then straight away turn on my microcomput. ,after few this
cycles it's reference voltage goes to 2.77V, RS232 doesn't work
and then I find out that the program in internal flash doesn't
run. (Program from external EPROM run perfectly, but analog input
measure not well.) Probably the FLASH was erased, but I don't
know why. I'm sure that: 5V Vcc during turn on didn't preregulate
more than 5.2V. After turn on 5V settled down after 10ms and after
turn off 5V source fall to 0V 50ms. I measured voltages on analog
inputs, outputs and RS232 and all signals were during turning
on and turning off OK. (Vcc 0.3V>V>-0.3V) I replaced ADuC with
new component several times, it run perfectly, but after several
turning on and off the problems apear again.
A
Are you using an external active high reset generator in your circuit? What you
describe are symptoms of having glitches on the reset line which cause the
micro to start executing before power has been properly established. Note that
an active low reset generator followed by a logic inverter is not acceptable.
There are two likely causes to the problem of being unable to re-program the
FLASH. Either your software has written to a FLASH location higher than 159Hor
a spurious RESET signal has caused the ADuC812 to begin executing with a supply
less than 2V. let's look at both these possibilities in more detail.
? Code downloaded fine a few times, but now always "fails to reset the
target"....If the last program to successfully go onto the chip contains any
commands to program the 640 byte Flash/EE data space, then it's possible that a
simple programming error caused a write to page 160 resulting in the security
bits getting set and locking the chip up for good. There's no way to recover
other than replacing the chip. Code must be written carefully to ensure that
page 160 of data Flash/EE space never gets programmed. See errata #7 (errata
revs E & D) for details.
? Check the reset signal on your board. Are there any glitches on it? Look at
the reference on the mis-behaving parts, is it exactly at 2.5V? If the micro is
released from reset while DVDD is below 2V, the micro will still execute code
without trouble. However, if you try to write to the FLASH while the power
supply is low, the on -chip charge pumps cannot generate the required
programming voltages. Exactly what happens in these circumstances is
indeterminate but one possibility is that the calibration co-efficients are
erased and this would cause the reference to jump to 2.8V, the ADC would not be
accurate and it would also be possible to lock the code space on the part such
that it cannot be reprogrammed. So check your RESET line, and, if necessary
replace your reset generator with one that follows VDD during power up and then
releases RESET a few 100ms after DVDD is fully up. The ADM1817, ADM1813, ADM809
would be ideal here. If you have erased the cal co-efficients, the part must be
replaced, there is no way to reload these co-efficients once they are lost.
Take a look at the RESET pin on the ADuC812 on a 'scope during power up and
look at VDD on the other channel of the scope. Capture on a digital 'scope what
happens during power up an power down. Look for any glitches on reset (you may
have to cycle power many times to capture a glitch). Also look for any instance
where the ADuC812 is released from reset with lower than spec powers supply.
The reset signal should at all times conform to the timing diagram given in
figure 25 of the user's guide (available from www.analog.com/microconverter ).