XMC™ Forum Discussions
Sort by:
XMC™
Hello there,i received two XMC2Go with the XMC1100 and started to develop a WS2812B LED control application to get comfortable with the XMCs.Now my ne...
Show More
Hello there,
i received two XMC2Go with the XMC1100 and started to develop a WS2812B LED control application to get comfortable with the XMCs.
Now my next step was to interface the XMC via USB using the VCOM feature it is said to have.
Unfortunately i face two problems, which are not directly related to each other and are persistent on both XMC2Go's.
Maybe you can give me some hints what i am doing wrong, or how to workaround the problems.
Problem a)
According to the XMC2Go schematic [1], the pins P2.1 and P2.2 are used for VCOM TX and RX.
If i read the wiring correctly, P2.1 has to be TX and P2.2 has to be RX.
Looking at the XMC1100 TRM [2], Page 18-47, port P2.2 can only be configured as DX3A/DX4A/DX5A.
And USIC description says, only DX0 is to be used for RX data in ASC mode. (TRM Page 14-54).
I could use multiple data lines in parallel, but for pure serial, only DX0 is allowed to be selected.
Using DAvE to configure the RX pin to P2.2 results in no code being generated for initializing any USIC's DXnCR.
To me it looks like the port pin selection P2.1/P2.2 doesn't make sense for USIC RX/TX?
Question: Which registers do i have to set up to select DX3 as RX line for the bit shifter?
Problem b)
Working around the first problem by not using Rx path, i came across the problem that SEGGER JLink configurator is telling me,
that "The connected debug proble does not support VCOM functionality" and leaves the "Virtual COM-Port" setting fixed at "Disable".
Nevertheless Windows found a virtual COM port named "JLink CDC UART Port (COMx)" that does not return any data written by the XMC1100.
Tried the other way: When writing data to this COM port using various terminal tools and "echo test > COMx", the XMC2Go's XMC4200 doesnt serve any data at his TX port (also not on RX)
Even tried updating the firmware of the XMC4200 by installing SEGGER driver v4.90d, as DAvE came with v4.84f. That didnt help either.
Question: How do i correctly install a VCOM driver that works with the XMC2Go? (WinXP x86, Virtual Box machine)
Thanks,
Georg
[1] XMC2Go Schematics: http://www.infineon.com/dgdl/Board_Users_Manual_XMC_2Go_Kit_with_XMC1100_R1.0.pdf?folderId=db3a30433580b3710135a47f3eb76c98&fileId=db3a3043444ee5dc014453d6c75078c6&ack=t
[2] XMC1100 Reference Manual: http://www.infineon.com/dgdl/xmc1100_rm_v1+0_2013_03.pdf?folderId=db3a30433580b3710135a47f3eb76c98&fileId=db3a30433cfb5caa013d1600856033eb&ack=t Show Less
i received two XMC2Go with the XMC1100 and started to develop a WS2812B LED control application to get comfortable with the XMCs.
Now my next step was to interface the XMC via USB using the VCOM feature it is said to have.
Unfortunately i face two problems, which are not directly related to each other and are persistent on both XMC2Go's.
Maybe you can give me some hints what i am doing wrong, or how to workaround the problems.
Problem a)
According to the XMC2Go schematic [1], the pins P2.1 and P2.2 are used for VCOM TX and RX.
If i read the wiring correctly, P2.1 has to be TX and P2.2 has to be RX.
Looking at the XMC1100 TRM [2], Page 18-47, port P2.2 can only be configured as DX3A/DX4A/DX5A.
And USIC description says, only DX0 is to be used for RX data in ASC mode. (TRM Page 14-54).
I could use multiple data lines in parallel, but for pure serial, only DX0 is allowed to be selected.
Using DAvE to configure the RX pin to P2.2 results in no code being generated for initializing any USIC's DXnCR.
To me it looks like the port pin selection P2.1/P2.2 doesn't make sense for USIC RX/TX?
Question: Which registers do i have to set up to select DX3 as RX line for the bit shifter?
Problem b)
Working around the first problem by not using Rx path, i came across the problem that SEGGER JLink configurator is telling me,
that "The connected debug proble does not support VCOM functionality" and leaves the "Virtual COM-Port" setting fixed at "Disable".
Nevertheless Windows found a virtual COM port named "JLink CDC UART Port (COMx)" that does not return any data written by the XMC1100.
Tried the other way: When writing data to this COM port using various terminal tools and "echo test > COMx", the XMC2Go's XMC4200 doesnt serve any data at his TX port (also not on RX)
Even tried updating the firmware of the XMC4200 by installing SEGGER driver v4.90d, as DAvE came with v4.84f. That didnt help either.
Question: How do i correctly install a VCOM driver that works with the XMC2Go? (WinXP x86, Virtual Box machine)
Thanks,
Georg
[1] XMC2Go Schematics: http://www.infineon.com/dgdl/Board_Users_Manual_XMC_2Go_Kit_with_XMC1100_R1.0.pdf?folderId=db3a30433580b3710135a47f3eb76c98&fileId=db3a3043444ee5dc014453d6c75078c6&ack=t
[2] XMC1100 Reference Manual: http://www.infineon.com/dgdl/xmc1100_rm_v1+0_2013_03.pdf?folderId=db3a30433580b3710135a47f3eb76c98&fileId=db3a30433cfb5caa013d1600856033eb&ack=t Show Less
XMC™
Hello,I am trying to access the DAVE User Manual, most of the Figures are blank and when I tried to Search, the indexing is now frozen at 38%.Is there...
Show More
Hello,
I am trying to access the DAVE User Manual, most of the Figures are blank and when I tried to Search, the indexing is now frozen at 38%.
Is there a PDF of the manual available? Any other help?
Thanks in advance,
Kevin Show Less
I am trying to access the DAVE User Manual, most of the Figures are blank and when I tried to Search, the indexing is now frozen at 38%.
Is there a PDF of the manual available? Any other help?
Thanks in advance,
Kevin Show Less
XMC™
I am trying to use the Flash patch Hardware of the Cortex-m to remap one Funktion to another.This is done on a Relax light board.Funktion 1 blinks wit...
Show More
I am trying to use the Flash patch Hardware of the Cortex-m to remap one Funktion to another.
This is done on a Relax light board.
Funktion 1 blinks with LED1.
After 5 seconds I want to reprogram the FPB to have Funktion 2 ( blinking LED 2 ) running instead of Funktion 1
The code Looks like this:
/*
* Main.c
*
* Created on: 20.08.2014
* Author: trapp
*
* Test funktionen für die Flash Patch Unit
*
* - Programm wird gestartet LED1 blinkt 5 Sekunden
* - Programm patched Funktion 2 auf Funktion 1
* - LED soll nun blinken
*
*/
#include //Declarations from DAVE3 Code Generation (includes SFR declaration)
#include "timer.h"
#include "gpio.h"
unsigned int fp_remap_tab[8] __attribute__((aligned(64))); // Remap Table 8 word alligned
struct fpb {
uint32_t control; // Control register
uint32_t *remap; // remap register
uint32_t comp[6]; // address comparators
uint32_t lit[2]; // literal comparators
};
void func1(void)
{
static struct tim_ t;
timer(&t, STOP);
if (t.tics > 500) {
TOGGLE_P1_1;
timer(&t, START);
}
}
void func2(void)
{
static struct tim_ t;
timer(&t, STOP);
if (t.tics > 500) {
TOGGLE_P1_0;
timer(&t, START);
}
}
int main(void)
{
struct tim_ t;
unsigned char switched = FALSE;
unsigned int func_addr;
struct fpb *fp; // Pointer auf die Flash Patch Unit
DAVE_Init(); // Initialization of DAVE Apps
timer_install();
Control_P1_0(OUTPUT_PP_GP, MEDIUM);
Control_P1_1(OUTPUT_PP_GP, MEDIUM);
fp = (struct fpb *)0xe0002000; // base addr FPB
timer(&t, START);
while(1)
{
func1();
timer(&t, STOP);
if (t.tics > 5000) {
if (!switched) {
switched = TRUE;
fp_remap_tab[5] = func2; // remap to this function
func_addr = func1;
func_addr |= 0x01;
fp->comp[5] = func_addr; // Adresse von Func1 soll gepatched werden
func_addr = &fp_remap_tab;
fp->remap = func_addr; // Adresse der Remap Table eintragen
fp->control |= 0x03; // Enable
}
}
}
return 0;
}
All Registers are set to the values expected, but there is simply no effect.
Any ideas ?
Show Less
This is done on a Relax light board.
Funktion 1 blinks with LED1.
After 5 seconds I want to reprogram the FPB to have Funktion 2 ( blinking LED 2 ) running instead of Funktion 1
The code Looks like this:
/*
* Main.c
*
* Created on: 20.08.2014
* Author: trapp
*
* Test funktionen für die Flash Patch Unit
*
* - Programm wird gestartet LED1 blinkt 5 Sekunden
* - Programm patched Funktion 2 auf Funktion 1
* - LED soll nun blinken
*
*/
#include
#include "timer.h"
#include "gpio.h"
unsigned int fp_remap_tab[8] __attribute__((aligned(64))); // Remap Table 8 word alligned
struct fpb {
uint32_t control; // Control register
uint32_t *remap; // remap register
uint32_t comp[6]; // address comparators
uint32_t lit[2]; // literal comparators
};
void func1(void)
{
static struct tim_ t;
timer(&t, STOP);
if (t.tics > 500) {
TOGGLE_P1_1;
timer(&t, START);
}
}
void func2(void)
{
static struct tim_ t;
timer(&t, STOP);
if (t.tics > 500) {
TOGGLE_P1_0;
timer(&t, START);
}
}
int main(void)
{
struct tim_ t;
unsigned char switched = FALSE;
unsigned int func_addr;
struct fpb *fp; // Pointer auf die Flash Patch Unit
DAVE_Init(); // Initialization of DAVE Apps
timer_install();
Control_P1_0(OUTPUT_PP_GP, MEDIUM);
Control_P1_1(OUTPUT_PP_GP, MEDIUM);
fp = (struct fpb *)0xe0002000; // base addr FPB
timer(&t, START);
while(1)
{
func1();
timer(&t, STOP);
if (t.tics > 5000) {
if (!switched) {
switched = TRUE;
fp_remap_tab[5] = func2; // remap to this function
func_addr = func1;
func_addr |= 0x01;
fp->comp[5] = func_addr; // Adresse von Func1 soll gepatched werden
func_addr = &fp_remap_tab;
fp->remap = func_addr; // Adresse der Remap Table eintragen
fp->control |= 0x03; // Enable
}
}
}
return 0;
}
All Registers are set to the values expected, but there is simply no effect.
Any ideas ?
XMC™
An updated set of XMC1000 PCB design data is available at the XMC1000 webpage:http://www.infineon.com/cms/en/product/microcontroller/32-bit-industrial-microcontroller-based-on-arm-registered-cortex-tm-m/32-bit-xmc1000-industrial-microcontroller-arm-registered-cortex-tm-m0/channel.html?channel=db3a30433c1a8752013c1aa35a6a0029&tab=2...
Show More
An updated set of XMC1000 PCB design data is available at the XMC1000 webpage:
http://www.infineon.com/cms/en/product/microcontroller/32-bit-industrial-microcontroller-based-on-arm-registered-cortex-tm-m/32-bit-xmc1000-industrial-microcontroller-arm-registered-cortex-tm-m0/channel.html?channel=db3a30433c1a8752013c1aa35a6a0029&tab=2
The new version includes the XMC1xxx-Q024 and XMC1xxxx-Q040 package. Show Less
http://www.infineon.com/cms/en/product/microcontroller/32-bit-industrial-microcontroller-based-on-arm-registered-cortex-tm-m/32-bit-xmc1000-industrial-microcontroller-arm-registered-cortex-tm-m0/channel.html?channel=db3a30433c1a8752013c1aa35a6a0029&tab=2
- PCB Footprints & Symbols – XMC1000 – Altium
The new version includes the XMC1xxx-Q024 and XMC1xxxx-Q040 package. Show Less
XMC™
Hello team,I am working wtih XMC4400 and XMC 4500 controllers for one of requirement of motor control.PWM frequency: 90KHzMotor speed : 60KRPMSensorle...
Show More
Hello team,
I am working wtih XMC4400 and XMC 4500 controllers for one of requirement of motor control.
PWM frequency: 90KHz
Motor speed : 60KRPM
Sensorless FOC control
Please help me by providing FOC execution time and CPU load in percentage when PWM frequency is 90KHz and let me know what FOC frequency you have considered while execution.
Regards,
Pranoti Show Less
I am working wtih XMC4400 and XMC 4500 controllers for one of requirement of motor control.
PWM frequency: 90KHz
Motor speed : 60KRPM
Sensorless FOC control
Please help me by providing FOC execution time and CPU load in percentage when PWM frequency is 90KHz and let me know what FOC frequency you have considered while execution.
Regards,
Pranoti Show Less
XMC™
Hello everyone,I have a problem in setting up the CAN-communication properly.The "CAN001" app is used with 2 message objects for transmit (LMO1) and r...
Show More
Hello everyone,
I have a problem in setting up the CAN-communication properly.
The "CAN001" app is used with 2 message objects for transmit (LMO1) and receive (LMO2). In both cases the acceptance mask is set to "0" and interrupts are enabled as well as connected to the "NVIC002" - app.
Everytime I send a message to the XMC4500, I want to change my destination address as well as my data. I've tried it in many different ways and found 2 issues with updating the MO-data-registers.
Firstly my destination address is fixed as well as my data. The length of my databytes is 6 but if I change it to 7 or 8, the message won't be received by my destination-tablet.
The other problem is changing the destination address in dependence on my source address. For example I get a message from 0x111 and it should be send to 0x112 with the same data and on the same CAN-port.
I attached my receive-routine below as well as the project via an archive file and hope, that somebody can help me.
best regards,
Sebastian
I have a problem in setting up the CAN-communication properly.
The "CAN001" app is used with 2 message objects for transmit (LMO1) and receive (LMO2). In both cases the acceptance mask is set to "0" and interrupts are enabled as well as connected to the "NVIC002" - app.
Everytime I send a message to the XMC4500, I want to change my destination address as well as my data. I've tried it in many different ways and found 2 issues with updating the MO-data-registers.
Firstly my destination address is fixed as well as my data. The length of my databytes is 6 but if I change it to 7 or 8, the message won't be received by my destination-tablet.
The other problem is changing the destination address in dependence on my source address. For example I get a message from 0x111 and it should be send to 0x112 with the same data and on the same CAN-port.
I attached my receive-routine below as well as the project via an archive file and hope, that somebody can help me.
best regards,
Sebastian
Show Less
/* Check receive pending status in LMO2 */
if(CAN001_GetMOFlagStatus(&CAN001_Handle0,2,RECEIVE_PENDING) == CAN_SET)
{
/* Clear the flag */
CAN001_ClearMOFlagStatus(&CAN001_Handle0,2,RECEIVE_PENDING);
/* Read the received Message object and stores in variable CanRecMsgObj */
CAN001_ReadMsgObj(&CAN001_Handle0,&CanRecMsgObj,2);
TempMsgHandle.Identifier = 0x123;
TempMsgHandle.data[0] = 0xEF;
TempMsgHandle.data[1] = 0xEF;
TempMsgHandle.data[2] = 0xEF;
TempMsgHandle.data[3] = 0xEF;
TempMsgHandle.data[4] = 0xEF;
TempMsgHandle.data[5] = 0xEF;
TempMsgHandle.data[6] = 0xEF;
TempMsgHandle.data[7] = 0xEF;
TempMsgHandle.DataLength = 6; //7 and 8 is not possible
TempMsgHandle.IDExten =0;
TempMsgHandle.MsgObjEN = CAN001_ENABLE; // must be enabled
TempMsgHandle.MsgObjType = 1; // Tx=1 or Rx=0
CAN001_ConfigMsgObj(&CAN001_Handle0, &TempMsgHandle, 1);
CAN001_SendDataFrame(&CAN001_Handle0,1);
}
/* Check for Node error */
if(CAN001_GetNodeFlagStatus(&CAN001_Handle0,CAN001_ALERT_STATUS) == CAN_SET)
{
/* Clear the flag */
CAN001_ClearNodeFlagStatus(&CAN001_Handle0,CAN001_ALERT_STATUS);
}
XMC™
I have 3 boards on the same CAN bus, which start/power up at the same time. Each board TX a heart beat message every 100ms. It looks like some time on...
Show More
I have 3 boards on the same CAN bus, which start/power up at the same time. Each board TX a heart beat message every 100ms. It looks like some time one board stops transmitting the CAN message, and then other has the same symptom. Always one board is not TX a CAN message.
I am using the CAN001 App to do the CAN TX process. Wondering if maybe I am not handling a specific error during TX? Each board also has a different address/mask setup. Show Less
I am using the CAN001 App to do the CAN TX process. Wondering if maybe I am not handling a specific error during TX? Each board also has a different address/mask setup. Show Less
XMC™
Hi there, is there any good examples of this? I'm trying to find my way into DMA ussing dave apps, But I can't quite find the way.Thanks in advance
Show More
Hi there, is there any good examples of this?
I'm trying to find my way into DMA ussing dave apps, But I can't quite find the way.
Thanks in advance Show Less
I'm trying to find my way into DMA ussing dave apps, But I can't quite find the way.
Thanks in advance Show Less
Trending discussions