XMC™ Forum Discussions
text.format{('custom.tabs.no.results')}
Sort by:
XMC™
DAVE™ - Getting StartedEnjoy a new user experience and faster XMC microcontroller software development with Infineon’s free of charge Digital Applicat...
Show More
DAVE™ - Getting Started
Enjoy a new user experience and faster XMC microcontroller software development with Infineon’s free of charge Digital Application Virtual Engineer Version 4.
Therefore we invite you to watch the on demand version of our webcast on the new DAVE™ – Getting Started.
Click on image to view video, or go to: http://bit.ly/DAVE_GettingStarted Show Less
Enjoy a new user experience and faster XMC microcontroller software development with Infineon’s free of charge Digital Application Virtual Engineer Version 4.
Therefore we invite you to watch the on demand version of our webcast on the new DAVE™ – Getting Started.
Click on image to view video, or go to: http://bit.ly/DAVE_GettingStarted Show Less
XMC™
Hello,I have an application, where I need to store once in a while configuration data to flash memory. As I need to erase the flash memory, before wri...
Show More
Hello,
I have an application, where I need to store once in a while configuration data to flash memory. As I need to erase the flash memory, before writing new content to it, I have to decide whether I want to erase a physical or a logic sector. I'm using a xmc4200 and according to the data sheet I could have a maximum of ~100 configuration data changes when erasing logical sectors and a maximum of ~1000 configuration data changes when erasing physical sectors. Right?
The reference manual states that a physical sectors size ranges from 64k bytes to 256k bytes.
Now, if I would go the "physical sector" route, I would have to spend 64k byte to 256k byte for a configuration block. The xmc4200 has 256k byte of flash, so this would not be feasible if a physical sector would have a size of 256k byte. Where can I find the exact size of a physical sector for a xmc4200-Q48x256?
In the peripheral library's xmc4_flash.h header, there are a couple of macros XMC_FLASH_PHY_SECTOR_x, with x being one of 0, 4, 8, 9, 10, 11 and from the addresses of the sectors I can't derive a reasonable sector size (sector 4 and 8 having the same base address for example). BTW: the Doxygen documentation states that all macros define the start of physical sector0 😉
Best regards,
Torsten Show Less
I have an application, where I need to store once in a while configuration data to flash memory. As I need to erase the flash memory, before writing new content to it, I have to decide whether I want to erase a physical or a logic sector. I'm using a xmc4200 and according to the data sheet I could have a maximum of ~100 configuration data changes when erasing logical sectors and a maximum of ~1000 configuration data changes when erasing physical sectors. Right?
The reference manual states that a physical sectors size ranges from 64k bytes to 256k bytes.
Now, if I would go the "physical sector" route, I would have to spend 64k byte to 256k byte for a configuration block. The xmc4200 has 256k byte of flash, so this would not be feasible if a physical sector would have a size of 256k byte. Where can I find the exact size of a physical sector for a xmc4200-Q48x256?
In the peripheral library's xmc4_flash.h header, there are a couple of macros XMC_FLASH_PHY_SECTOR_x, with x being one of 0, 4, 8, 9, 10, 11 and from the addresses of the sectors I can't derive a reasonable sector size (sector 4 and 8 having the same base address for example). BTW: the Doxygen documentation states that all macros define the start of physical sector0 😉
Best regards,
Torsten Show Less
XMC™
Hello,
I am looking for an I2C example for the Relax kit using XMClib.
Thanks,
Fernando
I am looking for an I2C example for the Relax kit using XMClib.
Thanks,
Fernando
XMC™
Hi,I am using xmc4500 and I put some code into external dsram (I'm using the hexagon evaluation board with external ram ).I started from the infineon ...
Show More
Hi,
I am using xmc4500 and I put some code into external dsram (I'm using the hexagon evaluation board with external ram ).
I started from the infineon example as starting point for ram configuration then changed the linker to put code into that memory.
Everything is working but 13 times slower than when the same code runs into microcontroller flash.
Am I doing something wrong or is EBU so slow in accessing external devices?
Thanks
Frank Show Less
I am using xmc4500 and I put some code into external dsram (I'm using the hexagon evaluation board with external ram ).
I started from the infineon example as starting point for ram configuration then changed the linker to put code into that memory.
Everything is working but 13 times slower than when the same code runs into microcontroller flash.
Am I doing something wrong or is EBU so slow in accessing external devices?
Thanks
Frank Show Less
XMC™
Dear Infineon We have an STM32 Application and use USB Host (HSDPA Modem via CDC Device) and TCP/IP with 2 Interfaces (Ethernet/PPP). As Middleware we...
Show More
Dear Infineon
We have an STM32 Application and use USB Host (HSDPA Modem via CDC Device) and TCP/IP with 2 Interfaces (Ethernet/PPP). As Middleware we use Keil ARM.
We check if we can change to XMC500 because of the 3 CAN Interfaces and the Multi CAN Module.
The Keil Middleware supports CMSIS_Driver compliant Interface to the Hardware.
Are there any Infineon CMSIS Drivers for the On Chip USB and Ethernet MAC Modules ?
Does Infineon Plan to do such CMSIS:Drivers for the On Chip Peripherals (Ethernet MAC, USB, USIC Channels) ?
And to other Forum Members
How did you get the Keil Middleware to run on XMC4500 Devices ?
Thanks for your answers
Ingo Show Less
We have an STM32 Application and use USB Host (HSDPA Modem via CDC Device) and TCP/IP with 2 Interfaces (Ethernet/PPP). As Middleware we use Keil ARM.
We check if we can change to XMC500 because of the 3 CAN Interfaces and the Multi CAN Module.
The Keil Middleware supports CMSIS_Driver compliant Interface to the Hardware.
Are there any Infineon CMSIS Drivers for the On Chip USB and Ethernet MAC Modules ?
Does Infineon Plan to do such CMSIS:Drivers for the On Chip Peripherals (Ethernet MAC, USB, USIC Channels) ?
And to other Forum Members
How did you get the Keil Middleware to run on XMC4500 Devices ?
Thanks for your answers
Ingo Show Less
XMC™
Hi all,i tried the UART App on the XMC2Go board. I was able to assign the Tx Pin (as described in the XMC2Go board documentation), but it is not possi...
Show More
Hi all,
i tried the UART App on the XMC2Go board. I was able to assign the Tx Pin (as described in the XMC2Go board documentation), but it is not possible to assign the Rx pin as required for the XMC2Go.
Currently i am able to send data (and i receive the data on my HTerm), but receiption is not possible.
In Dave 3 everything works fine.
Best Regards
Thomas Show Less
i tried the UART App on the XMC2Go board. I was able to assign the Tx Pin (as described in the XMC2Go board documentation), but it is not possible to assign the Rx pin as required for the XMC2Go.
Currently i am able to send data (and i receive the data on my HTerm), but receiption is not possible.
In Dave 3 everything works fine.
Best Regards
Thomas Show Less
XMC™
Hi,I am a new user with Infineon XMC mcu, I have .hex and want to use J-Link for uploading hex file to my target board with my own xmc1302.I connected...
Show More
Hi,
I am a new user with Infineon XMC mcu,
I have .hex and want to use J-Link for uploading hex file to my target board with my own xmc1302.
I connected Vref, SWDIO, SWCLK and GND from J-Link to VCC(+5V), SWD(P0.14), SWCLK(P0.15) and GND in my target board.
but It can NOT connect success in debuging of DAVE4.
I even try using XMC1300 boot kit with same connecting pin, it also failed.
so I want to ask is that connecting of pin correct ?
please give me a hint, Thank you so much! Show Less
I am a new user with Infineon XMC mcu,
I have .hex and want to use J-Link for uploading hex file to my target board with my own xmc1302.
I connected Vref, SWDIO, SWCLK and GND from J-Link to VCC(+5V), SWD(P0.14), SWCLK(P0.15) and GND in my target board.
JLink VS Target
Vref <-> +5V
SWDIO <-> SWD(P0.14)
SWCLK <-> SWCLK(P0.15)
GND <-> GND
but It can NOT connect success in debuging of DAVE4.
J-Link is connected.
Firmware: J-Link V9 compiled Apr 21 2015 18:10:40
Hardware: V9.30
S/N: xxxxxxxxx
OEM: SEGGER-EDU
Feature(s): FlashBP, GDB
Checking target voltage...
Target voltage: 5.14 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...
I even try using XMC1300 boot kit with same connecting pin, it also failed.
so I want to ask is that connecting of pin correct ?
please give me a hint, Thank you so much! Show Less
XMC™
Hi there, today I modified the Dave model of my Project. Since then, I get always the following error when generating code:Description: Failed to gene...
Show More
Hi there,
today I modified the Dave model of my Project. Since then, I get always the following error when generating code:
Description: Failed to generate file MUX_C.c java.lang.NullPointerException
Resource: MUX_C.jet
Path: /PipettorXMC4500/Dave/Model/DAVESUPPORT/1.0.42/Templates
Location: line 100
Type: JET Script
I cleared the Dave code generator cache, cleaned the project, closed Dave, reverted (SVN) the whole project (including the Dave model) and restarted the computer (in that order), but the problem is still there. I'm pretty sure, that the reverted project version worked just fine last week. I don't even have an idea where to start searching for the problem. I would appreciate any help. I work with Dave 3.1.10 and Library Version 1.0.62. I work every day with Dave on the XMC4500 and experienced this problem for the first time today.
Cheers, Felix Show Less
today I modified the Dave model of my Project. Since then, I get always the following error when generating code:
Description: Failed to generate file MUX_C.c java.lang.NullPointerException
Resource: MUX_C.jet
Path: /PipettorXMC4500/Dave/Model/DAVESUPPORT/1.0.42/Templates
Location: line 100
Type: JET Script
I cleared the Dave code generator cache, cleaned the project, closed Dave, reverted (SVN) the whole project (including the Dave model) and restarted the computer (in that order), but the problem is still there. I'm pretty sure, that the reverted project version worked just fine last week. I don't even have an idea where to start searching for the problem. I would appreciate any help. I work with Dave 3.1.10 and Library Version 1.0.62. I work every day with Dave on the XMC4500 and experienced this problem for the first time today.
Cheers, Felix Show Less
XMC™
Hello,I have been encountering a condition where the the I2C master and the I2C slave (XMC1100) get out of sync and the master is awaiting more data w...
Show More
Hello,
I have been encountering a condition where the the I2C master and the I2C slave (XMC1100) get out of sync and the master is awaiting more data while the slave thinks it is done.
In trying to fix this, I am trying to understand 2 things but the reference manual is incomplete:
1) HDEL - how to calculate it. It refers to Fppp and Fperiph but Fppp is defined as Fin and Fin is not defined. Fperiph is defined as the module clock. Is that the same as the master clock?
2) How to enable the stop condition interrupt so that I can use it to check that the master has received all data? I have been unable to extract the necessary information by building a DAVE app.
Where are the IRQ numbers for the protocol specific interrupts defined?
I have tried the following:
Yet, from the DAVE generated code, the IRQ would appear to be 26 but this does not work if used directly:
I would appreciate a code block that shows how to enable the stop condition interrupt. DAVE is not helping get the understanding of these interrupts nor can I use it directly as my code is too large if I use the generated code. Show Less
I have been encountering a condition where the the I2C master and the I2C slave (XMC1100) get out of sync and the master is awaiting more data while the slave thinks it is done.
In trying to fix this, I am trying to understand 2 things but the reference manual is incomplete:
1) HDEL - how to calculate it. It refers to Fppp and Fperiph but Fppp is defined as Fin and Fin is not defined. Fperiph is defined as the module clock. Is that the same as the master clock?
2) How to enable the stop condition interrupt so that I can use it to check that the master has received all data? I have been unable to extract the necessary information by building a DAVE app.
Where are the IRQ numbers for the protocol specific interrupts defined?
I have tried the following:
I2CRegs->PCR_IICMode |= ((((uint32_t)slaveAddress << 1+8) << USIC_CH_PCR_IICMode_SLAD_Pos) & USIC_CH_PCR_IICMode_SLAD_Msk)
| (((uint32_t)SHIFT_ONE << USIC_CH_PCR_IICMode_STIM_Pos) & USIC_CH_PCR_IICMode_STIM_Msk)
| (((uint32_t)SHIFT_ONE << USIC_CH_PCR_IICMode_PCRIEN_Pos) & USIC_CH_PCR_IICMode_PCRIEN_Msk)
| (((uint32_t)SHIFT_ONE << USIC_CH_PCR_IICMode_SRRIEN_Pos) & USIC_CH_PCR_IICMode_SRRIEN_Msk)
| (((uint32_t)SHIFT_ONE << USIC_CH_PCR_IICMode_ERRIEN_Pos) & USIC_CH_PCR_IICMode_ERRIEN_Msk);
NVIC_SetPriority( (IRQn_Type)USIC0_0_IRQn, 3); //IRQ_Hdlr_9 - This works and enables the I2C error exceptin
NVIC_EnableIRQ( USIC0_0_IRQn );
NVIC_SetPriority( (IRQn_Type)USIC0_1_IRQn, 3); //IRQ_Hdlr_10 - This works and enables a read request exception
NVIC_EnableIRQ( USIC0_1_IRQn );
NVIC_SetPriority( (IRQn_Type)USIC0_2_IRQn, 3); //IRQ_Hdlr_11 - This does not work
NVIC_EnableIRQ( USIC0_2_IRQn );
NVIC_SetPriority( (IRQn_Type)26, 3); //IRQ_Hdlr_11 - This does not work
NVIC_EnableIRQ( 26 );
Yet, from the DAVE generated code, the IRQ would appear to be 26 but this does not work if used directly:
const NVIC002_HandleType NVIC002_Handle2 = {
/* Mapped NVIC Node */
.NodeID = 26 ,
/* Node Interrupt Priority */
.Priority = 3,
/* Node Interrupt SubPriority */
.SubPriority = 0,
/* Interrupt enable for Node26 */
.InterruptEnable = 0
};
I would appreciate a code block that shows how to enable the stop condition interrupt. DAVE is not helping get the understanding of these interrupts nor can I use it directly as my code is too large if I use the generated code. Show Less
XMC™
Hi, all. I have created a 1ms SysTick timer and need a way to verify that it indeed works. So I have been taking a look at the reference manual for th...
Show More
Hi, all. I have created a 1ms SysTick timer and need a way to verify that it indeed works. So I have been taking a look at the reference manual for the XMC4500 and found some interesting stuff regarding configuring a GPIO to be an output. In this case, I want the GPIO to be my 1ms systick timer.
Here is my configuration: http://imgur.com/0ue0MRt . As you can see I have attached the Pin Extension Card to the main board so that I can have a GPIO to attach an oscilloscope probe to.
I found this: http://imgur.com/p4mDG0o in the reference manual which shows where each pin of the Pin Extension Card is connected to on the MCU. I have decided to go with Pin 41 'COM_GPIO0' as my output for the 1ms systick timer.
Now, I am having trouble figuring out how to code that pin as my output. I only found these steps: http://imgur.com/qiMa6w2 , but it is hard to follow without an example. Hopefully someone can chime in on how I can set GPIO High, set GPIO Low, enable GPIO peripheral clock, enable GPIO pin which you can see there is just pseudo-code for now. Or is there a simpler way to verify my SysTick timer is working properly?
My code in Keil uVision:
Here is my configuration: http://imgur.com/0ue0MRt . As you can see I have attached the Pin Extension Card to the main board so that I can have a GPIO to attach an oscilloscope probe to.
I found this: http://imgur.com/p4mDG0o in the reference manual which shows where each pin of the Pin Extension Card is connected to on the MCU. I have decided to go with Pin 41 'COM_GPIO0' as my output for the 1ms systick timer.
Now, I am having trouble figuring out how to code that pin as my output. I only found these steps: http://imgur.com/qiMa6w2 , but it is hard to follow without an example. Hopefully someone can chime in on how I can set GPIO High, set GPIO Low, enable GPIO peripheral clock, enable GPIO pin which you can see there is just pseudo-code for now. Or is there a simpler way to verify my SysTick timer is working properly?
My code in Keil uVision:
#includeShow Less
#include//SFR declarations of the selected device
volatile uint32_t msTicks = 0; /* Variable to store millisecond ticks */
void SysTick_Handler(void) // Entering every 1 ms (1 KHz)
{ /* SysTick interrupt Handler.
msTicks++; See startup file startup_XMC4500.s for SysTick vector */
// Pseudo-code
// if (msTicks & 1) // 2ms period, 500 Hz on scope
// SetGPIOHigh(); // 7 & 1 is 1; 8 & 1 is 0 -- bitwise operation, so basically we are just looking at the least
// else // significant count to determine whether it's odd or even. If odd, signal to pin goes HIGH,
// SetGPIOLow(); // if even, signal to pin goes LOW. This completes our 2ms/500Hz cycle.
}
int main (void)
{
uint32_t returnCode;
// Pseudo-code
// EnableGPIOPeripheralClock();
// EnableGPIOPin();
returnCode = SysTick_Config(SystemCoreClock / 1000); /* Configure SysTick to generate an interrupt every millisecond */
if (returnCode != 0) { /* Check return code for errors */
// Error Handling
}
while(1);
}