I'm using a new Geo Brick LV with a Endat+sinusodial (4D3 option).
I have an Endat 2.2 encoder connected.
Until now I couldn't receive any encoder data.
I connected an oscilloscope to the wires (with encoder) and there is nothing happening.
These are the voltages I measure on CH1 with connected encoder and configured PMAC:
Pin 01: 4.73 V (Unused)
Pin 02: 4.73 V (Unused)
Pin 03: 4.84 V (Unused)
Pin 04: 4.93 V (Out, Encoder 5 Volts)
Pin 05: 3.16 V (In, Data-)
Pin 06: 4.76 V (Out, Serial Encoder Clock-)
Pin 07: 2.45 V (Unused)
Pin 08: 0.04 V (Unused)
Pin 09: 4.73 V (Unused)
Pin 10: 4.73 V (Unused)
Pin 11: 4.84 V (Unused)
Pin 12: 0 V (Common Ground)
Pin 13: 4.76 V (Out, Serial Encoder Clock+)
Pin 14: 0.82 V (In, Data+)
Pin 15: 0 V (Unused)
With unconnected encoder I measure the following voltages:
Pin 01: 4.73 V (Unused)
Pin 02: 4.73 V (Unused)
Pin 03: 4.84 V (Unused)
Pin 04: 4.94 V (Out, Encoder 5 Volts)
Pin 05: 4.82 V (In, Data-)
Pin 06: 4.83 V (Out, Serial Encoder Clock-)
Pin 07: 2.45 V (Unused)
Pin 08: 0.05 V (Unused)
Pin 09: 4.73 V (Unused)
Pin 10: 4.73 V (Unused)
Pin 11: 4.84 V (Unused)
Pin 12: 0 V (Common Ground)
Pin 13: 4.82 V (Out, Serial Encoder Clock+)
Pin 14: 4.82 V (In, Data+)
Pin 15: 0 V (Unused)
Is the encoder IC dead? How can I make a test to see if it should work?
This is the configuration i use:
CLOSE ; Make sure no buffers are open
DEL GAT ; Free memory
// EnDat Control Registers Setup
//=========================== NOTES ABOUT THIS PLC EXAMPLE ================================//
// This PLC example utilizes: - M5990 through M5991
// - Coordinate system 1 Timer 1
// Make sure that current and/or future configurations do not create conflicts with
// these parameters.
//=========================================================================================//
M5990..5991->* ; Self-referenced M-Variables
M5990..5991=0 ; Reset at download
//========================= GLOBAL CONTROL REGISTERS ======================================//
#define EnDatGlobalCtrl1_4 M5990 ; Channels 1-4 EnDat global control register
EnDatGlobalCtrl1_4->X:$78B2F,0,24,U ; Channels 1-4 EnDat global control register address
//======================== CHANNEL CONTROL REGISTERS ======================================//
#define Ch1EnDatCtrl M5991 ; Channel 1 EnDat control register
Ch1EnDatCtrl->X:$78B20,0,24,U ; Channel 1 EnDat control register Address
//========= POWER-ON PLC EXAMPLE, GLOBAL & CHANNEL CONTROL REGISTERS ======================//
Open PLC 1 Clear
EnDatGlobalCtrl1_4=$040003 ; Trigger at Phase, xxxMHz serial Clock –User Input
//Ch1EnDatCtrl=$15141C ; Send test values Channel 1 EnDat control register –User Input
Ch1EnDatCtrl=$38141C ; Channel 1 EnDat control register –User Input
//Ch1EnDatCtrl=$15141C ; Reset Channel 1 EnDat control register –User Input
I5111=500*8388608/I10 while(I5111>0) endw ; ½ sec delay
Dis plc 1 ; Execute once on power-up or reset
Close
//=========================================================================================//
// Set up Encoder Conversion Table
// Position
I8000=$2F8B20 ; Unfiltered parallel pos of location Y:$78B20
I8001=$1C000 ; Width and Offset. Processed result at $3502
I100=1 ; Mtr#1 Active. Remember to activate the channel to see feedback
I103=$3502 ; Mtr#1 position loop feedback address
I104=$3502 ; Mtr#1 velocity loop feedback address
I108=1 ; Mtr#1 position-loop scale factor
I109=1 ; Mtr#1 velocity-loop scale factor
I167=8388607 ; Mtr#1 Position Error Limit