QDuring testing new series of drivers which depend
on ADuC812 in one of his dispositon the incident hapend:
1. Microconverter was several times programmed - OK
2. Microconverter worked with different programs - OK
3. During next programming can't be restarted
(WSD -> Resseting..Failed)
4. Microconverter works with last program before programming trial.
UART working OK.
In other dispositions programming run correctly.
What was happend? How we can solve this problem?
AThere are a number of things which could prevent the ADuC812 to enter serial
download mode and hence prevent re-programming of the device.
First consider that the ADuC812 may not be receiving a valid RESET condition
which forces it into serial download mode.
The PSEN pin is normally configured as an output. When the RESET pin is
asserted, the PSEN pin is configured as a digital input and the only current in
or out of the pin should be leakage current (which we measure to be 10nA).
Therefore, when RESET is brought high, the voltage at PSEN should be very close
to ground. When RESET is released, the voltage at PSEN is sampled on the
falling edge of RESET and the part will go into serial download mode if the
voltage at PSEN is interpreted as a logic low.
Could I ask you to measure the voltage at PSEN while the RESET pin is held high
with the 1k pull-down resistor. If you do not see a voltage very close to zero,
it is possible that something else is driving PSEN high.
Does your program write to the on-chip EEPROM (User FLASH)?
If it does, then consider the possibility that you are writing to memory
locations which are higher than page 159. If you write to pages 160 or higher
there is a strong possibility that you will set the security bits on the
ADuC812. We have removed all mention of the security bits from the datasheet
and we strongly recommend that users do not try to use them. This feature is
not fully tested and is not guaranteed. If you set the security bits, you will
not be able to enter the serial download or debug modes and you have
effectively locked yourself out of the code space on the ADuC812.
If you think you may have accidentally set the security bits, you can recover
the part by placing the part in parallel programming mode and executing an
ERASE ALL command (as described in the datasheet). You should then be able to
enter serial download and debug modes again. If the above procedure allowed you
to recover operation of the ADuC812, you will then have to analyse your code,
work out how you wrote to the higher Flash pages and alter your code to fix the
The recommended reset circuit for use with the ADuC812 is an active high reset
generator preferably with in built delay of approx 100ms such as the ADM810.
Note that an active low reset generator through a logic inverter is not
acceptable. Logic inverters do not guarantee their output state during power up
and power down and can cause glitches on the reset. Ensure that you are using
an active high reset circuit similar to the ADM810. Take a look a 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 ).