AM261x Motor Control SDK  10.02.00
Nikon A-format

Note
A-formatĀ® is a registered trademark of the Nikon Corporation.

Introduction

Nikon A-format absolute encoder receiver implementation on the TI PRU-ICSS interfaces with the Nikon A-format encoders either via point-to-point communication or up to 8 Nikon A-format encoders connected on a bus. Nikon A-format encoders use a proprietary asynchronous serial bi-directional half-duplex communication protocol compliant with the RS-485. The encoder can generate either single- or multi-turn absolute position data and can operate at a baud rate of up to 16 MHz. Besides position data, the encoder can also send status and diagnostic information well. Reliability is ensured by using a 3-bit CRC by the receiver and an 8-bit CRC by the encoder. Another interesting feature of the Nikon-A encoders is the optional battery backup circuit, which can be used in case of power failure. Nikon A-format encoders are widely used in industrial machinery, including industrial robots in automobile production lines and machine tools, and are highly valued as the next-generation standard for sensors that can detect the absolute rotational displacement values of robot arms.

Features Supported

  • Support for Nikon version 2.1 and Nikon version 3.0
  • Support for point-to-point and bus communication (up to 8 encoders).
  • Support for baud rates from 2.5 MHz, 4 MHz, 6.67 MHz, 8 MHz, and 16 MHz.
  • Support for oversampling ratio with different baud rates.
    Clock Source Interface Speed
    2.5 MHz 4 MHz 6.67 MHz 8 MHz 16 MHz
    PRU UART Clock (160 MHz) 8x 8x 8x 4x 5x

Features Not Supported

In general, peripherals or features not mentioned as part of "Features Supported" section are not supported in this release, including the below

  • Independent clocks on multi channel mode.

Known Limitations

  • PRU Firmware gets stuck if encoder does not respond with number of bytes expected by driver as per PINDSW-9179 in Release Notes 10.02.00
    • Example cases when firmware gets stuck
      1. Any command is sent with encoder address not matching to that of encoder connected with the device
      2. In bus mode, if encoders with address 0, 1, 2 are connected and MT command is sent with encoder address 3 or more
      3. Command 20 is sent with ID not matching to encoder connected with the device

SysConfig Features

Note
It is strongly recommend to use SysConfig where it is available instead of using direct SW API calls. This will help simplify the SW application and also catch common mistakes early in the development cycle.

SysConfig can be used to configure things mentioned below:

  • Selecting the ICSS instance. (Tested on ICSSM1)
  • Selecting the ICSS PRU slice.(Tested on ICSSM1-PRU0)
  • Configuring PINMUX.
  • Frequency selection.
  • Channel selection.
  • Selecting source clock.
  • Selecting Nikon protocol version (2.1 or 3.0)
Note
Nikon firmware will only run with ICSS UART Clock running at 160 MHz(when ICSS Core Clock is 225 MHz).

ICSS PRU Resource Usage

Configuration PRU Core Memory Usage IEP Usage Other Peripheral Usage Description
Single Channel Mode PRUx DMEM: 552 Bytes
IMEM: ~ 1.4 kB
IEP0: CMP0 and CMP3 INTC Signal host interrupt 2 is used to trigger a R5 interrupt IEP, CMP events and INTC signal are used only in periodic continuous mode.
Note
For pin usage, see Pin Multiplexing section.

NIKON Design

Nikon Protocol Design explains the design in detail.

Example

NIKON Diagnostic

API

APIs for Nikon A-Format Encoder