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

Motor Control APPs for XMC4700

$
0
0
Why Motor Control APPs are not available for XMC4700. Until now I was thinking that XMC4700
has all features as XMC4500?

SEGGER_RTT XMC4500 Relax Kit

$
0
0
Hey,

i have a Problem with the SEGGER_RTT XMC4500 Relax Kit.

Attachment 2678

I can conect, but i cant receive or transmit anything. Anybobdy knows whats the problem here?
By the way, I tryed this with a xmc1100 (same code, same app ,...) and erverything works fine.

Thx for help!

Andi
Attached Images

XMC4500 Socket server

$
0
0
Hey Jesus,

thanks for the answer, but this part is clear;)

Do you have any code examples for TCPIP Socket Ersver with DHCP or something like this?

Thanks

Andi

IRMCK099M Blank?

$
0
0
Hi. Thanks for the confirmation.

Regards.

Hall sensor and Encoder input to POSIF module of XMC1302

$
0
0
Hi Eric

Thanks for the reply.

There few more questions i have in mind:
- Can the motor driver example (BLDC_SCALAR_SL_XMC13) for XMC1300 be used with XMC1400?
- Are the Pin 2-SWDIO/SPD and PIN 3 - DAP0(clock) to be used for serial wire debug?
- Is the miniwiggler compatable with DAVE V4?

Regards
Jyotirmaya

IRMCK099 download to RAM

$
0
0
Hi Luxun,

Thamks for the reply. It however, does not answer my main question:

"Where can I find information for downloading to RAM of the IRMCK099 by "Custom Method", not the IR Cable thing?"

BTW: Nobody has stock of your EVAL-M1-099M. Anyway, I am not interested in buying it, I need to download to RAM by Custom Method. How can I achieve that?

Thanks!

XMC4800 EtherCAT frame processing

$
0
0
Hi mophong,
the delay from APPL_OutputMapping to APPL_InputMapping origins from the SW-processing inside Slave#1.
While the EPU is triggering this SW-processing, in parallel it forwards the frame to slave#2 on port#1/out.
While slave is still busy on processing APPL_OutputMapping/APPL_InputMapping the frame arrives on Slave#2. The EPU of slave#2 is than triggering the SW-input/output-processing in parallel.

So the delay of slave#1/OutputMapping to slave#2/OutputMapping is more or less the delay you are looking for and which is introduced by the EPU(s) to forward the packet from slave#1 to slave#2.
There is no need to wait for APPL_InputMapping on slave#1 being finished before the frame is forwarded to slave#2.

Kind Regards

Michael

XMC4700. UART receive timeout interrupt - is it possible to?

$
0
0
Hi!

I recently started working with XMC4700. Now I learn its ASC-interface.
Previously, I had experience with many other microcontrollers. In these microcontrollers UART usually has two RX-interrupts: receive timeout interrupt and FIFO interrupt.
But after studying the documentation for USIC XMC4700, I have not found mention about the RX-timeout interrupt.
Do I understand correctly that ASC is not able to generate an interrupt RX-timeout?

Regards,
rst

Detect USB disconnection

$
0
0
Hello AngelB,

is the improved USBD App for DAVE 3 still to be released or has it been cancelled?


Quote:

Originally Posted by AngelB View Post
BTW, we will release soon a new version of the USBD APP for DAVE 3 including the handling of the disconnection-reconnection.

Modbus TCP without RTOS

How to handle CCU timer wraparound in Capture mode?

$
0
0
Hello Jesus,

Thanks for your reply.

That would probably not work for my use case, as I use both Capture Trigger 0 and 1. According to errata for XMC45 (CCU4_AI.001), "CCU4 period interrupt is not generated in capture mode" in that case. Both Capture Triggers are used because I want to get different interrupts for falling and rising edges.

I solved the problem using a software approach. In the ISR, a timestamp was retrieved by other means. The hardware timestamp was not used.

Thanks again for your reply, which should still be useful if only Capture 0 is used.

Best regards,
Fredrik

XMC4800 EtherCAT CiA402 Profile

$
0
0
Hi reTok,
Yes I did, this is my method:
- Use Etmas EtherCAT design tool to generate OD
- Use SSC to generate a temporary CiA402 project
- Refer sample CiA402 code to manually make State machine for your project
And that's it

DSP310 atmospheric pressure sensor

$
0
0
Hello,
I'm highly interested in the new DSP310 atmospheric pressure sensor.
Can you - Infineon - please help me to
- get answers which are not provided in the data sheet (e.g. noise margin)
- get an idea of the price (single sample and quite low volumes)
- kindly ask for a sample

I have developed an aeromedelling altimeter/variometer employing an MS5611 with an elaborate noise filter which features
- quite good filtering and
- really useable filtering speed.
Of course I'm curious if this can be improved with the new DSP360.

Kind regards
Helmut

FAQ for XMC4800 EtherCAT

$
0
0
Hi Guys,

I have some general Questions about the XMC4800.

Generally I want to regulate the frequency of a fan with a frequency converter.
>>The xmc4800 should directly communicate with the frequency converter via ethercat.
>>The xmc4800 should do all the math for the controlling.
>>The xmc4800 gets his control paramteres by an digital air flow sensor (at the moment not sure which communication protocol maybe i2c).
>>The xmc4800 shows me all his actual values on a central computer and from this i can change the control parameters.
For example regulation on 4 m/s and i want to change it to 8 m/s. And just have to type it into an web window (or an other interface).
>>The xmc4800 saves the measurements to a sd-card with timestamp.

Thank you :o

Power consumption of TC233 / TC234 / TC237

$
0
0
Hei

Im a student and analyzing the Infineon TC233 / TC234 / TC237 micro controller with another micro controller.

In case of power consumption of TC233 / TC234 / TC237
In the Table 3-18 Power Supply it is given the Amperes used in Stand by mode , sleep mode and maximum usage situation. How can i decide the power used in these modes !.
What could be the voltage needed to multiply .



Regards
Attached Files

How to find flashing architecture of different vendors through debugger ?

$
0
0
hai to infineon,

1. How you people are finding the different vendor flashing architectures.means for to flash the code into flash memory different vendors uses there own process,
so that process how you are finding through debugger
.
Why i am asking this question means,Your debugger XMC1100 is flahing XMC1100 controller,And one of the ATMEL SAM controller,So how you are finding here, there ATMEL flashing architecture,
through debugger,on what base your finding and flashing.

So for this, i need a way to find different vendor flashing architectures.how we can find,And how we can flash. i need a process for to find flashing architecture of different vendor using SWD protocol.

2. when i am flashing code/data into a flash memory,after that there is more space available in flash memory,So that space, i want to use for to store my personal information is it possible or not.
if possible tell me the process.

i have an urgent need please inform me..as much as possible.

Thanks & Regards
S.SANTHOSH KUMAR.
Embedded Software Developer.

TLF35584 - SPI Write to Protected Registers

$
0
0
Hello,

I want to change the register values (WDCFG0) of the TLF35584VS1. They are protected against being overwritten accidently. Therefore I sent a dedicated 32 Bit UNLOCK sequence via SPI: 0x8756, 0x87DE, 0x86AD and 0x8625.
I checked the status of the protection by reading the register PROTSTAT, I send 0x5000 on MOSI and received 0x8001 on MISO. That means the access to write protected registers is still locked.

So how can I get access to protected registers?

Clean DAVE installation acting strange

$
0
0
Hello,

I tryed to install Dave (v4.3.2) on my PC the very first time and couldn't get it running without any errors. During the start up phase of the program I get an error message that eclipse has stoped working, but by pressing the "close the program" button the start continues. by the time loading the project I get the same error again, followed by the Dave error "Error occured while connecting to the solver process". But again it continues. Now it's possible to create a new project and to add some APPs to it. It's also possible to configure those APPs, but when I'm trying to set up the HW signal connections every APP comes up with the message "Selected APP doesnot contain output signal". So I imported an existing project to my workspace and tryed to change some of the already existing signal connections. The tools is showing them but by opening the drop down menu the existing connection disappears. Very strange. The Pin Mapping doesn't work either.

By the way. In the meanwhile I got full admin rights, cleaned the registry, removed the workspace and reinstalled Dave several times but I always came to the same result.

Does anyone has a hint for me?

Problems with synchronized ADC

$
0
0
Hello all,

im working on a synchronous conversion like in the Infineon example in AP32305 p.24++.
I only want the synchronous ADC (just group 0, 1 with channel 0 and 1). So i set the external Trigger on the first channel of the master G0CH0. It works properly.
But when i activate Interrupts (no matter if result event or queue source event) one of the four results is always 0. It´s the corresponding slave channel of the triggered master channel.
What is wrong with this configuration?!


Code:

/***************************************************************************
 * HEADER FILES
 **************************************************************************/
#include <xmc_vadc.h>
#include <xmc_ccu8.h>

/***************************************************************************
 * CONFIGURATION
 **************************************************************************/
/* VADC Global resources data configuration. Divider factor for the analog
 * internal clock is set => fADCI = 120 MHz / (DIVA+1) */
const XMC_VADC_GLOBAL_CONFIG_t g_global_handle = {
    .clock_config = {
        .analog_clock_divider = 3,
    },
};

/* VADC group data configuration. No configuration needed, standard values
 * are used. */
const XMC_VADC_GROUP_CONFIG_t g_group_handle = { };

/* Data configuration for queue source. The trigger input I is used to
 * trigger the conversion on any edge (see also "Digital Connections in the
 * XMC4500" in the Reference Manual). */
const XMC_VADC_QUEUE_CONFIG_t g_queue_handle = {
    .trigger_signal = XMC_VADC_REQ_TR_I,
    .trigger_edge = XMC_VADC_TRIGGER_EDGE_ANY,
    .external_trigger = 1 };

/* Channel data configuration. Channels do NOT use alias feature and use
 * desired result register. Channel 1 and 0 trigger a synchronous
 * conversion of the same numbered channels on group 1. */

const XMC_VADC_CHANNEL_CONFIG_t g_g0_ch1_handle = {
    .alias_channel = XMC_VADC_CHANNEL_ALIAS_DISABLED,
    .result_reg_number = 1,
    .sync_conversion = 1,};
const XMC_VADC_CHANNEL_CONFIG_t g_g0_ch0_handle = {
    .alias_channel = XMC_VADC_CHANNEL_ALIAS_DISABLED,
    .result_reg_number = 0,
    .sync_conversion = 1, };
const XMC_VADC_CHANNEL_CONFIG_t g_g1_ch1_handle = {
    .alias_channel = XMC_VADC_CHANNEL_ALIAS_DISABLED,
    .result_reg_number = 1, };
const XMC_VADC_CHANNEL_CONFIG_t g_g1_ch0_handle = {
    .alias_channel = XMC_VADC_CHANNEL_ALIAS_DISABLED,
    .result_reg_number = 0, };

/* Queue entry configuration. For each entry a channel is configured. All
 * entries are configured to be refilled automatically. Entry 0 can be
 * triggered externally. */

const XMC_VADC_QUEUE_ENTRY_t g_queue_entry_1_handle = {
    .channel_num = 1,
    .refill_needed = 1,
    .external_trigger = 1,
};
const XMC_VADC_QUEUE_ENTRY_t g_queue_entry_2_handle = {
    .channel_num = 0,
    .refill_needed = 1,
    .external_trigger = 0,
    .generate_interrupt= 1,
};

/* Timer (CCU8) configuration. The CCU8 is configured to use center aligned
 * mode and a prescaler divider value of 7. */
