Quantcast
Channel: Infineon Forums
Viewing all 9892 articles
Browse latest View live

Clarification of MultiCan handling of transmission failure

$
0
0
In the reference manul for XMC45, figure 18-18 shows the transmission of a message object. According to the figure, the transmission is aborted and no interrupt is generated if transmission was not successful.

Questions:
1. Under what circumstances can the transmission fail?
2. If no interrupt is generated if transmission fails, then how is one to know that buffer is no longer in use by hardware?

PWM with CCU8

$
0
0
Hello,

i am using a XMC1302 for BLDC Control.
With the CCU8 Module I generate the PWM (I use the Multi Channel Update with POSIF).

Each of the 3 Phases use one Timer Slice for the High- and Low Side PWM.

I am able to generate the PWM for the High- and Low-Side Switch (the Low-Side PWM is inverted to the High-Side PWM).
Attachment 2759

My Problem is, for Example in State 1, that the Low-Side of Phase V is not permanent on, it is also switched with PWM.

How can i configure the CCU8 Module, to switch the Low-Side with PWM when the High-Side is switched with PWM and otherwise switch the PIN permanently on (As in the Picture)?

The Code of the Slice Config:

Code:

XMC_CCU8_SLICE_COMPARE_CONFIG_t SLICE_config =
{
        .timer_mode = (uint32_t)XMC_CCU8_SLICE_TIMER_COUNT_MODE_EA,
        .monoshot = (uint32_t)XMC_CCU8_SLICE_TIMER_REPEAT_MODE_REPEAT,
        .shadow_xfer_clear = 0U,
        .dither_timer_period = 0U,
        .dither_duty_cycle = 0U,
        .prescaler_mode = (uint32_t)XMC_CCU8_SLICE_PRESCALER_MODE_NORMAL,
        .mcm_ch1_enable = 1U,
        .mcm_ch2_enable = 0U,
        .slice_status = (uint32_t)XMC_CCU8_SLICE_STATUS_CHANNEL_1,
        .passive_level_out0 = (uint32_t)XMC_CCU8_SLICE_OUTPUT_PASSIVE_LEVEL_LOW,
        .passive_level_out1 = (uint32_t)XMC_CCU8_SLICE_OUTPUT_PASSIVE_LEVEL_LOW,
        .asymmetric_pwm = 0U,
        .invert_out0 = 0U,
        .invert_out1 = 1U,
        .prescaler_initval = 0U,
        .float_limit = 0U,
        .dither_limit = 0U,
        .timer_concatenation = 0U,
};

Thanks!

Regards Denis
?????

PWM output after stop low

$
0
0
Hello,
I would like to generate a slow PWM (turn signal for a car). For that I use to inputs (IN_L and IN_R) to control two different PWM (CCU4). If i stop one PWM at that moment that the assigend output channel is on, it will remain on. How can I change the behaviour so that the output is low?
Thanks
M.Schneiders

xmc1100 ERU

$
0
0
What is the need of ERU. difference between ERU and NVIC. Why we are using ERU instead of NVIC.

Dave Debug Problem

XMC4700 MULTICAN+ Problem by using DAVE 4 apps

$
0
0
Hello,

I have created a MUTLICAN+ program which runs smoothly in loop-back mode. If I switch off the loob-balck mode and try to send via a PCAN-View can messages to my XMC4700 Relax Kit or receive some from it, it does not work. My bus seem to be BUSHEAVY all the time. Now I am unsure whether I have something wrong in the configuration.

In order to send messages without Loob-Balck mode, I have to connect the respective pins (here: P1.12 and P1.13) to the MULTICAN_CONFIG APP, if I understood correctly?
Now I have created over two instances of the DIGITAL_IO APP and assigned them the two pins. Furthermore, I renamed the two instances to CAN_TX and CAN_RX.
CAN_TX was set as Input/Output and CAN_RX as Input. Now I would nevertheless in the "HW Signal Connections" tool of the MULTICAN_CONFIG APP assign the pins as well as the interrupt.

Now I have the problem that I can assign nothing to the transmit node (node0), as well as the receive node (node1). Only their counterparts, as seen below.

# event_lmo_01_rxinp -----> INTERUPT_0, sr_irq
# tx_pin_node1 -----> CAN_TX, pin
# rx_pin_node0 -----> MULTICAN_CONFIG_0, rx_pin_node1

This is the only configuration I could do but now it should really look more like this:

# event_lmo_01_rxinp -----> INTERUPT_0, sr_irq
# rx_pin_node1 -----> CAN_RX, pin
# tx_pin_node0 -----> CAN_TX, pin

