This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

HWAG Angle maximum value question?

I got angle value from HWAG.

But  maximum angle value is more than theoretically maximum angle value.

For example,

ToothWheel :  180

StepWidth : 64

 theoretically maximum angle value : 180 × 64 = 11520

 actual maximum angle value(HWAACNT) : 11520 + 64 = 11584  

ToothWheel :  180

StepWidth : 128

 theoretically maximum angle value : 180 × 128= 23040

 actual maximum angle value(HWAACNT) : 11520 + 128 = 23168

 I can't understand that maximum angle value.

 Point difference between Angle value initialization point and actual Gap point.

  • Hello:

    We have received your post and will forward it to the expert to provide some feedback soon.

    Regards,

  • Hi DaeCheol,

    I just have a theory about what is going on, but it will take some investigation to prove it.

    The HWAG is hard-wired for 2 missing teeth, and you only have 1 missing tooth on your wheel - correct?

    So at the last tooth, the HWAG is expecting to increment the angle counter 3x64 times.  One x 64 for the last tooth, and 2x 64 for the two missing teeth that it expects.

    But your next tooth will come 'early' in the sense that it is only 1 tooth period in the future.  But the HWAG will likely interpret this as a rapid acceleration.   The algorithm that is used when a tooth comes 'early' is to add the remaining tick count to the angle count to 'catch up' the estimated angle value to the angle value that is now based on a real edge.

    What is uncertain in my mind is whether you should be able to actually read this value or if it should be resetting to 0 immediately.

    Now, when you capture this value are you sampling it asynchronously and keeping track of all the values that you read in the ACNT register?  

    If so do you ever see your 'max+63' or 'max+62' or 'max+61' etc..    Or are all the values you read either [0 ... max, max+64] but never any values between max+1 and max+63?

    If so then I think you might just be seeing this 'catch up' occuring because of the way that the gap is hard coded to 2 missing teeth.