Forum: Mikrocontroller und Digitale Elektronik ARM will nicht


von Leo K. (leodennis)


Angehängte Dateien:

Lesenswert?

Hi Leute,
ich habe für mein Projekt ein ARM Board entworfen und gelötet. 
(Schaltplan angehängt).
Gestern hab ichs auch kurz getestet und konnte programmieren und drauf 
debuggen (Prozessor Sam4s16C).
Heute wollt ichs wieder machen, doch wenn ich das Atmel beispielprogramm 
drauftue wo eine LED blinken soll, macht ers nicht richtig:
Manchmal macht er garnix, manchmal blinkt die LED ein paar mal und hört 
auf. Debuggen geht auch nur manchmal und dann brichts irgendwann ab bzw 
gehts nicht weiter.

Den Quarz hab ich schon gemessen, dort liegt ein 12MHz Sinus an, das 
müsste passen...
Die Versorgung hab ich auch gemessen, dei Werte Stimmen die 
Gleichspannungen sind ziemlich sauber.

Also an was kann es liegen. Programmieren lässt er sich immer, aber mir 
kommts vor, dass das Program sich irgendwann aufhängt bzw im delay ewig 
wartet:
Das Beispielprogramm ist:
1
static void mdelay(uint32_t ul_dly_ticks)
2
{
3
  uint32_t ul_cur_ticks;
4
5
  ul_cur_ticks = ul_ms_ticks;
6
  while ((ul_ms_ticks - ul_cur_ticks) < ul_dly_ticks) {
7
  }
8
}
9
10
void SysTick_Handler(void)
11
{
12
  ul_ms_ticks++;
13
}
14
15
int main(void) {  
16
  sysclk_init();
17
  board_init();  
18
19
  /* Setup SysTick Timer for 1 msec interrupts */
20
  if (SysTick_Config(SystemCoreClock / 1000)) {
21
    while (1) {    /* Capture error */
22
    }
23
  }
24
25
  while (1) {
26
    gpio_toggle_pin(LED0_GPIO);
27
    mdelay(500);
28
  }
29
}

-------------------------------------

Falls wem was für mein 2. Problem einfällt, das Display will auch nicht 
mehr. Wenn ich ein Pixel einfärben will, dann ist er immer schwarz, egal 
welche Farbe ich auswähle, es liegt aber nicht an der Software, da das 
Programm auf unseren anderen Prototypen funktioniert und die beschaltung 
wäre 1:1 übernimmen (nur die Pegelwandler wurden geändert, aber die 
Daten kommen ja richtig am Display an, werden nur falsch dargestellt...
Wir verwenden ein transparentes OLED Display.

Hoffe ihr könnt helfen (:

lg
Leo

Edit:
Vielleicht liegt es ja dann, dass ich das Programm (was auf dem Sam4s16C 
läuft) für das Entwicklerboard Sam4SXplained geschrieben habe? Jedoch 
kann ich keine user appliction für den ARM programmieren, da ich den 
Prozessor über das Entwicklerboard programmiere. Und kein ICE-Programmer 
habe...
Kann das der Fehler sein, ich habe aber alle Teile die ich benutze 1:1 
vom Entwicklerboard übernommen!

von leluno (Gast)


Lesenswert?

in der 2. while-schleife fehlt mglw. ein Semikolon
probier es zum testen doch mal mit einem einfachen delay mit 
for-schleife ohne timer

von Leo K. (leodennis)


Lesenswert?

ein Versuch wars wert, danke, aber weder Semikolon noch for Schleifen 
statt delay zeigt eine Wirkung :L

von Arc N. (arc)


Lesenswert?

Der Watchdog dürfte nach einem Reset aktiv sein...

von Leo K. (leodennis)


Lesenswert?

Ok ich habs, ein klassiker, die Versorgungsspannung ist 1,2 nicht 1,8 
jetzt gehts!
Naja kann passieren :P

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.