Geoffrey Brown wrote:

We're having problem with setting the DCO to provide an accurate Baud rate when attached to a gdb-proxy. The DCO setting code is enabled at the beginning of our code -- the DCO is
derived from a 33kHz crystal.   When we run without
gdb everything is fine. When we run with gdb, even with no breakpoints enabled, the DCO setting
code fails with a high probability.
It's clear that the gdb proxy polls the jtag interface when in continue mode. We don't have the gdb proxy code but we do have TI's debugger DLL from which I believe this was derived. In

gdbproxy actually uses the DLL code unmodified (I fed back the necessary changes to make it compile nicely with GCC, so these days new versions from TI generally compile cleanly without changes).

the DLL code, the status of the processor is checked by doing a read of the processor's
jtag control register.

Correct.

Does reading the jtag control register disrupt critical timing in the MSP430 (e.g. timer A) ?

No.

Does the gdb proxy use a method different than the MSP430_Status routine provided in
TI's dll  to check the state of a runnning processor ?

No.

Is there a way around the difficulty we're having ?

You probably have a board so unstable the extra noise caused by the JTAG activity is disturbing it. Most boards have no trouble of this kind.

Take a look at your 32kHz oscillator, by enabling the ACLK to come out on an I/O pin. A number of people with flaky timing problems find this looks very asymetric, and tends to hiccup. The usual reasons are long leads on the crystal, no ground plane under the crystal, and badly selected internal capacitors. You might have a problem with the crystal just being a poor match for the MCU (load capacitance requirements, or ESR), but the causes I listed are the usual ones. It isn't hard to get the 430's clock right, but a surprising number of boards fail to.

Regards,
Steve


Reply via email to