briked evaluation board with lm3s811

Guest #1848045
Rate this post
• ▲ useful
▼ not useful
Hello.

I have problem with Stellaris EKC-LM3S811 evaluation kit. I can't 
download programs nor erase LM3S811 after I've downloaded my program.
Before this I could download demo programs.
I have tryed to unlock with Debug Port Unlock in LM Flash 
Programmer(build 1154).
No success - error message: "**ERROR**:Invalid IDCODE!"
If I try to erase, blank check or upload: "**ERROR**: Unable to 
initialize target!"
I have also tryed this board as ICDI programmer to program LM3S6B95 
chip, it worked OK, so hardware JTAG interface is not broken.

My program:
1
#include "lm3s_cmsis.h"
2
#define SYSDIV                  0x09
3
#define XTAL_6_MHz              0x0B
4
/* Clock sources */
5
#define OSCSRC_MOSC             0   /* main oscillator */
6
#define OSCSRC_IOSC             1   /* internal oscillator */
7
#define OSCSRC_IOSC_BY_4        2   /* internal oscillator divided by 4 */
8
#define SYSCTL_RCC_OSCSRC       (OSCSRC_MOSC << 4)
9
#define SYSCTL_RCC_XTAL         (XTAL_6_MHz << 6)
10
#define SYSCTL_RCC_BYPASS       (1 << 11)
11
#define SYSCTL_RCC_OEN          (1 << 12)
12
#define SYSCTL_RCC_PWRDN        (1 << 13)
13
#define SYSCTL_RCC_USESYSDIV    (1 << 22)
14
#define SYSCTL_RCC_SYSDIV       (SYSDIV << 23)
15
#define SYSCTL_RIS_PLLLRIS      (1 << 6)  /* PLL lock raw interrupt status */
16

17
/*
18
 * LM3S811 clocks and PLL initialization.
19
 */
20
void LM3S811_clock_init(void) {
21
    /* bypass the PLL */ 
22
    SYSCTL->RCC |= SYSCTL_RCC_BYPASS;
23
    /* bypass the system clock divider */
24
    SYSCTL->RCC &= ~SYSCTL_RCC_USESYSDIV;
25
    /* select the crystal value and oscillator source */
26
    SYSCTL->RCC |= SYSCTL_RCC_XTAL | SYSCTL_RCC_OSCSRC; 
27
    /* enable power to PLL and enable its output */
28
    SYSCTL->RCC &= ~(SYSCTL_RCC_PWRDN |  SYSCTL_RCC_OEN);
29
    /* select system divider and enable to use it */
30
    SYSCTL->RCC |= SYSCTL_RCC_SYSDIV | SYSCTL_RCC_USESYSDIV;
31
    /* wait for the PLL to lock */
32
    while ((SYSCTL->RIS & SYSCTL_RIS_PLLLRIS) == 0)
33
      ;
34
    /* enable use of PLL */
35
    SYSCTL->RCC &= ~(SYSCTL_RCC_BYPASS);
36
}
37

38
int main(void)
39
{
40
    LM3S811_clock_init();
41
    /* enable clock gating control for PORTC */
42
    SYSCTL->RCGC2 = (1 << 2);
43
    /* enable pin connected to LED, set it as output */
44
    GPIOC->DIR = (1 << 5);
45
    GPIOC->DEN = (1 << 5);
46
    for (;;) {
47
        volatile int i;
48
        GPIOC->DATA_Bits[1 << 5] = 1 << 5;
49
        for (i = 0; i < 1000000; i++)
50
            ;
51
        GPIOC->DATA_Bits[1 << 5] = 0;
52
        for (i = 0; i < 1000000; i++)
53
            ;
54

55
    }
56
}
Any suggestions how to unlock the deveice, please?

Reply

Note: the original post is older than 6 months. Please don't ask any new questions in this thread, but start a new one.

Formatting
  • [c]C-Code[/c]
  • [code]code in other languages, ASCII drawings[/code]
  • [math]formula (LaTeX syntax)[/math]
  • [[Title]] – link to an article
  • Link to another post: right-click its post ID (#8078628), copy the address, paste it into the text

More about formatting

Post long source code as an attachment, not in the text.

Already registered? Log in

Not shown to anyone. We send you a link; your post appears once you confirm it there.

By submitting you create a free account and accept the terms of use.