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

Do I Need two BTN8962A Here

$
0
0
How are you?:D

Recently I am involving in a project about design a BDC driving board with BTN8962A which is from Infineon . BTN8962A is a half of H-bridge IC.

As we all know,BDC driving circuit is just like this:



In this picture,We set a High side MOS(QA) as Open,and set a High side(QC) and a Low side(QB) MOSes as close.We just have to ouput a PWM signal to control the speed of BDC.


However,I met some troubles when I use Infineon BTN8962,I found I could not do this unless using the INH pin as PWM signal input pin. ( In fact,this pin is sleep mode enable pin.It can close its MOS.)

Which pin should I set as PWM signal output pin? Do I need one more BTN8962A here in order to make a complete H bridge ?

Please give me some help !
Thank you in advance.

TC29X USB3.0 => SRI External Bus Unit (EBU) ?

$
0
0
hi guys
I use a TC297 Microcontroller and would like to connect the Controller via USB3.0. My Idea is to use the EBU interface, as the USB3.0 Transceiver has a 32 parallel Output
or has anyone of you experience in using USB 3.0 and the TC297 Controller or ideas how it can be implemented??

Ethernet problem solving on TC23x

$
0
0
MCLK is running in 25MHz, while the MDIO data is sent by 2.5 Mhz I see there is no synchronisation between the MCLK and MDIO data line. How it can be corrected

Aurix TC3xx code generation using embedded coder

$
0
0
Dear Friends,

Good day!

We develop features on simulink and use embedded coder to generate c code for autosar target.
I want to optimize the generated code for performance improvement (computation time, memory usage etc.).
I would like to know if there are some optimized settings for embedded coder w.r.t. Aurix TC3xx available.

Some common ideas in this direction would also be appreciated.
Thanks a ton!

Kind Regards,
Ajay

XMC1400: CCU concatenation with underflow in first slice

$
0
0
Hi,

I am using CCU41 slice 1 to count an event. CCU41 slice 2 is concatenated with slice 1 (TCE bit in CMC). If the counting direction is "UP" everything works as expected.

Example: slice 1 is at 0xFFFF and slice 2 is at 0x0000. After the next event slice 1 is at 0x0000 and slice 2 is at 0x0001. Very good!

But if i use counting direction "DOWN", it does not work as expected.

Example: slice 1 is at 0x0000 and slice 2 is at 0x0000. After the next event (direction = "DOWN") slice 1 is at 0xFFFF and slice 2 is at a random value! The last two times i run it slice 2 was at 0x84AC one time and 0x84F7 the next time. The expected value would of course be 0xFFFF.

What could be the reason for this behavior? Is there some configuration i have to make so underflow is handled correctly if two slices are concatenated?

Thanks!

Hello Everyone, New member here

$
0
0
Hi,

My name is Rechard Smith 34 years old! I'm new here in this fantastic community. I found this board on the internet.
Infineon equipment and accessories are my first choice. We utilized too many Infineon equipment for our project since
two years. Thought now time to join the Infineon community and fortunately I found this board on the internet.


Have learned a lot in a short space of time and gaining from the huge amount of information here and hopefully help others along the way.

Best Regards
Smith

Xmc4400 | pwm + dma

$
0
0
Hi,

See attached modified main.c file to enable 16bit duty cycles and enabling interrupt that signals that a block transfer is finished.

Regards,
Jesus
?????

Micrium uC/Probe for XMC 2go XMC1000 - Oscilloscope


