- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello, I am using the APP "ACIM_FREQ_CTRL" for an induction motor control.
I have enabled "Enable over current detection" and "Enable voltage compensation".
The motor seems to work fine.
My problem that I have is that I can't get the ADC (for the voltage measurement) to work when it is in "MotorStop" for obvious reasons, since the PWM is also stop, so I need to change the trigger when this situation occurs but I can't find a way to change the trigger .
I have configured a "TIMER" APP to use it as a trigger in the "ADC_QUEUE" but it doesn't work.
I've looked at the register level but I can't quite understand how to configure it.
Thanks.
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello @Juan71
If you call the function ACIM_FREQ_CTRL_MotorStop, the entire CCU8 is turned off. Hence the ADC trigger to be initiated with respect to PWM is also stopped.
As a general application, please make a function in which the following are implemented:
- Set PWM duty to zero .
- Set the speed and current references to zero.
Call the above function whenever you need to stop the motor (either fault or normal stopping of the motor).
Let me know if you need further help.
Regards
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi, @Juan71 ,
Did you follow our examples to configure your APP? And you can also refer to the "Help content" which will tell you how to configure all these APP. Hope this can help you.
Regards,
Owen_Su
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Thanks for your answer.
More or less the motor control works fine, my problem is that when I do a "motorStop" the ADC stops measuring the "voltage" because when stopping the PWM not triggering, and the "voltage" is a measurement that it needs my firmware to work.
How do I manage this ADC trigger change?
What APP do you suggest to use as ADC trigger?
Thanks.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi, @Juan71 ,
Could you give us a more detailed description of the following points:
1) How do you stop the motor? Exiting the debug mode or implement an interrupt? Have you finished a Power on reset to your board?
2) Which voltage do you want to measure? As I know, it is meaningless to measure the phase voltage after the motor stops, so what you measure is DC bus voltage?
3) As my understanding, you need the ADC works without your firmware work, is that right? Or you can describe your requirements in more details.
And here I give you some suggestions:
1) Check the codes and make sure that the motor stops will not stop the ADC, I think you can refer to the function: ACIM_FREQ_CTRL_MotorStop. If you find that the motor stops will stop the ADC, you can change the codes manually.
2) Check the PWM_SVM APP, for the "trigger for current measurement", you can change to another selections and try again.
3) Use an interrupt to stop the motor instead of other methods, output the corresponding ADC values from you codes and check if there still have variation after the motor stops.
We can continue after testing according to the above tips, hope this can help you.
Regards,
Owen_Su
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi @Owen_Su, I reply to each point:
1) I stop the motor for operating needs with "ACIM_FREQ_CTRL_MotorStop(&ACIM_FREQ_CTRL_0)", this API stops the SVM, PWM...
2-3) As you say, I need to measure the DC Bus voltage, also when the motor is stopped.
Regarding your suggestions:
1) This is exactly the key, but I don't quite understand changing this. The last thing I tried is to use the API "XMC_VADC_GROUP_QueueTriggerConversion(ACIM_FREQ_CTRL_0.adc_config_ptr->vadc_group_pointerarray[1])" which generates a software trigger event by setting GxQMR0.TREV = 1, but it doesn't work.
2) I have a single shunt, so "The trigger for current measurement = DC Link Current Measurement".
3) If I stop the motor setting "speed=0" I have DC Bus values, but this implies not stopping the motor with the API "ACIM_FREQ_CTRL_MotorStop(&ACIM_FREQ_CTRL_0)", something that happens when an error occurs, overcurrent...
Thanks.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello @Juan71
If you call the function ACIM_FREQ_CTRL_MotorStop, the entire CCU8 is turned off. Hence the ADC trigger to be initiated with respect to PWM is also stopped.
As a general application, please make a function in which the following are implemented:
- Set PWM duty to zero .
- Set the speed and current references to zero.
Call the above function whenever you need to stop the motor (either fault or normal stopping of the motor).
Let me know if you need further help.
Regards
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi RupakC, thanks for replying.
I could do what you propose, but I don't want to excessively change the motor control APP.
The solution would be to change the trigger of the queue only when the CCU8 is stopped.
As explained above I have tried things like using "XMC_VADC_GROUP_QueueTriggerConversion(ACIM_FREQ_CTRL_0.adc_config_ptr->vadc_group_pointerarray[1])" to trigger the queue but it doesn't work. I don't know if I forgot something.
The ideal for me would be a solution of this type.
Thanks.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello @Juan71
We do not recommend changing the ADC trigger within the code. Also, if you software trigger the ADC using the API mentioned, it may lead to issues like random sampling once you run your closed loop algorithm.
Our recommendation for your specific requirement is as mentioned in my previous reply.
Regards
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello @RupakC, sorry for the delay in responding, I've had a few days off.
I will try what you suggest.
I have another question, as I have already commented above, I have only one shunt and the setup as "The trigger for current measurement = DC Link Current Measurement". The ADC current measurement is smaller than the measurement with the oscilloscope.
The APP code generator configures the following:
As you can see, the trigger signal is the following according to the datasheet:
How can this work?
Shouldn't it be the following (although I've tried it and it also works badly)?:
As I commented above, the ADC does not seem to measure well. I don't know if it's a trigger problem... For detect the overcurrent of 4 amps rms I have to set the APP to 0.8 amps.
Thanks.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello @Juan71
Have you checked if you have entered the correct values in the app for the following settings?
1. Current amplifier configuration
2. Voltage divider ratio
Can you share your project with us such I can have a better understanding of your code?
Regards
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello @RupakC
I have checked the current amplifier configuration and voltage divider ratio and it is correct.
How can I share the project?
Thanks.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello @Juan71
You may send the project to me on private chat. Please share your DAVE project. Additionally, we will need your board (both power and controller board) schematics. If you are using Infineon reference boards/ EVAL boards, please mention the part number only.
Regards