Hardware requirements
USB Type-C cable
i.MX943-EVK board
Personal Computer
Power supply 24V
Motor control board (FRDM-LVPMSM-FA)
EnDat2.2 sensor
Board settings
Insert FRDM-LVPMSM-FA board into Arduino interface of motor control 2. Connect EnDat2.2 sensor and power supply to FRDM-LVPMSM-FA
EnDat2.2 connection:
INSTANCE(FRDM-LVPMSM-FA) CONNECTS TO INSTANCE(EnDat2.2 sensor)
Pin Name Board Location Signal Name
ENC_CLK_P J70-2 CLOCK_P
ENC_CLK_N J70-7 CLOCK_N
ENC_DATA_IO_P J70-4 DATA_P
ENC_DATA_IO_N J70-9 DATA_N
VENC J70-1 UP - Power supply voltage
GND J70-6 GND
SW90 setting:
SW[1-2] OFF:ON Half duplex
SW[3] OFF Echo Enabled
SW[4] ON ENDAT is used.
SW30 setting - Select the appropriate voltage based on the properties of the sensor
SW[1] ON 3.3V
SW[2] ON 5.2V
SW[3] ON 9V
SW[4] ON 12V
Jumpers:
J300: pin1 <--> pin2
Prepare the Demo
Connect 12V~20V power supply and J-Link Debug Probe to the board, switch SW1(SYS_PWR) to power on the board.
Connect a micro USB cable between the host PC and the J15(FTDI_DEBUG) USB port on the target board.
Open a serial terminal with the following settings:
115200 baud rate
8 data bits
No parity
One stop bit
No flow control
Download the program to the target board.
Either re-power up your board or launch the debugger in your IDE to begin running the example.
Running the demo
The log below shows the output of the demo in the terminal window:
Start ENDAT2.2 Diagnostic application
ENDAT2P2_SYS_CLOCK 100000000
EnDat Encoder: Multiturn rotary encoder with gears
Version: 2.2
encoder ID: 1164811 02 SN: 76758949
Position: 31 bits (singleturn: 19, multiturn: 12)
[resolution: 524288 M/rev]
Addational Info1 status: 0xd
Addational Info1: support Position Value 2
Addational Info1: support Temperature sensor 1
Addational Info1: support Temperature sensor 2
Addational Info2 status: 0x10
Addational Info2: support Operating status error sources
propagation time: 11 fsysclk
For EnDat2.2, change recovery time I to 3.75us
--------------------------------------------------------
Select the encoder command from following
--------------------------------------------------------
1: Encoder send position values
2: Selection of memory area
3: Encoder receive parameter
4: Encoder send parameter
5: Encoder receive reset
6: Encoder send position with ADDINFO
7: Encoder send position with ADDINFO select memory
8: Encoder send position with ADDINFO recv param
9: Encoder send position with ADDINFO send param
10: Encoder send position with ADDINFO recv err reset
11: Encoder receive communication command
100: Display encoder information
101: Display registers
102: Configure clock
103: Enable Delay compensation
104: Enable interrupt
105: Disable interrupt
200: Software strobe 10 times loop
201: Internal timer strobe 10 times loop
202: Hardware strobe 10 times loop
203: Test the performance
--------------------------------------------------------
Input command value: