Bug in POSIFIE01 App

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

cross mob
Not applicable
It seams to me that the GUI is not fully functional.

The section "Positioning" is not functional. Enable Clear on Index
is not working, Every Index Signal is treated wrong.

Temporary work around:

POSIFIE01_Handle0.POSIFPtr->QDC &= ~0x30;
POSIFIE01_Handle0.POSIFPtr->QDC |= 0x20;

POSIFIE01_Handle0.CC4RegPtr->INS = 0x00950654; // EV2IS = CCU40IN0G, EV2M = Rising,

POSIFIE01_Handle0.CC4RegPtr->TC = 0x00001500; // ENDM = Flush

POSIFIE01_Handle0.CC4RegPtr->CMC = 0x0000480C; // CMC ENDS Event 2

I think the same Problem as with the old POSEQ001 App
0 Likes
5 Replies
Not applicable
VTrapp, I also found this problem during my test about the POSIFIE01 APP, appreciate your work for fixing the issue. Now it seems correct 🙂
0 Likes
Not applicable
Hey I have the same bug with the POSIFIE01 [1.0.4] App.

I tried to work it out with your code, but it still doesn't work.

Is there any possibility to reset the angle with an external Interrupt?

best regards
0 Likes
Travis
Employee
Employee
First solution authored Welcome! 500 replies posted
I will have a look at this.
0 Likes
Eric1
Employee
Employee
Hallo Vtrap,

Thank you very much for this input. You are right we have here a disadvantage in the App. The configuration is available in the GUI but will not be executed in the C Code. [POSIFIE01 v1.0.4]
Your workaround is perfectly correct. Thank you very much we will fix this as soon as possible.
I added some comments and use the register definitions to your workaround:


POSIFIE01_Handle0.CC4RegPtr->INS &= ~(CCU4_CC4_INS_EV2IS_Msk | CCU4_CC4_INS_EV2EM_Msk); // clear input selection for Event 2
POSIFIE01_Handle0.CC4RegPtr->INS |= (6< // set Input for Event 2 to CCU4xINyG (POSIF.OUT3), EV2M= Rising

POSIFIE01_Handle0.CC4RegPtr->TC &= ~CCU4_CC4_TC_ENDM_Msk; // clear Extended Stop Function Control (ENDM)
POSIFIE01_Handle0.CC4RegPtr->TC |= 1< // set Extended Stop Function to: Clears the Timer only no stop (Flush)

POSIFIE01_Handle0.CC4RegPtr->CMC &= ~CCU4_CC4_CMC_ENDS_Msk; // clear External Stop Functionality Selector
POSIFIE01_Handle0.CC4RegPtr->CMC |= 3< // External Stop Function triggered by Event 2

@Flo,
The workaround from Vtrap should work. But in the Errata is mentioned that: POSIF_AI.001 Input Index signal from Rotary Encoder is not decoded when the length is 1/4 of the tick period.

Maybe this is the reason why the index is not detected correctly.

Never the less, you can connect many different signals to the Event2 (EV2IS) for this you have to look at the reference manual witch connection you want to select. You can set also an IO-Pin as input. E.g. if you are using the XMC4400 the input Signal A of the CCU40_CC41 connected to P1.2.

Table 22-15 CCU40 - CC41 Pin Connections:
CCU40.IN1A _______ PORTS _________General purpose function

Port I/O Function Table:
(P1.2 _______ CCU40.IN1A )

In this case you can bypass the POSIF.

I hope this information was helpful,
Regards
Eric
0 Likes
Not applicable
Eric, Could you give me an example project of POSIFIE01?
I am using XMC4500 to Sample Rotary Encoder PhaseA/B Plus_Counter and the Direction. I find the Direction Changed event is not correct.
Could you help me?
Thanks !
0 Likes