[ABANDONED] Flasher ARM with ARM7TDMI-S (ADuC7124) using ASCII interface fails (RAMCode download failed)

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

  • [ABANDONED] Flasher ARM with ARM7TDMI-S (ADuC7124) using ASCII interface fails (RAMCode download failed)

    Hi,

    We have multiple Flasher ARMs - I have however only tried this with on a version 4.02 unit with latest firmware (15th June 2022).
    I have tried with both the J-Link v.7.92k and an older v7.64 - same results:

    I get the following in J-Flash when using Production Programming (F7):

    Source Code

    1. Application log started
    2. - J-Flash V7.64 (J-Flash compiled Apr 1 2022 16:09:44)
    3. - JLinkARM.dll V7.64 (DLL compiled Apr 1 2022 16:09:20)
    4. Reading flash device list [C:\Program Files\SEGGER\JLink_V764\ETC/JFlash/Flash.csv] ...
    5. - List of flash devices read successfully (451 Devices)
    6. Reading MCU device list ...
    7. - List of MCU devices read successfully (9241 Devices)
    8. Opening project file [C:\HIDDENDATA.jflash] ...
    9. - Project opened successfully
    10. Opening data file [C:\HIDDENDATA.hex] ...
    11. - Data file opened successfully (20409 bytes, 3 ranges, CRC of data = 0xBBAA184C, CRC of file = 0x99C0DE3D)
    12. Connecting ...
    13. - Connecting via USB to probe/ programmer device 0
    14. - Probe/ Programmer firmware: J-Link ARM / Flasher ARM V4 compiled Jun 15 2022 11:03:00
    15. - Device "ADUC7124" selected.
    16. - Target interface speed: 400 kHz (Fixed)
    17. - VTarget = 3.314V
    18. - ADI system TAP: Connecting to device with system TAP.
    19. - TotalIRLen = 5, IRPrint = 0x11
    20. - JTAG chain manually configured. JTAG chain auto-detection skipped
    21. - JTAG chain detection found 2 devices:
    22. - #0 Id: 0x4F1F0F0F, IRLen: 04, Unknown device
    23. - #1 Id: 0x006397FF, IRLen: 05, Unknown device
    24. - Executing init sequence ...
    25. - Initialized successfully
    26. - Target interface speed: 400 kHz (Fixed)
    27. - Found 2 JTAG devices. Core ID: 0x4F1F0F0F (None)
    28. - Connected successfully
    29. Auto programming target (20409 bytes, 3 ranges) ...
    30. - Checking if selected data fits into selected flash sectors.
    31. - Start of preparing flash programming
    32. - End of preparing flash programming
    33. - Start of determining dirty areas in flash cache
    34. - End of determining dirty areas
    35. - CPU speed could not be measured.
    36. - Start of erasing sectors
    37. - Blank checking 0x00080000 - 0x00084FFF
    38. - Erasing range 0x00080000 - 0x00084FFF ( 40 Sectors, 20 KB)
    39. - Blank checking 0x00086000 - 0x000861FF
    40. - End of erasing sectors
    41. - Start of flash programming
    42. - Programming range 0x00080000 - 0x00084FFF ( 40 Sectors, 20 KB)
    43. - Programming range 0x00086000 - 0x000861FF ( 1 Sector, 512 Bytes)
    44. - End of flash programming
    45. - Flash programming performed for 2 ranges (20992 bytes)
    46. - 0x80000 - 0x84FFF ( 40 Sectors, 20 KB)
    47. - 0x86000 - 0x861FF ( 1 Sector, 512 Bytes)
    48. - Start of verifying flash
    49. - End of verifying flash
    50. - Start of restoring
    51. - End of restoring
    52. - Executing exit sequence ...
    53. - De-initialized successfully
    54. - Target erased, programmed and verified successfully - Completed after 2.989 sec
    Display All

    When I use the generated cfg and dat files on the same Flasher ARM in serial/ASCII control mode I get (#AUTO is issued by user):

    Source Code

    1. #AUTO
    2. #ACK
    3. #STATUS:INITIALIZING
    4. #STATUS:CONNNECTING
    5. #STATUS:ERASING
    6. #ERR255:Failed to download RAMCode.
    7. #ERR255:Error while flashing

    We don't have any issues with other more moderns MCUs like Renesas RA6 series or NXP Kinetis series.
    The only way I'm able to connect with the ADuC7124 is with a fixed frequency of <800 kHz, which is noted as an errata in the data sheet. I cannot use Adaptive Mode, even though RTCK is connected.

    Another thing that I find confusing is the JTAG chain identifiers.
    In J-link Commander I get the following, when connecting:

    Source Code

    1. SEGGER J-Link Commander V7.64 (Compiled Apr 1 2022 16:10:38)
    2. DLL version V7.64, compiled Apr 1 2022 16:09:20
    3. Connecting to J-Link via USB...O.K.
    4. Firmware: J-Link ARM / Flasher ARM V4 compiled Jun 15 2022 11:03:00
    5. Hardware version: V4.02
    6. S/N: 164215482
    7. License(s): JFlash, GDB
    8. IP-Addr: 192.168.6.12
    9. VTref=3.309V
    10. Type "connect" to establish a target connection, '?' for help
    11. J-Link>connect
    12. Please specify device / core. <Default>: ADUC7124
    13. Type '?' for selection dialog
    14. Device>
    15. Please specify target interface:
    16. J) JTAG (Default)
    17. TIF>
    18. Device position in JTAG chain (IRPre,DRPre) <Default>: -1,-1 => Auto-detect
    19. JTAGConf>
    20. Specify target interface speed [kHz]. <Default>: 4000 kHz
    21. Speed>400
    22. Device "ADUC7124" selected.
    23. Connecting to target via JTAG
    24. ADI system TAP: Connecting to device with system TAP.
    25. TotalIRLen = 5, IRPrint = 0x11
    26. TotalIRLen = 5, IRPrint = 0x11
    27. JTAG chain detection found 1 devices:
    28. #0 Id: 0x028031CB, IRLen: 05, System level TAP
    29. ARM7 identified.
    30. J-Link>
    Display All
    Shouldn't this ID be the same as in the J-Flash project? No matter what, J-Flash determines two IDs, and when entering 0x028031CB as #1 and pressing verify, I receive the following info as shown in the attached picture.

    The behavior is exactly the same with version 7.92k.
    Any help would be greatly appreciated in solving this, as this stalls everything unfortunately.
    Many thanks.

    EDIT: Prior to editing, it was mentioned that RESET was not connected from Flasher ARM to MCU - this is not true, it was connected, and pulled up externally by 33kOhm.
    Images
    • Target_interface_ADuC7124.jpg

      93.24 kB, 722×572, viewed 109 times

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