AM263Px Motor Control SDK  2025.00.00
BISS-C Diagnostic

BISS-C diagnostic application does the following:

  • Configures pinmux, GPIO, UART, ICSS clock to 200MHz
  • Initializes PRU-ICSS
  • Initializes default parameters, loads the PRU firmware and executes it.
Note
BiSS-C firmware is tested with ICSS Core Clock running at 200 MHz frequency or ICSS UART Clock running at 192 MHz frequency only.

This application is controlled with a terminal interface using a serial over USB connection between the PC host and the EVM. Please connect a USB cable between the PC and the EVM/LP. A serial terminal application (like teraterm/ hyperterminal/ minicom) is then run on the host. To configure, select the serial port corresponding to the port emulated over USB by the EVM. The host serial port should be configured to 115200 baud, no parity, 1 stop bit and no flow control.

The BISS-C receiver firmware running on PRU provides a defined interface. The BISS-C diagnostic application interacts with the BISS-C receiver firmware interface. It then presents the user with menu options to select Data ID code. The application collects the data entered by the user and configures the relevant interface. Then via the BISS-C receiver interface, the command is triggered. Once the command completion is indicated by the interface, the status of the transaction is checked. If the status indicates success, the result is presented to the user.

Periodic Trigger Modes

The BiSS-C diagnostic application supports two types of periodic trigger modes for continuous position sampling as described in Periodic Trigger Modes.

CMP Mode (Compare Event Mode)

  • Implementation: Command 6 demonstrates this mode
  • Configuration: Uses a user-defined compare value to trigger sampling events
  • IEP Counter Reset: Uses CMP0 by default (skip if reset is handled differently)
  • Notification: Firmware triggers an Arm® Cortex®-R5F interrupt after receiving encoder response

CAP Mode (Capture Event Mode)

  • Implementation: Command 7 demonstrates this mode
  • XBAR Configuration for CAP6/CAP7 (LATCH_IN0/LATCH_IN1)
    • This example configures the XBAR for routing EPWM SYNC OUT as input to CAP using SysConfig
    • Customization: XBAR settings can be modified for alternative inputs
    • NOTE: XBAR routing configuration is optional if not needed
  • NOTE: When using different CAP events instead of the ones used in SDK example, ensure all related configurations (source selection, signal routing, etc.) are properly done.
  • Notification: Firmware triggers an R5F interrupt after receiving encoder response

Important Notes for Periodic Mode

  1. Automatic Behavior: In periodic mode, bissc_command_process() skips sending operations (PRU firmware handles triggering via IEP events)
  2. CMP Resource Allocation
    • Avoid using CMP0 if it's already used to IEP counter reset
    • Avoid using CMP1/CMP2 if they're used to SYNC OUT generation
    • Avoid sharing CMP events across different channels or instances of BiSS-C or other encoders. Each CMP event must be assigned exclusively to a single encoder channel.

Important files and directory structure

Folder/Files Description
${SDK_INSTALL_PATH}/examples/position_sense/bissc_diagnostic
bissc_diagnostic.c BISS-C diagnostic application
${SDK_INSTALL_PATH}/source/position_sense/bissc
firmware/ Folder containing BISS-C PRU firmware sources
driver/ BISS-C diagnostic driver

Supported Combinations

Parameter Value
CPU + OS r5fss0-0 freertos
ICSSM ICSSM0
PRU PRU0
Toolchain ti-arm-clang
Board am263px-lp
Example folder examples/position_sense/bissc_diagnostic/single_channel

Single Channel with Single PRU Example

This example supports one BiSS-C channel using one PRU. In this example:

  • 1 BiSS-C driver instance and corresponding SysConfig BiSS-C module instance is used.

Steps to Run the Example

Hardware Prerequisites

Hardware Setup

Hardware Setup (Using BP-AM2BLDCSERVO Booster Pack and LP-AM263P)

Hardware Setup of BP-AM2BLDCSERVO Booster Pack + LP for BISS-C
Note
  • To enable VSENSOR1, BoosterPack pin J8.73 must be set high (In this example, this pin is configured in GPIO mode and pulled high)

LP-AM263P Jumper Configuration

Designator ON/OFF Description
J13 ON 3V3 Supply to Booster Pack
J14 ON 5V0 Supply to Booster Pack

