enc_basic#
Overview#
The enc_basic example shows how to quickly start using ENC driver.
In this example, user needs to connect a real encoder to the board. Actually, only PHASE A and PHASE B are enough for the basic application. When running the project, user can turn the encoder so that ENC module can monitor the position change. Then, the internal counter would also count for the position. User can also type keys into terminal, and the current position values recorded by ENC would display.
The ENC hardware is created with a special synchronize mechanism. There are actually 4 counters (the 32-bit position counter is combined with the two 16-bit counter registers) for position with responding hold registers. When any of the counter registers is read, the contents of each counter register is written to the corresponding hold register. Taking a snapshot of the counters’ values provides a consistent view of a system position and a velocity to be attained.
Running the demo#
Turn the encoder and type in any key into terminal. When the demo runs successfully, the log would be seen on the OpenSDA terminal like:
ENC Basic Example. Press any key to get the encoder values …
Current position value: 0 Position differential value: 0 Position revolution value: 0
Current position value: 10 Position differential value: 10 Position revolution value: 0
…
Supported Boards#
EVKB-IMXRT1050
Hardware requirements
Mini/micro USB cable
EVKB-IMXRT1050 board
Personal Computer
An encoder with PHASE A/B signals.
Board settings
For pin connection between board and encoder, J22.5 -> kXBARA1_InputIomuxXbarIn21 -> kXBARA1_OutputEnc1PhaseAInput -> ENC_PHA J22.6 -> kXBARA1_InputIomuxXbarIn22 -> kXBARA1_OutputEnc1PhaseBInput -> ENC_PHB J22.3 -> kXBARA1_InputIomuxXbarIn23 -> kXBARA1_OutputEnc1Index -> ENC_INDEX
Prepare the Demo
Connect a mini USB cable between the PC host and the OpenSDA USB port on the board.
Connect the wires between encoder and the MCU board. See to the code for pin mux setting in function “BOARD_InitPins()”.
Open a serial terminal on PC for OpenSDA serial device with these settings:
115200 baud rate
8 data bits
No parity
One stop bit
No flow control
Download the program to the target board.
Either press the reset button on your board or launch the debugger in your IDE to begin running the demo.
MIMXRT1060-EVKB
Hardware requirements
Mini/micro USB cable
MIMXRT1060-EVKB board
Personal Computer
An encoder with PHASE A/B signals.
Board settings
For pin connection between board and encoder, J16.5 -> kXBARA1_InputIomuxXbarIn21 -> kXBARA1_OutputEnc1PhaseAInput -> ENC_PHA J16.6 -> kXBARA1_InputIomuxXbarIn22 -> kXBARA1_OutputEnc1PhaseBInput -> ENC_PHB J16.3 -> kXBARA1_InputIomuxXbarIn23 -> kXBARA1_OutputEnc1Index -> ENC_INDEX
Prepare the Demo
Connect a mini USB cable between the PC host and the OpenSDA USB port on the board.
Connect the wires between encoder and the MCU board. See to the code for pin mux setting in function “BOARD_InitPins()”.
Open a serial terminal on PC for OpenSDA serial device with these settings:
115200 baud rate
8 data bits
No parity
One stop bit
No flow control
Download the program to the target board.
Either press the reset button on your board or launch the debugger in your IDE to begin running the demo.
MIMXRT1170-EVKB
Hardware requirements
Mini/micro USB cable
MIMXRT1170-EVKB board
Personal Computer
An encoder with PHASE A/B signals.
Board settings
For pin connection between board and encoder, J9.4 -> kXBARA1_InputIomuxXbarIn38 -> kXBARA1_OutputEnc1PhaseAInput -> ENC_PHA J9.2 -> kXBARA1_InputIomuxXbarIn39 -> kXBARA1_OutputEnc1PhaseBInput -> ENC_PHB J9.6 -> kXBARA1_InputIomuxXbarIn40 -> kXBARA1_OutputEnc1Index -> ENC_INDEX
Prepare the Demo
Connect a mini USB cable between the PC host and the OpenSDA USB port on the board.
Connect the wires between encoder and the MCU board. See to the code for pin mux setting in function “BOARD_InitPins()”.
Open a serial terminal on PC for OpenSDA serial device with these settings:
115200 baud rate
8 data bits
No parity
One stop bit
No flow control
Download the program to the target board.
Either press the reset button on your board or launch the debugger in your IDE to begin running the demo.
MIMXRT1060-EVKC
Hardware requirements
Mini/micro USB cable
MIMXRT1060-EVKC board
Personal Computer
An encoder with PHASE A/B signals.
Board settings
For pin connection between board and encoder, J16.5 -> kXBARA1_InputIomuxXbarIn21 -> kXBARA1_OutputEnc1PhaseAInput -> ENC_PHA J16.6 -> kXBARA1_InputIomuxXbarIn22 -> kXBARA1_OutputEnc1PhaseBInput -> ENC_PHB J16.3 -> kXBARA1_InputIomuxXbarIn23 -> kXBARA1_OutputEnc1Index -> ENC_INDEX
Prepare the Demo
Connect a mini USB cable between the PC host and the OpenSDA USB port on the board.
Connect the wires between encoder and the MCU board. See to the code for pin mux setting in function “BOARD_InitPins()”.
Open a serial terminal on PC for OpenSDA serial device with these settings:
115200 baud rate
8 data bits
No parity
One stop bit
No flow control
Download the program to the target board.
Either press the reset button on your board or launch the debugger in your IDE to begin running the demo.
FRDM-IMXRT1152
Hardware requirements
Type-C USB cable
FRDM-IMXRT1152 board
Personal Computer
An encoder with PHASE A/B signals.
Board settings
For pin connection between board and encoder, J44.10 -> kXBARA1_InputIomuxXbarIn04 -> kXBARA1_OutputEnc1PhaseAInput -> ENC_PHA J44.12 -> kXBARA1_InputIomuxXbarIn05 -> kXBARA1_OutputEnc1PhaseBInput -> ENC_PHB J44.14 -> kXBARA1_InputIomuxXbarIn06 -> kXBARA1_OutputEnc1Index -> ENC_INDEX
Prepare the Demo
Connect a mini USB cable between the PC host and the OpenSDA USB port on the board.
Connect the wires between encoder and the MCU board. See to the code for pin mux setting in function “BOARD_InitPins()”.
Open a serial terminal on PC for OpenSDA serial device with these settings:
115200 baud rate
8 data bits
No parity
One stop bit
No flow control
Download the program to the target board.
Either press the reset button on your board or launch the debugger in your IDE to begin running the demo.
EVK-MIMXRT1015
Hardware requirements
Mini/micro USB cable
EVK-MIMXRT1015 board
Personal Computer
An encoder with PHASE A/B signals.
Board settings
Remove D25
For pin connection between board and encoder J30-3 -> kXBARA1_InputIomuxXbarInout12 -> kXBARA1_OutputEnc1PhaseAInput -> ENC_PHA J30-1 -> kXBARA1_InputIomuxXbarInout13 -> kXBARA1_OutputEnc1PhaseBInput -> ENC_PHB D25-C -> kXBARA1_InputIomuxXbarInout16 -> kXBARA1_OutputEnc1Index -> ENC_INDEX
Prepare the Demo
Connect a mini USB cable between the PC host and the OpenSDA USB port on the board.
Connect the wires between encoder and the MCU board. See to the code for pin mux setting in function “BOARD_InitPins()”.
Open a serial terminal on PC for OpenSDA serial device with these settings:
115200 baud rate
8 data bits
No parity
One stop bit
No flow control
Download the program to the target board.
Either press the reset button on your board or launch the debugger in your IDE to begin running the demo.
Note: To debug in qspiflash, following steps are needed:
Select the flash target and compile.
Set the SW8: 1 off 2 off 3 on 4 off, then power on the board and connect USB cable to J41.
Start debugging in IDE.
Keil: Click “Download (F8)” to program the image to qspiflash first then clicking “Start/Stop Debug Session (Ctrl+F5)” to start debugging.
EVK-MIMXRT1020
Hardware requirements
Mini/micro USB cable
EVK-MIMXRT1020 board
Personal Computer
An encoder with PHASE A/B signals.
Board settings
Remove R59
For pin connection between board and encoder J17.2 -> kXBARA1_InputIomuxXbarInout12 -> kXBARA1_OutputEnc1PhaseAInput -> ENC_PHA J17.1 -> kXBARA1_InputIomuxXbarInout13 -> kXBARA1_OutputEnc1PhaseBInput -> ENC_PHB U1F-46 -> kXBARA1_InputIomuxXbarInout16 -> kXBARA1_OutputEnc1Index -> ENC_INDEX
Prepare the Demo
Connect a mini USB cable between the PC host and the OpenSDA USB port on the board.
Connect the wires between encoder and the MCU board. See to the code for pin mux setting in function “BOARD_InitPins()”.
Open a serial terminal on PC for OpenSDA serial device with these settings:
115200 baud rate
8 data bits
No parity
One stop bit
No flow control
Download the program to the target board.
Either press the reset button on your board or launch the debugger in your IDE to begin running the demo.
Note: To debug in qspiflash, following steps are needed:
Select the flash target and compile.
Set the SW8: 1 off 2 off 3 on 4 off, then power on the board and connect USB cable to J23.
Start debugging in IDE.
Keil: Click “Download (F8)” to program the image to qspiflash first then clicking “Start/Stop Debug Session (Ctrl+F5)” to start debugging.
MIMXRT1024-EVK
Hardware requirements
Mini/micro USB cable
MIMXRT1024-EVK board
Personal Computer
An encoder with PHASE A/B signals.
Board settings
Remove R59
For pin connection between board and encoder J17.4 -> kXBARA1_InputIomuxXbarInout12 -> kXBARA1_OutputEnc1PhaseAInput -> ENC_PHA J17.2 -> kXBARA1_InputIomuxXbarInout13 -> kXBARA1_OutputEnc1PhaseBInput -> ENC_PHB U1F-46 -> kXBARA1_InputIomuxXbarInout16 -> kXBARA1_OutputEnc1Index -> ENC_INDEX
Prepare the Demo
Connect a mini USB cable between the PC host and the OpenSDA USB port on the board.
Connect the wires between encoder and the MCU board. See to the code for pin mux setting in function “BOARD_InitPins()”.
Open a serial terminal on PC for OpenSDA serial device with these settings:
115200 baud rate
8 data bits
No parity
One stop bit
No flow control
Download the program to the target board.
Either press the reset button on your board or launch the debugger in your IDE to begin running the demo.
Note: To debug in qspiflash, following steps are needed:
Select the flash target and compile.
Set the SW8: 1 off 2 off 3 on 4 off, then power on the board and connect USB cable to J23.
Start debugging in IDE.
Keil: Click “Download (F8)” to program the image to qspiflash first then clicking “Start/Stop Debug Session (Ctrl+F5)” to start debugging.
MIMXRT1040-EVK
Hardware requirements
Mini/micro USB cable
MIMXRT1040-EVK board
Personal Computer
An encoder with PHASE A/B signals.
Board settings
For pin connection between board and encoder, J16.5 -> kXBARA1_InputIomuxXbarIn21 -> kXBARA1_OutputEnc1PhaseAInput -> ENC_PHA J16.6 -> kXBARA1_InputIomuxXbarIn22 -> kXBARA1_OutputEnc1PhaseBInput -> ENC_PHB J16.3 -> kXBARA1_InputIomuxXbarIn23 -> kXBARA1_OutputEnc1Index -> ENC_INDEX
Prepare the Demo
Connect a mini USB cable between the PC host and the OpenSDA USB port on the board.
Connect the wires between encoder and the MCU board. See to the code for pin mux setting in function “BOARD_InitPins()”.
Open a serial terminal on PC for OpenSDA serial device with these settings:
115200 baud rate
8 data bits
No parity
One stop bit
No flow control
Download the program to the target board.
Either press the reset button on your board or launch the debugger in your IDE to begin running the demo.
EVK-MIMXRT1064
Hardware requirements
Mini/micro USB cable
EVK-MIMXRT1064 board
Personal Computer
An encoder with PHASE A/B signals.
Board settings
For pin connection between board and encoder, J22.5 -> kXBARA1_InputIomuxXbarIn21 -> kXBARA1_OutputEnc1PhaseAInput -> ENC_PHA J22.6 -> kXBARA1_InputIomuxXbarIn22 -> kXBARA1_OutputEnc1PhaseBInput -> ENC_PHB J22.3 -> kXBARA1_InputIomuxXbarIn23 -> kXBARA1_OutputEnc1Index -> ENC_INDEX
Prepare the Demo
Connect a mini USB cable between the PC host and the OpenSDA USB port on the board.
Connect the wires between encoder and the MCU board. See to the code for pin mux setting in function “BOARD_InitPins()”.
Open a serial terminal on PC for OpenSDA serial device with these settings:
115200 baud rate
8 data bits
No parity
One stop bit
No flow control
Download the program to the target board.
Either press the reset button on your board or launch the debugger in your IDE to begin running the demo.
MIMXRT1160-EVK
Hardware requirements
Mini/micro USB cable
MIMXRT1160-EVK board
Personal Computer
An encoder with PHASE A/B signals.
Board settings
For pin connection between board and encoder, J9.4 -> kXBARA1_InputIomuxXbarIn38 -> kXBARA1_OutputEnc1PhaseAInput -> ENC_PHA J9.2 -> kXBARA1_InputIomuxXbarIn39 -> kXBARA1_OutputEnc1PhaseBInput -> ENC_PHB J9.6 -> kXBARA1_InputIomuxXbarIn40 -> kXBARA1_OutputEnc1Index -> ENC_INDEX
Prepare the Demo
Connect a mini USB cable between the PC host and the OpenSDA USB port on the board.
Connect the wires between encoder and the MCU board. See to the code for pin mux setting in function “BOARD_InitPins()”.
Open a serial terminal on PC for OpenSDA serial device with these settings:
115200 baud rate
8 data bits
No parity
One stop bit
No flow control
Download the program to the target board.
Either press the reset button on your board or launch the debugger in your IDE to begin running the demo.
LPCXpresso55S36
Hardware requirements
Mini/micro USB cable
LPCXpresso55S36 board
Personal Computer
An encoder with PHASE A/B signals.
Board settings
For pin connection between board and encoder, J10.3 -> kINPUTMUX_ExtTrigIn3ToEnc0Phasea -> ENC_PHA J10.1 -> kINPUTMUX_ExtTrigIn2ToEnc0Phaseb -> ENC_PHB J12.3 -> kINPUTMUX_ExtTrigIn8ToEnc0Index -> ENC_INDEX
Prepare the Demo
Connect a USB cable between the host PC and the OpenSDA USB port on the target board.
Connect the wires between encoder and the MCU board. See to the code for pin mux setting in function “BOARD_InitPins()”.
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 press the reset button on your board or launch the debugger in your IDE to begin running the demo.