I am bring up a custom board based on the DA14706 and cannot get JLINK connection working or uart serial bootingI can do a basic connection in jlink but it doesnt respond to any commands (mem, reset, halt, etc...)Is there something I need to do to a new chip to get it started?
Hi There,Thank you for posting your question online.
dovoto said:I am bring up a custom board based on the DA14706 and cannot get JLINK connection working or uart serial booting
Did you follow the DA1470x HW Guidelines AN-B-087 when designing the board?Please refer on the User Manual DA14706 PRO Development Kit UM-B-148, on sections 4.2 USB to UART and 4.3 USB to Serial Wire Debug Port (SWD).Please also refer on the DA1470x Datasheet. I believe you have used the correct SWD pins for the Cortex-M33Have you connected the Reset pin on your J-link probe? If yes, is it connected to the Flash as well?Best Regards,OV_Renesas
Yes, my board is designed directly from the 14706 daughter board. Which means reset from jlink is connected but not to flash....should it be? I dont see any notes about that.The only difference between mine is I do not have level translators on jlink or uart and am running them both at 3v.
Hi For all the Da series do not connect the reset, the reset on the DA series is unusual as it is active high not low, and the jlink keeps the reset high until resetting, We had this issue with the DA14683, took forever to find the issue. Once we disconnected the reset all worked fine. Hope this helps
Hi There,Thank you for the reply.You mentioned that you tried both J-link and UART serial programming/booting. The Reset is necessary for the UART serial programming, and I think all the J-Link probes have a Reset pin exposed. I was wondering if you have connected that as well. As Jeff mentioned, most of our DA BLE products have a Reset of active high, while the J-Link expects an active low. On our Dev Kits there is a level shifter so J-link can receive the correct Reset. It would be helpful if you shared the J-link probe you have and the connections you have made. I think most of the J-link probes have 5V exposed pin and not 3V. Best Regards,OV_Renesas
Active hi reset....who..what...omg...i hope thats it. Ill let you know when i get back to my office...if so, life saver.
Nearly all modern jlink have a vref for setting io voltage. I tried 3.0 and 1.8. I have a new probe ill try today and investigate the reset. Thanks for the active feedback. Ill let you know!
Okay...the reset is active low on the DA14706 (at least according to the data sheet)Okay, some new info...i can successfully connect via jtag and load an executable into ram however it asserts here: (this is the gpio handling example from the BLE_DA1470x SDK examples)Here is the log for my connection:`
SEGGER J-Link GDB Server V7.22b Command Line Version
JLinkARM.dll V7.22b (DLL compiled Jun 17 2021 17:22:49)
Command line: -if swd -device Cortex-M33 -endian little -speed 8000 -port 2331 -swoport 2332 -telnetport 2333 -vd -ir -localhostonly 1 -log jlink.log -singlerun -strict -rtos GDBServer/RTOSPlugin_FreeRTOS-----GDB Server start settings-----GDBInit file: noneGDB Server Listening port: 2331SWO raw output listening port: 2332Terminal I/O port: 2333Accept remote connection: localhost onlyGenerate logfile: onVerify download: onInit regs on start: onSilent mode: offSingle run mode: onTarget connection timeout: 0 ms------J-Link related settings------J-Link Host interface: USBJ-Link script: noneJ-Link settings file: none------Target related settings------Target device: Cortex-M33Target interface: SWDTarget interface speed: 8000kHzTarget endian: little
Connecting to J-Link...J-Link is connected.Firmware: J-Link Ultra V6 compiled Nov 14 2022 17:08:27Hardware: V6.00S/N: 506000686Feature(s): RDI, FlashBP, FlashDL, JFlash, GDBChecking target voltage...Target voltage: 3.01 VListening on TCP/IP port 2331Connecting to target...Connected to targetWaiting for GDB connection...Connected to 127.0.0.1Reading all registersRead 4 bytes @ address 0x00000000 (Data = 0x20183000)Read 2 bytes @ address 0x00000000 (Data = 0x3000)Received monitor command: speed 1000Target interface speed set to 1000 kHzReceived monitor command: clrbpReceived monitor command: reset 0Resets core & peripherals via SYSRESETREQ & VECTRESET bit.Received monitor command: haltHalting target CPU......Target halted (PC = 0x000029B8)Received monitor command: regsR0 = 00000000, R1 = 00000000, R2 = 00000000, R3 = 00000000R4 = 00000000, R5 = 00000000, R6 = 00000000, R7 = 00000000R8 = 04D5BC22, R9 = AF1BB042, R10= 20173000, R11= 00000000R12= 18EAD749, R13= 20183000, MSP= 20183000, PSP= 00000000R14(LR) = FFFFFFFF, R15(PC) = 000029B8XPSR F9000000, APSR F8000000, EPSR 01000000, IPSR 00000000CFBP 00000000, CONTROL 00, FAULTMASK 00, BASEPRI 00, PRIMASK 00
Security extension regs:MSP_S = 00000000, MSPLIM_S = 00000000PSP_S = 00000000, PSPLIM_S = 00000000MSP_NS = 00000000, MSPLIM_NS = 00000000PSP_NS = 00000000, PSPLIM_NS = 00000000CONTROL_S 00, FAULTMASK_S 00, BASEPRI_S 00, PRIMASK_S 00CONTROL_NS 00, FAULTMASK_NS 00, BASEPRI_NS 00, PRIMASK_NS 00
Reading all registersReceived monitor command: speed autoSelect auto target interface speed (2000 kHz)Received monitor command: flash breakpoints 1Flash breakpoints enabledReceived monitor command: semihosting enableSemi-hosting enabled (Handle on BKPT)Received monitor command: semihosting IOClient 3Semihosting I/O set to TELNET and GDB ClientReceived monitor command: memU32 0x0F001000 = 0xdeadbeefWriting 0xDEADBEEF @ address 0x0F001000Received monitor command: memU32 0x0F001004 = 0xdeadbeefWriting 0xDEADBEEF @ address 0x0F001004Received monitor command: memU32 0x0F001008 = 0xdeadbeefWriting 0xDEADBEEF @ address 0x0F001008Received monitor command: memU32 0x0F00100c = 0xdead10ccWriting 0xDEAD10CC @ address 0x0F00100CReceived monitor command: memU32 0x100c0050 = 1Writing 0x00000001 @ address 0x100C0050Received monitor command: reset 0Resets core & peripherals via SYSRESETREQ & VECTRESET bit.Received monitor command: sleep 1Sleep 1msReceived monitor command: reset 0Resets core & peripherals via SYSRESETREQ & VECTRESET bit.Received monitor command: memU32 0x50000024 = 0x000000C5Writing 0x000000C5 @ address 0x50000024Received monitor command: memU32 0x50000010 = 0x4Writing 0x00000004 @ address 0x50000010Loading RTOS plugin: GDBServer/RTOSPlugin_FreeRTOS...RTOS plugin (API v1.0) loaded successfullyRTOS plugin: LoadedReceived symbol: pxCurrentTCB (0x2005397C)Received symbol: pxReadyTasksLists (0x20053980)Received symbol: xDelayedTaskList1 (0x20053A40)Received symbol: xDelayedTaskList2 (0x20053A54)Received symbol: pxDelayedTaskList (0x20053A14)Received symbol: pxOverflowDelayedTaskList (0x20053A7C)Received symbol: xPendingReadyList (0x20053A2C)Received symbol: xTasksWaitingTermination (0x20053A68)Received symbol: xSuspendedTaskList (0x20053A18)Received symbol: uxCurrentNumberOfTasks (0x20053A80)Received symbol: uxTopUsedPriority (0x20050264)Received symbol: uxTopReadyPriority (0x20053978)Received symbol: vPortEnableVFP (0x00000000)Received symbol: FreeRTOSDebugConfig (0x200501CC)All mandatory symbols successfully loaded.Read 4 bytes @ address 0x000029B8 (Data = 0x2BE03301)All mandatory symbols successfully loaded.Downloading 1536 bytes @ address 0x20010000 - Verified OKDownloading 16080 bytes @ address 0x20010600 - Verified OKDownloading 16016 bytes @ address 0x200144D0 - Verified OKDownloading 16000 bytes @ address 0x20018360 - Verified OKDownloading 16032 bytes @ address 0x2001C1E0 - Verified OKDownloading 912 bytes @ address 0x20020080 - Verified OKDownloading 8 bytes @ address 0x20020410 - Verified OKDownloading 16 bytes @ address 0x20020418 - Verified OKDownloading 612 bytes @ address 0x20050000 - Verified OKDownloading 4 bytes @ address 0x20050264 - Verified OKWriting register (PC = 0x 200)Reading all registersRead register 0 (4 bytes) from DLL: 00000000Read register 1 (4 bytes) from DLL: 00000000Read register 2 (4 bytes) from DLL: 00000000Read register 3 (4 bytes) from DLL: 00000000Read register 4 (4 bytes) from DLL: 00000000Read register 5 (4 bytes) from DLL: 00000000Read register 6 (4 bytes) from DLL: 00000000Read register 7 (4 bytes) from DLL: 00000000Read register 8 (4 bytes) from DLL: 22BCD504Read register 9 (4 bytes) from DLL: 42B019AFRead register 10 (4 bytes) from DLL: 00301720Read register 11 (4 bytes) from DLL: 00000000Read register 12 (4 bytes) from DLL: 49D7EA18Read register 13 (4 bytes) from DLL: 00301820Read register 14 (4 bytes) from DLL: FFFFFFFFRead register 15 (4 bytes) from DLL: 00020000Read register 16 (4 bytes) from DLL: 000000F9Read 4 bytes @ address 0x00000200 (Data = 0x0004F04F)Read 2 bytes @ address 0x00000200 (Data = 0xF04F)Read 2 bytes @ address 0x00000202 (Data = 0x0004)Read 2 bytes @ address 0x0000ED08 (Data = 0xB500)Read 2 bytes @ address 0x0000ED08 (Data = 0xB500)Received monitor command: clrbpReceived monitor command: resetResetting targetReceived monitor command: haltHalting target CPU......Target halted (PC = 0x00000200)Received monitor command: exec SetRTTSearchRanges 0x20010000 0x100000Executed SetRTTSearchRanges 0x20010000 0x100000Read 2 bytes @ address 0x0000ED08 (Data = 0xB500)Received monitor command: regsR0 = 00000000, R1 = 00000000, R2 = 00000000, R3 = 00000000R4 = 00000000, R5 = 00000000, R6 = 00000000, R7 = 00000000R8 = 04D5BC22, R9 = AF19B042, R10= 20173000, R11= 00000000R12= 18EAD749, R13= 20054CC8, MSP= 20054CC8, PSP= 00000000R14(LR) = FFFFFFFF, R15(PC) = 00000200XPSR F9000000, APSR F8000000, EPSR 01000000, IPSR 00000000CFBP 00000000, CONTROL 00, FAULTMASK 00, BASEPRI 00, PRIMASK 00
Reading all registersRead register 0 (4 bytes) from DLL: 00000000Read register 1 (4 bytes) from DLL: 00000000Read register 2 (4 bytes) from DLL: 00000000Read register 3 (4 bytes) from DLL: 00000000Read register 4 (4 bytes) from DLL: 00000000Read register 5 (4 bytes) from DLL: 00000000Read register 6 (4 bytes) from DLL: 00000000Read register 7 (4 bytes) from DLL: 00000000Read register 8 (4 bytes) from DLL: 22BCD504Read register 9 (4 bytes) from DLL: 42B019AFRead register 10 (4 bytes) from DLL: 00301720Read register 11 (4 bytes) from DLL: 00000000Read register 12 (4 bytes) from DLL: 49D7EA18Read register 13 (4 bytes) from DLL: C84C0520Read register 14 (4 bytes) from DLL: FFFFFFFFRead register 15 (4 bytes) from DLL: 00020000Read register 16 (4 bytes) from DLL: 000000F9Setting breakpoint @ address 0x0000ED08, Size = 2, BPHandle = 0x0001Starting target CPU...Debugger requested to halt target......Target halted (PC = 0x00000E12)ERROR: FreeRTOS thread count is unreasonably big, not proceeding.Reading all registersRead register 0 (4 bytes) from DLL: A04C0520Read register 1 (4 bytes) from DLL: 30000000Read register 2 (4 bytes) from DLL: 00010450Read register 3 (4 bytes) from DLL: 08000000Read register 4 (4 bytes) from DLL: 00000000Read register 5 (4 bytes) from DLL: C5000000Read register 6 (4 bytes) from DLL: C5000000Read register 7 (4 bytes) from DLL: 00000000Read register 8 (4 bytes) from DLL: 22BCD504Read register 9 (4 bytes) from DLL: 42B019AFRead register 10 (4 bytes) from DLL: 00301720Read register 11 (4 bytes) from DLL: 00000000Read register 12 (4 bytes) from DLL: 49D7EA18Read register 13 (4 bytes) from DLL: A04C0520Read register 14 (4 bytes) from DLL: B7040000Read register 15 (4 bytes) from DLL: 120E0000Read register 16 (4 bytes) from DLL: 00000029Removing breakpoint @ address 0x0000ED08, Size = 2Read 4 bytes @ address 0x00000E12 (Data = 0x3BCCE7FE)Read 4 bytes @ address 0x000004B6 (Data = 0x4E4D4C4D)Reading 64 bytes @ address 0x20054C80Read 4 bytes @ address 0x50000024 (Data = 0x000000E5)Read 4 bytes @ address 0x00000000 (Data = 0x20054CC8)Reading 64 bytes @ address 0x20054CC0Read 4 bytes @ address 0x50000024 (Data = 0x000000E5)Read 4 bytes @ address 0x00000000 (Data = 0x20054CC8)Reading 8 bytes @ address 0x20054AC0Reading 8 bytes @ address 0x20054AC8Reading 8 bytes @ address 0x20054AD0Reading 8 bytes @ address 0x20054AD8Reading 8 bytes @ address 0x20054AE0Reading 8 bytes @ address 0x20054AE8Reading 8 bytes @ address 0x20054AF0Reading 8 bytes @ address 0x20054AF8Reading 8 bytes @ address 0x20054B00Reading 8 bytes @ address 0x20054B08Reading 8 bytes @ address 0x20054B10Reading 8 bytes @ address 0x20054B18Reading 8 bytes @ address 0x20054B20Reading 8 bytes @ address 0x20054B28Reading 8 bytes @ address 0x20054B30Reading 8 bytes @ address 0x20054B38Reading 8 bytes @ address 0x20054B40Reading 8 bytes @ address 0x20054B48Reading 8 bytes @ address 0x20054B50Reading 8 bytes @ address 0x20054B58Reading 8 bytes @ address 0x20054B60Reading 8 bytes @ address 0x20054B68Reading 8 bytes @ address 0x20054B70Reading 8 bytes @ address 0x20054B78Reading 8 bytes @ address 0x20054B80Read 1 bytes @ address 0x20054B88 (Data = 0xE4)Reading 8 bytes @ address 0x20054AC0Reading 8 bytes @ address 0x20054AC8Reading 8 bytes @ address 0x20054AD0Reading 8 bytes @ address 0x20054AD8Reading 8 bytes @ address 0x20054AE0Reading 8 bytes @ address 0x20054AE8Reading 8 bytes @ address 0x20054AF0Reading 8 bytes @ address 0x20054AF8Reading 8 bytes @ address 0x20054B00Reading 8 bytes @ address 0x20054B08Reading 8 bytes @ address 0x20054B10Reading 8 bytes @ address 0x20054B18Reading 8 bytes @ address 0x20054B20Reading 8 bytes @ address 0x20054B28Reading 8 bytes @ address 0x20054B30Reading 8 bytes @ address 0x20054B38Reading 8 bytes @ address 0x20054B40Reading 8 bytes @ address 0x20054B48Reading 8 bytes @ address 0x20054B50Reading 8 bytes @ address 0x20054B58Reading 8 bytes @ address 0x20054B60Reading 8 bytes @ address 0x20054B68Reading 8 bytes @ address 0x20054B70Reading 8 bytes @ address 0x20054B78Reading 8 bytes @ address 0x20054B80Read 1 bytes @ address 0x20054B88 (Data = 0xE4)`
More specifically:
#ifndef POPULATE_DEVICE_INFO return true;#else if (hw_sys_device_info_check(DEVICE_CHIP_ID_MASK, DEVICE_CHIP_ID_2798)) { if (hw_sys_device_info_check(DEVICE_REVISION_MASK, DEVICE_REV_A) && hw_sys_device_info_check(DEVICE_SWC_MASK, DEVICE_SWC_1)) { return true; } } else if (hw_sys_device_info_check(DEVICE_CHIP_ID_MASK, DEVICE_CHIP_ID_3107)) { if (hw_sys_device_info_check(DEVICE_REVISION_MASK, DEVICE_REV_A) && hw_sys_device_info_check(DEVICE_SWC_MASK, DEVICE_SWC_0)) { return true; } }
return false;#endifThis is evaluating to CHIP_ID2798, DEVICE_REV_A, but SWC_0 (vice 1)When i attempt to do a qspi flash it hangs after loading the executable bootloader (maybe for the same reason)
I have moved this to a more clearly stated problem topic:
community.renesas.com/.../da14706-reporting-an-incompatible-swc-level-of-0