HOW does the VADC of XMC1302 work?

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
Not applicable
Hi, I'm working on VAD of XMC1302, to develop a BLDC SW, I thought it will done several days,because I familiar with other mcu and cortex-m0, but one month passed, I have no progress.

Anybody can help me ?

1. Does the GLOBICLASS0/1 reponsible for group0/1?
If above is right,what GxICLASS0/1(x=0,1) work for? there are four same resigster,but only two group(group0/group1).
2. the explanation of EMUX too simple, I just want to convert in the following channels:
//EMFU==P2.8=====G0CH1
//EMFV==P2.6=====G0CH0
//EMFW==P2.2=====G0CH7
//EMFCOM==P2.7===G1CH1
//MOST==P2.5=====G1CH7
//SSPD===P2.9====G0CH2
//PWR===P2.10====G0CH3
0 Likes
3 Replies
lock attach
Attachments are accessible only for community members.
Travis
Employee
Employee
First solution authored Welcome! 500 replies posted
Hi xz307,

I had made you an VADC example base on XMC1200 which I think should be helpful for your project.

This example is similar to the Queue Synchronous for XMC4500 found in the below link except XMC1000 family has got only 2 groups of VADCs.

http://www.infineonforums.com/threads/3373-XMC4000_HOT-How-to-do-VADC-Queue-source-synchronous-conve...
0 Likes
Not applicable
Hi Travis, Tks for your help.
I have read your document and IFX's "Infineon-CCU8-XMC1000_XMC4000-AP32288-AN-v01_00-EN.pdf", It's very clear, so I think I understand how is it works.
But I still can't config so many registers, The Dave App generate a heap of complex code, which disperse a same register setting, so it's hard to understand.

fortunatelly, I get your and other guy's help. now I'm going to understand the CCU8, and contiune reading POSIF CCU4 etc.

I suggest the example code should like this, It's good to help know the whole function:
//-------------------------------------------------------------------------
// Step 1: XXX
//
//-------------------------------------------------------------------------
Get_Current_Init();
//-------------------------------------------------------------------------
// Step 2: XXX
//
//-------------------------------------------------------------------------
Get_Angle_Init();
//-------------------------------------------------------------------------
// Step 3: XXX
// ---RM1.1 PageXXX
//-------------------------------------------------------------------------
Get_Speed_Init();
//-------------------------------------------------------------------------
// Step 4: XXX
// ---RM1.1 PageXXX
//-------------------------------------------------------------------------
0 Likes
Not applicable
Toady I am reading BLDC example"BLDC_Motor_BCH03_Example02",
I can't help want to say:Do you really thi->->->->->->[[]+++--+-+-[[][]][][]=>->->->[[]+++-+-+[[][nk it's good?

the following sentances:
for(ItrCount=(uint32_t)0;ItrCount<(uint32_t)6;ItrCount++)
{
/*Update close loop Hall pattern*/
HandlePtr->PosifAppPtr->DynamicHandlePtr->HallPattern[Ptr->CaptHallPatt[(Ptr->AdaptAlgoIndex+ItrCount)-(uint32_t)8]+Direction]=
POSIFH01_MCM(Ptr->CaptHallPatt[(Ptr->AdaptAlgoIndex+ItrCount)-(uint32_t)7],Ptr->CaptHallPatt[(Ptr->AdaptAlgoIndex+ItrCount)-(uint32_t)8]);
/*Update close loop Multi channel pattern*/
HandlePtr->PosifAppPtr->DynamicHandlePtr->MCPattern[Ptr->CaptHallPatt[(Ptr->AdaptAlgoIndex+ItrCount)-(uint32_t)8]+Direction] =
Ptr->CaptOutPatt[(Ptr->AdaptAlgoIndex+ItrCount)-(uint32_t)6];
/*Update close loop Hall pattern for opposite direction*/
HandlePtr->PosifAppPtr->DynamicHandlePtr->HallPattern[Ptr->CaptHallPatt[((Ptr->AdaptAlgoIndex-ItrCount)-(uint32_t)1)]+RevDirection]=
POSIFH01_MCM(Ptr->CaptHallPatt[(Ptr->AdaptAlgoIndex-ItrCount-(uint32_t)2)],Ptr->CaptHallPatt[(Ptr->AdaptAlgoIndex-ItrCount-(uint32_t)1)]);
}
0 Likes