The Tamagawa diagnostic application does the following:
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 Tamagawa diagnostic application interacts with the Tamagawa receiver firmware interface. It then presents the user with menu options to select Data ID code (as defined by Tamagawa) to be sent to the encoder. The application collects the data entered by the user and configures the relevant interface. Then via the Tamagawa 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.
The Tamagawa diagnostic application supports two types of periodic trigger modes for continuous position sampling as described in Periodic Trigger Modes.
DATA_ID_0DATA_ID_0DATA_ID_0 is used by defaultTAMAGAWA_PERIODIC_MODE_CMD macro value in example code| Folder/Files | Description |
|---|---|
| ${SDK_INSTALL_PATH}/examples/position_sense/tamagawa_diagnostic | |
| tamagawa_diagnostic.c | Tamagawa diagnostic application |
| ${SDK_INSTALL_PATH}/source/position_sense/tamagawa | |
| firmware/ | Folder containing Tamagawa PRU firmware sources |
| driver/ | Tamagawa diagnostic driver |
| Parameter | Value |
|---|---|
| CPU + OS | r5fss0-0 freertos |
| ICSS | ICSSM0 |
| PRU | PRU0 |
| Toolchain | ti-arm-clang |
| Board | am263px-lp |
| Example folder | examples/position_sense/tamagawa_diagnostic/single_channel |
This example supports one Tamagawa channel using one PRU. In this example:
Other than the basic EVM setup mentioned in EVM Setup , additional hardware required to run this demo is mentioned below
Connect the jumpers J13 and J26 for providing 3.3V and 5V to boosterpack.
| 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 |
Shown below is a sample output when the application is run:
This section describes how to debug the Tamagawa application, including a guide to debugging the Tamagawa 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 Tamagawa 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.
In the case of getting a CRC failure, firmware getting stuck, or getting 0xffff data with CRC success when the command is run for the first time through the UART terminal, possible root causes can be:
The following things can be tried for finding the root cause:
0.
Verify that the clock frequency is set to 2.5 Mbps or 5 Mbps. The TX and RX signals should show meaningful data exchange for command 0.
If nothing is appearing on the signals, possible causes are:
This issue can be troubleshot by debugging the firmware and examining register values, as described in the Encoder Examples Debug Guide.
| Data_ID | Name | Description | Pass/fail Criteria |
|---|---|---|---|
| Data ID 0 | Data readout (absolute position data) | Receive following data: Absolute rotor position value in field name ABS. Errors and warnings in field name SF(status field) | CRC success with ABS, SF, CF and CRC values printed in the terminal. |
| Data ID 1 | Data readout (multi-turn data) | Receive following data: No. of rotor turns in field name ABM. Errors and warnings in field name SF(status field). | CRC success with ABM, SF, CF and CRC values printed in the terminal. |
| Data ID 2 | Encoder-ID | Receive following data: Tamagawa encoder make-ID in ENID field. Errors and warnings in field name SF(status field) | CRC success with ENID, SF, CF and CRC values printed in the terminal. |
| Data ID 3 | Data readout(absolute+multiturn+encoder-ID) | Receive following data: Absolute rotor position value in field name ABS. No. of rotor turns in field name ABM. Tamagawa encoder make-ID in ENID field. Errors and warnings in field name SF(status field) Other warnings in field name ALMC | CRC success with ABS, ENID, ABM, ALMC, SF, CF and CRC values printed in the terminal. |
| Data ID 6 | Writing to EEPROM | Transmit following data: Proper address of the EEPROM where you want to write Proper data that you want to write. Receive following data: Control Field for EEPROM Write command EEPROM address that you want to write to Data that you want to write to the EEPROM CRC value | CRC success with EDF, ADF, CF and CRC values printed in the terminal. |
| Data ID D | Readout from EEPROM | Transmit following data: Proper address of the EEPROM that you want to read. Receive following data: Control Field for EEPROM Read command EEPROM address that was read from Data read from the EEPROM CRC value | CRC success with EDF, ADF, CF and CRC values printed in the terminal. |
| Data ID 7 | Reset-Error | This command is used to reset errors. | CRC success with ABS, SF, CF and CRC values printed in the terminal. |
| Data ID 8 | Reset - absolute | This command is used to reset absolute position data(ABS). In order to reset the ABS value, send this command 10 times and send Data ID 0. | CRC success with ABS value set to 0 along with SF, CF and CRC values printed in the terminal. |
| Data ID C | Reset - multiturn | This command is used to reset multi-turn data(ABM). In order to reset the ABM value, send this command 10 times and send Data ID 1. | CRC success with ABM value set to 0 along with SF, CF and CRC values printed in the terminal. |
| 9 (NOTE: This is not a command with Data ID 9, it is UART option number 9) | Start Periodic CMP Mode | In this command, encoder sends absolute position data based on IEP CMP event. | CRC success with ABS, SF, CF and CRC stats printed in the terminal. |
| 10 (NOTE: This is not a command with Data ID 10, it is UART option number 10) | Start Periodic CAP Mode | In this command, encoder sends absolute position data based on IEP CAP event. | CRC success with ABS, SF, CF and CRC stats printed in the terminal. |