Issues with Programming my Micro...Could not Transfer JTAG data

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

  • Issues with Programming my Micro...Could not Transfer JTAG data

    Hi, I am not sure why I am not able to program my STM32F103C8T6 on the board I just designed as part of my internship. I have tried unlocking the flash, putting pull-ups/pull-downs on various JTAG lines, ensured all my VDD/VCC on the chip are hooked up and properly decoupled, and a variety of other ideas. Here is what I get when I open the JLINK command line utility:

    SEGGER J-Link Commander V4.08f ('?' for help)
    Compiled Jul 8 2009 19:55:01
    DLL version V4.08f, compiled Jul 8 2009 19:54:44
    Firmware: J-Link compiled Jul 30 2008 11:24:37 ARM Rev.5
    Hardware: V5.30
    S/N : 10006174
    OEM : IARKS
    VTarget = 3.332V
    Info: TotalIRLen = 9, IRPrint = 0x0011
    Info: Found Cortex-M3 r1p1, Little endian.
    Info: TPIU fitted.
    Info: FPUnit: 6 code (BP) slots and 2 literal slots
    Found 2 JTAG devices, Total IRLen = 9:
    #0 Id: 0x3BA00477, IRLen: 4, IRPrint: 0x1 Cortex-M3 Core
    #1 Id: 0x16410041, IRLen: 5, IRPrint: 0x1 STM32 Boundary Scan
    Cortex-M3 identified.
    JTAG speed: 5 kHz
    J-Link>

    This is the log file when I program using the IAR Kickstart stuff:

    Logging started @ 2009-08-10 21:00
    DLL Compiled: Jul 8 2009 19:54:44
    Out of sync , resynchronising... (0003ms, 0000ms total)
    T0FBC 000:000 Firmware: J-Link compiled Jul 30 2008 11:24:37 ARM Rev.5 (0071ms, 0000ms total)
    T0FBC 000:000 returns O.K. (0141ms, 0000ms total)
    T0FBC 000:142 JLINKARM_GetDLLVersion() returns 40806 (0000ms, 0141ms total)
    T0FBC 000:143 JLINKARM_GetCompileDateTime() (0000ms, 0141ms total)
    T0FBC 000:144 JLINKARM_GetFirmwareString(...) (0000ms, 0141ms total)
    T0FBC 000:144 JLINKARM_SelectDeviceFamily(3) (0000ms, 0141ms total)
    T0FBC 000:144 JLINKARM_SetSpeed(1) (0000ms, 0141ms total)
    T0FBC 000:146 JLINKARM_SetResetDelay(0) (0000ms, 0141ms total)
    T0FBC 000:146 JLINKARM_ResetPullsRESET(ON) (0000ms, 0141ms total)
    T0FBC 000:146 JLINKARM_Reset() >0x2F8 JTAG>TotalIRLen = 9, IRPrint = 0x0011 >0x30 JTAG> >0x210 JTAG> >0x38 JTAG> >0xF0 JTAG> >0x80 JTAG> >0x230 JTAG> >0x200 JTAG> >0xE0 JTAG> >0xE0 JTAG>Found Cortex-M3 r1p1, Little endian. >0x80 JTAG> >0x170 JTAG> >0xE0 JTAG> >0xE0 JTAG>TPIU fitted. >0xE0 JTAG> >0xE0 JTAG> FPUnit: 6 code (BP) slots and 2 literal slots >0xE0 JTAG> >0x180 JTAG> >0x170 JTAG> >0x1A0 JTAG> >0xE0 JTAG> >0xE0 JTAG> >0x170 JTAG> >0x170 JTAG> >0xE0 JTAG> >0xE0 JTAG> >0xEF8 JTAG> >0x1A0 JTAG>
    >0xE0 JTAG> >0xEF8 JTAG> >0x110 JTAG> >0xE0 JTAG> (16737ms, 0141ms total)
    T0FBC 016:884 JLINKARM_GetIdData(...) ScanLen=9 NumDevices=2 aId[0]=0x3BA00477 aIrRead[0]=0 aScanLen[0]=0 aScanRead[0]=0 (0001ms, 16878ms total)
    T0FBC 016:886 JLINKARM_JTAG_GetDeviceID(DeviceIndex = 0) returns 0x3BA00477 (0000ms, 16879ms total)
    T0FBC 016:887 JLINKARM_JTAG_GetDeviceInfo(DeviceIndex = 0) returns 0x00 (0000ms, 16879ms total)
    T0FBC 016:887 JLINKARM_JTAG_GetDeviceID(DeviceIndex = 1) returns 0x16410041 (0000ms, 16879ms total)
    T0FBC 016:887 JLINKARM_JTAG_GetDeviceInfo(DeviceIndex = 1) returns 0x00 (0000ms, 16879ms total)
    T0FBC 016:888 JLINKARM_GetDeviceFamily() returns 3 (0000ms, 16879ms total)
    T0FBC 016:888 JLINKARM_GetDeviceFamily() returns 3 (0000ms, 16879ms total)
    T0FBC 016:888 JLINKARM_GetDeviceFamily() returns 3 (0000ms, 16879ms total)
    T0FBC 016:888 JLINKARM_Halt() >0xE0 JTAG> returns 0x00 (0228ms, 16879ms total)

    JLINKARM_AddMirrorAreaEx(Addr = 0x00000000, Size = 0x00000000) (0000ms, 0000ms total)
    JLINKARM_IsHalted() >0x2F8 JTAG>TotalIRLen = 9, IRPrint = 0x0011 >0x30 JTAG> >0x210 JTAG> >0x38 JTAG> >0xF0 JTAG> >0x80 JTAG> >0x230 JTAG> >0x200 JTAG> >0xE0 JTAG> >0xE0 JTAG>Found Cortex-M3 r1p1, Little endian. >0x80 JTAG> >0x170 JTAG> >0xE0 JTAG> >0xE0 JTAG>TPIU fitted. >0xE0 JTAG> >0xE0 JTAG> FPUnit: 6 code (BP) slots and 2 literal slots >0xE0 JTAG> >0xF0 JTAG> returns TRUE (5203ms, 17108ms total)
    T0FBC 022:323 JLINKARM_ReadMemU32(0xE0042000, 0x0001 Items, ...) >0x170 JTAG> -- Data: 10 64 03 20 returns 0x01 (0375ms, 17108ms total)
    T0FBC 022:699 JLINKARM_GetEmuCaps() returns 0x80D7BBF (0000ms, 17483ms total)
    T0FBC 022:700 JLINKARM_GetSpeed() returns 0x01 (0000ms, 17483ms total)
    T0FBC 022:703 JLINKARM_BeginDownload(Flags = 0x03) (0000ms, 17483ms total)
    T0FBC 022:729 JLINKARM_WriteMem(0x00000000, 0x0134 Bytes, ...) -- Data: 00 04 00 20 F5 00 00 00 35 01 00 00 35 01 00 00 ...
    JLINKARM_ReadMemHW(0x00000000, 0x0004 Bytes, ...) >0x170 JTAG> -- Data: FF FF FF FF returns 0x00 (0361ms, 0000ms total)
    JLINKARM_ReadMemHW(0x08000000, 0x0004 Bytes, ...) >0x170 JTAG> -- Data: FF FF FF FF returns 0x00 (0374ms, 0361ms total)
    JLINKARM_WriteMemHW(0x00000000, 0x0004 Bytes, ...) -- Data: 00 00 01 00 >0x170 JTAG> returns 0xFFFFFFFF (0375ms, 0735ms total)
    JLINKARM_ReadMemHW(0x00000000, 0x0004 Bytes, ...) >0x170 JTAG> -- Data: FF FF FF FF returns 0x00 (0374ms, 1110ms total)
    -- MA0 is in flash -- Unmirror addr 0x00000000 >0xFB0 JTAG> returns 0x04 (5548ms, 17483ms total)
    T0FBC 028:278 JLINKARM_WriteU16(0x00000134, 0xE7FE) -- Unmirror addr 0x00000134 >0x170 JTAG> returns 0x00 (0375ms, 23031ms total)
    T0FBC 028:659 JLINKARM_EndDownload() (0000ms, 23406ms total)
    T0FBC 028:659 JLINKARM_ReadMemU32(0x00000000, 0x004D Items, ...) -- Unmirror addr 0x00000000 >0x1040 JTAG> -- Updating C cache (320 bytes @ 0x08000000) -- Read from C cache (308 bytes @ 0x08000000) -- Data: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ... returns 0x4D (4209ms, 23406ms total)
    T0FBC 032:869 JLINKARM_ReadMemU16(0x00000134, 0x0001 Items, ...) -- Unmirror addr 0x00000134 -- Read from C cache (2 bytes @ 0x08000134) -- Data: FF FF returns 0x01 (0001ms, 27615ms total)
    T0FBC 034:987 JLINKARM_ReadMemU32(0x00000000, 0x0001 Items, ...) -- Unmirror addr 0x00000000 -- Read from C cache (4 bytes @ 0x08000000) -- Data: FF FF FF FF returns 0x01 (0001ms, 27616ms total)
    T0FBC 034:988 JLINKARM_ReadMemU32(0x00000004, 0x0001 Items, ...) -- Unmirror addr 0x00000004 -- Read from C cache (4 bytes @ 0x08000004) -- Data: FF FF FF FF returns 0x01 (0000ms, 27617ms total)
    T0FBC 037:244 JLINKARM_ResetPullsRESET(OFF) (0000ms, 27617ms total)
    T0FBC 037:244 JLINKARM_Reset() >0x2F8 JTAG>TotalIRLen = 9, IRPrint = 0x0011 >0x30 JTAG> >0x210 JTAG> >0x38 JTAG> >0xF0 JTAG> >0x80 JTAG> >0x230 JTAG> >0x200 JTAG> >0xE0 JTAG> >0xE0 JTAG>Found Cortex-M3 r1p1, Little endian. >0x80 JTAG> >0x170 JTAG> >0xE0 JTAG> >0xE0 JTAG>TPIU fitted. >0xE0 JTAG> >0xE0 JTAG> FPUnit: 6 code (BP) slots and 2 literal slots >0xE0 JTAG> >0x180 JTAG> >0x170 JTAG> >0xE0 JTAG> >0xE0 JTAG> >0x170 JTAG> >0x170 JTAG> >0xE0 JTAG> >0xEF8 JTAG> >0x110 JTAG> >0xE0 JTAG>
    (11547ms, 27617ms total)
    T0FBC 048:792 JLINKARM_ReadReg(R15) returns 0xFFFFFFFE (0001ms, 39164ms total)
    T0FBC 048:793 JLINKARM_ReadReg(MSP) returns 0xFFFFFFFC (0000ms, 39165ms total)
    T0FBC 048:793 JLINKARM_ReadReg(PSP) returns 0xE6FED1A0 (0000ms, 39165ms total)
    T0FBC 048:793 JLINKARM_ReadReg(CFBP) returns 0x00000000 (0000ms, 39165ms total)
    T0FBC 048:793 JLINKARM_IsHalted() >0xE0 JTAG> returns TRUE (0230ms, 39165ms total)
    T0FBC 049:024 JLINKARM_ReadMemU32(0xE000EDFC, 0x0001 Items, ...) >0x170 JTAG> -- Data: 00 00 00 00 returns 0x01 (0374ms, 39165ms total)
    T0FBC 049:398 JLINKARM_WriteMem(0xE000EDFC, 0x0004 Bytes, ...) -- Data: 00 00 00 01 >0x170 JTAG> -- Invalidate MA0 status returns 0x04 (0374ms, 39539ms total)
    T0FBC 049:824 JLINKARM_ReadReg(R15) returns 0xFFFFFFFE (0001ms, 39913ms total)
    T0FBC 049:825 JLINKARM_ReadMemU16(0x00000040, 0x0001 Items, ...)
    JLINKARM_ReadMemHW(0x00000000, 0x0004 Bytes, ...) >0x170 JTAG> -- Data: FF FF FF FF returns 0x00 (0374ms, 0000ms total)
    JLINKARM_ReadMemHW(0x08000000, 0x0004 Bytes, ...) >0x170 JTAG> -- Data: FF FF FF FF returns 0x00 (0374ms, 0374ms total)
    JLINKARM_WriteMemHW(0x00000000, 0x0004 Bytes, ...) -- Data: 00 00 01 00 >0x170 JTAG> returns 0xFFFFFFFF (0374ms, 0748ms total)
    JLINKARM_ReadMemHW(0x00000000, 0x0004 Bytes, ...) >0x170 JTAG> -- Data: FF FF FF FF returns 0x00 (0375ms, 1122ms total)
    -- MA0 is in flash -- Unmirror addr 0x00000040 >0x440 JTAG> -- Updating C cache (64 bytes @ 0x08000040) -- Read from C cache (2 bytes @ 0x08000040) -- Data: FF FF returns 0x01 (2600ms, 39914ms total)
    T0FBC 052:426 JLINKARM_SetBPEx(Addr = 0x00000040, Type = 0xFFFFFFF2) -- Unmirror addr 0x00000040 returns 0x00000001 (0001ms, 42514ms total)
    T0FBC 052:427 JLINKARM_BeginDownload(Flags = 0x01) (0000ms, 42515ms total)
    T0FBC 052:427 JLINKARM_WriteMem(0x20000000, 0x0400 Bytes, ...) -- Data: CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD ... >0x3140 JTAG>
    ***** Error: Could not transfer JTAG data. returns 0xFFFFFFFF (5011ms, 42515ms total)


    IAR seems to freeze everytime I try to program the chip.

    Any help would be highly appreciated.

    Thank You,
    A very frustrated EE intern.
    Please feel free to email me at george[dot]melcer[at]liquidr[dot]com
  • Hello AppleIntern00,

    I have checked this with the following testing environment:
    IAR EWARM V5.40a
    J-Link DLL V4.08f
    J-Link HW Version: V5.4
    IAR sample project: arm\examples\ST\STM32F10x\STM32-Eval\STM3210E-EVAL_Demo\Demo\project\EWARMv5
    Eval Board: ST MB672 (STM32F103ZET6)

    And it seems to work fine.

    What seems a little bit confusing in the log you postet, is that line:
    T0FBC 000:144 JLINKARM_SetSpeed(1) (0000ms, 0141ms total)
    Is it correct that you are working with 1 kHz JTAG speed?

    Communication in general seems to work since JLink.exe is able to identify the core and is able to connect to it.
    If you are using a macro file could you please check if there might be some initialization which could cause problems (wrong PLL init etc.)?

    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.