XMC™ Forum Discussions
text.format{('custom.tabs.no.results')}
Dear Community,
I am trying to use the DAVE IDE on my MacBook Pro running macOS Monterey (version 12.4) which has the Apple M1 Pro chip. To use DAVE, I installed Windows 11 on my Mac using Parallels. However, when I try to run DAVE from within Parallels, it crashes on startup or just after startup. My colleague who has a setup which is identical to mine is experiencing the same problem.
Is there a way to run DAVE IDE on my MacBook?
Thank you!
Jeroen
Show LessHi I have a college project about a accelerometer taking measures from X,Y,Z axis and then turning some lights on when i move my accelerometer in those axis. I'm new to XMC and I'm having some issues with I2C in general. I want to receive data and write data, and for now I'm just trying the WHO_AM_I register to see if I can receive some result, but I always get stuck in my while loops.
Work Down here.
Show Less
Hello every one
I am using XMC1403 MCU and Microchip CAN BUS Analyzer
I can see the CAN bus went into BUSSOFF state in CAN BUS analyzer
there is perfect communication between the TWO nodes (XMC1403 CAN peripheral as one Node and CAN bus Analyzer as another node) there is a 120 ohm termination also
if(HandlePtr1->node_ptr->NSR & (1<<7)) busoff();
as per reference manual xmc1400 I am checking the condition of BUSSOFF error then calling the buss off function
void busoff(void){
bus_off_count++;
if(bus_off_count == 100){
CAN_NODE_Init(&CAN_NODE_0);
CAN_NODE_Enable(HandlePtr1);
CAN_NODE_ConfigBaudrate(HandlePtr1,canbaudrate, cansample_point, cansjw);
bus_off_count=0;
}
}
then also I cannot see CAN BUS is not coming to normal mode in analyzer it seems CAN BUS Analyzer is working fine
but my XMC1403 MCU CAN node is not coming into normal state when goes in to BUSOFF state when BUSSOFF occurs I am again initializing the CAN NODE of XMC1403 MCU
Please find below Screen shot XMC1403 reference manual BUSSOFF register
regards,
Show LessWhat do you have to do in DAVE/Eclipse to setup fault handling?
I’m also not sure what to expect if any of these handlers do get called. Will it give me a stack trace back to the fault? Is there a command to run that will tell me something? Show Less
Hi,
I use xmc1302 work in motor control and need run function code (ADC ISR FUN) in ram to decresse execute time, I reseach some experience in forum but not work,need your help,Thanks.
Thanks,
Asa
Show LessYou can declare multiple interrupt node for the same priority level.
However, the interrupt node with the same priority level would not overwrite or interrupt each other.
So, if one interrupt has already started, the other interrupt with the same priority level gets triggered have to be wait.
In the Reference Manual, it is mentioned that each priority level has a step of 64.
This DOES NOT mean that there are another 64 sub level in each priority level.
Basically, the bit [5:0] is masked off and only bits [7:0] is used for register NVIC_IPRx.
This means writing any value from 0-63 = 00, 64-127 = 01, 128-191 = 10, 192 = 11.
The most convenient way to set the interrupt priority is using the CMSIS function NVIC_SetPriority (IRQn_t IRQn, uint32_t priority).
IRQn refers to the interrupt node number and priority refers to value from 0 - 3. Show Less
Hello Sampath,
Could you please suggest suitable XMC Series Controller Eval Board for controlling 48VDC BLDC Motor for E-Vehicles application. We have Card for Driver and MOSFET side. We just need Controller and reference FW to control BLDC Motor. Please response ASAP.
Show LessIm using the XMC1100 boot kit board, and attempting to toggle the on board leds with an interrupt generated by the CC4 timers. While using the XMClib rather than the Dave Apps. im not 100% sure where im going wrong in my code, and still a bit confused on all of the functions required to get a simple timer , and interrupt generated. Could someone go through my code, maybe point out where im going wrong, and also point out the bare min for a simple timer/ interrupt generation while im learning how to use the CC4?
The current code compiles with no errors, but the LED will turn on, but never toggles, so im assuming the interrupt is never being called.
Code below.
#include "stdio.h"
#include "DAVE.h" //Declarations from DAVE Code Generation (includes SFR declaration)
#include <xmc_ccu4.h>
#include <xmc_gpio.h>
#include <xmc_scu.h>
#define MODULE_PTR CCU40 //Module
#define MODULE_NUMBER (0U) //Unsure
#define SLICE0_PTR CCU40_CC40 //Specific Slice in module CCU 40
#define SLICE0_NUMBER (0U) //Slice #?
#define SLICE0_OUTPUT P0_0
#define LED P0_5
#define LED2 P0_6
// APP START
void toggle(void){
XMC_GPIO_ToggleOutput(LED2);
XMC_GPIO_ToggleOutput(LED);
}
// SYSTEM CLOCK CONFIG
XMC_SCU_CLOCK_CONFIG_t sclk =
{
.pclk_src=XMC_SCU_CLOCK_PCLKSRC_DOUBLE_MCLK,
.rtc_src=XMC_SCU_CLOCK_RTCCLKSRC_DCO2,
.fdiv = 0,
.idiv = 4,
};
XMC_CCU4_SLICE_COMPARE_CONFIG_t timer = {
.timer_mode = (uint32_t)XMC_CCU4_SLICE_TIMER_COUNT_MODE_EA,
.monoshot = (uint32_t)XMC_CCU4_SLICE_TIMER_REPEAT_MODE_REPEAT,
.shadow_xfer_clear = false,
.dither_timer_period = false,
.dither_duty_cycle = false,
.prescaler_mode = (uint32_t)XMC_CCU4_SLICE_PRESCALER_MODE_NORMAL,
.mcm_enable = false,
.prescaler_initval = XMC_CCU4_SLICE_PRESCALER_4096,
.float_limit = 0,
.dither_limit = 0,
.passive_level = XMC_CCU4_SLICE_OUTPUT_PASSIVE_LEVEL_LOW,
.timer_concatenation = false
};
XMC_CCU4_SLICE_EVENT_CONFIG_t SLICE0_event0_config=
{
.mapped_input = XMC_CCU4_SLICE_INPUT_I, /* mapped to SCU.GSC40 */
.edge = XMC_CCU4_SLICE_EVENT_EDGE_SENSITIVITY_RISING_EDGE,
.level = XMC_CCU4_SLICE_EVENT_LEVEL_SENSITIVITY_ACTIVE_HIGH,
.duration = XMC_CCU4_SLICE_EVENT_FILTER_3_CYCLES
};
int main(void)
{
XMC_SCU_CLOCK_Init(&sclk);
XMC_CCU4_Init(CCU40_CC40, XMC_CCU4_SLICE_MCMS_ACTION_TRANSFER_PR_CR);
XMC_CCU4_SetModuleClock(CCU40_CC40, XMC_CCU4_CLOCK_SCU);
XMC_CCU4_SLICE_CompareInit(CCU40_CC40, &timer);
XMC_CCU4_SLICE_SetTimerCompareMatch(CCU40_CC40, 10);
XMC_CCU4_SLICE_SetTimerPeriodMatch(CCU40_CC40, 20);
XMC_CCU4_EnableShadowTransfer(CCU40, XMC_CCU4_SHADOW_TRANSFER_SLICE_0);
XMC_CCU4_SLICE_EnableEvent(CCU40_CC40, XMC_CCU4_SLICE_IRQ_ID_COMPARE_MATCH_UP);
XMC_CCU4_SLICE_SetInterruptNode(CCU40_CC40, XMC_CCU4_SLICE_IRQ_ID_COMPARE_MATCH_UP, XMC_CCU4_SLICE_SR_ID_1);
XMC_CCU4_EnableClock(CCU40_CC40, (0U));
NVIC_SetPriority(CCU40_1_IRQn, 3U);
NVIC_EnableIRQ(CCU40_1_IRQn);
XMC_CCU4_SLICE_StartTimer(CCU40_CC40);
//On Board LED Config
XMC_GPIO_CONFIG_t OBL =
{
OBL.mode = XMC_GPIO_MODE_OUTPUT_PUSH_PULL,
OBL.output_level = XMC_GPIO_OUTPUT_LEVEL_HIGH,
};
//Pin Initialize
XMC_GPIO_Init(LED, &OBL);
XMC_GPIO_Init(LED2, &OBL);
XMC_GPIO_SetOutputLow(LED);
}
void IRQ_Hdlr_22(void)
{
toggle();
};
Show Less
hello
How can I protect the Flash with an Segger Jlink ??
How do I add lines into the Batch file, AFTER the Load Command ( HEX )
Maybe it's simpel but after several tries I cannot Protect this XMC 1100TO16-0064 Chip
I Use the Command line software with an *.Jlink batch file
Show LessHi,
The XMC4000 series has a long-term availability guarantee on its website.
We have two questions regarding this "long-term availability > 15 years".
(1)
Does this mean more than 15 years since production started?
Or does it mean more than 15 years from today?
(2)
There is a description on the XMC4100, XMC4300, XMC4400 and XMC4500, but not on the XMC4700 and XMC4800.
Is it correct to understand that XMC4700 and XMC4800 are not subject to "long-term availability > 15 years"?
Regards,
Show Less