Forum: Mikrocontroller und Digitale Elektronik ARM 2106 Startprobleme


von Harry (Gast)


Lesenswert?

Hallo,

ich habe mir eine Eval Borad entwickelt, wo ein LPC2106 Prozessor
läuft. Das erste Programm habe ich getestet ( JTAG ) und anschliessend
geflasht. Jetzt ist so, wenn ich bei dem Betrieb ein Reset durchführe,
dass mein Programm nicht mehr gastartet wird. Sage ich über JTAG einen
Reset, dann läuft wieder alles. Ich habe nun einen Resetbaustein Typ
TCM811 eingestetzt und diesen durch einen Kondensator und Widerstand
ersetzt ( 10k, 100nF ) und es ist schon besser geworden, aber das
Problem beim Reset im Lauf ist noch immer.

Danke schön für Eure Hilfe

Harry

von Helmut (Gast)


Lesenswert?

Ein Thread reicht aber, was soll das?

von mthomas (Gast)


Lesenswert?

Wie ist der BSL-Pin beschaltet? Reset "ueber JTAG" ein "echter"
Reset mit RST-Pin nach GND? Ein Unterschied wenn JTAG-Adapter nicht mit
Board verbunden? Core- und IO-Spannungen "sauber"? Laeuft eine der
anderen "hinterher"? Stromversorgung und sonstige Beschaltung mit dem
LPC-P2106 von Olimex verglichen? (o.k., ist nicht das allerbeste Design,
aber recht problemlos) Betr. Stromversorgung gibt es ein paar
lesenswerte Threads im Archiv der lpc2000 Yahoo-Gruppe.

von Harry (Gast)


Lesenswert?

Hallo,

ich werde Deine Tipps mal morgen früh ausprobieren. Mir ist aber was
anderes noch in den Sinn gekommen und habe es mal am Keil MCB2130
ausprobiert. Wenn ich EINT1 auf 0 lege und jetzt einen Reset ausführe,
läuft das System nicht mehr an. Bei mir liegt dieser PIN an einer GPS
Platine, wo ich jetzt garnicht weiss, auf welchen Potential diese genau
liegt.

Spannungsversorgung sieht gut aus. Unterschiede zwischen JTAG gesteckt
und abgezogen sind gleich.

Melde mich

Gruss
Harry

von Harry (Gast)


Lesenswert?

Hallo,

habe jetzt meine Sache ausprobiert, aber doch keinen Erfolg gehabt.
Jetzt bin ich aber weiter gekommen, dass das Programm in die
Vektortablle "Reset" springt und von dort ans Ende springt. Habe
jetzt einfach mal eine richtige Adresse eingegeben und bin dann mit
"Step" über den Debugger gesprungen und dann lief alles. leider kenne
ich den Prozessor noch nicht so gut und weiss deswegen nicht, was ich
machen soll.

Es stehen dort im Startupcode folgendes
_vectors:
  ldr pc, [pc, #reset_handler_address -, - 8 ]
//reset_handler_address hat den Wert 0x18
..
..
..

reset_handler_adress:
.word reset_handler
..
..
..

.section .init, "ax"
.code 32
.align 0

reset_handler:
...



in den Register steht
r0 0
r1 0xe0028000
r2 0xe0008000
r3 0xe002800c
r4 0xe002c000
r5 0x7ffffd34
r6 0x40000128
r7 0
r8 0
r9 0
r10 0
r11 0x40000828
r12 0x4000081C
sp( r13_svc ) 0x4000ffb8
lr( r14_svc ) 0xfffffffc
pc( r15 ) 0

Führe ich jetzt den nächsten Step aus, so springt das Programm an die
Adresse : 0x7fffe1b0

Für eine Antwort wäre ich sehr dankbar. Ich benutze Crossworks 1.5.

Gruss
Harry

von Harry (Gast)


Lesenswert?

Hallo,

so jetzt habe ich diesen Fehler gefunden. Ich habe PIN EINT0 nicht
belegt und dadurch bei einem Reset nicht das Programm neu gestart,
sondern bin in den ISP Command Handler gesprungen. Diesen PIN mit einem
Pull Down auf UB gezogen und nun läuft er.

Gruss
Harry

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.