Jump to content
OMRON Forums

BiSS C mode encoder changing between Absolute and Relative on reset.


pilotchute
 Share

Recommended Posts

We are using a Renishaw Resolute BiSS-C 26 bit encoder to determine the absolute rotational angle of a telescope aperture wheel.

 

The following issue has become the last bug in our system.

 

Upon boot or a reset, the encoder may correctly relay the absolute position, or may show the relative position from where it was at the time of the boot or reset.

 

This inconsistent behavior is strange given that it is occurring on a reset, when the starting conditions should be identical.

 

The relevant register values are as follows:

 

For the 25MHz read speed of the encoder

Acc84B[0].SerialEncCtrl=$03000B

 

For the format of the 26 Bit BiSS C signal

Acc84B[0].Chan[3].SerialEncCmd=$21149A

 

The EncTable values

EncTable[4].pEnc=Acc84B[0].Chan[3].SerialEncDataA.a

EncTable[4].pEnc1=Acc84B[0].Chan[3].SerialEncDataB.a

EncTable[4].type=2

EncTable[4].index=0

 

The Motor values

Motor[4].AbsPosFormat=$1a00

Motor[4].pAbsPos=EncTable[4].PrevEnc.a

Motor[4].pAbsPos<2-4>=0

Motor[4].pEnc=EncTable[4].a

Motor[4].pPhaseEnc=Acc84B[0].Chan[3].SerialEncDataA.a

 

At this point, I've run out ideas for where to find the cause of this behavior. I'm hoping someone here will be able to help.

 

_

Austin Kootz

Link to comment
Share on other sites

  • Replies 3
  • Created
  • Last Reply

Top Posters In This Topic

We are using a Renishaw Resolute BiSS-C 26 bit encoder to determine the absolute rotational angle of a telescope aperture wheel.

 

The following issue has become the last bug in our system.

 

Upon boot or a reset, the encoder may correctly relay the absolute position, or may show the relative position from where it was at the time of the boot or reset...

 

 

My first guess would be that the absolute position read on power-cycle/reset is occurring before the encoder registers within the ACC84x have been 'filled' by a completed read from the encoder.

 

 

The 'absolute home' position transferred into the motor[4]. might == 0 in that case. Moves from that point would be the relative moves you're observing.

 

I expect that waiting a few cycles after startup to perform the absolute home read would fix this. Also, try checking the error bits up in the upper byte before allowing an absolute home; I'd think that the bits that should be '1' would also be zero in your startup condition.

 

(BTW, we're in a similar position in handling encoder errors or loss, albeit dual Renishaw BiSS-C encoders over MACRO, so we'll need to push the error bits over MACRO I/O, after initializing and handling ring errors, etc.)

Link to comment
Share on other sites

Is your encoder's clock speed really 25MHz? The fastest Renishaw I have personally used only ran at 5MHz and their protocol datasheet only mentions 10MHz.

 

I would try running at 5MHz and see if it behaves any better, even if your encoder can run faster. Once you know it works you can try speeding it up.

 

I may have misread the spec. However I did try many encoder clock speeds while trying to debug this. (including the default $63000b, for 1.0MHz)

 

I'll set it to 1MHz for now, and see if that at least improves the behavior.

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
 Share


×
×
  • Create New...