XMC™ Forum Discussions
XMC™
Hi,What is the difference between external stop and external gating? External stop clears the timer run bit but external gating seems working in the s...
Show More
Hi,
What is the difference between external stop and external gating? External stop clears the timer run bit but external gating seems working in the same way.
(xmc1100 ccu4) Show Less
What is the difference between external stop and external gating? External stop clears the timer run bit but external gating seems working in the same way.
(xmc1100 ccu4) Show Less
XMC™
Hello,I have a problem with the Flash Emulated EEPROM Programming. When I try to read the Flash content (Read Function FEE001_Read is automatically ge...
Show More
Hello,
I have a problem with the Flash Emulated EEPROM Programming. When I try to read the Flash content (Read Function FEE001_Read is automatically generated by DAVE) I get the error state: FEE001_JOB_INCONSISTENT. Inside the Read Function, the low level function
is called. And this function returns the error code mentioned above. I don't really know what the problem is and the comments from the DAVE developers in this routine are not really informative. Google also does not say many about this return value. Can you help me? Has anybody had this problem before?
Best regards and thanks for helping!
Sebastian Show Less
I have a problem with the Flash Emulated EEPROM Programming. When I try to read the Flash content (Read Function FEE001_Read is automatically generated by DAVE) I get the error state: FEE001_JOB_INCONSISTENT. Inside the Read Function, the low level function
Fee_lLocalRead((uint32_t)FEE001_NORM_READ);
is called. And this function returns the error code mentioned above. I don't really know what the problem is and the comments from the DAVE developers in this routine are not really informative. Google also does not say many about this return value. Can you help me? Has anybody had this problem before?
Best regards and thanks for helping!
Sebastian Show Less
XMC™
Hi Everyone,
Anybody has LIN example code for XMC4500?
Thanks,
Irfan
Anybody has LIN example code for XMC4500?
Thanks,
Irfan
XMC™
Hello,we have a critical application regarding startup-time, and noticed that since we updated the Keil Pack "Infineon::XMC4000_DFP" from V2.1.1 to V2...
Show More
Hello,
we have a critical application regarding startup-time, and noticed that since we updated the Keil Pack "Infineon::XMC4000_DFP" from V2.1.1 to V2.2.0 the startup times (set-up PLL...) have risen *significantly*.
We could mostly trace it down to a change in the delay() function in system_XMC4500.c (resp. system_XMC4100.c).
Have a look at file @version V3.0.4 delivered with pack V2.1.1.
Here delay() is using 4 calls of __NOP() in a row to generate some delay.
#define DELAY_CNT_50US_120MHZ (1500UL)
...
static void delay(uint32_t cycles)
{
volatile uint32_t i;
for(i = 0UL; i < cycles ;++i)
{
__NOP();__NOP();__NOP();__NOP();
}
}
Now have a look at file @version V3.1.1 delevered with the pack V2.2.0
Here delay() is using only 1 call on __NOP(), but the parameters passed to the delay() function have been multiplied by 4 to compensate.
#define DELAY_CNT_50US_120MHZ (6000UL)
...
static void delay(uint32_t cycles)
{
volatile uint32_t i;
for(i = 0UL; i < cycles ;++i)
{
__NOP();
}
}
While this may look better at first glance, it is really not equivalent, as the overhead of the "for-loop" is probably far more important than the execution time of the NOPs.
According to our measurements the second version delay() is 3 times longer than the first version.
Moreover, the delays generated seem absolutely very very wrong when compared to their description.
Calling delay(DELAY_CNT_50US_120MHZ) on a 120MHz clocked XMC4500 resulted in a 337 us delay (expected 50 us, that's 670% error) for the first version and a 1.05 ms delay (yes, 2100% error) for the second version.
Can Infineon have a look at that situation and make sure that no CPU time is uselessly spent in superfluous delay loops when calling e.g SystemCoreClockSetup()...
Thank you for your support
Cédric Show Less
we have a critical application regarding startup-time, and noticed that since we updated the Keil Pack "Infineon::XMC4000_DFP" from V2.1.1 to V2.2.0 the startup times (set-up PLL...) have risen *significantly*.
We could mostly trace it down to a change in the delay() function in system_XMC4500.c (resp. system_XMC4100.c).
Have a look at file @version V3.0.4 delivered with pack V2.1.1.
Here delay() is using 4 calls of __NOP() in a row to generate some delay.
#define DELAY_CNT_50US_120MHZ (1500UL)
...
static void delay(uint32_t cycles)
{
volatile uint32_t i;
for(i = 0UL; i < cycles ;++i)
{
__NOP();__NOP();__NOP();__NOP();
}
}
Now have a look at file @version V3.1.1 delevered with the pack V2.2.0
Here delay() is using only 1 call on __NOP(), but the parameters passed to the delay() function have been multiplied by 4 to compensate.
#define DELAY_CNT_50US_120MHZ (6000UL)
...
static void delay(uint32_t cycles)
{
volatile uint32_t i;
for(i = 0UL; i < cycles ;++i)
{
__NOP();
}
}
While this may look better at first glance, it is really not equivalent, as the overhead of the "for-loop" is probably far more important than the execution time of the NOPs.
According to our measurements the second version delay() is 3 times longer than the first version.
Moreover, the delays generated seem absolutely very very wrong when compared to their description.
Calling delay(DELAY_CNT_50US_120MHZ) on a 120MHz clocked XMC4500 resulted in a 337 us delay (expected 50 us, that's 670% error) for the first version and a 1.05 ms delay (yes, 2100% error) for the second version.
Can Infineon have a look at that situation and make sure that no CPU time is uselessly spent in superfluous delay loops when calling e.g SystemCoreClockSetup()...
Thank you for your support
Cédric Show Less
XMC™
Webinar - Solutions for UPS in Industrial Automation From Industry 4.0 and smart factories to a rising focus on energy efficiency, now is an exciting ...
Show More
Webinar - Solutions for UPS in Industrial Automation
From Industry 4.0 and smart factories to a rising focus on energy efficiency, now is an exciting yet challenging time for industrial automation.
Infineon is the smart choice for today's smart factories. We address the latest market challenges head on - and overcome them with dedicated products and system solutions in outstanding German quality.
Infineon’s XMC™ Microcontroller portfolio completes the UPS (uninterrupted power supply) portfolio with XMC4500 and XMC4700.
In Q1 2016, Infineon will launch the XMC4800 which supports EtherCAT®.
In this free on-demand webinar, you will learn about
Sign up for on-demand webinar:
http://bit.ly/Webinar_Infineon_solutions_for_UPS Show Less
From Industry 4.0 and smart factories to a rising focus on energy efficiency, now is an exciting yet challenging time for industrial automation.
Infineon is the smart choice for today's smart factories. We address the latest market challenges head on - and overcome them with dedicated products and system solutions in outstanding German quality.
Infineon’s XMC™ Microcontroller portfolio completes the UPS (uninterrupted power supply) portfolio with XMC4500 and XMC4700.
In Q1 2016, Infineon will launch the XMC4800 which supports EtherCAT®.
In this free on-demand webinar, you will learn about
- Insight into industry trends and drivers
- Product highlights: XMC™ Microcontroller and DAVE™ IDE
- XMC4000 design guidelines and tips
Sign up for on-demand webinar:
http://bit.ly/Webinar_Infineon_solutions_for_UPS Show Less
XMC™
Hello,I see from different examples that CCU4 is able to perform capture of (one slice timer) based on CC4yST state which is a result of compare opera...
Show More
Hello,
I see from different examples that CCU4 is able to perform capture of (one slice timer) based on CC4yST state which is a result of compare operation (of other slice timer). Is it possible to do capture based on "period match"?
If yes, please provide some configuration example. I was wondering if setting compare value to period value or 0 would do the job? Which one is better? There is no clear explanation in manual how ST status is generated if compare value is equal period value or 0.
In CCU4 application note is written:
As long as the timer register value is equal or greater than the compare register value, the Status Bit
(CCST or even named CCU4xSTy) will be set to one (=1). Otherwise it is set to zero (=0).
So, understanding this means, that if compare value=period value and timer reaches compare value status bit is set 1 and one clock later timer overflows and status bit should be set 0. So there should be a ST pulse equal 1 clock.
But figure 15 in application note shows duty cycle 0 !!!! So how is it?
Another question: period match interrupt is generated when timer first time reaches period value or one clock later?
Thanks
rum Show Less
I see from different examples that CCU4 is able to perform capture of (one slice timer) based on CC4yST state which is a result of compare operation (of other slice timer). Is it possible to do capture based on "period match"?
If yes, please provide some configuration example. I was wondering if setting compare value to period value or 0 would do the job? Which one is better? There is no clear explanation in manual how ST status is generated if compare value is equal period value or 0.
In CCU4 application note is written:
As long as the timer register value is equal or greater than the compare register value, the Status Bit
(CCST or even named CCU4xSTy) will be set to one (=1). Otherwise it is set to zero (=0).
So, understanding this means, that if compare value=period value and timer reaches compare value status bit is set 1 and one clock later timer overflows and status bit should be set 0. So there should be a ST pulse equal 1 clock.
But figure 15 in application note shows duty cycle 0 !!!! So how is it?
Another question: period match interrupt is generated when timer first time reaches period value or one clock later?
Thanks
rum Show Less
XMC™
Hello.Anyone who have experienced about xmc4500 flash programming help me please.I need to store some data at non-volatile area.I added the code from ...
Show More
Hello.
Anyone who have experienced about xmc4500 flash programming help me please.
I need to store some data at non-volatile area.
I added the code from XMClib Flash-progam example but the software has a problem.
XMC_FLASH_EraseSector(XMC_FLASH_SECTOR_11); -------- // 1
XMC_FLASH_ProgramPage(XMC_FLASH_SECTOR_11, idata); -------- // 2
ptr_data = XMC_FLASH_SECTOR_11; --------// 3
for (count = 0; count < XMC_FLASH_WORDS_PER_PAGE; ++count) { --------// 4
odata[count] = *ptr_data; --------- // 5
++ptr_data; ----------// 6
}
Address of XMC_FLASH_SECTOR_11 is 0x0C0C0000
When software is executed with above 6 line, there are written data in SECTOR11 memory.
Remove above line 1(erase) and 2(program) and after power OFF/ON SECTOR11 data are changed to '0'.
It seem that the written data don't retain.
Please help me what should I do. Show Less
Anyone who have experienced about xmc4500 flash programming help me please.
I need to store some data at non-volatile area.
I added the code from XMClib Flash-progam example but the software has a problem.
XMC_FLASH_EraseSector(XMC_FLASH_SECTOR_11); -------- // 1
XMC_FLASH_ProgramPage(XMC_FLASH_SECTOR_11, idata); -------- // 2
ptr_data = XMC_FLASH_SECTOR_11; --------// 3
for (count = 0; count < XMC_FLASH_WORDS_PER_PAGE; ++count) { --------// 4
odata[count] = *ptr_data; --------- // 5
++ptr_data; ----------// 6
}
Address of XMC_FLASH_SECTOR_11 is 0x0C0C0000
When software is executed with above 6 line, there are written data in SECTOR11 memory.
Remove above line 1(erase) and 2(program) and after power OFF/ON SECTOR11 data are changed to '0'.
It seem that the written data don't retain.
Please help me what should I do. Show Less
XMC™
Hi all,I'm facing a problem with changing the Boot Mode from UART ASC (Default Mode) to SWD. I use the Pins P0.14 and P0.15. For UART communication, I...
Show More
Hi all,
I'm facing a problem with changing the Boot Mode from UART ASC (Default Mode) to SWD. I use the Pins P0.14 and P0.15. For UART communication, I use a FTDI USB-UART converter. With the Memtool, provided by Infineon, version 4.6, I get the message: Connected to target.
So everything seems to be ok. But when I change the mode and try to connect with a Segger J-Link, I get no connection. Switching to Memtool, I don't get a connection as well. I came to the conclusion that the Memtool switched something in the Microcontroller but I don't know what.
The result is, that I get no connection any more, not with Memtool and not with J-Link. I hope that I gave a detailed description of my problem. If you need some more information, don't hesitate to ask. I'm happy for every hint I can get!
Sebastian Show Less
I'm facing a problem with changing the Boot Mode from UART ASC (Default Mode) to SWD. I use the Pins P0.14 and P0.15. For UART communication, I use a FTDI USB-UART converter. With the Memtool, provided by Infineon, version 4.6, I get the message: Connected to target.
So everything seems to be ok. But when I change the mode and try to connect with a Segger J-Link, I get no connection. Switching to Memtool, I don't get a connection as well. I came to the conclusion that the Memtool switched something in the Microcontroller but I don't know what.
The result is, that I get no connection any more, not with Memtool and not with J-Link. I hope that I gave a detailed description of my problem. If you need some more information, don't hesitate to ask. I'm happy for every hint I can get!
Sebastian Show Less
XMC™
Hi.I need to reset by software xmc4500 CPU core.So, I added code as.. PPB->AIRCR |= (0x5FA << 16); PPB->AIRCR |= PPB_AIRCR_VECTRESET_Msk;Bu...
Show More
Hi.
I need to reset by software xmc4500 CPU core.
So, I added code as..
PPB->AIRCR |= (0x5FA << 16);
PPB->AIRCR |= PPB_AIRCR_VECTRESET_Msk;
But target bord didn't reset and PPB->AIRCR register value were not changed also(remain all 0's).
Please advise me what is wrong.
Best regards.
do-yoon Ahn Show Less
I need to reset by software xmc4500 CPU core.
So, I added code as..
PPB->AIRCR |= (0x5FA << 16);
PPB->AIRCR |= PPB_AIRCR_VECTRESET_Msk;
But target bord didn't reset and PPB->AIRCR register value were not changed also(remain all 0's).
Please advise me what is wrong.
Best regards.
do-yoon Ahn Show Less
XMC™
Hi,I have a question related to the following user manualXMC4500 Relax Kit & XMC4500 Relax Lite KitBoard User‘ s ManualRevision 1.2, 2014-01-13There i...
Show More
Hi,
I have a question related to the following user manual
XMC4500 Relax Kit & XMC4500 Relax Lite Kit
Board User‘ s Manual
Revision 1.2, 2014-01-13
There is conflicting piece of information
a)
Page 11 of 20
Figure 4 Power Supply Concept
IC101 => IFX1763 ; 500mA
b)
Page 16 of 20
Figure 8 Power
IC101 => IFX1117MEV33 , 1,000mA
I do not yet have the board with me. Can you advise the correct part no. for the IC101. This helps me plan ahead for my power supply distribution.
Thanks,
Rehan Show Less
I have a question related to the following user manual
XMC4500 Relax Kit & XMC4500 Relax Lite Kit
Board User‘ s Manual
Revision 1.2, 2014-01-13
There is conflicting piece of information
a)
Page 11 of 20
Figure 4 Power Supply Concept
IC101 => IFX1763 ; 500mA
b)
Page 16 of 20
Figure 8 Power
IC101 => IFX1117MEV33 , 1,000mA
I do not yet have the board with me. Can you advise the correct part no. for the IC101. This helps me plan ahead for my power supply distribution.
Thanks,
Rehan Show Less