XMC™ Forum Discussions
XMC™
Hello to administrator of infineon: recently,i use XMC4500 on a board designed by ourselves. I can download my program based on your R...
Show More
Hello to administrator of infineon:
recently,i use XMC4500 on a board designed by ourselves.
I can download my program based on your RTOS system code and it runs correctly .
however when i power up without connecting the ethernet cable ,the program seems choked in somewhere,
because the system cannot light up even a LED light on the board or cannot ping through by computer.
Well, i have been testing for a week by simple split the FTP SERVER APP into two parts FAFT_INIT & ETH_LWIP _INIT,
and it doesn't work, personally i think there should be deep problem with ETH_LWIP,
since it is the key to initialize the system configuration correctly.
Crucially, after a hardware reset signal to the MCU, everything is back to normal !!!
Frustrate by this problem, my project hit a bottleneck.
Sincerely, i hope someone could give some advice or discussion for me.
My project code partly and my DAVE configuration paste below.
Best regards,
DBking Show Less
recently,i use XMC4500 on a board designed by ourselves.
I can download my program based on your RTOS system code and it runs correctly .
however when i power up without connecting the ethernet cable ,the program seems choked in somewhere,
because the system cannot light up even a LED light on the board or cannot ping through by computer.
Well, i have been testing for a week by simple split the FTP SERVER APP into two parts FAFT_INIT & ETH_LWIP _INIT,
and it doesn't work, personally i think there should be deep problem with ETH_LWIP,
since it is the key to initialize the system configuration correctly.
Crucially, after a hardware reset signal to the MCU, everything is back to normal !!!
Frustrate by this problem, my project hit a bottleneck.
Sincerely, i hope someone could give some advice or discussion for me.
My project code partly and my DAVE configuration paste below.
Best regards,
DBking Show Less
XMC™
It looks like there is a bug in the HW_Init code in "Dave/Generated/ECAT_SSC/xmc_eschw.c"The gpio_config and port_control structures are not being ful...
Show More
It looks like there is a bug in the HW_Init code in "Dave/Generated/ECAT_SSC/xmc_eschw.c"
The gpio_config and port_control structures are not being fully initialized. This results in the gpio_config.output_level variable being assigned a random stack value.
When gpio_config.output_level is used to initialize the ECAT gpios in XMC_GPIO_Init() it assigns garbage stack values into the OMR register.
port->OMR = (uint32_t)config->output_level << pin;
UINT16 HW_Init(void)
{
uint8_t i;
XMC_ECAT_PORT_CTRL_t port_control;
XMC_GPIO_CONFIG_t gpio_config;
memset(&port_control, 0, sizeof(port_control)); // <-- add this line
memset(&gpio_config, 0, sizeof(gpio_config)); // <-- add this line
============================
DAVE Version: 4.4.2
ECAT_SSC APP Version: 4.0.22 Show Less
The gpio_config and port_control structures are not being fully initialized. This results in the gpio_config.output_level variable being assigned a random stack value.
When gpio_config.output_level is used to initialize the ECAT gpios in XMC_GPIO_Init() it assigns garbage stack values into the OMR register.
port->OMR = (uint32_t)config->output_level << pin;
UINT16 HW_Init(void)
{
uint8_t i;
XMC_ECAT_PORT_CTRL_t port_control;
XMC_GPIO_CONFIG_t gpio_config;
memset(&port_control, 0, sizeof(port_control)); // <-- add this line
memset(&gpio_config, 0, sizeof(gpio_config)); // <-- add this line
============================
DAVE Version: 4.4.2
ECAT_SSC APP Version: 4.0.22 Show Less
XMC™
XMC™
Hardware Setup:Infineon Iridium SLB 9670 TPM 2.0 interface with NXP MPC5748G via SPISoftware Setup: S32 IDE with FreeRTOS we have connected NXP MPC574...
Show More
Hardware Setup:
Infineon Iridium SLB 9670 TPM 2.0 interface with NXP MPC5748G via SPI
Software Setup:
S32 IDE with FreeRTOS
we have connected NXP MPC5748G as a master and Iridium SLB 9670 TPM 2.0 as a slave.
Connection are as below mentioned:
NXP MPC5748G Iridium SLB 9670 PIN
MOSI 19
MISO 21
CLK 23
Chip selc 26
Vcc (3.3 V) 1
GND 6
SPI specification:
1. Baudrate 5000000
2. Mode 0
But we are facing following problems.
1. We are not getting response as TPM_ACCESS_VALID(0x80) from SLB9670 in Startup-wait implementation
2. Not getting vendor id for command TPM_DID_VID( 83 D4 0F 00 00 00 00 00 )
Could you please share your comment on the above issues.
Thanks in advance. Show Less
Infineon Iridium SLB 9670 TPM 2.0 interface with NXP MPC5748G via SPI
Software Setup:
S32 IDE with FreeRTOS
we have connected NXP MPC5748G as a master and Iridium SLB 9670 TPM 2.0 as a slave.
Connection are as below mentioned:
NXP MPC5748G Iridium SLB 9670 PIN
MOSI 19
MISO 21
CLK 23
Chip selc 26
Vcc (3.3 V) 1
GND 6
SPI specification:
1. Baudrate 5000000
2. Mode 0
But we are facing following problems.
1. We are not getting response as TPM_ACCESS_VALID(0x80) from SLB9670 in Startup-wait implementation
2. Not getting vendor id for command TPM_DID_VID( 83 D4 0F 00 00 00 00 00 )
Could you please share your comment on the above issues.
Thanks in advance. Show Less
XMC™
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 cl...
Show More
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 Show Less
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 Show Less
XMC™
Hello ~ I am using DAVE 4 app :PWM_SVM now , I need to get the pwm output level [0,1] in my software , could you help me about this ? thx a lot .
Show More
Hello ~
I am using DAVE 4 app :PWM_SVM now , I need to get the pwm output level [0,1] in my software , could you help me about this ?
thx a lot . Show Less
I am using DAVE 4 app :PWM_SVM now , I need to get the pwm output level [0,1] in my software , could you help me about this ?
thx a lot . Show Less
XMC™
I'm using XMC4800, and the code is as follow:#define E_EEPROM_XMC4_FLASH_BANK0_BASE (0x0c01c000U)uint32_t temp_count[] = {0};void XMC_FLASH_Progra...
Show More
I'm using XMC4800, and the code is as follow:
What I want is the value of E_EEPROM_XMC4_FLASH_BANK0_BASE increases by 1 when I shut down the power supply.
I wonder whether I'm doing it in the right way, cause it doesn't work. Show Less
#define E_EEPROM_XMC4_FLASH_BANK0_BASE (0x0c01c000U)
uint32_t temp_count[] = {0};
void XMC_FLASH_Program(uint32_t *address, const uint32_t *data, uint8_t length)
{
uint32_t idx;
for (idx = 0U; idx < length; idx += 2U)
{
XMC_FLASH_lLoadPageCommand(data[idx], data[idx + 1U]);
}
XMC_FLASH_lWritePageCommand(address);
while ((FLASH0->FSR & (uint32_t)FLASH_FSR_PBUSY_Msk) != 0U){}
}
void NMI_Handler(void)
{
XMC_SCU_TRAP_Disable(XMC_SCU_TRAP_BROWNOUT);
temp_count[0]++;
XMC_FLASH_Program(E_EEPROM_XMC4_FLASH_BANK0_BASE, temp_count, 1);
__BKPT();
}
int main(void)
{
DAVE_STATUS_t status;
status = DAVE_Init(); /* Initialization of DAVE APPs */
if(status != DAVE_STATUS_SUCCESS)
{
/* Placeholder for error handler code. The while loop below can be replaced with an user error handler. */
XMC_DEBUG("DAVE APPs initialization failed\n");
while(1U)
{
}
}
temp_count[0] = *( __IO uint32_t*)E_EEPROM_XMC4_FLASH_BANK0_BASE;
XMC_FLASH_EraseSector(E_EEPROM_XMC4_FLASH_BANK0_BASE);
XMC_SCU_TRAP_Enable(XMC_SCU_TRAP_BROWNOUT);
XMC_SCU_POWER_EnableMonitor(145, 1);
while(1U)
{
}
}
What I want is the value of E_EEPROM_XMC4_FLASH_BANK0_BASE increases by 1 when I shut down the power supply.
I wonder whether I'm doing it in the right way, cause it doesn't work. Show Less
XMC™
I’m looking for a Ram Firmware (XMC1x_ASCLoader) To transfer to the xmc1100 (Using ASC Bootstrap Loader) that speaks infineon’s Block Protocol (Like H...
Show More
I’m looking for a Ram Firmware (XMC1x_ASCLoader) To transfer to the xmc1100 (Using ASC Bootstrap Loader) that speaks infineon’s Block Protocol (Like Here:
https://www.infineon.com/dgdl/Infineon-TOO_XMC1000_Boot_Modes-AN-v01_03-EN.pdf?fileId=db3a30433ea3aef6013eb2429b8c1bdb (Check Page 16,Second Half))
Memtool Uses A Different Ram Firmware that speaks another [undocumented] protocol, having documentation(Or Code) for that protocol would also suit my needs.
Sample Of Other Protocol:
09:26:57.887 (UTC -05:00) [Tx]> 84 //Seems To Start The Transfer
09:26:57.892 (UTC -05:00) [Rx]< AA //Ack?
09:26:57.903 (UTC -05:00) [Tx]> 00 20 00 20 00 04 //Second and Third Byte Seem To Indicate Offset in Memory
//Firmware Transfer Seems To Start Here
09:26:57.904 (UTC -05:00) [Tx]> 00 40 00 20 09
09:26:57.919 (UTC -05:00) [Tx]> 2C 00 10 89 2C 00 10 89 2C 00 10 00 00 00 80
09:26:57.936 (UTC -05:00) [Tx]> 00 00 00 80 FE E7 FE E7 FE E7 FE E7 FE E7 FE
… Just Dumps a chunk of the Hex File Here
09:26:58.979 (UTC -05:00) [Rx]< A7 62 EA //End of Transfer, 2 bytes that Don’t Mean length or any checksum/CRC I Could Find + 0xEA
09:26:58.982 (UTC -05:00) [Tx]> 9F
09:26:58.995 (UTC -05:00) [Rx]< AA Show Less
https://www.infineon.com/dgdl/Infineon-TOO_XMC1000_Boot_Modes-AN-v01_03-EN.pdf?fileId=db3a30433ea3aef6013eb2429b8c1bdb (Check Page 16,Second Half))
Memtool Uses A Different Ram Firmware that speaks another [undocumented] protocol, having documentation(Or Code) for that protocol would also suit my needs.
Sample Of Other Protocol:
09:26:57.887 (UTC -05:00) [Tx]> 84 //Seems To Start The Transfer
09:26:57.892 (UTC -05:00) [Rx]< AA //Ack?
09:26:57.903 (UTC -05:00) [Tx]> 00 20 00 20 00 04 //Second and Third Byte Seem To Indicate Offset in Memory
//Firmware Transfer Seems To Start Here
09:26:57.904 (UTC -05:00) [Tx]> 00 40 00 20 09
09:26:57.919 (UTC -05:00) [Tx]> 2C 00 10 89 2C 00 10 89 2C 00 10 00 00 00 80
09:26:57.936 (UTC -05:00) [Tx]> 00 00 00 80 FE E7 FE E7 FE E7 FE E7 FE E7 FE
… Just Dumps a chunk of the Hex File Here
09:26:58.979 (UTC -05:00) [Rx]< A7 62 EA //End of Transfer, 2 bytes that Don’t Mean length or any checksum/CRC I Could Find + 0xEA
09:26:58.982 (UTC -05:00) [Tx]> 9F
09:26:58.995 (UTC -05:00) [Rx]< AA Show Less
XMC™
I use .edge_detection = XMC_ERU_ETL_EDGE_DETECTION_BOTH.for exertnal IRQThis trigger my IRQ functionvoid ERU0_0_IRQHandler(void) {if "falling edge" {}...
Show More
I use
.edge_detection = XMC_ERU_ETL_EDGE_DETECTION_BOTH.
for exertnal IRQ
This trigger my IRQ function
void ERU0_0_IRQHandler(void) {
if "falling edge" {
}
else {
}
}
Now i have to find out the direction in the IRQ Function, is this possible ?
Thanks,
Embedded
Show Less
.edge_detection = XMC_ERU_ETL_EDGE_DETECTION_BOTH.
for exertnal IRQ
This trigger my IRQ function
void ERU0_0_IRQHandler(void) {
if "falling edge" {
}
else {
}
}
Now i have to find out the direction
Thanks,
Embedded
XMC™
Been stuggling with the for 2 days not. Trying to use the GNU GCC compiler with the XMCLibs sdk. I am using the GCC startup_XMC1300.S along with the X...
Show More
Been stuggling with the for 2 days not. Trying to use the GNU GCC compiler with the XMCLibs sdk. I am using the GCC startup_XMC1300.S along with the XMC1300x0032.ld
using the following gcc command
with that I keep receiving
I can use -nostartfiles to get rid of it but then I get
Please help! I have been googling for hours! Show Less
using the following gcc command
arm-none-eabi-gcc -g -Wall -O0 --specs=nano.specs -mthumb -fmessage-length=0 -fsigned-char -ffunction-sections -fdata-sections -mcpu=cortex-m0 -o prog.out -T XMC1300x0032.ld -DUC_FAMILY=XMC1 -DXMC1302_T016x0032 -DPROD [-I INCLUDE FILES] [SOURCE FILES] startup_XMC1300.S
with that I keep receiving
(.text+0x68): undefined reference to `__bss_start__'
(.text+0x6c): undefined reference to `__bss_end__'
I can use -nostartfiles to get rid of it but then I get
init.c:(.text.__libc_init_array+0x12): undefined reference to `_init'
Please help! I have been googling for hours! Show Less
Trending discussions