XMC™ Forum Discussions
I want to communicate over SPI with 16MHz.
The issue is that there is an isolation IC with a 32nsec propagation delay between the master (XMC4800) and slave device.
1. Master delay compensation did not work on my first attempt. USIC AI.008 provides an explanation for why the "close loop delay compensation" does not working. Still not fixed?
2. The datasheet describes that sharp edge (A2) pads rise/fall time 3.7nsec. In my testing the "strong driver sharp edge" pads faster than "strong driver soft edge", but still rise/fall time about 20 nsec. I miss something?
Best Regards...
Show LessI have downloaded all required software for the XMC Flasher (Java JRE 18.0.2) as well as Segger JLink but when I attempt to run the XMC Flasher from both the developer center, as well as the file installation location I am receiving a Java Exception. I have attempted to run this from windows powershell as well and I also receive an error of: Exception in thread "main" java.lang.NoClassDefFoundError: javafx/application/Application.
I'm not exactly sure what to do at this point, so any help will be appreciated.
Show LessLooking for Microcontroller with 2 ethernet, 2 RS485, 3 MODBUS, 12 Analog input, 42 digital IO, Analog 6no. Please suggest
Industrial Microcontroller.
Show LessDear sir:
I am using DAVE to develope a programme for XMC4000, using it to perform some data processing using CMSIS. Using float32 to calculate data will meet significant calculation error. May I possible to update the dave's app CMSIS to its latest version 1.10, so many newer fuctions will be available. Thanks so much.
regards.
Show LessHi,
I'd like to trigger interrupts on pins 2.1, 2.2 and 2.3 on a XMC 1300 eval board (boot kit).
The interrupts should be triggered on any edge of an external digital signal connected to the pins.
Pins 2.2 and 2.3 work, but 2.1 does not trigger any interrupt.
Is it possible at all to configure this setup and if, how?
Inside the "ERU Application Note" (V1.0, 2015-07) in section 5.3 there are only ERU0 mappings for pins 2.2 and 2.3 mentioned, however in the "Reference Manual XMC1300 AB-Step" (V1.3 2016-08) in table 23-14 there is also ERU0.1B0 mentioned for pin 2.1.
(Note that the ERU application note states pin 0.9 for ERU0.1B0 while the reference manual says 0.9 has no ERU connection at all and the ERU0.1B0 would be connected to 2.1).
I'm using the XMClib directly, i.e. without the graphical DAVE apps. So far my configuration looks like that:
/* === configuration ==== */
static const XMC_ERU_ETL_CONFIG_t eru_config_p21 =
{
.input = (ERU0_ETL1_INPUTB_P2_1 << 2), // input seems broken for source B
.source = XMC_ERU_ETL_SOURCE_B
.edge_detection = XMC_ERU_ETL_EDGE_DETECTION_BOTH,
.status_flag_mode = XMC_ERU_ETL_STATUS_FLAG_MODE_HWCTRL,
.enable_output_trigger = true,
.output_trigger_channel = XMC_ERU_ETL_OUTPUT_TRIGGER_CHANNEL0,
};
static const XMC_ERU_ETL_CONFIG_t eru_config_p22 =
{
.input = (ERU0_ETL0_INPUTB_P2_2 << 2),
.source = XMC_ERU_ETL_SOURCE_B,
.edge_detection = XMC_ERU_ETL_EDGE_DETECTION_BOTH,
.status_flag_mode = XMC_ERU_ETL_STATUS_FLAG_MODE_HWCTRL,
.enable_output_trigger = true,
.output_trigger_channel = XMC_ERU_ETL_OUTPUT_TRIGGER_CHANNEL1,
};
static const XMC_ERU_ETL_CONFIG_t eru_config_p23 =
{
.input = (ERU0_ETL1_INPUTB_P2_3 << 2),
.source = XMC_ERU_ETL_SOURCE_B,
.edge_detection = XMC_ERU_ETL_EDGE_DETECTION_BOTH,
.status_flag_mode = XMC_ERU_ETL_STATUS_FLAG_MODE_HWCTRL,
.enable_output_trigger = true,
.output_trigger_channel = XMC_ERU_ETL_OUTPUT_TRIGGER_CHANNEL2,
};
static const XMC_ERU_OGU_CONFIG_t eru_ogu_config =
{
.enable_pattern_detection = false,
.peripheral_trigger = XMC_ERU_OGU_PERIPHERAL_TRIGGER2,
.service_request = XMC_ERU_OGU_SERVICE_REQUEST_ON_TRIGGER,
};
/* === ISR === */
static void ERU0_0_IRQHandler(void)
{ // not executed
...
}
static void ERU0_0_IRQHandler(void)
{ // executed
...
}
static void ERU0_0_IRQHandler(void)
{ // executed
...
}
/* === Initialization === */
void eru_init(void)
{
XMC_ERU_ETL_Init(ERU0_ETL1, &eru_config_p21);
XMC_ERU_ETL_Init(ERU0_ETL0, &eru_config_p22);
XMC_ERU_ETL_Init(ERU0_ETL1, &eru_config_p23);
XMC_ERU_OGU_Init(ERU0_OGU1, &eru_ogu_config);
XMC_ERU_OGU_Init(ERU0_OGU2, &eru_ogu_config);
XMC_ERU_OGU_Init(ERU0_OGU3, &eru_ogu_config);
NVIC_SetPriority(ERU0_0_IRQn, (3U));
NVIC_SetPriority(ERU0_1_IRQn, (3U));
NVIC_SetPriority(ERU0_2_IRQn, (3U));
NVIC_EnableIRQ(ERU0_0_IRQn);
NVIC_EnableIRQ(ERU0_1_IRQn);
NVIC_EnableIRQ(ERU0_2_IRQn);
XMC_SCU_INTERRUPT_SetEventHandler(ERU0_0_IRQn, &ERU0_0_IRQHandler);
XMC_SCU_INTERRUPT_SetEventHandler(ERU0_1_IRQn, &ERU0_1_IRQHandler);
XMC_SCU_INTERRUPT_SetEventHandler(ERU0_2_IRQn, &ERU0_2_IRQHandler);
}
Would be great if someone could enlighten me here! 🙂
Kind regards,
nfr
Hello everyone. Is there any assembly equivalent of --> asm ("nop") <-- to be used in assembly code of a XMC microcontroller? Thanks for your time.
Show LessIs there a sample that one xmc supports two PMSM motors? two motors are the same, with Incremental encoder,The speed is about 10000 rpm.
Is there a suitable XMC recommendation? (Need can interface)What should be considered when recommending?Can xmc4700 and xmc4800 meet the above requirements?
Show LessHi,
I am using XMC1400 to realize a rs485 application.Could you tell me how to use USIC(ASC) peripheral to make halfduplex rs485 work?It would be better if you could give a sample code .
And also,I would like to know if there is any registers taht related to this application and how to config the pins in DAVE APP.
Thanks.
Show Less
Hi, I'm using the VADC to measure the voltage drops across three shunt resistors to determine motor current on three phases of a three-phase motor. VADC_G0 is the master and VADC_G1 and G2 are slaves. The conversions are kicked off by a one-match event in a CCU8 timer used to generate PWM. This is on an XMC4400.
When I get the VADC interrupt (in VADC0_G0_0_IRQHandler()) I read the conversion results and "clear" the interrupt and return. The problem is, the interrupt handler is immediately re-entered and this occurs indefinitely.
I think I may be incorrectly clearing the interrupt. What I'm doing in the ISR is writing to the GxSEFCLR and GxREFCLR registers to clear the result event and source event flags.
Is this the proper way to clear these interrupts? If not, what is the correct way? The reference manual isn't very specific about this.
Please note: I'm not using the XMC libraries. I've implemented this from scratch and am directly manipulating the VADC registers, so any recommendations as to how to do it using the libraries won't help me.
Show Less