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

Compatibility EtherCAT Slave Stack Code Version 5.12

$
0
0
The examples distributed as of today are compatible to the EtherCAT Slave Stack Code 5.11 which is distributed by the ETG.
The examples are not compatible to the EtherCAT Slave Stack Code 5.12 in minor aspects. However the differences are minor, the compilation will not work out of the box.
We will release an update of the ECAT_APP in the short term to overcome these compatibility issues.
Beside the pure APP also all EtherCAT related examples will be updated.

Until then please use SSC5.11 from the ETG.

FAQ for XMC4800 EtherCAT

Build options used for building newlib and so in DAVE (tracing memcpy performance)

$
0
0
Hi, we are tracing some performance issues in project for XMC4800 developed in DAVE (4.3.2). We would like to trace the problem down to the libc sources level. The "newlib" project sources, to be exact, part of GNU Tools for ARM Embedded Processors 4.9 - Q4 2014 package.

The sources are available, but that's not all - there are also build options used to build library binaries distributed with DAVE which significantly defines the behavior. For example, if __OPTIMIZE_SIZE__ was defined during build or not. Is this documented somewhere?

To be concrete, we are tracing poor memcpy() performance, which seems to to copy byte-by-byte even in 32bit aligned case. Trivial implementation with for cycle and int-by-int copy is ~ 4 times faster.

Simulation not working for Rfid based security system

$
0
0
I have been working on this project for a week, spending at least 2-3 hours daily on the computer trying to figure it out. I searched a lot of similar codes for this project and eventually, i successfully created a Hex file for the same. But the problem is that i am not able to run this on Proteus. The simulation starts successfully but nothing happens when i type, even the LCD doesn't display anything. It would be great if someone help me out because i am quite on the verge on loosing my mind here. I have absolutely no background on electronics and have to make this project because the subject requires it. I have included the Proteus file, C file and the HEX file https://drive.google.com/file/d/1dQ2...w?usp=drivesdk . Please check it out and tell me what's wrong. Thanks!

17.13 Interrupt Router SRC Registers in tc26xB_um_v1.3

$
0
0
Hi,

I was going through the chapter 17.13 Interrupt Router SRC Registers and in table Table 17-4 Registers Overview - Service Request Control Registers i found a strange behaviour for SRC_HSSLEXI index number.
Shouldn't it be 61? because SRC_HSSLCOKm has index number of 49 when m=1. Same kind of behaviour exsist for SRC_FFTDONE, SRC_FFTERR, and SRC_FFTRFS. Shouldn't their index number be 241, 242, 243 instead oof 441, 422, 423?
its quite confusing for me, can someone please clearify me, why is it so?

Thank You in advance

Best Regards,

Usman Bhinder

days_of_week in RTC_GetTime not updated

$
0
0
Hi,

The issue is fixed in the upcoming release.

Regards,
Jesus

XMC4500 CCU4 32Bit PWM

$
0
0
I am trying to generate a PWM with a 32Bit resolution and 50% duty-cycle on P3.7 using CCU41_CC42 and CCU41_CC43. I wrote the following code to initialize the hardware:
Code:

const XMC_GPIO_CONFIG_t  PWM_pin_config        =
{
        XMC_GPIO_MODE_OUTPUT_PUSH_PULL_ALT3,        //Mode
        XMC_GPIO_OUTPUT_LEVEL_LOW,                                //level
        XMC_GPIO_OUTPUT_STRENGTH_MEDIUM                        //strength
};       
XMC_GPIO_Init(P3_7, &PWM_pin_config);

XMC_CCU4_SLICE_COMPARE_CONFIG_t SLICE_config;       
SLICE_config.timer_mode = (uint32_t) XMC_CCU4_SLICE_TIMER_COUNT_MODE_EA;
SLICE_config.monoshot = (uint32_t) false;
SLICE_config.shadow_xfer_clear = (uint32_t) 0;
SLICE_config.dither_timer_period = (uint32_t) 0;
SLICE_config.dither_duty_cycle = (uint32_t) 0;
SLICE_config.prescaler_mode = (uint32_t) XMC_CCU4_SLICE_PRESCALER_MODE_NORMAL;
SLICE_config.mcm_enable = (uint32_t) 0;
SLICE_config.prescaler_initval = (uint32_t) XMC_CCU4_SLICE_PRESCALER_1;
SLICE_config.float_limit = (uint32_t) 0;
SLICE_config.dither_limit = (uint32_t) 0;
SLICE_config.passive_level = (uint32_t) XMC_CCU4_SLICE_OUTPUT_PASSIVE_LEVEL_LOW;
SLICE_config.timer_concatenation = (uint32_t) 0;

XMC_CCU4_Init(CCU41, XMC_CCU4_SLICE_MCMS_ACTION_TRANSFER_PR_CR);
XMC_CCU4_StartPrescaler(CCU41);
XMC_CCU4_SetModuleClock(CCU41, XMC_CCU4_CLOCK_SCU);

XMC_CCU4_SLICE_CompareInit(CCU41_CC42, &SLICE_config);
SLICE_config.timer_concatenation = 1;
XMC_CCU4_SLICE_CompareInit(CCU41_CC43, &SLICE_config);