How to give the master a random and a short address to my slave device?(DALI Protocol

$
0
0
Yes, I understand, but all the screenshots that help to understand the essence of the problem and my reasoning are not loaded onto the post. In addition, there is a message that this post should check the moderator. We are all people,
I understand that the moderator can not instantly view my post and make a decision, but since the information on DALI is VERY IMPORTANT, i have to move in other ways. I apologize for the links in the post.

At the moment I'm interested in working example of working with the DALI protocol.

Examples I could find on the XMC1200 for working with DALI, I did. But the master (NXP LPC134x) never found the lamp (XMC1200 Boot kit with White LED Card). The reason the master did not recognize the lamp (slave device), I do not understand!
Judging by the code:

Code:

void OneMsInter (void)
{
uint32_t bccu_fade_status;

/ * stop timer * /
status = SYSTM002_StopTimer (OneMsTmrId);

/ * Call Dali maineThread to maintain dali communication * /
DALICG02_MainThread (& DALICG02_Handle0);

/ * Restart timer * /
status = SYSTM002_StartTimer (OneMsTmrId);

/ * check if BCCU has completed dimming-only for HW-based dimming * /
bccu_fade_status = BCCUDIM01_FadeCompletionStatus (& BCCUDIM01_Handle0);

if (! bccu_fade_status)
{
if (DALICG02_Handle0.DALI102_Handle-> stStatus_info.bFade_running)
{
/ * reset DALI fade status flag * /
DALICG02_Handle0.DALI102_Handle-> stStatus_info.bFade_running = DALICG02_BIT_ZERO;
/ * update DALI actual level * /
DALICG02_Handle0.DALI102_Handle-> uiActual_arc_lvl = DALICG02_Handle0.DALI102_Handle-> uiReq_arc_pwr;

if (DALICG02_Handle0.DALI102_Handle-> uiActual_arc_lvl == 0U)
{
/ * reset Dali light on status flag if DALI actual level is 0 (off) * /
DALICG02_Handle0.DALI102_Handle-> stStatus_info.bLight_on = DALICG02_BIT_ZERO;
}
}
}
}

Code:

/ * create time base for 1ms interrupt to service Dali * /
OneMsTmrId = SYSTM002_CreateTimer (1000U, SYSTM002_PERIODIC, (void *) OneMsInter, NULL);
status = SYSTM002_StartTimer (OneMsTmrId);

the luminaire must enter every 1 ms into the interrupt and within the interrupt enter the function:
Code:

DALICG02_MainThread (& DALICG02_Handle0);
Where is written each of the possible commands.
Then my master must pass INITIALISE (0b1010010100000000) twice with an interval of no more than 100ms;
RANDOMISE (0b1010011100000000) with an interval of not more than 100ms;
request for received addresses: (0b10110001HHHHHHHH, 0b10110011MMMMMMMM, 0b10110101LLLLLLLL);
COMPARE (0b1010100100000000);
after determining the address of the luminaire, the controller sets the lighter a short address (0b10110111AAAAAAAA) and sends the WITHRAW command (0b1010101100000000), which excludes the luminaire from the search process;
After the initialization process is complete, the controller sends a TERMINATE command (0b1010000100000000), and the fixtures exit the initialization mode.

but in the end I get this:
Attachment 3158

I ask you to lay out an example of working with DALI. The most important thing that interests me is the initialization of the lamp.

I'm satisfied with the example written on the basis of DAVE 3. libraries, in DAVE 4 I did not find the finished DALI library.
?????

TC29X USB3.0 => SRI External Bus Unit (EBU) ?

$
0
0
hi guys
I use a TC297 Microcontroller and would like to connect the Controller via USB3.0. My Idea is to use the EBU interface, as the USB3.0 Transceiver has a 32 parallel Output
or has anyone of you experience in using USB 3.0 and the TC297 Controller or ideas how it can be implemented??

How to give the master a random and a short address to my slave device?(DALI Protocol

$
0
0
Yes, I understand, but all the screenshots that help to understand the essence of the problem and my reasoning are not loaded onto the post. In addition, there is a message that this post should check the moderator. We are all people,
I understand that the moderator can not instantly view my post and make a decision, but since the information on DALI is VERY IMPORTANT, i have to move in other ways. I apologize for the links in the post.

At the moment I'm interested in working example of working with the DALI protocol.

Examples I could find on the XMC1200 for working with DALI, I did. But the master (NXP LPC134x) never found the lamp (XMC1200 Boot kit with White LED Card). The reason the master did not recognize the lamp (slave device), I do not understand!
Judging by the code:

Code:

void OneMsInter (void)
{
uint32_t bccu_fade_status;

/ * stop timer * /
status = SYSTM002_StopTimer (OneMsTmrId);

/ * Call Dali maineThread to maintain dali communication * /
DALICG02_MainThread (& DALICG02_Handle0);

/ * Restart timer * /
status = SYSTM002_StartTimer (OneMsTmrId);

/ * check if BCCU has completed dimming-only for HW-based dimming * /
bccu_fade_status = BCCUDIM01_FadeCompletionStatus (& BCCUDIM01_Handle0);

if (! bccu_fade_status)
{
if (DALICG02_Handle0.DALI102_Handle-> stStatus_info.bFade_running)
{
/ * reset DALI fade status flag * /
DALICG02_Handle0.DALI102_Handle-> stStatus_info.bFade_running = DALICG02_BIT_ZERO;
/ * update DALI actual level * /
DALICG02_Handle0.DALI102_Handle-> uiActual_arc_lvl = DALICG02_Handle0.DALI102_Handle-> uiReq_arc_pwr;

if (DALICG02_Handle0.DALI102_Handle-> uiActual_arc_lvl == 0U)
{
/ * reset Dali light on status flag if DALI actual level is 0 (off) * /
DALICG02_Handle0.DALI102_Handle-> stStatus_info.bLight_on = DALICG02_BIT_ZERO;
}
}
}
}

Code:

/ * create time base for 1ms interrupt to service Dali * /
OneMsTmrId = SYSTM002_CreateTimer (1000U, SYSTM002_PERIODIC, (void *) OneMsInter, NULL);
status = SYSTM002_StartTimer (OneMsTmrId);

the luminaire must enter every 1 ms into the interrupt and within the interrupt enter the function:
Code:

DALICG02_MainThread (& DALICG02_Handle0);
Where is written each of the possible commands.
Then my master must pass INITIALISE (0b1010010100000000) twice with an interval of no more than 100ms;
RANDOMISE (0b1010011100000000) with an interval of not more than 100ms;
request for received addresses: (0b10110001HHHHHHHH, 0b10110011MMMMMMMM, 0b10110101LLLLLLLL);
COMPARE (0b1010100100000000);
after determining the address of the luminaire, the controller sets the lighter a short address (0b10110111AAAAAAAA) and sends the WITHRAW command (0b1010101100000000), which excludes the luminaire from the search process;
After the initialization process is complete, the controller sends a TERMINATE command (0b1010000100000000), and the fixtures exit the initialization mode.

but in the end I get this:
Attachment 3158

I ask you to lay out an example of working with DALI. The most important thing that interests me is the initialization of the lamp.

I'm satisfied with the example written on the basis of DAVE 3. libraries, in DAVE 4 I did not find the finished DALI library.
?????

TC29X USB3.0 => SRI External Bus Unit (EBU) ?

$
0
0
hi guys
I use a TC297 Microcontroller and would like to connect the Controller via USB3.0. My Idea is to use the EBU interface, as the USB3.0 Transceiver has a 32 parallel Output
or has anyone of you experience in using USB 3.0 and the TC297 Controller or ideas how it can be implemented??

Capture APP reset

$
0
0
Hello,

i am using the CAPTURE APP in DAVE 4.3 to measure the timer ticks/time between the rise-to-rise edge.

CAPTURE_GetCapturedTime(&CAPTURE_0, &captured_time_ticks);

My Problem is, that i Need to reset the APP after the measure but i dont know how.


With best regards, Lukas123

Matlab XMC Library for Embedded Coder Problem

$
0
0
Hi Pessara,

Did you find any solution? I have also the same problem, although the program was working several months ago. Do you also use windows 10? I guess the problem comes from some missed .DLL files after windows update!


Quote:

Originally Posted by CPessara View Post
Hello Community,

i have some Problems regarding the "XMC Library for Embedded Coder".

Last week I started to evaluate the "XMC Library for Embedded Coder".

If i add a GPIO_Config block to the Simulink Model and wants to configure the GPIO as Output, I get the following error message:

Code:

"Error Evaluation 'MaskCallback' callback for GPIO Config Block (mask) 'untitled GPIO Config'.

Error while obtaining sizes from MEX S-function 'xmc4400Config' in 'untitled/GPIO Config'.

Invalid MEX-File 'C:\Users\XXX\Documents\MATLAB\Add-Ons\Toolboxes\XMC Library for Embedded Coder\code\XMC_Library_Embedded_Coder\blocks\XMC4x00\XMC4400\GPIOs\Config\xmc4400Config.mexw64': Das angegebene Modul wurde nicht gefunden."

The path is correct and the MEXW64-File still exists.

Thanks for your help!

Here some additional informations:

Matlab Version 8.6.0.267246
XMC Library for Embedded Coder Version 2.0
Embedded Coder Version 6.9
Simulink Version 8.6

XMC4800 CCU8 synchronized start does not work

$
0
0
Hi,

The attached project Shows how to configure the PWM_CCU8 APP to achieve the synchronous start of the timer slices using the GLOBAL_CCU8_SyncStartTriggerHigh() function (see main.c)

Regards,
Jesus
?????

XMC4200 SPI Change SELO pins during program execution

$
0
0
Hi,

Did you try something like below?

SPI_MASTER_EnableSlaveSelectSignal(&SPI_MASTER_0, SPI_MASTER_SS_SIGNAL_0);
SPI_MASTER_Transmit(&SPI_MASTER_0, data, DATA_LEN);
while(SPI_MASTER_0.runtime->tx_busy);
SPI_MASTER_DisableSlaveSelectSignal(&SPI_MASTER_0) ;

SPI_MASTER_EnableSlaveSelectSignal(&SPI_MASTER_0, SPI_MASTER_SS_SIGNAL_1);
SPI_MASTER_Transmit(&SPI_MASTER_0, data, DATA_LEN);
while(SPI_MASTER_0.runtime->tx_busy);
SPI_MASTER_DisableSlaveSelectSignal(&SPI_MASTER_0) ;

Regards,
Jesus

Can't find how to do sensored FOC

$
0
0
Hello,

We are evaluating XMC4000 for an encoder sensored motor drive. We need some information about the PMSM_FOC_EXAMPLE_XMC44 Dave code.

- Is this example intended for production use, or is it only for test/demonstration?
There seems to be little documents about its working and we have no idea on how to probe the internal of the FOC_Controller_LIB function, in case something goes wrong.

- A resolver position feedback is mentioned in some documents. Is there an example for a drive using it?

- As I mentioned we don't need sensorless estimators, VF control and the like. Should we assume we have to write our own code using only CMSIS libraries? Other suppliers provide an easier approach.

Thank you.

Alberto

ATTENTION: Update your SEGGER JLink version to latest version (V6.20a as of today)

$
0
0
BE CAREFUL If you update Segger JLink version to 6.20e

The difference is in the 'e' revision letter at the end.

It seems that Segger guys have changed the location of JLink_x64.dll used by DAVE to communicate with target using JLink. This causes that DAVE could not find the dll file, rendering the debugger non functional at all.

In previous versions the dll was located at "C:\Program Files (x86)\SEGGER\JLink_VXXXr\bin_x64", where XXXr represents the version and revision of Segger JLink software. While the new revision has moved the dll one directory up to "C:\Program Files (x86)\SEGGER\JLink_VXXXr".
I guess that DAVE used the folder in the preferences window, after adding "\bin_x64" to its value, to try and find the dll. But obviously this has stopped working now.

The solution is, besides implementing the changes in the preferences recommended in the previous post, is to create a folder named "bin_x64" inside ""C:\Program Files (x86)\SEGGER\JLink_V620e" and put a copy of JLink_x64.dll into it. After that everything starts working again.

Don't forget to restart DAVE when you change the preferences so variables can be re-evaluated, as it says in the preferences window itself.

So thank you Segger guys to make me lose a full afternoon pursuing this.:(

I expect this saves someone else's time and frustration.

PWM_CCU8 module stops when debugging

$
0
0
Hi!
I also have the same problem. I need to bring the PWM outputs into a safe condition.

Read the GCTRL.SUSCFG documentation below

Suspend Mode Configuration
This field controls the entry in suspend mode for all the CCU8 slices.
00B Suspend request ignored. The module neverenters in suspend
01B Stops all the running slices immediately. Safe stop is not applied.
10B Stops the block immediately and clamps all the outputs to PASSIVE state. Safe stop is applied.
11B Waits for the roll over of each slice to stop and clamp the slices outputs. Safe stop is applied.

Setting 10B or 11B can not get the desired result.
Are there other settings to do?

If you have any idea of that
Thanks in advance
regards
Stefano

XMC_SCU_HIB_SetRtcClockSource function access to NULL pointer

Viewing all 9892 articles
Browse latest View live