pilotchute Posted November 16, 2018 Posted November 16, 2018 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
BCSB_motion Posted November 18, 2018 Posted November 18, 2018 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.)
Faraday MC - Tony Posted November 19, 2018 Posted November 19, 2018 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.
pilotchute Posted November 26, 2018 Author Posted November 26, 2018 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.
Recommended Posts