www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik LPC1768 nach PLL-Tests nicht mehr ansprechbar


Autor: Eduard Steinberg (rfk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Zur Zeit spiele ich ein bisschen mit einem Entwicklungsboard, das über 
einen NXP LPC1768 verfügt. Der Mikrocontroller wird bzw. wurde unter 
Linux mit einem Olimex ARM-USB-OCD JTAG-Adapter mit OpenOCD 
programmiert. Leider kann ich den Controller nicht mehr ansprechen, seit 
darauf eine Firmware läuft, bei der ich mit der PLL experimentiert habe:
# openocd -f openocd.cfg 
Open On-Chip Debugger 0.4.0-rc1 (2010-02-05-08:18)
For bug reports, read
        http://openocd.berlios.de/doc/doxygen/bugs.html
jtag_nsrst_delay: 200
jtag_ntrst_delay: 200
trst_and_srst separate srst_gates_jtag trst_push_pull srst_open_drain
500 kHz
Info : clock speed 500 kHz
Info : JTAG tap: lpc1768.cpu tap/device found: 0x4ba00477 (mfg: 0x23b, part: 0xba00, ver: 0x4)
Warn : Timeout (1000ms) waiting for ACK = OK/FAULT in SWJDP transaction
Warn : Block read error address 0xe000ed00, count 0x1
Warn : Timeout (1000ms) waiting for ACK = OK/FAULT in SWJDP transaction
...

Ich habe versucht, den Prozessor auf jedwede Art anzuhalten, damit ich 
den Flash wieder löschen kann, alle Befehle dazu (reset halt, reset 
init, soft_reset_halt, etc.) werden jedoch mit einem Timeout verweigert. 
Manche Befehle hingegen (z.B. flash probe) funktionieren noch.

Meine OpenOCD-Target-Konfiguration entspricht weitestgehend dem 
Standard:
# NXP LPC1768 Cortex-M3 with 512kB Flash and 32kB+32kB Local On-Chip SRAM,
# clocked with 4MHz internal RC oscillator

if { [info exists CHIPNAME] } {
  set  _CHIPNAME $CHIPNAME
} else {
  set  _CHIPNAME lpc1768
}

if { [info exists ENDIAN] } {
  set  _ENDIAN $ENDIAN
} else {
  set  _ENDIAN little
}

if { [info exists CPUTAPID ] } {
  set _CPUTAPID $CPUTAPID
} else {
  set _CPUTAPID 0x4ba00477
}

#delays on reset lines
jtag_nsrst_delay 200
jtag_ntrst_delay 200

# LPC2000 & LPC1700 -> SRST causes TRST
#reset_config trst_and_srst srst_pulls_trst
reset_config trst_and_srst separate

jtag newtap $_CHIPNAME cpu -irlen 4 -ircapture 0x1 -irmask 0xf -expected-id $_CPUTAPID

set _TARGETNAME $_CHIPNAME.cpu
target create $_TARGETNAME cortex_m3 -endian $_ENDIAN -chain-position $_TARGETNAME

# LPC1768 has 32kB of SRAM on its main system bus (so-called Local On-Chip SRAM)
$_TARGETNAME configure -work-area-phys 0x10000000 -work-area-size 0x8000 -work-area-backup 0

$_TARGETNAME configure -event reset-init {
  # Force target into ARM state
  #arm core_state arm
  #do not remap 0x0000-0x0020 to anything but the flash
#  mwb 0xE01FC040 0x01
  mwb 0xE000ED08 0x00
}

# LPC1768 has 512kB of user-available FLASH (bootloader is located in separate dedicated region).
# flash bank lpc1700 <base> <size> 0 0 <target#> <variant> <cclk> [calc_checksum]

set _FLASHNAME $_CHIPNAME.flash
flash bank $_FLASHNAME lpc2000 0x0 0x80000 0 0 $_TARGETNAME lpc1700 12000 calc_checksum

# 4MHz / 6 = 666kHz, so use 500
jtag_khz 500

Wer hat eine Idee?

Autor: Smarti (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nun ja,

das Prob hatte ich mit einem LPC2388 auch schon, über Flash Magic konnte 
er wieder neu geschrieben werden und die alten (falsche) PLL 
Einstellungen wurden überschrieben.

http://www.flashmagictool.com/

Viel Erfolg

Autor: Eduard Steinberg (rfk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke für den Tipp, aber meines Wissens kann FlashMagic nicht via JTAG 
programmieren? Ich habe nämlich nur eine JTAG Schnittstelle zur 
Verfügung.

Autor: Markus Müller (mmvisual)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nein, aber über den UART1. Also an pins Drähte ran und einen RS232/TTL 
Wandler ran.
Boot-Pin / Reset, dann kann es los gehen.

Autor: Eduard Steinberg (rfk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Über JTAG gibt es da wirklich keine Möglichkeit? Aber wie auch immer, 
mittels ISP (UART0!) konnte ich den Controller auf jeden Fall retten. 
Danke!

Autor: Markus Müller (mmvisual)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Flashmagictool kennt keine JTAG-Adapter. Wenn man die alle die es auf 
dem Markt gibt dort rein machen wollte, dann wäre es eine Wissenschaft 
für sich und das Tool wäre sicher nicht mehr kostenlos im Internet.
Sorry, ich meinte den ersten UART = UART0, ist schon über 1 Jahr her...

Autor: bg (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,
ich hab so ziemlich das gleiche Problem, nur mit einem LM3S9B90 von TI.
Ich hab's mit dem Flash util von TI probiert über die UART zu flashen, 
aber ohne Erfolg.
Verzweifele immer mehr und bin für jeden Tip dankbar.

mfg
 bg

Autor: bg (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,
hab eine Lösung gefunde.
Das Windows Flash-Util von TI bietet eine unlock Funktion.
Nach ein wenig spielen damit hab ich das Board wieder lauffähig 
bekommen.

mfg
 bg

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.