XMC_CCU4_SLICE_StartTimer(CCU41_CC42);
XMC_CCU4_SLICE_StartTimer(CCU41_CC43);

The following function is used to set the period and duty-cycle (fixed to 50%):
Code:

void setPeriod(std::uint32_t period)
{
        const uint32_t compare = period/2; //50% PWM

        XMC_CCU4_SLICE_SetTimerPeriodMatch(CCU41_CC42, static_cast<uint16_t>(period & 0xFFFF));
        XMC_CCU4_SLICE_SetTimerPeriodMatch(CCU41_CC43, static_cast<uint16_t>(period >> 16));
        XMC_CCU4_SLICE_SetTimerCompareMatch(CCU41_CC42, static_cast<uint16_t>(compare & 0xFFFF));
        XMC_CCU4_SLICE_SetTimerCompareMatch(CCU41_CC43, static_cast<uint16_t>(compare >> 16));

        XMC_CCU4_EnableShadowTransfer(CCU41, XMC_CCU4_SHADOW_TRANSFER_SLICE_2);
        XMC_CCU4_EnableShadowTransfer(CCU41, XMC_CCU4_SHADOW_TRANSFER_SLICE_3);
}

This all works fine with a period up to 0xFFFF. Everything above that (more than 16Bit set) deactivates the PWM output. Using the debugger I can see that the timer itself is running and the registers are set correctly. What am I doing wrong?

Changing walktime in XMC1202 on the Arduino shield to low values

$
0
0
Hello Dani and Martin,

I interest in what you doing, now I have a project to make flicker simulation on LED.
I try to make current waveform with changing variable CURRENT_RED.
I try to make a square wave but it was not a perfect waveform.
Infineon board needs time to reach maximum current. form 0-100% Current, it needs around 82ms.
I already read infineon manual board page 31, that changing brightness from 0 to Max needs 20479 clock, where clock frequency is 292.237kHz, so it took around 70ms changing the current from 0 to maximum. Is there any way to make it faster? can I change parameter with DIRECTACCESS ?
Attachment 3360Attachment 3361

Best regards,
Eko Purwanto

CHANGING FADERATE TIME on RGB XMC1202

$
0
0
Hello,
I have a project to make flicker simulation. I use Arduino shield RGB XMC1202.
I try to make a square wave with changing CURRENT parameter at Red channel but there is time to take 0-100% Current.
I read infineon manual board on page 31 there is information that

Quote:

Fade Time 0 -> 100%
It takes 20479 dimming clocks for the lamp to dim up from 0 to 100% brightness. The dimming clock frequency is 292.237kHz.
Hence, 20479 dimming clock last approximately 0.07001s.
Fade Time = FADERATE * 0.07001s
A FADERATE value of 0xA leads to a fade time of approximately 700ms
Is this information and what I make is related? Can I make fast changing current from 0-100% instantly?
Attachment 3362 Attachment 3363

I already try this way from the previous thread but nothing change.
I hope someone can help me with this.

Best regards
Eko

Internal FLASH erase/write

$
0
0
Hi Travis and rum,

sorry to wake up and old thread but I am seeing the same behaviour as rum's.

I am trying to erase the last flash sector on an XMC4800 with the "Erase Sector" or "Erase Physical Sector" command when an event occurs but also want to do other stuff while erasing (which takes about 5 seconds) to prevent communication timeouts. However it seems the whole program is stopped during the erase. Even the timers aren't executing meanwhile.

Is it possible to execute code on other flash sectors while one sector is being erased? If so, I would appreciate any sugestions on how to do that.

Thanks,
Al

BSDL for TC237LP-LFBGA292

$
0
0
Hi,

I need the BSDL for Microprocessor SAK-TC237L LFBGA292 package to develop a test.

Where I can find it ?

We appreciate any help.

Regards,

Alcyr

eval board for LIN protocol -> Automotive

$
0
0
Hello
I download that demo-code and compile ...
But maybe I do faulty things?

I use TLE9879 Eval Board and source it with the USB voltage, to run the demo I disabled the "Supply Prewaning enable" Interrupt.
I've connect another TLE9879 board with the Slave demo on LIN Bus.

But there is no communication on the LIN Bus even I wrote direkt a Byte ( "lin_hal_tx_byte(0xD3)" ) on LIN Bus I can see this only on the UART1 TX Pin (P0.1).
I've anyone an answer why?

Thanks for help

TLE493D-W2B6 enabling the wakeup feature?

$
0
0
TLE493D-W2B6

What is the correct way to calculate the wake up and configuration parity in order to enable the wakeup feature?

I am having issues placing this part into wakeup mode. The i2c user manual says for the WU register (0x0D), to enable the WU feature, the CP bit HAS to be 1 (register 0x10) and the CF bit in register 0x06 has to be read as 1.

The problem I am having is that I setup the thresholds in registers 0x07 - 0x0F and I then calculate the parity but I end up with a 0 value that is loaded into CP. If I force CP to 1 regardless, the CF is read as 0. In either condition,
the WA flag in the WU register (0x0D) shows the wake up feature is not enabled.