However, these settings can not be made !?

I hope you can help me, how I can set with DAVE 4 in the latest version the pins for my XMC4700 Relax Kit correct for CAN right?
As already mentioned in Loop-Back mode everything works without errors!

Best regards
TUMstudent

Compile DAVE generated code on Linux

$
0
0
We are building out SW, including some DAVE generated code, on Linux. This works fine, except for some modules. The PWM_SVM is one. A section in pvm_svm.h looks like this:
Code:

#include <xmc_ccu8.h>
#include <xmc_scu.h>
#include "..\GLOBAL_CCU8\GLOBAL_CCU8.h"
#include <xmc_gpio.h>
#include <DAVE_common.h>
#include "pwm_svm_conf.h"

To compile on Linux, this should be:
Code:

#include <xmc_ccu8.h>
#include <xmc_scu.h>
#include "../GLOBAL_CCU8/global_ccu8.h"
#include <xmc_gpio.h>
#include <DAVE_Common.h>
#include "pwm_svm_conf.h"

File path separator should be / not \, and file name case should match the include statement.

Is it possible to ensure this for all generated code?

XMC4800 + (Rasperry Pi) + cycloneTCP tcp/ip stack

$
0
0
Hi Dimitri,

If you make use of Keil MDK-ARM, then you can upgrade the Oryx-Embedded::Middleware software pack to version 1.7.6. There are some example projects that demonstrate CycloneTCP + CMSIS-RTOS directly on the XMC4800 Relax Kit (HTTP server + MQTT client + SNMP agent):

Attachment 2764

Regards,

USIC TX FIFO not transmitting all my data

$
0
0
Deni,

Have you had a chance to look at this? I think there is another thread that is having a very similar problem.

Thanks.
-stv

multiCAN setup confusion.

$
0
0
Got it boys.. forget it.

I wasn't setting the MOFCRn->RXIE, ugh.. one line I overlooked.

I'll post some sample code here once I'm done with getting the DMA to work.

Uploading and flashing Tricore TC1797 memory

$
0
0
Hello,
I need to read the complete memory (Program Flash and Data Flash) from a Tricore TC1797 device, save it on disk and then deploying that retrieved flash content into another new TC1797.
I was thinking about using Infineon Memtool software + DAS + MiniWiggler V3.
Is that a suitable toolchain for my purpose?
May I connect with the Tricore microcontroller using JTAG and DAP?
Many thanks for your assistance

DAS Error device_access

$
0
0
I have been loading program in XE161FL mcu, and now I can't load it anymore. It gives me an error "DAS Error device_access". I didnt do anything between my circuit and the DAP miniwiggler, the error just suddenly appeared I dont know why. Please help me solve the problem. Thanks..

Configure XMC4500 CCU4/8 in Capture mode

$
0
0
Thanks for the help.

I am now able to have a system using CCU4 configured to capture the time. I also tried to configure the system to have concatenation to 32bits.

This is the code I am using:

Code:

#define INPUT_PIN_CC P1_3

const XMC_GPIO_CONFIG_t gpio_config =
{
  .mode = XMC_GPIO_MODE_INPUT_PULL_UP
};


const XMC_CCU4_SLICE_EVENT_CONFIG_t event_config_0 =
{
  .mapped_input = CCU40_IN0_P1_3,
  .edge = XMC_CCU4_SLICE_EVENT_EDGE_SENSITIVITY_RISING_EDGE,
};

const XMC_CCU4_SLICE_EVENT_CONFIG_t event_config_1 =
{
  .mapped_input = CCU40_IN0_P1_3,
  .edge = XMC_CCU4_SLICE_EVENT_EDGE_SENSITIVITY_RISING_EDGE,
};


const XMC_CCU4_SLICE_CAPTURE_CONFIG_t capture_config_0 =
{
  .prescaler_initval = XMC_CCU4_SLICE_PRESCALER_1,
  .timer_concatenation = false
};

const XMC_CCU4_SLICE_CAPTURE_CONFIG_t capture_config_1 =
{
  .prescaler_initval = XMC_CCU4_SLICE_PRESCALER_1,
  .timer_concatenation = true
};

