On 2008-01-17, Chris Liechti <[email protected]> wrote:
> Grant Edwards schrieb:
>> On 2008-01-17, Chris Liechti <[email protected]> wrote:
>> 
>> It never has any problem entering JTAG mode.  The problem is
>> that after the program operation completes, there are almost
>> always a few bits that didn't get programmed -- they're 1's
>> when they should be 0's.
>
> oh, so this sounds more like a misconfiguration of the flash
> controller frequency.
>
> msp430-jtag tries to adjust the DCO clk. and the code that is
> run from RAM uses the MSP430 itself to programm flash using
> the so adjusted clock.
>
> when the clock adjustment fails is the backend logging a
> warning and tries to continue. you should see this warning
> with "-D" you should see it adjusting the clock too.

I'll try the -D option and see if there are any warnings. If I
could just get msp430-jtag to program parts reliably, I'd be
pretty happy.  I could say I'd stop whinging about lack of gdb
support, but that would probably be a lie.

> - advertisement - the same clock adjusting code can be used to
> generate calibration values, see the "msp430-dco" tool :-)

I might give that a try also -- it would be useful to have a
good set of initial DCO settings to minize the time it takes my
DCO code to get to the right frequency.

> i've not checked the 2330 data sheet yet. is there something
> different in the DCO,

AFAICT, the DCO works the same.  I use a software FLL scheme to
lock the DCO at 16X ACLK, and the code that does that is
identical to what I used on the 'F149.  I have measured SCLK
and verified that it's at the frequency I want, so I know the
DCO adjust routine is working.

> cycle count of some basic instructions (that the code snippet
> run to determine the speed counts differently) or the flash 
> controller specs?

I've never looked at the at the flash controller specs.  My
applications generally can't burn flash because they're running
at 1.9V.

> wrong flash timing leads to poorly programmed devices, so this
> would explain the effects you see.
>
>> The problem is that the verify fails: a couple bits (random
>> locations as far as I can tell) just don't get programmed from
>> 1->0.
>
> so erase seems to work, but not the writes.

AFAICT, erase always works.  I did an upload after an erase and
it was fine.  I never get any errors during the program
operation (like you get when you try to do a program without an
erase).  The only error I see is verify failure.

-- 
Grant Edwards                   grante             Yow!  PUNK ROCK!! DISCO
                                  at               DUCK!! BIRTH CONTROL!!
                               visi.com            


Reply via email to