Beginner question: first Board with XMC1100 not recognized by debugger

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
User16083
Level 1
Level 1
Hello all,

my Name is Michael. I am just in the progress of replacing some hard-to-come-by Atmel AVR´s with something more modern. ATM i am having a closer look at the XMC1100 famity, and bought the "XMC 100 Boot Kit" to try it out.
Using DAVE, all the simple "Hello world" projects with having some LEDs blink worked fine so far.
Now its time to see how easy it is to integrate that MCU into exiting designs. So, for the first step, i made a simple PCB with just the XMC1100T016F0064ABXUMA1 on it, a simple 5V regulator and the 8-pin 2.54mm debug header to connect the J-Link debugger to it.
I parted the boot kit board and the J-Link part, soldered the pin heads to both boards and made an 8-pin ribbon cable to connect them. After adding power to the boot kit board, i was able to program it - just fine.
So the Cable and my connectors are OK.
I have Pin 14 (XMC_CLK, P0.15) of the XMC go to Pin 1 (SWCLK) of the 8-pin header,
and Pin 15 (XMC_DATA, P0.14) to Pin 2 (SWD).
GND to Pins 4 and 5 of the debug header, +5V to Pins 3 and 6 of the debug header.
Pins 7 and 8 go to a jumper, so i can later see to where i will connect the UART. (no jumpers in place atm, so they are just floating)
Pin 5 of the XMC to GND, Pin 6 to +5V; 100nf bypass cap near the IC.
All other pins via 3.3K to a LED, so i could se later what happens there.
I can post the schematic, if that helps.

when i connect the debugger and try to download a program to the board, it keeps telling me:

SEGGER J-Link GDB Server V6.40 Command Line Version

JLinkARM.dll V6.40 (DLL compiled Oct 26 2018 15:06:02)

Command line: -if swd -device XMC1100-T016x0064 -endian little -speed 1000 -port 2331 -swoport 2332 -telnetport 2333 -vd -ir -localhostonly 1 -singlerun -strict -timeout 0
-----GDB Server start settings-----
GDBInit file: none
GDB Server Listening port: 2331
SWO raw output listening port: 2332
Terminal I/O port: 2333
Accept remote connection: localhost only
Generate logfile: off
Verify download: on
Init regs on start: on
Silent mode: off
Single run mode: on
Target connection timeout: 0 ms
------J-Link related settings------
J-Link Host interface: USB
J-Link script: none
J-Link settings file: none
------Target related settings------
Target device: XMC1100-T016x0064
Target interface: SWD
Target interface speed: 1000kHz
Target endian: little

Connecting to J-Link...
J-Link is connected.
Firmware: J-Link Lite-XMC4200 Rev.1 compiled Apr 5 2017 11:59:07
Hardware: V1.00
S/N: 591110263
Checking target voltage...
Target voltage: 3.30 V
Listening on TCP/IP port 2331
Connecting to target...ERROR: Could not connect to target.
Target connection failed. GDBServer will be closed...Restoring target state and closing J-Link connection...
Shutting down...



Of course the board has power, and the cable is connected correctly.
What am i doing wrong here ? Do i need to bootstrap some XMC pins to somewhere to activate the boot loader ?

Any help would be great - Thenk you !



P.S.: if i connect the boot kit board instead of my board, it conects fine, despite of having a diferent XMC chip on it

-Michael
0 Likes
6 Replies
User13081
Level 1
Level 1
Hi Michael, have a look at this:

TOP of the day: Changing XMC1000 Boot Mode Index (BMI)
0 Likes
User16083
Level 1
Level 1
Hello Charger,

thanks for the input. So this means tne XMC default configuration is broken, so that SWD does not work on new devices and has to be changed by means of the serial port ?
Strange - i thought the serial port would be a nice-to-have addon, and for production devices i could go for a 3-pin header (with only GND and the two SWD pins).

OK, then there is the next question: which pins of the 16-pin SSOP will i have connect to the serial pins 7 and 8 of the debug header to do that ?

Thanks,

-Michael
0 Likes
jferreira
Employee
Employee
10 sign-ins 5 sign-ins First like received
Hi,

There are the two sets of pins available for user to choose for programming/debugging of the XMC1000 device.
- P0.14(SWDIO/RXD/SPD)/P0.15(SWDCLK/TXD)
- P1.3(SWDIO/RXD/SPD)/P1.2(SWDCLK/TXD)

The device out the of fab has BMI configured to UART-BSL. In this mode both channels can be used for UART communication.
Only the first one is available in the TSSOP16. So actually you would not need to connect anything to pins 7 and 8.
Just connect SWDIO to PC_TXD and SWDCLK to PC_RXD.

There are several tools that will help you to change the BMI:
- Infineon Memtool
https://www.infineon.com/dgdl/Infineon-ApplicationNote_XMC1000_Microcontroller_BootModeHandling-AN-v...
https://www.infineon.com/dgdl/Infineon-Microcontroller+Reprogramming+Procedure+via+Infineon-Memtool-...
https://www.infineon.com/dgdl/Infineon-TOOL_Tutorial_Memtool_XMC1-TR-v01_00-EN.pdf?fileId=5546d46252...
- XMC Flasher
- DAVE4
- Segger JLink Commander (commands getBMI/setBMI)

Regards,
Jesus
0 Likes
User16083
Level 1
Level 1
Jesus,

thank you for your help !
You wrote:
>Just connect SWDIO to PC_TXD and SWDCLK to PC_RXD.

But i have to connect only that to the pins 1 and 2 of the debug connector, right ?
Then i need to cut the traces going to P0.15 and P0.14, right ?

If yes, let me know and i will try that.

-Michael
0 Likes
jferreira
Employee
Employee
10 sign-ins 5 sign-ins First like received
Hi,

I would connect debug connector pins 1 (SWDCLK), 6(PC_RXD) to device pin P0.15, and debug connector pins 2(SWDIO), 7(PC_TXD) to device pin P0.14.
That way you can change initially the BMI to SWD using the UART BSL.
Bear in mind that once the BMI is changed to SWD the UART channel will not be able to use these pins in the application.

You could save one pin by using only P0.14 setting the BMI to SPD instead of SWD. In that case the initial BMI change via UART BSL is done using half duplex.

Regards,
Jesus
0 Likes
User16083
Level 1
Level 1
Thank you very much !
I will try that at monday 🙂

BR
-Michael
0 Likes