const XMC_CCU8_SLICE_COMPARE_CONFIG_t g_timer_object = {
    .timer_mode = XMC_CCU8_SLICE_TIMER_COUNT_MODE_CA,
    .prescaler_initval = (uint32_t) 7, };
/***************************************************************************
 * GLOBAL DATA
 **************************************************************************/
XMC_VADC_RESULT_SIZE_t result_0; // VADC_G0_CH4
XMC_VADC_RESULT_SIZE_t result_1; // VADC_G0_CH1
XMC_VADC_RESULT_SIZE_t result_2; // VADC_G0_CH0
XMC_VADC_RESULT_SIZE_t result_3; // VADC_G1_CH1
XMC_VADC_RESULT_SIZE_t result_4; // VADC_G1_CH0

/***************************************************************************
 * Function declarations
 **************************************************************************/
unsigned int adc_values[6];

int main(void)
{
        /* Clock is already initialized by startup code. */

    /* ****************************** VADC ****************************** */
    /* Provide clock to VADC and initialize the VADC global registers. */
    XMC_VADC_GLOBAL_Init(VADC, &g_global_handle);

    /* Initialize the conversion kernel. */
    XMC_VADC_GROUP_Init(VADC_G0, &g_group_handle);
    XMC_VADC_GROUP_Init(VADC_G1, &g_group_handle);

    /* Set VADC group to normal operation mode (VADC kernel). */
    XMC_VADC_GROUP_SetPowerMode(VADC_G0, XMC_VADC_GROUP_POWERMODE_NORMAL);
    XMC_VADC_GROUP_SetPowerMode(VADC_G1, XMC_VADC_GROUP_POWERMODE_NORMAL);

    /* Calibrate the VADC. */
    XMC_VADC_GLOBAL_StartupCalibration(VADC);

    /* Initialize the scan source hardware. The gating mode is set to
    * ignore to pass external triggers unconditionally. As group 1 is the
    * slave group, there has NO source to be configured for group 1. */
    XMC_VADC_GROUP_QueueInit(VADC_G0, &g_queue_handle);

    /* Initialize the channel unit. */
    XMC_VADC_GROUP_ChannelInit(VADC_G0, 1, &g_g0_ch1_handle);
    XMC_VADC_GROUP_ChannelInit(VADC_G0, 0, &g_g0_ch0_handle);
    XMC_VADC_GROUP_ChannelInit(VADC_G1, 1, &g_g1_ch1_handle);
    XMC_VADC_GROUP_ChannelInit(VADC_G1, 0, &g_g1_ch0_handle);

    /* Add a channel to the scan source. */
    XMC_VADC_GROUP_QueueInsertChannel(VADC_G0, g_queue_entry_1_handle);
    XMC_VADC_GROUP_QueueInsertChannel(VADC_G0, g_queue_entry_2_handle);

    /*NOTE:
    * The master has to wait for all slaves and all slaves have to send the ready signal to the master AND
    * to all other slaves.*/

    /* Set a group as master group during sync conversion. */
    XMC_VADC_GROUP_SetSyncMaster(VADC_G0);

    /* Set a group as slave group during sync conversion. */
    XMC_VADC_GROUP_SetSyncSlave(VADC_G1, 0, 1);

    /* Check if slave is ready. */
    XMC_VADC_GROUP_CheckSlaveReadiness(VADC_G1, 1);        /*Master wait until slave is ready.*/
    XMC_VADC_GROUP_CheckSlaveReadiness(VADC_G0, 1);        /*Slave send ready signal to master.*/

  XMC_VADC_GROUP_QueueSetReqSrcEventInterruptNode(VADC_G0, XMC_VADC_SR_GROUP_SR2);
  /* Set priority of NVIC node meant to e connected to Kernel Request source event */
  NVIC_SetPriority(VADC0_G0_2_IRQn, 10U);                        // Table 4-3 Interrupt Node assignment
  /* Enable IRQ */
  NVIC_EnableIRQ(VADC0_G0_2_IRQn);

    /* ****************************** CCU8 ****************************** */
    /* Initialize CCU8 global resources. */
    XMC_CCU8_Init(CCU80, XMC_CCU8_SLICE_MCMS_ACTION_TRANSFER_PR_CR);

    /* Start the prescaler and restore clocks to the timer slices. */
    XMC_CCU8_StartPrescaler(CCU80);

    /* Configure CC8 Slice in compare mode. */
    XMC_CCU8_SLICE_CompareInit(CCU80_CC80, &g_timer_object);

    /* Program period match value of the timer. */
    XMC_CCU8_SLICE_SetTimerPeriodMatch(CCU80_CC80, 0xFFFE);

    /* Program compare match value of the timer. */
    XMC_CCU8_SLICE_SetTimerCompareMatch(CCU80_CC80,
            XMC_CCU8_SLICE_COMPARE_CHANNEL_1, 0x1FFF);
    XMC_CCU8_SLICE_SetTimerCompareMatch(CCU80_CC80,
            XMC_CCU8_SLICE_COMPARE_CHANNEL_2, 0xEFFF);

    /* Transfer value from shadow timer registers to actual timer
    * registers. */
    XMC_CCU8_EnableShadowTransfer(CCU80, CCU8_GCSS_S0SE_Msk);

    /* Enable period/compare match event. */
    XMC_CCU8_SLICE_EnableEvent(CCU80_CC80,
            XMC_CCU8_SLICE_IRQ_ID_COMPARE_MATCH_UP_CH_1);
    XMC_CCU8_SLICE_EnableEvent(CCU80_CC80,
            XMC_CCU8_SLICE_IRQ_ID_COMPARE_MATCH_UP_CH_2);

    /* Bind capcom event to an NVIC nodes (see also "Digital Connections in
    * the XMC4500" in the Reference Manual). */
    XMC_CCU8_SLICE_SetInterruptNode(CCU80_CC80,
            XMC_CCU8_SLICE_IRQ_ID_COMPARE_MATCH_UP_CH_1,
            XMC_CCU8_SLICE_SR_ID_2);
    XMC_CCU8_SLICE_SetInterruptNode(CCU80_CC80,
            XMC_CCU8_SLICE_IRQ_ID_COMPARE_MATCH_UP_CH_2,
            XMC_CCU8_SLICE_SR_ID_2);

    /* Enable the slice timer clock. */
    XMC_CCU8_EnableClock(CCU80, 0);

    /* Start the timer counting operation. */
    XMC_CCU8_SLICE_StartTimer(CCU80_CC80);

    /* ****************************** Loop ****************************** */
    while (1U) {}
    return 1;
}

void VADC0_G0_2_IRQHandler(void)
{
        NVIC_ClearPendingIRQ(VADC0_G0_2_IRQn);
        /* Retrieve result from result register. */
        result_1 = XMC_VADC_GROUP_GetResult(VADC_G0, 1);
        result_2 = XMC_VADC_GROUP_GetResult(VADC_G0, 0);
        result_3 = XMC_VADC_GROUP_GetResult(VADC_G1, 1);
        result_4 = XMC_VADC_GROUP_GetResult(VADC_G1, 0);
}

best regards

Problem with PMSMFOCSL01 control (program generated in DAVE3) on XMC1300

$
0
0
Hi,
I have a problem when I use PMSMFOCSL01 control on XMC1300. PMSM motor start in open loop then at 200 rpm speed xmc1300 turn on foc control. When the speed signal is shown by xSPY we can see that speed jump suddenly from 100 rpm to 200 rpm.
You can see that on pictures which are given below. I take a look at program code and I can't see error. Obviously, error at program code is when motor goes from open loop to foc control. Program use flux estimator, current in measured from dc link. Can anyone find the error?Attachment 2681Attachment 2682
Attached Images
Attached Files
Viewing all 9892 articles
Browse latest View live