Cortex M3 Could not power up debug port

This site uses cookies. By continuing to browse this site, you are agreeing to our Cookie Policy.

  • Cortex M3 Could not power up debug port

    I am evaluating a new microcontroller to determine if we are going to move from PICs to Cortex. I am unable to load my program on the microcontroller and run it in debug mode. I was able to at one time, but now I am getting the following error:

    Error: Could not power up debug port: Control/Status register reads 000000F0

    Does anyone have any ideas? Thanks in advance for your help.
  • Hi drew1296,

    a bit more information would be useful...

    - Which microcontroller do you use?
    - How do you program your target device (via J-Flash, via IAR EWARM, ...)
    - Do you use an eval board or custom hardware?

    I assume STM32F103 correct?
    Did you try the STM32 unlock untility? (Statr Menu --> Segger --> J-Link ARM Vxxx --> Processor Specific Utilities)
    Are you able to connect to the device (via J-Link commander), after running the unlock tool?

    Best regards
    Alex
    Please read the forum rules before posting.

    Keep in mind, this is *not* a support forum.
    Our engineers will try to answer your questions between their projects if possible but this can be delayed by longer periods of time.
    Should you be entitled to support you can contact us via our support system: segger.com/ticket/

    Or you can contact us via e-mail.
  • Could not power up debug port: Control/Status register reads 00000F0

    I got the same problem:

    we use a Cortex M3 LM3S9B92 uC with our own board
    for compiling/debugging we have an IAR workbench v.5.40
    download on an another board with an Cortex M3 LM3S6965 is working fine!


    the Cortex M3 LM3S9B92 has an internal crystal

    the external crystal is not running currently, can this be a problem?
    i also tried to unlock the device in J-Link Commander, no effect

    when i start the J-Link Commander i get the following msg:


    SEGGER J-Link Commander V4.14 ('?' for help)
    Compiled Apr 9 2010 20:43:52
    DLL version V4.14, compiled Apr 9 2010 20:43:32
    Firmware: J-Link ARM V7 compiled Jun 30 2009 11:05:27
    Hardware: V7.00
    S/N : 157002456
    OEM : IAR
    Info: TotalIRLen = 4, IRPrint = 0x01
    VTarget = 3.267V

    ****** Error: Could not power up debug port: Control/Status register reads 000000F0
    No devices found on JTAG chain. Trying to find device on SWD.
    Info: Found SWD-DP with ID 0x2BA01477

    WARNING: No matching core found. Selecting default core (Cortex-M3).

    ****** Error: Parity error (Data = 0xFFFFFFFF, ReceivedParity = 1)

    No device found on SWD.
    Cortex-M3 identified.
    JTAG speed: 100 kHz



    thanks for helping

    The post was edited 1 time, last by koppi ().

  • I have the same problem too !

    >the external crystal is not running currently, can this be a problem?
    >i also tried to unlock the device in J-Link Commander, no effect

    This is the main reason(external crystal is not running ) in my case which leads to the error message. You may check the circuit regard the crystal oscillator.

    The post was edited 1 time, last by jdliue ().

  • crystal not running

    @jdliue: do you use the same controller? did you solve your problem?

    I talked to the people from TI and they told me that the Cortex M3 LM3S9B92 could start from the internal crystal. i also tried to supply the controller with an external clock - no effect.
  • Hi, yesterday I had the same problem, got ""ERROR: Could not power up debug port", so following how I have recovered.

    I am actually using the DK-LM3S9B96 connected to my pc through the on board ICDI USB interface.

    1- go to LM's Software Updates page and look for the tab Utilities: luminarymicro.com/products/software_updates.html
    2- download and install LMFlashProgrammer-923.
    3- Connect your target board through the ICDI/USB cable and power it on.
    4- start the LM Flash Programmer.
    5- in the tab Configuration select Interface => ICDI (Eval Board) or if you own a specific board select it through the Quick Set list box (this was my case).
    6- Click on tab Other Utilities and select Debug Port Unlock => Tempest Class.
    7- Press the button Unlock and follow the instructions (at the end you have to power cycle the board)
    8- To test that the unlock procedure has gone fine, try to use the Erase command Flash Utilities => Erase => Entire Flash. You should be able to get the "Erase Complete" message in the bottom text box.

    Hope it works for you too :rolleyes:
  • I found another method to get rid of the problem which was much more simple than the previous one.

    I tested the following sequence with JLink ARM V4.14

    1- Connect your Jlink to the board and power it on
    2- Launch the application J-Link Commander
    3- Execute the command unlock LM3Sxxx
    4- Follow the instructions given
    5- Here we go :D
  • Hey,

    thanks for the info

    I allready have tried it with the Unlock function in the Flash Programmer. But with no effect.

    The unlock should clear all programm in flash so no code can disable the jtag interface.



    there IS a known bug in the Cortex M3 LM3S9B92 Rev.C1 JTAG interface and I'm still waiting for a solution from TI.

    in meantime i'm working with an older revision that seems to work so far.
  • Similar Issue

    Similar problem here - J-Link was working Ok with STM32 targets until a few days ago, then 'could not power up debug port'. If Commander is run, same error message, but does connect (and identify CPU) over SWD. Flash unlock utility does not recognise STM32 device. Strangely enough, on Saturday it started working again, and flash unlock worked then.



    Same issue on a different target board, and also same on other PC. Is this an emulator hardware fault?
  • Hi

    I am using my own board with LM3S2139
    I get the same problem when I try to run the J-link GDB server
    unlock from the Commander works for me
    and the I can connect to the J-link .

    The problem is that I need to repeat the unlock sequence each time I Power off the board, what should be the problem?

    I am using codesourcery with eclipse IDE for debugging

    Salam
    Hossam Alzomor
  • Hi alzomor,

    The problem is that I need to repeat the unlock sequence each time I Power off the board, what should be the problem?

    When re-powering the board, is there a program in the internal flash memory which is started at power-up?
    If yes, it is possible that the application performs some re-configuration of the GPIO pins which might be shared with the JTAG/SWD pins?
    Or the application might perform a bad clock setup which locks-up the CPU.

    If there is nothing in flash memory, J-Link should always be able to connect to the device.


    Best regards
    Alex
    Please read the forum rules before posting.

    Keep in mind, this is *not* a support forum.
    Our engineers will try to answer your questions between their projects if possible but this can be delayed by longer periods of time.
    Should you be entitled to support you can contact us via our support system: segger.com/ticket/

    Or you can contact us via e-mail.
  • Flash unlock each time I use power up

    Dear Alex,

    This what I do for initialization of PortC
    // Port C
    SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOC);
    and I don't use Port C again in the code anymore


    and for the Clock this what I do
    // Set the clocking to run directly from the crystal.
    //
    SysCtlClockSet(SYSCTL_SYSDIV_8 | SYSCTL_USE_PLL | SYSCTL_OSC_MAIN |
    SYSCTL_XTAL_6MHZ);

    On the other hand I am using J-link Edu, IS it capable of doing debug from Flash? and programming Flash?
    Could the edu version be the reason for this problem?

    here are the Commands I pass to the GDB Server
    "monitor halt
    monitor reset halt
    monitor flash device = LM3S2139
    monitor flash breakpoints = 1
    monitor flash download = 1"


    The IDE I am using is codesourcery G++ and micro is Stellaris LM3S2139

    Salam
    Hossam Alzomor


  • Hi Hossam,

    did you play a bit with the settings?
    Simply trying to comment out the clock init and the Port C init and flashing a simple while(1): loop?
    Is J-Link still able to connect after doing this?

    On the other hand I am using J-link Edu, IS it capable of doing debug from Flash?

    Yes.

    and programming Flash?

    Yes.

    Could the edu version be the reason for this problem?

    No.


    Best regards
    Alex
    Please read the forum rules before posting.

    Keep in mind, this is *not* a support forum.
    Our engineers will try to answer your questions between their projects if possible but this can be delayed by longer periods of time.
    Should you be entitled to support you can contact us via our support system: segger.com/ticket/

    Or you can contact us via e-mail.
  • Could Reset Cause the problem?

    Thanks Alex for your Reply

    I found that the problem can be solved without doing unlock
    I just power off the board and power it on again and Jtag could connect to the board.
    Also without debugging Some times the application can't start, and If I power off the systems and power it on again it works fine.
    Could the Reset Circuit be the cause of the Problem?

    Regards
    Hossam Alzomor
  • Hi Hossam,

    Are you working with an eval board or a custom/your own hardware?
    If you are working with your own hardware: Could you please check this with an eval board in order to verify if it shows the same problem?
    We are not aware of such problems with the eval boards.

    If the eval board does not show this behavior, could you please check for differences between your hardware and the eval board.

    As there also seem to be some problems even if no J-Link is connected, I do not think that this is a J-Link related problem.


    Best regards
    Alex
    Please read the forum rules before posting.

    Keep in mind, this is *not* a support forum.
    Our engineers will try to answer your questions between their projects if possible but this can be delayed by longer periods of time.
    Should you be entitled to support you can contact us via our support system: segger.com/ticket/

    Or you can contact us via e-mail.