XMC™ Forum Discussions
XMC™
Hello,I am using DACWG001 in Singe Value mode to output an analog voltage. However, the DAC is setting crazy voltages:Input | Output0 |...
Show More
Hello,
I am using DACWG001 in Singe Value mode to output an analog voltage. However, the DAC is setting crazy voltages:
Input | Output
0 | 0.3 (correct)
1000 | 1.7 (incorrect)
2000 | 0.8 (incorrect)
2500 | 0.4 (incorrect)
2550 | 2.1 (incorrect)
2600 | 1.7 (correct)
2650 | 1.2 (incorrect)
3000 | 2.2 (incorrect)
4095 | 2.4 (incorrect)
Has anyone else encountered the same problem and know if I'm the one doing something wrong?
EDIT: I have found out what I was doing wrong; in scale I thought 1 means multiplying with 1 but turns out it's 2^1, my bad. While that doesn't explain the weird voltage levels, now that I set it at 0 everythings's fine. Show Less
I am using DACWG001 in Singe Value mode to output an analog voltage. However, the DAC is setting crazy voltages:
Input | Output
0 | 0.3 (correct)
1000 | 1.7 (incorrect)
2000 | 0.8 (incorrect)
2500 | 0.4 (incorrect)
2550 | 2.1 (incorrect)
2600 | 1.7 (correct)
2650 | 1.2 (incorrect)
3000 | 2.2 (incorrect)
4095 | 2.4 (incorrect)
Has anyone else encountered the same problem and know if I'm the one doing something wrong?
EDIT: I have found out what I was doing wrong; in scale I thought 1 means multiplying with 1 but turns out it's 2^1, my bad. While that doesn't explain the weird voltage levels, now that I set it at 0 everythings's fine. Show Less
XMC™
Hello,I'm wondering what the MAC address of my Relax board is.Is it defined in the XMC4500 or in the PHY? Or is there no "official" MAC address, so wh...
Show More
Hello,
I'm wondering what the MAC address of my Relax board is.
Is it defined in the XMC4500 or in the PHY? Or is there no "official" MAC address, so which should I take then?
Thank you in advance.
Best regards
Lonz Show Less
I'm wondering what the MAC address of my Relax board is.
Is it defined in the XMC4500 or in the PHY? Or is there no "official" MAC address, so which should I take then?
Thank you in advance.
Best regards
Lonz Show Less
XMC™
Hi all!I've having an issue with my XMC4500 relex kit and usic channel. Here's my code:volatile uint8_t tx_completion_0 = 0; /* Transmit callback hand...
Show More
Hi all!
I've having an issue with my XMC4500 relex kit and usic channel. Here's my code:
As you can see it's almost a copy from the I2C example, but still doesn't give me any output ( I configured the end of transmit callback to be function tx_callback_0 and the pins to be SCl:0.8 and SDA:1.5)
and in the debugger when I lock at USIC0_C0 address I find all ones
Thanks in advance! Show Less
I've having an issue with my XMC4500 relex kit and usic channel. Here's my code:
volatile uint8_t tx_completion_0 = 0;
/* Transmit callback handling */
void tx_callback_0(void)
{
tx_completion_0 = 1;
}
int main(void)
{
DAVE_STATUS_t status;
uint8_t tr1[7] = { OLED_CONTROL_BYTE_CMD_STREAM, OLED_CMD_SET_COLUMN_RANGE, 0x00, 0x7F, OLED_CMD_SET_PAGE_RANGE,0x00, 0x07 };
status = DAVE_Init(); /* Initialization of DAVE APPs */
XMC_DEBUG("here at least?...")
if(status == DAVE_STATUS_FAILURE)
{
/* Placeholder for error handler code. The while loop below can be replaced with an user error handler. */
XMC_DEBUG("DAVE APPs initialization failed\n");
while(1U)
{
}
}
/* Placeholder for user application code. The while loop below can be replaced with user application code. */
while(1U)
{
I2C_MASTER_Transmit(&I2C_MASTER_0, true, OLED_I2C_ADDRESS, tr1, 7, true );
while(!tx_completion_0);
tx_completion_0 = 0;
for(uint16_t i=0;i<1024;i++){
I2C_MASTER_SendStart(&I2C_MASTER_0, OLED_I2C_ADDRESS, XMC_I2C_CH_CMD_WRITE);
I2C_MASTER_TransmitByte(&I2C_MASTER_0, OLED_CONTROL_BYTE_DATA_STREAM);
while(!tx_completion_0);
tx_completion_0 = 0;
for (uint8_t x=0; x<16; x++) {
I2C_MASTER_TransmitByte(&I2C_MASTER_0, 0x81);
while(!tx_completion_0);
tx_completion_0 = 0;
i++;
}
I2C_MASTER_SendStop(&I2C_MASTER_0);
}
}
}
As you can see it's almost a copy from the I2C example, but still doesn't give me any output ( I configured the end of transmit callback to be function tx_callback_0 and the pins to be SCl:0.8 and SDA:1.5)
and in the debugger when I lock at USIC0_C0 address I find all ones
Thanks in advance! Show Less
XMC™
Hello! I have a doubt, and was wondering if you could help me. I designed a PCB where I place my XMC4500 board. I program the board and then I place i...
Show More
Hello!
I have a doubt, and was wondering if you could help me.
I designed a PCB where I place my XMC4500 board. I program the board and then I place it on the PCB, that feeds power to the XMC and receives the signals for ADCs, PWMs, etc.
I am using xSPY and UART communication to debug my code. I put a stream box in an xSPY window and see if the variables take the correct value for each input. For this, I need to use the debugger and put the XMC in run mode.
This is all working well when I feed the XMC via USB port.
My question is, having my PCB feeding the XMC, can I connect it to a USB port and run the debugger safely, or do I risk burning the XMC and/or my USB port?
Thanks so much and its OK to laugh at the question if it is ridiculous 🙂 Show Less
I have a doubt, and was wondering if you could help me.
I designed a PCB where I place my XMC4500 board. I program the board and then I place it on the PCB, that feeds power to the XMC and receives the signals for ADCs, PWMs, etc.
I am using xSPY and UART communication to debug my code. I put a stream box in an xSPY window and see if the variables take the correct value for each input. For this, I need to use the debugger and put the XMC in run mode.
This is all working well when I feed the XMC via USB port.
My question is, having my PCB feeding the XMC, can I connect it to a USB port and run the debugger safely, or do I risk burning the XMC and/or my USB port?
Thanks so much and its OK to laugh at the question if it is ridiculous 🙂 Show Less
XMC™
Hi,I am evaluating the maximum speed which could be achieved by the XMC4800 on the Relax Kit v1.I am using a self implemented bare bone UDP packet bui...
Show More
Hi,
I am evaluating the maximum speed which could be achieved by the XMC4800 on the Relax Kit v1.
I am using a self implemented bare bone UDP packet builder and the function XMC_ETH_MAC_SendFrame() from XMCLib.
Latest DAVE 4.1.x with latest XMCLibs. uC set on 144 Mhz and ETH-PHY and ETH configured and setup as in the demo "XMC4700/XMC4800 Web Server Demo including MicroSD card access".
Forcing to 10 Mbit/s on each side I get a little bit over 1 MebiByte/s as transfer rate with a 1024 byte UDP payload. This is saturated.
Measured via PC on Windows with Wireshark with an Intel Pro 1 GBit/s NIC.
Using auto negotiaton I get 100 Mbit/s on each side as expected.
Now I get 6,72 MebiByte/s as transfer rate with a 1024 byte UDP payload. Transfer lasts ~1,5 s for 10 MebiByte.
This is not even close to saturation which should be around 11 MebiByte/s.
This is the main loop on sending.
packetCount is 10 * 1024 and frameLen is 1066 (1024 UDP payload + 42 bytes header).
ETH_SendFrame() returns with 1 after 4 TX frames, which is expected, since the TX buffer size is 4. It gets 0 as soon as new data could be put into the buffers.
Raising the buffer size does not speed up. Also using the optimizer does not help. But as one could see by the return of 1 of ETH_SendFrame() there is no prozessor bottleneck.
Is this what i should expect? Only 60% maximum speed on 100 MBit/s?
Thanks for help. Show Less
I am evaluating the maximum speed which could be achieved by the XMC4800 on the Relax Kit v1.
I am using a self implemented bare bone UDP packet builder and the function XMC_ETH_MAC_SendFrame() from XMCLib.
Latest DAVE 4.1.x with latest XMCLibs. uC set on 144 Mhz and ETH-PHY and ETH configured and setup as in the demo "XMC4700/XMC4800 Web Server Demo including MicroSD card access".
Forcing to 10 Mbit/s on each side I get a little bit over 1 MebiByte/s as transfer rate with a 1024 byte UDP payload. This is saturated.
Measured via PC on Windows with Wireshark with an Intel Pro 1 GBit/s NIC.
Using auto negotiaton I get 100 Mbit/s on each side as expected.
Now I get 6,72 MebiByte/s as transfer rate with a 1024 byte UDP payload. Transfer lasts ~1,5 s for 10 MebiByte.
This is not even close to saturation which should be around 11 MebiByte/s.
This is the main loop on sending.
for (uint16_t i = 0; i < packetCount; i++) {
while (ETH_SendFrame((uint8_t*) &udpIp4Packet, frameLen))
;
}
packetCount is 10 * 1024 and frameLen is 1066 (1024 UDP payload + 42 bytes header).
ETH_SendFrame() returns with 1 after 4 TX frames, which is expected, since the TX buffer size is 4. It gets 0 as soon as new data could be put into the buffers.
Raising the buffer size does not speed up. Also using the optimizer does not help. But as one could see by the return of 1 of ETH_SendFrame() there is no prozessor bottleneck.
Is this what i should expect? Only 60% maximum speed on 100 MBit/s?
Thanks for help. Show Less
XMC™
HiI am trying to generate some kind of signal on a particular pin. Part of that signal should be generated by ordinary GPIO actions and part of that ...
Show More
Hi
I am trying to generate some kind of signal on a particular pin. Part of that signal should be generated by ordinary GPIO actions and part of that signal should also be generated by UART.
In fact, I am trying to implement the DMX512 protocol.
What I currently do is the following:
My GPIO configuration is for pin 5.1
My UART configuration is also set for pin 5.1 , but with configuration mode equal to XMC_GPIO_MODE_OUTPUT_OPEN_DRAIN_ALT1
I can generate the BREAK and MAB signals correctly.
Sending the data over uart seems to be working too, except when I have sent my last uart frame it seems that the stop-bits are lost.
In the ISR 'dmx512_slotTransmittedInterruptHandler', I check if the last slot is sent and set everything back such that the BREAK is sent again.
I sent data for 3 slots (values 1 , 2, 3).
This is my signal. As you can see, the last slot has no stop-bits:
Is there someone who can help me. I'm struggling for it for a while already. Show Less
I am trying to generate some kind of signal on a particular pin. Part of that signal should be generated by ordinary GPIO actions and part of that signal should also be generated by UART.
In fact, I am trying to implement the DMX512 protocol.
What I currently do is the following:
My GPIO configuration is for pin 5.1
My UART configuration is also set for pin 5.1 , but with configuration mode equal to XMC_GPIO_MODE_OUTPUT_OPEN_DRAIN_ALT1
I can generate the BREAK and MAB signals correctly.
Sending the data over uart seems to be working too, except when I have sent my last uart frame it seems that the stop-bits are lost.
In the ISR 'dmx512_slotTransmittedInterruptHandler', I check if the last slot is sent and set everything back such that the BREAK is sent again.
void dmx512_interruptHandler(void)
{
TIMER_ClearEvent(&TIMER_0);
if (dmx512_state == TRANSMIT_MAB) {
TIMER_Stop(&TIMER_0);
TIMER_SetTimeInterval(&TIMER_0, 1200); // MAB = 12us
TIMER_Start(&TIMER_0);
DIGITAL_IO_SetOutputHigh(&DIGITAL_IO_0);
dmx512_state = PREPARE_SLOTS;
}
else if (dmx512_state == PREPARE_SLOTS) {
current_slot = 0;
TIMER_Stop(&TIMER_0);
TIMER_SetTimeInterval(&TIMER_0, 4400); // SLOT = 44us
TIMER_Start(&TIMER_0);
XMC_GPIO_Init(UART_0.config->tx_pin_config->port, UART_0.config->tx_pin_config->pin, UART_0.config->tx_pin_config->config);
dmx512_state = TRANSMIT_SLOTS;
}
else if (dmx512_state == TRANSMIT_SLOTS) {
UART_Transmit(&UART_0, &slot_data[current_slot], sizeof(slot_data[current_slot]));
}
}
void dmx512_slotTransmittedInterruptHandler(void)
{
UART_ClearFlag(&UART_0, XMC_UART_CH_STATUS_FLAG_TRANSMITTER_FRAME_FINISHED);
if (++current_slot > NUMBER_SLOTS) {
dmx512_state = TRANSMIT_BREAK;
}
}
int main(void)
{
...
dmx512_state = TRANSMIT_BREAK;
while(1U)
{
switch(dmx512_state)
{
case TRANSMIT_BREAK:
start();
break;
default : break;
}
}
}
void start()
{
current_slot = 0;
DIGITAL_IO_Init(&DIGITAL_IO_0);
TIMER_Stop(&TIMER_0);
TIMER_SetTimeInterval(&TIMER_0, 17600); // BREAK = 176us
TIMER_Start(&TIMER_0);
DIGITAL_IO_SetOutputLow(&DIGITAL_IO_0);
dmx512_state = TRANSMIT_MAB;
}
I sent data for 3 slots (values 1 , 2, 3).
This is my signal. As you can see, the last slot has no stop-bits:
Is there someone who can help me. I'm struggling for it for a while already. Show Less
XMC™
Hello,I can not find the maximum ratings for the XMC4500 Relax Kit Lite neither in the manuual for the Rleax Kit Lite nor in the documentation of the ...
Show More
Hello,
I can not find the maximum ratings for the XMC4500 Relax Kit Lite neither in the manuual for the Rleax Kit Lite nor in the documentation of the XMC4500.
What are they?
EDIT: Found them. Show Less
I can not find the maximum ratings for the XMC4500 Relax Kit Lite neither in the manuual for the Rleax Kit Lite nor in the documentation of the XMC4500.
What are they?
EDIT: Found them. Show Less
XMC™
Above is my thread in the DAVE Section, I am not quite sure where to put it.https://www.infineonforums.com/threads/4457-Port-control-in-SPI-half-duplex-mode-Seeing-dummy-bytes-on-MOSI-MISO-channel
Show More
Above is my thread in the DAVE Section, I am not quite sure where to put it.
https://www.infineonforums.com/threads/4457-Port-control-in-SPI-half-duplex-mode-Seeing-dummy-bytes-on-MOSI-MISO-channel Show Less
https://www.infineonforums.com/threads/4457-Port-control-in-SPI-half-duplex-mode-Seeing-dummy-bytes-on-MOSI-MISO-channel Show Less
XMC™
When I run debug mode by using new XMC1300 CPU Card, DAVE request to update J-link.But update process is failure and get following message."J-link GDB...
Show More
When I run debug mode by using new XMC1300 CPU Card, DAVE request to update J-link.
But update process is failure and get following message.
"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, seed the JlinkGDBServerCL console."
How can I fixed it?
JlinkGDBServerCL console message as below
==============================================
SEGGER J-Link GDB Server V5.12g Command Line Version
JLinkARM.dll V5.12g (DLL compiled May 27 2016 16:57:47)
-----GDB Server start settings-----
GDBInit file: none
GDB Server Listening port: 2331
SWO raw output listening port: 2332
Terminal I/O port: 2333
Accept remote connection: localhost only
Generate logfile: off
Verify download: on
Init regs on start: on
Silent mode: off
Single run mode: on
Target connection timeout: 0 ms
------J-Link related settings------
J-Link Host interface: USB
J-Link script: none
J-Link settings file: none
------Target related settings------
Target device: XMC1302-T038x0200
Target interface: SWD
Target interface speed: 1000kHz
Target endian: little
Connecting to J-Link...
J-Link is connected.
Firmware: J-Link Lite-XMC4200 Rev.1 compiled Jan 14 2016 11:19:27
Hardware: V1.00
S/N: 591025313
Checking target voltage...
Target voltage: 3.30 V
Listening on TCP/IP port 2331
Connecting to target...ERROR: Could not connect to target.
Target connection failed. GDBServer will be closed...Restoring target state and closing J-Link connection...
Shutting down... Show Less
But update process is failure and get following message.
"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, seed the JlinkGDBServerCL console."
How can I fixed it?
JlinkGDBServerCL console message as below
==============================================
SEGGER J-Link GDB Server V5.12g Command Line Version
JLinkARM.dll V5.12g (DLL compiled May 27 2016 16:57:47)
-----GDB Server start settings-----
GDBInit file: none
GDB Server Listening port: 2331
SWO raw output listening port: 2332
Terminal I/O port: 2333
Accept remote connection: localhost only
Generate logfile: off
Verify download: on
Init regs on start: on
Silent mode: off
Single run mode: on
Target connection timeout: 0 ms
------J-Link related settings------
J-Link Host interface: USB
J-Link script: none
J-Link settings file: none
------Target related settings------
Target device: XMC1302-T038x0200
Target interface: SWD
Target interface speed: 1000kHz
Target endian: little
Connecting to J-Link...
J-Link is connected.
Firmware: J-Link Lite-XMC4200 Rev.1 compiled Jan 14 2016 11:19:27
Hardware: V1.00
S/N: 591025313
Checking target voltage...
Target voltage: 3.30 V
Listening on TCP/IP port 2331
Connecting to target...ERROR: Could not connect to target.
Target connection failed. GDBServer will be closed...Restoring target state and closing J-Link connection...
Shutting down... Show Less
XMC™
Hi,today I tried to revive the XMC 2Go that I had bought some time ago with DAVE 4 64-bit under Windows 10 64-bit. After compiling and uploading the X...
Show More
Hi,
today I tried to revive the XMC 2Go that I had bought some time ago with DAVE 4 64-bit under Windows 10 64-bit. After compiling and uploading the XMC_2Go_Inital_Start_v1.3 project I can see the LEDs blinking as expected, but when I connect to the serial port with Putty or HTERM, I can only see garbage, although the messages seem to appear in the right frequency.
Is there anything special about the Initial Start project under Windows 10? What do I need to do to view the messages sent by the XMC 2Go properly?
Thanks
Stephan Show Less
today I tried to revive the XMC 2Go that I had bought some time ago with DAVE 4 64-bit under Windows 10 64-bit. After compiling and uploading the XMC_2Go_Inital_Start_v1.3 project I can see the LEDs blinking as expected, but when I connect to the serial port with Putty or HTERM, I can only see garbage, although the messages seem to appear in the right frequency.
Is there anything special about the Initial Start project under Windows 10? What do I need to do to view the messages sent by the XMC 2Go properly?
Thanks
Stephan Show Less