int SpeedMeasure_Config(void)
{
  XMC_GPIO_Init(INPUT_PIN_CC, &gpio_config);

  XMC_CCU4_Init(CCU40, XMC_CCU4_SLICE_MCMS_ACTION_TRANSFER_PR_CR);

  XMC_CCU4_SLICE_CaptureInit(CCU40_CC41, &capture_config_1);
  XMC_CCU4_SLICE_Capture0Config(CCU40_CC41, XMC_CCU4_SLICE_EVENT_0);
  XMC_CCU4_SLICE_ConfigureEvent(CCU40_CC41, XMC_CCU4_SLICE_EVENT_0, &event_config_1);

  XMC_CCU4_EnableClock(CCU40, 1);
  XMC_CCU4_SLICE_SetTimerPeriodMatch(CCU40_CC41, 0xffff);


  XMC_CCU4_SLICE_CaptureInit(CCU40_CC40, &capture_config_0);
  XMC_CCU4_SLICE_Capture0Config(CCU40_CC40, XMC_CCU4_SLICE_EVENT_0);
  XMC_CCU4_SLICE_ConfigureEvent(CCU40_CC40, XMC_CCU4_SLICE_EVENT_0, &event_config_0);
  XMC_CCU4_EnableClock(CCU40, 0);
  XMC_CCU4_SLICE_SetTimerPeriodMatch(CCU40_CC40, 0xffff);

  XMC_CCU4_EnableShadowTransfer(CCU40, XMC_CCU4_SHADOW_TRANSFER_SLICE_0 | XMC_CCU4_SHADOW_TRANSFER_SLICE_1);


  XMC_CCU4_SLICE_EnableMultipleEvents(CCU40_CC40, XMC_CCU4_SLICE_MULTI_IRQ_ID_EVENT0);
  XMC_CCU4_SLICE_SetInterruptNode(CCU40_CC40, XMC_CCU4_SLICE_IRQ_ID_EVENT0, 1);


  NVIC_SetPriority(CCU40_1_IRQn, NVIC_EncodePriority(NVIC_GetPriorityGrouping(), 63, 0));
  NVIC_EnableIRQ(CCU40_1_IRQn);

  XMC_CCU4_SLICE_StartTimer(CCU40_CC40);
  XMC_CCU4_SLICE_StartTimer(CCU40_CC41);

  return 0;
}

Could you please confirm that the configuration I am doing is the correct one regarding the concatenation?

Best regards,
Filipe

PHY compatibility difference DAVE 3 DAVE 4

$
0
0
Hi,

thanks! That did it. Problem solved.

Unresolved breakpoints in debugger

$
0
0
Dear Robiwan,

I have this problem with my project.
I have two examples, in one example I am able to set break point but in another one no! :(
The point I could not understand is that when I change the workspace situation changes and I am not able to set breakpoint in both projects!
in both cases I have set the project in Debug mode not release.

I will really appreciate if someone can help me.

best regards,

very weird issue debugging XMC4700 in DAVE4 - pls help

$
0
0
Hi Travis,

Sorry I hab´ve nearby the same problem.
I worke with the XMC4500-kid and I'm able to debug my code in Dave3 but not in Dave4.
"No source available 0x0"
My Segger is:
J-Link ARM V4.80F
J-Link V6.00d
J-Link V6.12g
Thank you for any help!!

Bernd

No BMI Button In Dave4

$
0
0
Hi

The BMI tool is only available if the current active project is for XMC1000 family.
If you need a standalone tool for modifying the BMI, have a look to XMC Flasher

Regards,
Jesus

Multiple external interrupts on XMC4300

$
0
0
Hey

It seemed to be a signal problem. The signal slope was too bad. Solved it with a schmitt trigger.

Greetings

SSC Tool, SSC_Device, and structure for category strings

$
0
0
Hello

I have an ethercat project up and running on an XMC4800.

When I start reading the category strings section of the eeprom, the first string returned is always "SSC_Device", the second string is my selected device name and following this are my input and output definitions, which matches what I can see in the epprom.h file generated by SSC Tool.

But but but, I have never entered a string with the content "SSC_Device", I can see SSC Tool specifies a a SSC_Devices group in the generated .xml file, but I cannot find this group in the UI and the XMC_ECAT_SSC_Config.xml file does not mention any groups.

So my questions are.

Is the "SSC_Device" string some hidden part of the standard?

Can I change or get rid of this SSC_Device string?

is there a standard for how the category strings section is organized?

File Transfer on EtherCAT - FoE, firmware update using XMC4800

$
0
0
Just want to add my 2 cent.

The example works great, and has a proper explanation for creating a .bin file you can transfer to the slave, but there are some small traps.

If you end up in a state where the slave has to erase during the update, the download will fail with a timeout.
Use TwinCAT, with a supported network adapter.
Stay with TwinCAT until everything works, I tried with SOEM and there seems to be a small bug in what SSC Tool writes to eeprom and what SOEM reads, it's possible to fix, but it's not something you want struggle with before your FoE implementation actually works.
Viewing all 9892 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>