BP-AM2BLDCSERVO Booster Pack Jumper Configuration

Designator ON/OFF Description
J11 OFF VSENSE/ISENSE select
J13 OFF VSENSE/ISENSE select
J17 Pin 1-2 Connected SDFM Clock Feedback Select
J18/J19 J19 installed: sets VSENSOR1 to 5.0V Axis 1: Encoder/Resolver Voltage Select
J20/J21 J21 installed: sets VSENSOR2 to 5.0V Axis 2: Encoder/Resolver Voltage Select
J22 OFF Axis 1: Manchester Encoding Select
J23 OFF Axis 2: Manchester Encoding Select
J24 OFF Axis 1: RS485/DSL MUX
J25 OFF Axis 2: RS485/DSL MUX
J26 OFF VSENSE/ISENSE Select
J27 OFF Encoder and SDFM Paths Select
J28 ON AM243/AM263 Mode

Build, load and run

  • When using CCS projects to build, import the CCS project and build it using the CCS project menu (see Using SDK with CCS Projects ).
  • When using makefiles to build, note the required combination and build using make command (see Using SDK with Makefiles )
  • Launch a CCS debug session and run the executable, see CCS Launch, Load and Run
  • Refer to UART terminal for user interface menu options.

Sample Output

Shown below is a sample output when the application is run:

BISS-C Sample Output

Shown below is a sample output when two encoders are in daisy chain and safety is enabled in one of encoders:

BISS-C Sample Output when safety is enabled

BiSS-C Debug Guide

This section describes how to debug the BiSS-C application, including a guide to debugging the BiSS-C example and firmware. Several common debugging steps on verifying the configuration of key registers, hardware details for probing pins, debugging firmware, common issues with multi-channel or continuous mode, etc. are described in Encoder Examples Debug Guide.

If the BiSS-C interface is not initializing correctly, the steps mentioned below can help identify the root cause. Additionally, ensure that the hardware connections and software configurations are properly set up before proceeding with debugging.

Initialization Failures

In case of initialization failure, perform the following steps to identify the root cause:

  1. Probe the RX and clock pins of the connected channel
  2. Load the example and capture signals during the initialization sequence. Check BISS-C Protocol Design for details on initialization.
  3. Compare with the expected initialization sequence below:
    BiSS-C Initialization Response
  4. Probe the response and verify it with the image below
    BiSS-C Response
Note
The initialization sequence for BiSS-C will be repeated 8 times and will have an extended clock signal for process delay measurement.

Verify that the clock and RX signals show meaningful data exchanges. If the initialization communication is incorrect, possible causes include:

  1. Firmware not loaded into the correct PRU core
  2. Firmware stuck due to:
    • No response or incorrect response from encoder
    • Incorrect channel selection or incorrect clock configuration

Troubleshooting steps:

  1. Verify hardware connections
  2. Confirm the pin settings and the clock configuration
  3. If the above are correct, debug the PRU firmware by connecting to the appropriate core as described in the Encoder Examples Debug Guide

Test Case Description

UART Option Number Name Description Pass/fail Criteria
3 Data readout (absolute position data) Absolute rotor position value, errors, and warnings are received. CRC success with ABS, E, W and CRC values printed in the terminal.
4 Control Communication Absolute rotor position value, errors, and warnings, along with the result of the control communication command are received. CRC success with ABS position value, E, W and CRC values of position data along with the control communication result printed in the terminal.
6 Start periodic CMP mode Absolute rotor position value, errors, and warnings are received periodically using IEP CMP event. Rotate the rotor of motor and see the changes in position value on UART. 0 CRC errors with ABS position value, E, W and CRC values printed in the terminal.
7 Start periodic CAP mode Absolute rotor position value, errors, and warnings are received periodically using IEP CAP event. Rotate the rotor of motor and see the changes in position value on UART. 0 CRC errors with ABS position value, E, W and CRC values printed in the terminal.
8 Enable/disable safety mode Enable/disable safety mode which toggles between 6/16 bit CRC and enables/disables Sign of Life counter Safety should be enabled and CRC and Sign of Life counter will be displayed from next position data request
Note
Arm is a registered trademark of Arm Limited (or its subsidiaries or affiliates) in the US and/or elsewhere.