CAN Repeater / Retransmitter - handling Remote Frames

$
0
0
Hi,

it should be fine with Transmit FIFO, but make sure that you don´t set the message objects of Transmit FIFO to immediate transmission once the remote frame is received.

Regards,
Deni

SPI Transmit Problem on XMC4800

$
0
0
Hello all,

I am new about XMC family. I tried to communicate with my sensor using DAVE apps but When I check signals, transmit signal is false. After that, I tried to communicate use XMC functions but the result is same.

I attached my output signals and my codes.

So,how can I solve my problem ?

XMC_SPI_CH_Init(XMC_SPI1_CH0, &spi_config);
XMC_SPI_CH_SetInputSource(XMC_SPI1_CH0,XMC_SPI_CH_ INPUT_DIN0,USIC1_C0_DX0_P0_5);


XMC_GPIO_SetMode(SPI_MOSI, XMC_GPIO_MODE_OUTPUT_PUSH_PULL_ALT2);
XMC_GPIO_SetMode(SPI_SS, XMC_GPIO_MODE_OUTPUT_PUSH_PULL_ALT2);
XMC_GPIO_SetMode(SPI_SCLK, XMC_GPIO_MODE_OUTPUT_PUSH_PULL_ALT2);
XMC_GPIO_SetMode(SPI_MISO, XMC_GPIO_MODE_INPUT_TRISTATE);


uint16_t readata = 0x85;

XMC_SPI_CH_Start(XMC_SPI1_CH0);

while(1U)
{
XMC_SPI_CH_EnableSlaveSelect(XMC_SPI1_CH0, XMC_SPI_CH_SLAVE_SELECT_0);

/*Sending a byte*/
XMC_SPI_CH_Transmit(XMC_SPI1_CH0,readata, XMC_SPI_CH_MODE_STANDARD);
/*Wait till the byte has been transmitted*/
while((XMC_SPI_CH_GetStatusFlag(XMC_SPI1_CH0) & XMC_SPI_CH_STATUS_FLAG_TRANSMIT_SHIFT_INDICATION) == 0U)
{

}
XMC_SPI_CH_ClearStatusFlag(XMC_SPI1_CH0, XMC_SPI_CH_STATUS_FLAG_TRANSMIT_SHIFT_INDICATION);

/*Disable Slave Select line */
XMC_SPI_CH_DisableSlaveSelect(XMC_SPI1_CH0);

XMC_SPI_CH_EnableSlaveSelect(XMC_SPI1_CH0, XMC_SPI_CH_SLAVE_SELECT_0);



Here is my code using DAVE Apps.


uint8_t readata = 0x85;


uint32_t status1 = 0;
uint32_t status2 = 0;


SPI_MASTER_SetMode(&SPI_MASTER_0, XMC_SPI_CH_MODE_STANDARD);


/* Clear the flags */
SPI_MASTER_ClearFlag(&SPI_MASTER_0,XMC_SPI_CH_STAT US_FLAG_ALTERNATIVE_RECEIVE_INDICATION);
SPI_MASTER_ClearFlag(&SPI_MASTER_0,XMC_SPI_CH_STAT US_FLAG_RECEIVE_INDICATION);

while(1U)
{

SPI_MASTER_Transmit(&SPI_MASTER_0,readata,1);
while(SPI_MASTER_0.runtime->tx_busy);
/* Wait till dummy data is received from epson sensor */
do
{
status1 = SPI_MASTER_GetFlagStatus(&SPI_MASTER_0,XMC_SPI_CH_ STATUS_FLAG_ALTERNATIVE_RECEIVE_INDICATION);
status2 = SPI_MASTER_GetFlagStatus(&SPI_MASTER_0,XMC_SPI_CH_ STATUS_FLAG_RECEIVE_INDICATION);
} while(((status1 == 0) && (status2 == 0)));

/* Clear the flags */
SPI_MASTER_ClearFlag(&SPI_MASTER_0,XMC_SPI_CH_STAT US_FLAG_ALTERNATIVE_RECEIVE_INDICATION);
SPI_MASTER_ClearFlag(&SPI_MASTER_0,XMC_SPI_CH_STAT US_FLAG_RECEIVE_INDICATION);

Build options used for building newlib and so in DAVE (tracing memcpy performance)

Generating Push-PULL PWM signals using CCU8

$
0
0
Hi,

I would suggest that you check PWM_CCU8_EXAMPLE_XMC45. There you already have something that is very close to your application.

Regards,
Deni

Build options used for building newlib and so in DAVE (tracing memcpy performance)

Measurement of Duty Cycle in TLE9879

$
0
0
Dear all,
i want to capture PWM(100hz) duty cycle(from 0% to 100%) in any input in of TLE9879 with GPT1(T2/T3/T4) or GPT2(T5/T6).
Can you tell which MODE of GPT12 can give accurate duty cycle measurement? Any Hints!!!

Regards
SK

FAQ for XMC4800 EtherCAT

$
0
0
Dear Michael,
thank you. Could you also please tell me what's hidden behind the "Map2Level"-function? It's whether defined nor declared in my project...
Viewing all 9892 articles
Browse latest View live


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