motor-control-sdk/docs_src/docs/api_guide/examples/bissc_example.md
Dhaval Khandla 2c4dd5bfc0 am243x: bissc: Add examples, driver and firmwares
- Add support for single channel
- Add support for multi channel using single PRU
- Add support for multi channel using multiple PRUs with load share mode

Fixes: PINDSW-5468, PINDSW-5479, PINDSW-5488, PINDSW-5494, PINDSW-5495

Signed-off-by: Dhaval Khandla <dhavaljk@ti.com>
2023-12-04 15:54:58 +05:30

6.7 KiB

BISS-C Diagnostic

[TOC]

BISS-C diagnostic application does the following:

  • Configures pinmux, GPIO, UART, ICSS clock to 200MHz,
  • Initializes ICSS0-PRU1,
  • Initializes defalt parameters, loads the PRU firmware & executes it.

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.

Connect the BISS-C encoder(s) via TIDA-00179 cards on a 3 axis board (TIDEP-01015) to the EVM. On AM243x LP, a BISS-C encoder can be directly connected using a TIDA-00179 card.

The connections between AM243x LP and TIDA-00179 for Channel 0 are:

BISSC_CHANNEL0_TX -> PRG0_PRU1_GPO1, BISSC_CHANNEL0_TX_ENABLE -> PRG0_PRU1_GPO2, BISSC_CHANNEL0_RX -> PRG0_PRU1_GPO13, BISSC_CHANNEL0_CLK -> PRG0_PRU1_GPO0.

The BISS-C receiver firmware running on ICSS0-PRU1 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.

Channel Selection In Sysconfig

\image html bissc_syscfg_ch_sel.png "Channel Selection In Sysconfig"

\image html Endat_channel_selection_configuration.png "BiSS-C configuration seletion between Single/Multi channel "

Important files and directory structure

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

Supported Combinations

\cond SOC_AM64X

Parameter Value
CPU + OS r5fss0-0 freertos
ICSSG ICSSG0
PRU PRU1
Toolchain ti-arm-clang
Board @VAR_BOARD_NAME_LOWER
Example folder examples/motor_control/bissc_diagnostic

\endcond

\cond SOC_AM243X

Parameter Value
CPU + OS r5fss0-0 freertos
ICSSG ICSSG0
PRU PRU1
Toolchain ti-arm-clang
Board @VAR_LP_BOARD_NAME_LOWER (E3 Revision)
Example folder examples/motor_control/bissc_diagnostic

\endcond

Steps to Run the Example

Hardware Prerequisites

Other than the basic EVM setup mentioned in \htmllink{@VAR_MCU_SDK_DOCS_PATH/EVM_SETUP_PAGE.html, EVM Setup}, additional hardware required to run this demo is mentioned below

  • BISS-C Encoders
  • TIDA-00179 Universal Digital Interface to Absolute Position Encoders, http://www.ti.com/tool/TIDA-00179
  • TIDEP-01015 3 Axis board
  • Interface card connecting EVM and TIDEP-01015 3 Axis board

\cond SOC_AM243X

Hardware Prerequisities for Booster Pack

  • BISS-C encoder
  • AM243x-LP board
  • BP-AM2BLDCSERVO \endcond

Hardware Setup

\cond SOC_AM243X

Hardware Setup(Using Booster Pack & AM243x-LP)

\imageStyle{AM243x_lp_bp_bissc_encoder_setup.png,width:40%} \image html AM243x_lp_bp_bissc_encoder_setup.png "Hardware Setup of Booster Pack + LP for BISS-C"

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 J18 OFF & J19 ON Axis 1: Encoder/Resolver Voltage Select
J20/J21 J20 ON & J21 OFF 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 ON 3WIRE/SDFM MUX
J28 OFF 3WIRE MUX

\endcond

Build, load and run

  • When using CCS projects to build, import the CCS project and build it using the CCS project menu (see \htmllink{@VAR_MCU_SDK_DOCS_PATH/CCS_PROJECTS_PAGE.html, Using SDK with CCS Projects}).
  • When using makefiles to build, note the required combination and build using make command (see \htmllink{@VAR_MCU_SDK_DOCS_PATH/MAKEFILE_BUILD_PAGE.html, Using SDK with Makefiles})
  • Launch a CCS debug session and run the executable, see \htmllink{@VAR_MCU_SDK_DOCS_PATH/CCS_LAUNCH_PAGE.html, 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:

\imageStyle{bissc_sample_output.png,width:60%} \image html bissc_sample_output.png "BISS-C Sample Output"

Test Case Description

# Name Description Pass/fail Criteria
1 Data readout (absolute position data) In this command we will receive: Absolute rotor position value, errors, and warnings CRC success with ABS, E, W and CRC values printed in the terminal.
2 Control Communication In this command we will receive: Absolute rotor position value, errors, and warnings, along with the result of the control communication command. CRC success with ABS, E, W and CRC values of position data along with the control communication result printed in the terminal.