XMC™ Forum Discussions
Sort by:
XMC™
Hi all,I am currently configuring Slice 0 and Slice 1 of CCU4 unit for capturing in timer concatenation mode. As far as I understand, the process is t...
Show More
Hi all,
I am currently configuring Slice 0 and Slice 1 of CCU4 unit for capturing in timer concatenation mode.
As far as I understand, the process is the following:
-Configure Slice 0 as capture, trigger the events for capturing the signals. Timer concatenation bit 0.
-Configure Slice 1 as capture, Timer concatenation bit 1.
However, I am not able to increase Slice 1 timer counter.
According to the RM, once you set the timer concatenation bit to 1 in Slice 1 it should be configured as Slice 0.
Have I misses any step?
In XMCLib this is the process:
/*
* CCU40 - Slice 0 configuration - Capture Conf
*/
/* Initialize the Slice */
XMC_CCU4_SLICE_CaptureInit(SLICE0_PTR, &capture_config);
XMC_CCU4_EnableShadowTransfer(MODULE_PTR, \
(uint32_t)(XMC_CCU4_SHADOW_TRANSFER_SLICE_0| \
XMC_CCU4_SHADOW_TRANSFER_PRESCALER_SLICE_0));
XMC_CCU4_SLICE_Capture0Config(SLICE0_PTR, XMC_CCU4_SLICE_EVENT_0);
XMC_CCU4_SLICE_ConfigureEvent(SLICE0_PTR, XMC_CCU4_SLICE_EVENT_0, &capture_event0_config);
XMC_CCU4_SLICE_Capture1Config(SLICE0_PTR, XMC_CCU4_SLICE_EVENT_1);
XMC_CCU4_SLICE_ConfigureEvent(SLICE0_PTR, XMC_CCU4_SLICE_EVENT_1, &capture_event1_config);
/* Get the CCU4 slice out of idle mode */
XMC_CCU4_EnableClock(MODULE_PTR, SLICE0_NUMBER);
/* Start the CCU4 Timer */
XMC_CCU4_SLICE_StartTimer(SLICE0_PTR);
/*
* CCU40 - Slice 1 configuration - Timer concatenation
*/
XMC_CCU4_SLICE_CaptureInit(SLICE1_PTR, &capture_timer_concatenation_config);
XMC_CCU4_EnableShadowTransfer(MODULE_PTR, \
(uint32_t)(XMC_CCU4_SHADOW_TRANSFER_SLICE_1| \
XMC_CCU4_SHADOW_TRANSFER_PRESCALER_SLICE_1));
/* Get the CCU4 slice out of idle mode */
XMC_CCU4_EnableClock(MODULE_PTR, SLICE1_NUMBER);
/* Start the CCU4 Timer */
XMC_CCU4_SLICE_StartTimer(SLICE1_PTR)
Also, is there any XMCLib example on this?
Thx Show Less
I am currently configuring Slice 0 and Slice 1 of CCU4 unit for capturing in timer concatenation mode.
As far as I understand, the process is the following:
-Configure Slice 0 as capture, trigger the events for capturing the signals. Timer concatenation bit 0.
-Configure Slice 1 as capture, Timer concatenation bit 1.
However, I am not able to increase Slice 1 timer counter.
According to the RM, once you set the timer concatenation bit to 1 in Slice 1 it should be configured as Slice 0.
Have I misses any step?
In XMCLib this is the process:
/*
* CCU40 - Slice 0 configuration - Capture Conf
*/
/* Initialize the Slice */
XMC_CCU4_SLICE_CaptureInit(SLICE0_PTR, &capture_config);
XMC_CCU4_EnableShadowTransfer(MODULE_PTR, \
(uint32_t)(XMC_CCU4_SHADOW_TRANSFER_SLICE_0| \
XMC_CCU4_SHADOW_TRANSFER_PRESCALER_SLICE_0));
XMC_CCU4_SLICE_Capture0Config(SLICE0_PTR, XMC_CCU4_SLICE_EVENT_0);
XMC_CCU4_SLICE_ConfigureEvent(SLICE0_PTR, XMC_CCU4_SLICE_EVENT_0, &capture_event0_config);
XMC_CCU4_SLICE_Capture1Config(SLICE0_PTR, XMC_CCU4_SLICE_EVENT_1);
XMC_CCU4_SLICE_ConfigureEvent(SLICE0_PTR, XMC_CCU4_SLICE_EVENT_1, &capture_event1_config);
/* Get the CCU4 slice out of idle mode */
XMC_CCU4_EnableClock(MODULE_PTR, SLICE0_NUMBER);
/* Start the CCU4 Timer */
XMC_CCU4_SLICE_StartTimer(SLICE0_PTR);
/*
* CCU40 - Slice 1 configuration - Timer concatenation
*/
XMC_CCU4_SLICE_CaptureInit(SLICE1_PTR, &capture_timer_concatenation_config);
XMC_CCU4_EnableShadowTransfer(MODULE_PTR, \
(uint32_t)(XMC_CCU4_SHADOW_TRANSFER_SLICE_1| \
XMC_CCU4_SHADOW_TRANSFER_PRESCALER_SLICE_1));
/* Get the CCU4 slice out of idle mode */
XMC_CCU4_EnableClock(MODULE_PTR, SLICE1_NUMBER);
/* Start the CCU4 Timer */
XMC_CCU4_SLICE_StartTimer(SLICE1_PTR)
Also, is there any XMCLib example on this?
Thx Show Less
XMC™
Does XMC support encoder interface BiSS, EnDAT2., A-Format, T-Format?Nikon: A-formatHttp://www.nikon.co.jp/news/2015/0519_mar-m50a_01.htmTamagawa Seik...
Show More
Does XMC support encoder interface BiSS, EnDAT2., A-Format, T-Format?
Nikon: A-format
Http://www.nikon.co.jp/news/2015/0519_mar-m50a_01.htm
Tamagawa Seiki: T-format
Renesas RZ/T1 ARMR4 microcomputer supports these.
Https://www.renesas.com/en-us/solutions/key-technology/motor-control/mcus/rzt1-for-motors.html Show Less
Nikon: A-format
Http://www.nikon.co.jp/news/2015/0519_mar-m50a_01.htm
Tamagawa Seiki: T-format
Renesas RZ/T1 ARMR4 microcomputer supports these.
Https://www.renesas.com/en-us/solutions/key-technology/motor-control/mcus/rzt1-for-motors.html Show Less
XMC™
Hello everyone!My name is Patrick and i am new in this Forum.At the moment I'm working on my bachelor thesis which deals with time synchronization in ...
Show More
Hello everyone!
My name is Patrick and i am new in this Forum.
At the moment I'm working on my bachelor thesis which deals with time synchronization in distributed control systems.
For this purpose I`m using three XMC4500 Relax Lite Kits.
I would like to calculate the life time stability and other characteristics of my application.
For this reason i need to know the parameters like period jitter and temperature stability of the 12 MHz external oscillator.
In the Board User Manual i didnt found any detailed information.
I'd be very pleased if you could give me the name of the used oscillator. Or even better the data sheet.
Thanks in advance!
Mfg
Patrick Show Less
My name is Patrick and i am new in this Forum.
At the moment I'm working on my bachelor thesis which deals with time synchronization in distributed control systems.
For this purpose I`m using three XMC4500 Relax Lite Kits.
I would like to calculate the life time stability and other characteristics of my application.
For this reason i need to know the parameters like period jitter and temperature stability of the 12 MHz external oscillator.
In the Board User Manual i didnt found any detailed information.
I'd be very pleased if you could give me the name of the used oscillator. Or even better the data sheet.
Thanks in advance!
Mfg
Patrick Show Less
XMC™
I see the following map in the reference manual of xmc4500.how many physical sectors are there? It seems that the logical UCBx Sectors are located in ...
Show More
I see the following map in the reference manual of xmc4500.
how many physical sectors are there? It seems that the logical UCBx Sectors are located in the physical Sector PS0.
I am using the normal boot mode.
Does that mean, if I use UCBx related command sequences, I would be unable to place my vector table at the very beginning of the PS0? Where can I then place my vector table?
Show Less
how many physical sectors are there? It seems that the logical UCBx Sectors are located in the physical Sector PS0.
I am using the normal boot mode.
Does that mean, if I use UCBx related command sequences, I would be unable to place my vector table at the very beginning of the PS0? Where can I then place my vector table?
XMC™
I have a custom PCB board running an XMC1402 chip. I also have a demo running on KIT_XMC1X_AK_LED_001 (XMC1200). I accidently programmed the 1402 chip...
Show More
I have a custom PCB board running an XMC1402 chip. I also have a demo running on KIT_XMC1X_AK_LED_001 (XMC1200). I accidently programmed the 1402 chip with the 1200 app and now I cannot program the 1402 with the correct firmware.
Both were developed on the DAVE IDE and programmed with XMC-Link (seggar). I get the error...
J-Link GDB Server failed:
Could not connect to target. Please check if target is powered and if ribbon cable is plugged properly.
For more details, see the JLinkGDBServerCL.exe console.
Any ideas to resolve? Show Less
Both were developed on the DAVE IDE and programmed with XMC-Link (seggar). I get the error...
J-Link GDB Server failed:
Could not connect to target. Please check if target is powered and if ribbon cable is plugged properly.
For more details, see the JLinkGDBServerCL.exe console.
Any ideas to resolve? Show Less
XMC™
Hello,i would like to use the external VAREF (VDD Pin = 5V) for reading ADC results from 5V Sensorsand (VDDP= 3,3V) for digital IO (communication with...
Show More
Hello,
i would like to use the external VAREF (VDD Pin = 5V) for reading ADC results from 5V Sensors
and (VDDP= 3,3V) for digital IO (communication with other ics and so on...
1st question: is that in principle possible? --> VDD > VDDP ?
2nd question how can i activate the external VAREF? --> I am using DAVE 4.3.2 and the ADC Measurement App 4.1.22 --> the generated code looks:


According to these pictures i thought its working without any problems.
But in my test setup goes something wrong: when i conect VDD to 5V then the VDDP Pins (normally 3,3V) rise up to 4V. When i disconect VDD, then is the reference voltage 2,5V at this pin.
Can anybody explain me what i am doing wrong?
Big Thnaks!
Andi Show Less
i would like to use the external VAREF (VDD Pin = 5V) for reading ADC results from 5V Sensors
and (VDDP= 3,3V) for digital IO (communication with other ics and so on...
1st question: is that in principle possible? --> VDD > VDDP ?
2nd question how can i activate the external VAREF? --> I am using DAVE 4.3.2 and the ADC Measurement App 4.1.22 --> the generated code looks:
/*********************** C3 Configurations ************************************/
/*C3 ADC Channel configuration structure*/
XMC_VADC_CHANNEL_CONFIG_t C3_ch_config =
{
.input_class = (uint32_t) XMC_VADC_CHANNEL_CONV_GLOBAL_CLASS0, /* Global ICLASS 0 selected */
.lower_boundary_select = (uint32_t) XMC_VADC_CHANNEL_BOUNDARY_GROUP_BOUND0,
.upper_boundary_select = (uint32_t) XMC_VADC_CHANNEL_BOUNDARY_GROUP_BOUND0,
.event_gen_criteria = (uint32_t) XMC_VADC_CHANNEL_EVGEN_NEVER, /*Channel Event disabled */
.sync_conversion = (uint32_t) 0, /* Sync feature disabled*/
.alternate_reference = (uint32_t) XMC_VADC_CHANNEL_REF_INTREF, /* Internal reference selected */ //----------------------------------------------this line to external ref ?!
.result_reg_number = (uint32_t) 13, /* GxRES[13] selected */
.use_global_result = (uint32_t) 0, /* Use Group result register*/
.result_alignment = (uint32_t) XMC_VADC_RESULT_ALIGN_RIGHT, /* Result alignment - Right Aligned*/
.broken_wire_detect_channel = (uint32_t) XMC_VADC_CHANNEL_BWDCH_VAGND, /* No Broken wire mode select*/
.broken_wire_detect = (uint32_t) 0, /* No Broken wire detection*/
.bfl = (uint32_t) 0, /* No Boundary flag */
.channel_priority = (uint32_t) 0, /* Lowest Priority 0 selected*/
.alias_channel = (int8_t) -1, /* ALIAS is Disabled*/
};
/*C3 Result configuration structure*/
XMC_VADC_RESULT_CONFIG_t C3_res_config =
{
.data_reduction_control = (uint8_t) 0, /* No Accumulation */
.post_processing_mode = (uint32_t) XMC_VADC_DMM_REDUCTION_MODE,
.wait_for_read_mode = (uint32_t) 0, /* Disabled */
.part_of_fifo = (uint32_t) 0 , /* No FIFO */
.event_gen_enable = (uint32_t) 0 /* Disable Result event */
};
/* C3 ADC channel Handle */
ADC_MEASUREMENT_CHANNEL_t ADC_MEASUREMENT_C3_handle =
{
.ch_num = (uint8_t) 2,
.group_handle = (VADC_G_TypeDef*)(void*) VADC_G1,
.group_index = (uint8_t) 1,
.ch_handle = (XMC_VADC_CHANNEL_CONFIG_t*) &C3_ch_config,
.res_handle = (XMC_VADC_RESULT_CONFIG_t*) &C3_res_config,
};
According to these pictures i thought its working without any problems.
But in my test setup goes something wrong: when i conect VDD to 5V then the VDDP Pins (normally 3,3V) rise up to 4V. When i disconect VDD, then is the reference voltage 2,5V at this pin.
Can anybody explain me what i am doing wrong?
Big Thnaks!
Andi Show Less
XMC™
I need your help,I'm going to init an adc on my XMC1200 in DAVE 4.3.2.There are some problems in my Init()://wait till module clock is enabled while((...
Show More
I need your help,
I'm going to init an adc on my XMC1200 in DAVE 4.3.2.
There are some problems in my Init():
//wait till module clock is enabled
while((RD_REG(VADC->CLC, VADC_CLC_DISS_Msk, VADC_CLC_DISS_Pos)) != 0);
//Wait till calibration is complete
while((RD_REG(VADC_G1->ARBCFG, VADC_G_ARBCFG_CAL_Msk, VADC_G_ARBCFG_CAL_Pos)) != 0);
THE LOOP'S ARE ENDLESS !
It works well in Dave3 and in Keil5!?
What is wrong?
Bernd Show Less
I'm going to init an adc on my XMC1200 in DAVE 4.3.2.
There are some problems in my Init():
//wait till module clock is enabled
while((RD_REG(VADC->CLC, VADC_CLC_DISS_Msk, VADC_CLC_DISS_Pos)) != 0);
//Wait till calibration is complete
while((RD_REG(VADC_G1->ARBCFG, VADC_G_ARBCFG_CAL_Msk, VADC_G_ARBCFG_CAL_Pos)) != 0);
THE LOOP'S ARE ENDLESS !
It works well in Dave3 and in Keil5!?
What is wrong?
Bernd Show Less
XMC™
We are using the XMC4500. We have about 50 boards in the department and all can be reprogrammed either with our own application code or the debugger (...
Show More
We are using the XMC4500. We have about 50 boards in the department and all can be reprogrammed either with our own application code or the debugger (ULINK Pro), except for 2 boards, which have suddenly stopped working.
Both show exactly the same error. Both can be erased, but the reprogramming fails from address 0x0C040000. This seems a strange coincidence!
I have tried to understand the Reference Manual on the subject of Flash protection, but I am totally confused.
In Table 8-1 it is shown that the User Configuration Blocks start at address 0x0C000000, this is the same as the start of the Program Flash. Is this address correct?
I do not understand how the 3 UCB relate to the sectors in the Flash.
The Flash Status Register (0x58002010) is set ot zero and all three Flash Protections Configuration Registers are also zero. So it would seem nothing is protected, so why can I not program the Flash? Show Less
Both show exactly the same error. Both can be erased, but the reprogramming fails from address 0x0C040000. This seems a strange coincidence!
I have tried to understand the Reference Manual on the subject of Flash protection, but I am totally confused.
In Table 8-1 it is shown that the User Configuration Blocks start at address 0x0C000000, this is the same as the start of the Program Flash. Is this address correct?
I do not understand how the 3 UCB relate to the sectors in the Flash.
The Flash Status Register (0x58002010) is set ot zero and all three Flash Protections Configuration Registers are also zero. So it would seem nothing is protected, so why can I not program the Flash? Show Less
XMC™
I implemented an CANopen Bootloader running out of PSRAM on a XMC4500 (@60MHz). When I send the CANopen command to erase the application flash (0x0C01...
Show More
I implemented an CANopen Bootloader running out of PSRAM on a XMC4500 (@60MHz). When I send the CANopen command to erase the application flash (0x0C010000..0x0C07FFFF, 484kB), The 500ms heartbeat messages are not send for about 10s (time to erase flash). The heartbeat messages are triggered by the 250us SysTick Interrupt which handles the whole Task system...
The whole Projekt is a bare metal implementation without a operating system, the Tasks are handled by the SW-Interrupts of the NVIC. When the erase command is received a interrupt with Priority 20 is triggered and the ISR handles the flash erase. The CANopen Task is running with a priority of 10 (higher -> this interrupt will interrupt the flash erase task) which is started by the SysTick (Prio 0, highest).
If I replace the code to erase the flash by a 10s long while-loop within the Flash ISR everything works fine. The code to erase the flash does not disable Interrupts or something similar. It writes only the flash command sequences to the When I toggle a pin within the SysTick task I can see on the Oszilloscope that the toggling stops for about 10s (sometimes one SysTick Interrupt is handled).
Is the CPU/SysTick influenced by the flash erase operation?
Thanks for your help!
Best regards Mario Show Less
The whole Projekt is a bare metal implementation without a operating system, the Tasks are handled by the SW-Interrupts of the NVIC. When the erase command is received a interrupt with Priority 20 is triggered and the ISR handles the flash erase. The CANopen Task is running with a priority of 10 (higher -> this interrupt will interrupt the flash erase task) which is started by the SysTick (Prio 0, highest).
If I replace the code to erase the flash by a 10s long while-loop within the Flash ISR everything works fine. The code to erase the flash does not disable Interrupts or something similar. It writes only the flash command sequences to the When I toggle a pin within the SysTick task I can see on the Oszilloscope that the toggling stops for about 10s (sometimes one SysTick Interrupt is handled).
Is the CPU/SysTick influenced by the flash erase operation?
Thanks for your help!
Best regards Mario Show Less
XMC™
Hi, I am new to BLDC. I have BLDC project for fan application, customer request using sinusoidal drive and must be sensor base. I just found BLDC scal...
Show More
Hi, I am new to BLDC. I have BLDC project for fan application, customer request using sinusoidal drive and must be sensor base.
I just found BLDC scalar Hall and FOC code examples on Dave 4. Scalar hall example look are using Trapezoidal control instead of sinusoidal, is there BLDC code example that with hall base and sinusoidal drive ? Show Less
I just found BLDC scalar Hall and FOC code examples on Dave 4. Scalar hall example look are using Trapezoidal control instead of sinusoidal, is there BLDC code example that with hall base and sinusoidal drive ? Show Less