62
Introduction The AEK-MOT-3P99081 evaluation board is based on the SPC560P Pictus 32-bit MCU and the L9908 gate driver allowing the control of 6 N-channel FETs for brushless motors in automotive applications. The AEK-MOT-3P99081 supports independent encoder inputs and Hall sensors to detect and control motor speed. The L9908 independently controls each N-channel FET through a dedicated PWM input pin. L9908 configuration, protection and diagnostic functions are controlled via SPI by the SPC560P microcontroller. Firmware is preloaded and can be externally driven via CAN bus. The STSW-AUTODEVKIT contains a CAN bus driving example based on SPC58 Chorus 4M, named “SPC58ECxx_RLA_MainEcuForBLDCControl-L9908 - Test Application”. In the project folder, a readme file explains how to use the demo which works only with a BLDC motor with Hall sensors. To change the motor characteristics or the control firmware on the SPC560P50L5, you need to install the SPC5-MCTK-LIB motor control plug-in in SPC5-STUDIO. Once the motor control plug-in is installed, select the “SPC560Pxx_RLA_AEK_MOT_3P99081_3Phase_Motor_Control_L9908_via_CAN ” demo and make your customizations in the Motor Control Component section. Update the Motor Settings section according to the motor used and, if the motor sensing is not based on Hall sensors, update also the type of sensor used in the Speed Sensor Selection menu of the Drive Management section. Figure 1. AEK-MOT-3P99081 evaluation board Getting started with the AEK-MOT-3P99081 CAN-controlled brushless motor evaluation board based on SPC560P and L9908 UM2932 User manual UM2932 - Rev 1 - September 2021 For further information contact your local STMicroelectronics sales office. www.st.com

Getting started with the AEK-MOT-3P99081 CAN-controlled

  • Upload
    others

  • View
    4

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Getting started with the AEK-MOT-3P99081 CAN-controlled

IntroductionThe AEK-MOT-3P99081 evaluation board is based on the SPC560P Pictus 32-bit MCU and the L9908 gate driver allowing thecontrol of 6 N-channel FETs for brushless motors in automotive applications.

The AEK-MOT-3P99081 supports independent encoder inputs and Hall sensors to detect and control motor speed.

The L9908 independently controls each N-channel FET through a dedicated PWM input pin. L9908 configuration, protection anddiagnostic functions are controlled via SPI by the SPC560P microcontroller.

Firmware is preloaded and can be externally driven via CAN bus. The STSW-AUTODEVKIT contains a CAN bus drivingexample based on SPC58 Chorus 4M, named “SPC58ECxx_RLA_MainEcuForBLDCControl-L9908 - Test Application”. In theproject folder, a readme file explains how to use the demo which works only with a BLDC motor with Hall sensors.

To change the motor characteristics or the control firmware on the SPC560P50L5, you need to install the SPC5-MCTK-LIBmotor control plug-in in SPC5-STUDIO.

Once the motor control plug-in is installed, select the“SPC560Pxx_RLA_AEK_MOT_3P99081_3Phase_Motor_Control_L9908_via_CAN ” demo and make your customizations in theMotor Control Component section.

Update the Motor Settings section according to the motor used and, if the motor sensing is not based on Hall sensors, updatealso the type of sensor used in the Speed Sensor Selection menu of the Drive Management section.

Figure 1. AEK-MOT-3P99081 evaluation board

Getting started with the AEK-MOT-3P99081 CAN-controlled brushless motor evaluation board based on SPC560P and L9908

UM2932

User manual

UM2932 - Rev 1 - September 2021For further information contact your local STMicroelectronics sales office.

www.st.com

Page 2: Getting started with the AEK-MOT-3P99081 CAN-controlled

1 Getting started

1.1 System overviewThe AEK-MOT-3P99081 evaluation board belongs to the AutoDevKit ecosystem.In its simplest configuration, the board is considered as a standalone motor drive controllable via CAN by a hostmicrocontroller. An example of this configuration is included in the AutoDevKit example libraries. The source codeexample demonstrates the CAN protocol setting and usage for an SPC58EC Chorus microcontroller acting ascommunication master towards an AEK-MOT-3P99081 board connected to a BLDC motor acting as a slave.The figure below highlights the CAN communication architecture underlying the distributed system solution tocontrol BLDC motors.

Important:In the current temporary implementation of low voltage BLDC motor control, only one AEK-MOT-3P99081 can be connectedas the employed SIDs are the same and decoding of the motor ID is not implemented.

In this architecture, the master board is represented by an AEK-MCU-C4MLIT1, while the slave system boardis represented by the AEK-MOT-3P99081. The latter manages the BLDC motor control application through adedicated firmware based on field-oriented control (FOC) algorithm.The dedicated CAN communication protocol allows real-time data exchange between master and slave boards.You can send commands to start/stop the BLDC motor, to increase/decrease the BLDC motor target speed, toreverse the BLDC motor rotation direction. You can also make the system receive error messages when a faultcondition occurs.

Figure 2. System overview describing a generic high-level system block diagram for Hall-effect sensorthree-phase BLDC motor control

Warning:The AEK-MOT-3P99081 evaluation board has not to be used in a vehicle as it is designed forR&D laboratory use only.

UM2932Getting started

UM2932 - Rev 1 page 2/62

Page 3: Getting started with the AEK-MOT-3P99081 CAN-controlled

1.2 Features• Hosts an automotive-grade L9908 gate driver to control 6 N-channel FETs and SPC560P Pictus 32-bit

automotive microcontroller• Works with 12 V, 24 V and 48 V battery bus• Independent encoder inputs and Hall sensors• Gate driver configurable through dedicated SPI bus• CAN bus interface for remote control

1.3 Board componentsThe AEK-MOT-3P99081 is composed of:• Microcontroller unit (SPC560P50L5) - 32-bit power architecture MCU for automotive chassis and safety

applications. The microcontroller can be flashed either using the integrated programmer/debugger (FTDImodule, FT2232HL) or using an adapter connected to the JTAG connector

• Gate driver (L9908) - automotive three-phase motor gate driver fully supporting all features related to BLDCmotor control applications. The device features three differential high accuracy current monitors for groundreferred current measurements

• Power stage (inverter) - made up of six automotive-grade N-channel 100 V,6.8 mΩ typ., 80 A STripFET F7power MOSFETs in a DPAK package (STD105N10F7AG). It uses input bus voltage VBD as main powersupply.

Note: Due to component shortage, some AEK-MOT-3P99081 could mount the feature-equivalent industrial-gradeSTD100N10F7.• Power supply unit - for safety functions related to battery polarity inversion and reliable generation of board

power supplies. It can be divided in: DC-DC converter (L7987L), used to generate 10.9 V reference voltagestarting from the input bus voltage (VBD), and U2 (L4995RJ) and U3 (L4995AJ) voltage regulators, used togenerate 5 V to power, respectively, the microcontroller unit and the gate driver.

• High-speed CAN flexible data rate transceiver (L9616) - to manage CAN communication with the masterboard (AEK-MCU-C4MLIT1).

The BLDC motor three phases are connected to the P2 screw connector. Encoder sensors, used to track theBLDC motor rotor position, are connected to the P4 header. Instead, alternative Hall sensors to track the rotorposition of the BLDC motor can be connected to the P3 header.

UM2932Features

UM2932 - Rev 1 page 3/62

Page 4: Getting started with the AEK-MOT-3P99081 CAN-controlled

Figure 3. AEK-MOT-3P99081 components1. Power supply unit2. SPC560P50L5 microcontroller3. L9908 gate-driver4. CAN connector5. JTAG connector6. Mini-USB port7. FTDI module8. Encoder sensor header9. Hall sensor header10. Three-phase BLDC motor screw connector11. Power stage inverter

1

2

3

4 5 6

7

8

9

10

11

UM2932Board components

UM2932 - Rev 1 page 4/62

Page 5: Getting started with the AEK-MOT-3P99081 CAN-controlled

2 How to set up the AEK-MOT-3P99081

Step 1. Set switch S1 to VCC to enable the DC-DC converter (U13).

Step 2. Set jumper J2 by choosing one of the following options:– for 12 V and 24 V systems: J2 short-circuits VBP with VBD (pins 1 and 2);– for a 48 V system: J2 short-circuits VBP with VDCDC (pins 2 and 3).

Figure 4. AEK-MOT-3P99081 switch and jumper1. S1 switch2. J2 jumper

1

2

UM2932How to set up the AEK-MOT-3P99081

UM2932 - Rev 1 page 5/62

Page 6: Getting started with the AEK-MOT-3P99081 CAN-controlled

Step 3. Through J1 screw connector, provide external power supply to the AEK-MOT-3P99081 board byconnecting (–) to 0 V and (+) to, for example, 14 V, which is the typical value of battery voltage (VB) ina 12 V system.When the board is powered using the external power supply, LED D3, D4, D5 turn on.

Figure 5. AEK-MOT-3P99081 power supply connection and LEDs1. Power supply connector2. LEDs

1

2

Step 4. Connect the three phases of the motor (i.e., phases U, V, W) to OUT1, OUT2, OUT3 of P2 screwconnector.In this demo application, a Nanotec motor (model: DF45L024048-A2, Brushless DC Servo Motor) isused.

UM2932How to set up the AEK-MOT-3P99081

UM2932 - Rev 1 page 6/62

Page 7: Getting started with the AEK-MOT-3P99081 CAN-controlled

Step 5. Connect Hall-effect sensors, used to track rotor positions for Nanotec BLDC motor, in P3 connector.

Important:– U phase (the grey wire in the figure below) has to be linked to OUT1– V phase (the brown wire in the figure below) has to be linked to OUT2– W phase (the yellow wire in the figure below) has to be linked to OUT3– GND pin of the Hall-effect sensor cable (coming from the Nanotec BLDC motor) has to be linked to the first pin of the P3

connector close to P2 screw connector

Figure 6. AEK-MOT-3P99081 three-phase BLDC motor and Hall-effect sensor connections

UM2932How to set up the AEK-MOT-3P99081

UM2932 - Rev 1 page 7/62

Page 8: Getting started with the AEK-MOT-3P99081 CAN-controlled

3 How to set up the AEK-MCU-C4MLIT1

Step 1. For jumpers JP37, JP36 and JP35, close pin 2 and 3.

Step 2. For jumper JP34, close pin 1 and 2.

Step 3. For jumpers JP6, JP7 and JP2, close pin 2 and 3.

Step 4. For jumper JP32, close pin 1 and 2.

Step 5. For jumpers JP42, JP43, JP44, JP47, JP49, JP45, JP46 and JP48, close the two pins.

Figure 7. AEK-MCU-C4MLIT1 JP37, JP36, JP35 and JP34 jumpers

Figure 8. AEK-MCU-C4MLIT1 other jumpers1. JP6, JP7, JP332. JP23. JP424. JP435. JP44, JP47, JP496. JP45, JP46, JP48

1 2 34

5

6

UM2932How to set up the AEK-MCU-C4MLIT1

UM2932 - Rev 1 page 8/62

Page 9: Getting started with the AEK-MOT-3P99081 CAN-controlled

Step 6. Connect the plug of the DC supply (12 V, 2.0 A) and turn on the board by switching S1 to ON state.

Figure 9. AEK-MCU-C4MLIT1 plug connector for DC supply and power switch1. Power switch2. Plug connector for DC supply

12

Step 7. Connect pin A10 with pin A23 through wires.A10 and A23 pins belong to the 4x37 pins "X9" connector.

Figure 10. AEK-MCU-C4MLIT1 physical connection between pin A10 and pin A23

Step 8. Connect CAN_1_L of the AEK-MCU-C4MLIT1 system master board to the CAN_L of the AEK-MOT-3P99081 system slave board.

UM2932How to set up the AEK-MCU-C4MLIT1

UM2932 - Rev 1 page 9/62

Page 10: Getting started with the AEK-MOT-3P99081 CAN-controlled

Step 9. Connect CAN_1_H of the AEK-MCU-C4MLIT1 to the CAN_H of the AEK-MOT-3P99081To ease CAN wire connection between the two boards, two male connector-pins have been welded onthe CAN_1_H and CAN_1_L outputs of the AEK-MCU-C4MLIT1 board.

Figure 11. AEK-MCU-C4MLIT1 and AEK-MOT-3P99081 wire connections

CAN-LCAN-H

CAN-1_H CAN-1_L

UM2932How to set up the AEK-MCU-C4MLIT1

UM2932 - Rev 1 page 10/62

Page 11: Getting started with the AEK-MOT-3P99081 CAN-controlled

4 How to install UDE visual platform and PLS USB JTAG drivers

The following procedure describes how to download and install the latest version of SPC5-UDESTK. You can skipthis procedure if the latest version is already installed on your PC.

Step 1. Go to the tool download page.

Step 2. Download SPC5-UDESTK 5.02.04 (or greater version available), save udestk-5-02-04-spc5-stk.exeand run it as an administrator.

Figure 12. SPC5-UDESTK starter-kit

Step 3. Install PLS USB JTAG Driver Package (v. 2.12.36.4) and PLS USB JTAG Driver Package-VCP driver(v. 2.12.36.4) from FTDIC Chip.

Figure 13. VCP driver library

Step 4. Once the installation is completed, connect the USB cable between the PC and the USB port on themicrocontroller board. From [Start] menu, right click on [Computer], then select [Manage]. Once theComputer management pop-up appears, from [System Tools] menu, select [Device Manager].

UM2932How to install UDE visual platform and PLS USB JTAG drivers

UM2932 - Rev 1 page 11/62

Page 12: Getting started with the AEK-MOT-3P99081 CAN-controlled

Step 5. Expand the Universal Serial Bus controllers and click on [PLS USB JTAG Adapter for SPC5xxx B].Then, click on Advanced tab and check that Load VCP is flagged.

Figure 14. PLS JTAG Adapter for SPC5xxx B

Step 6. Go back to Universal Serial Bus controllers and click on PLS USB JTAG Adapter for SPC5xxx A. Clickon Advanced tab and check that Load VCP is NOT flagged.

Figure 15. PLS JTAG Adapter for SPC5xxx A

UM2932How to install UDE visual platform and PLS USB JTAG drivers

UM2932 - Rev 1 page 12/62

Page 13: Getting started with the AEK-MOT-3P99081 CAN-controlled

Step 7. Disconnect the USB cable from the PC, then reconnect it again.A new COM port appears in the [Device Manager] window. You should see it as a new COM portavailable in [Ports (COM & LPT)]. The COM port is configured and available to be used for serialcommunication with the PC.

Figure 16. New COM port available

UM2932How to install UDE visual platform and PLS USB JTAG drivers

UM2932 - Rev 1 page 13/62

Page 14: Getting started with the AEK-MOT-3P99081 CAN-controlled

5 How to flash the microcontroller firmware using UDE visualplatform

5.1 How to flash the microcontroller firmware on the AEK-MOT-3P99081The demo works with a 24 V supply, using a Nanotec brushless DC servo motor (model: DF45L024048-A2), andwith a three-shunt resistor (ground-referred) configuration. Hall-effect sensors perform rotor position sensing.

Important:If you want to change the supply voltage from 24 V to 12 V or 48 V or other parameters in the drive, you have to configure,generate and recompile a new firmware version.

After installing SPC5Studio (version 6.0.0 Clarke or greater version), importing, generating, and compiling theSPC560Pxx_RLA_AEK_MOT_3P99081_3Phase_Motor_Control_L9908_via_CAN demo, follow the procedurebelow to flash the firmware on the SPC560P50L5 microcontroller embedded in the AEK-MOT-3P99081 board.

Step 1. Plug the USB cable to the PC and turn on the power supply connected to the demo board.

Step 2. Open UDE-STK-5.2 and click on [File]>[OpenWorkspace]>[ SPC560Pxx_RLA_AEK_MOT_3P99081_3Phase_Motor_Control_L9908_via_CAN]>[UDE]>[debug.wsx].

Step 3. In the left corner, click on [File]>[Load Program].

Step 4. Click [OK] to load MC_Application.elf, which is the binary file to be loaded on the microcontroller and islocated in the build folder of the demo project:C:\Workspace\SPC560Pxx_RLA_AEK_MOT_3P99081_3Phase_Motor_Control_L9908_via_CAN\build.

Figure 17. Loading the binary file onto the microcontroller

UM2932How to flash the microcontroller firmware using UDE visual platform

UM2932 - Rev 1 page 14/62

Page 15: Getting started with the AEK-MOT-3P99081 CAN-controlled

Step 5. Click on [Program All] and wait for the program loading to complete (i.e., the loading bar reaches100%). At end click on [Exit].

Figure 18. Flashing the firmware using UDE-STK

Step 6. Press the [Start] button in the toolbar.

Note: The motor starts running as soon as you push the AEK-MOT-3P99081 reset button.

Step 7. Close UDE STK 5.2.

5.2 How to flash the microcontroller firmware on the AEK-MCU-C4MLIT1After installing SPC5Studio (version 6.0.0 Clarke or greater version), importing, generating, and compiling theSPC58ECxx_RLA_MainEcuForBLDCControl-L9908-Test Application demo, follow the procedure below to flashthe firmware on the SPC58EC80E5 microcontroller embedded in the AEK-MCU-C4MLIT1 board.

Step 1. Plug the USB cable to the PC and turn on the power supply connected to the demo board.

Step 2. Open UDE-STK-5.2 and click on[File]>[Open Workspace]>[ SPC58ECxx_RLA_MainEcuForBLDCControl-L9908-TestApplication]>[UDE]>[debug.wsx].

Step 3. In the left corner, click on [File]>[Load Program].

Step 4. Click [OK] to load out.elf, which is the binary file to be loaded on the microcontroller and is locatedin the build folder of the demo project: C:\Workspace\SPC58ECxx_RLA_MainEcuForBLDCControl-L9908-TestApplication\build.

Step 5. Press the [Start] button in the toolbar.

Step 6. Close UDE STK 5.2.

Note: For further details on how to import a demo in SPC5Studio, refer to UM2719, Section 7.2.1.

UM2932How to flash the microcontroller firmware on the AEK-MCU-C4MLIT1

UM2932 - Rev 1 page 15/62

Page 16: Getting started with the AEK-MOT-3P99081 CAN-controlled

6 How to manage the system demo using CAN communicationprotocol between the AEK-MCU-C4MLIT1 and the AEK-MOT-3P99081

The figure below shows the main hardware components for a Hall-sensor three-phase BLDC motor control.

Figure 19. BLDC drive system configuration

UM2932How to manage the system demo using CAN communication protocol between the AEK-MCU-C4MLIT1 and the AEK-MOT-3P99081

UM2932 - Rev 1 page 16/62

Page 17: Getting started with the AEK-MOT-3P99081 CAN-controlled

Step 1. After setting up AEK-MOT-3P99081 and AEK-MCU-C4MLIT1, supply the boards.The AEK-MCU-C4MLIT1 SW1, SW2 and SW3 buttons will be enabled.

Figure 20. AEK-MCU-C4MLIT1 board SW1, SW2 and SW3 (highlighted below)

Step 2. Push the buttons above to send CAN commands to the BLDC motor drive:– SW1 button increases the target speed of the BLDC motor control;– SW2 button decreases the target speed of the BLDC motor control;– SW3 button turns the BLDC motor control algorithm ON/OFF;– SW2 button pressed several times decreases the target speed of the BLDC motor control to

reverse the rotation direction of the BLDC motor.

Note: As soon as the supply voltage is provided to both boards, the BLDC motor starts spinning and is controlled ata fixed target speed. If upon voltage supply, the previously described start operative condition does not occur,reset the AEK-MOT-3P99081 board MCU.

UM2932How to manage the system demo using CAN communication protocol between the AEK-MCU-C4MLIT1 and the AEK-MOT-3P99081

UM2932 - Rev 1 page 17/62

Page 18: Getting started with the AEK-MOT-3P99081 CAN-controlled

7 SPC5-STUDIO overview

SPC5-STUDIO is an integrated development environment (IDE) based on Eclipse. It consists of a standardworkspace and an extensible plug-in system environment customization.This IDE helps to maximize embedded application developer productivity with SPC5 Power Architecture 32-bitmicrocontrollers employing a single tool for evaluation, development, design, and production.SPC5-STUDIO includes an application wizard to simplify project creation and configuration; it automatically solvescomponent dependencies and generates support files.

Figure 21. SPC5-STUDIO - SPC58ECxx_RLA_MainEcuForBLDCControl-L9908-Test Application projectworkspace

The application wizard integrates the initial components into the project, together with the key elements employedby SPC5-STUDIO to generate the final application source code. The services of one component are provided toother components. Moreover, each component configuration is supported by an intuitive GUI.

UM2932SPC5-STUDIO overview

UM2932 - Rev 1 page 18/62

Page 19: Getting started with the AEK-MOT-3P99081 CAN-controlled

Figure 22. SPC5-STUDIO - SPC58ECxx_RLA_MainEcuForBLDCControl-L9908-Test Application projectcomponents

Register Level Access (RLA) components are low-level drivers with direct access to the MCU and peripheralssuch as CAN, Ethernet, DSPI, ADC, programmable interrupt timer (PIT) and advanced timing and synchronizationunit (GTM). The RLA components can be added and configured via GUIs.

Note: The RLA source code is MISRA 2021 checked.

UM2932SPC5-STUDIO overview

UM2932 - Rev 1 page 19/62

Page 20: Getting started with the AEK-MOT-3P99081 CAN-controlled

Figure 23. SPC5-STUDIO - software architecture

Application

Low level drivers

BoardClock

IRQ

HardwareThe FreeRTOS open source real-time operating system is available on request as a separate componentcompatible with the rest of the environment.SPC5-STUDIO also contains straightforward software examples for each MCU peripheral that can helpdevelopers to become familiar with the specific code involved.SPC5-STUDIO also features:• the possibility of integrating other software products from the Eclipse standard marketplace• availability of a free license GCC GNU C Compiler component• support for industry-standard compilers• support for multi-core microcontrollers• a PinMap graphical editor to facilitate MCU pin configuration

7.1 How to create a new project in SPC5-STUDIOStep 1. Install SPC5-STUDIO version 6.0.0 Clarke or greater version.

Step 2. Create a new SPC5 application.– Select [File]>[New]>[SPC5 C/C++ Application] or– Select the [Create a new SPC5 application] icon in the [Starter actions] tab

A window for application details pops up.

Step 3. Fill in the application details and then click on the [Next] button.

UM2932How to create a new project in SPC5-STUDIO

UM2932 - Rev 1 page 20/62

Page 21: Getting started with the AEK-MOT-3P99081 CAN-controlled

Step 4. Select the SPC58ECxx component and select the [Finish] button.

Figure 24. SPC5-STUDIO new application MCU platform

1

2

UM2932How to create a new project in SPC5-STUDIO

UM2932 - Rev 1 page 21/62

Page 22: Getting started with the AEK-MOT-3P99081 CAN-controlled

Step 5. Click on the [Generate application code] button to create a base C project in the workspace.The following files are visible in the application tree view:– configuration.xml containing the project configuration information updated each time the project is

changed;– main.c where the actual application is implemented. Upon creation, the main.c file only contains a

basic initialization section and an infinite loop.

Figure 25. SPC5-STUDIO new application files in outline view and main.c file automaticallygenerated

7.2 How to add components to an SPC5-STUDIO projectStep 1. In the [Project Explorer] tab, select the SPC58Cxx Platform component RLA.

Step 2. Open the available components window for the chosen platform:– right-click and select add, or– select the + icon in the project explorer

UM2932How to add components to an SPC5-STUDIO project

UM2932 - Rev 1 page 22/62

Page 23: Getting started with the AEK-MOT-3P99081 CAN-controlled

Step 3. Select the components to add and click [OK].You should add at least the following components to your SPC5-STUDIO project:– SPC58Cxx Init Package Component;– Low Level Driver;– SPC58Cxx Board Initialization Component RLA: to initialize and configure the selected board;– SPC58Cxx Clock Component RLA: to configure the MCU clock tree;– SPC58Cxx IRQ Component RLA: to set and configure interrupt the request QUEUE;– SPC58Cxx OSAL Component RLA: operating system abstraction.

Figure 26. SPC5-STUDIO new components visible in the project tree

7.3 How to generate and compile application source codeStep 1. Save the project.

Step 2. Click on the [Generate] icon to update the configuration files.

UM2932How to generate and compile application source code

UM2932 - Rev 1 page 23/62

Page 24: Getting started with the AEK-MOT-3P99081 CAN-controlled

Step 3. Click on the [Compile] icon to compile the project source and produce the MCU Flash image.Once the source code is compiled and linked, the debug.wsx file appears in the UDE folder.

Figure 27. SPC5-STUDIO compiled project files

7.4 AutoDevKit plug-inThe AutoDevKit plug-in extends SPC5-STUDIO into a straightforward, low-cost, time saving tool designed to helpautomotive application engineers evaluate, prototype, develop and deploy complex embedded systems.AutoDevKit features:• fast prototyping: with integrated hardware and software components, component compatibility checking, and

MCU and peripheral configuration tools• flexibility: allowing the creation of new system solutions from existing ones by adding dedicated boards for

further functionalities or removing unused boards• hardware abstraction: if, for example, the user swaps the SPC58EC Chorus 4M MCU with an SPC584B

Chorus 2M, or an SPC582B Chorus 1M, the tool will automatically regenerate the proper pin allocation• high-level application APIs: to control specific functional boards and exploit the chosen hardware

functionality to facilitate communication with the MCU

AutoDevKit provides a GUI to facilitate the configuration and setup for each supported component, as well assample code demonstrating typical usage and applications.Another key feature is the BoardView graphical tool showing the electrical wiring between the microcontroller andboard connectors and the connection between the MCU board and other functional boards.AutoDevKit adds new items to the list of the components that can be used in an SPC5-STUDIO project. Eachfunctional board component appears in the list of the MCUs able to support it only. Refer to RN0118 for all thecomponents installable with the AutoDevKit plug-in.Before using AutoDevKit, download the latest release of AutoDevKit plug-in (STSW-AUTODEVKIT).For more details about the AutoDevKit plug-in installation, see available videos.

UM2932AutoDevKit plug-in

UM2932 - Rev 1 page 24/62

Page 25: Getting started with the AEK-MOT-3P99081 CAN-controlled

8 How to set up BLDC motor parameters

The AEK-MOT-3P99081 drive kit is built with a Nanotec brushless DC servo motor (model: DF45L024048-A2).You can use different Hall-effect sensor three-phase BLDC motors by customizing the motor drive settings withthe actual values of the following parameters:• nominal parameters (max. rated speed, nominal current, nominal DC voltage);• number of pole pairs;• electrical parameters (stator resistance and inductance).

These parameters can be used to update the BLDC motor parameters in the SP56xx-Motor-Control-Componentof theSPC560Pxx_RLA_AEK_MOT_3P99081_3Phase_Motor_Control_L9908_via_CAN project (the firmware tobe flashed into the SPC560P MCU of AEK-MOT-3P99081 board).

Figure 28. SP56xx-Motor-Control-Component parameters to be updated to use a different Hall-effectsensor three-phase BLDC motor

Step 1. Save the SPC560Pxx_RLA_AEK_MOT_3P99081_3Phase_Motor_Control_L9908_via_CAN project.

Step 2. Click on [Generate] to update the configuration files related to the project, and then click on [Compile]to get the MCU flash image.

Step 3. Download the new firmware on the SPC560P MCU of the AEK-MOT-3P99081 board.For the new BLDC motor, the nominal parameters are:– Max Rated Speed that is the maximum motor speed according to the application level

requirements;– Nominal Current that is the peak current provided to each of the motor phases according to the

BLDC motor specifications;– Nominal DC Voltage that is the value of the DC bus to be provided to the inverter.

UM2932How to set up BLDC motor parameters

UM2932 - Rev 1 page 25/62

Page 26: Getting started with the AEK-MOT-3P99081 CAN-controlled

8.1 How to determine the number of pole pairs of a BLDC motorThe number of pole pairs of a BLDC motor is usually provided by the motor supplier. If this parameter is notavailable, considering that the number of pole pairs corresponds to rotor stable positions in one mechanical turn,you can determine them by following the procedure below.

Step 1. Connect a DC power supply between two (of the three) motor phases and provide up to 5% of theexpected nominal DC bus voltage.

Step 2. Gradually rotate the motor by hand up to a full mechanical turn of the rotor.During the mechanical turn of the rotor from a “jamming” rotor position to the next, you should notice alittle resistance, otherwise:– if you are not able to rotate the motor, decrease the applied voltage;– if the motor does not generate any resistance, increase the applied voltage.

The number of “jamming” positions of the rotor detected during the procedure corresponds to thenumber of pole pairs.

8.2 How to calculate stator resistance and inductanceThe stator resistance and inductance of the BLDC motor are parameters usually provided by the BLDC motortechnical documents. If these parameters are not available, you can determine them by following the steps below.

Step 1. Using a multimeter, measure the DC stator resistance phase-to-phase (Rs) and divide it by two.

Step 2. Connect the DC voltage between two motor phases.

Step 3. Connect the oscilloscope probes to monitor voltage and current.

Step 4. Increase the voltage up to where the current equals the nominal value, so the rotor will align with thegenerated flux.

Step 5. Do not move the rotor anymore.

Step 6. Disable the current protection of DC voltage source.

Step 7. Unplug one terminal of the voltage source cable without switching it off.

Step 8. Plug the voltage source rapidly and monitor the voltage and current waveform on the oscilloscope.

Figure 29. Nominal shape of voltage and current during the procedure to determine the statorresistance and inductance of the BLDC motor

0.63*I 8

8IV

T = L/RThe measurement is useful if the voltage can be assimilated to a step and the current increase asI∞ = 1− e−t * L/R

UM2932How to determine the number of pole pairs of a BLDC motor

UM2932 - Rev 1 page 26/62

Page 27: Getting started with the AEK-MOT-3P99081 CAN-controlled

Step 9. Measure the time needed by the current waveform to rise up to 63% of the plateau value.This value corresponds to the ratio Ls/Rs. Multiplying it by Rs, it is possible to get the Ls value.The following figure shows the results of the above procedure when applied to the MAXON EC40BLDC motor.

Figure 30. Results of the procedure to determine the stator resistance and inductance of theBLDC motor, when applied to the BLDC motor MAXON EC40

– Δx is the time needed by the current to reach 63% of the plateau value = T– T = L/R≥ L = T*R where R = 0.134 Ω and L = 0.00163*0.134 = 0.218 mH

Note: The nominal current of the motor is 10.4 A and 6 A is the limit value determined by the power supply.

UM2932How to calculate stator resistance and inductance

UM2932 - Rev 1 page 27/62

Page 28: Getting started with the AEK-MOT-3P99081 CAN-controlled

Warning:To avoid issues when restarting the motor, it is important to set the “Lowside PWM idle state”parameter to “Turn_on” in the [Driver Settings] section, as shown in the image below.

Figure 31. Drive Settings section

UM2932How to calculate stator resistance and inductance

UM2932 - Rev 1 page 28/62

Page 29: Getting started with the AEK-MOT-3P99081 CAN-controlled

9 Motor control protocol

9.1 OverviewThe distributed system solution proposed to control BLDC motors in this demonstration kit is a dedicated CANcommunication protocol allowing real-time data exchange. This protocol allows sending commands to start/stopthe BLDC motor, to increase/decrease the motor target speed, and to reverse the rotation direction of the motor.Market applications which require to drive an electrical motor usually embeds a domain control ECU and a motordrive ECU. To drive the system correctly, the domain controller requires a method to send a command to themotor drive board and get a feedback. To meet these requirements, we have implemented a Motor ControlProtocol (MCP).The MCP enables commands to start/stop motor, to set the target speed of the FOC motor control firmware, andto tune control variables, such as PI coefficients, in real-time. The MCP also allows monitoring the speed of themotor or the bus voltage.The master starts the communication any time by sending the first communication frame to the slave whichanswers with a frame for acknowledgement.The CAN message defined in the MCP consists in:• a SID: to identify the command requested to the motor drive• a DATA FRAME: a set of bytes split in:

– PAYLOAD_LENGTH: the total number of bytes that compose the frame payload– PAYLOAD_ID: first byte of the payload that contains the payload identifier (optional - depends on the

frame type)– PAYLOAD[X]: the remaining payload content (optional - depends on the frame type)– CRC: for cyclic redundancy parity check.

Note: The smallest DATA frame is made of PAYLOAD_LENGTH = 0 and CRC.

Note: The CRC byte is computed by:CRC = unsigned8bit HigℎByte Total + LowByte TotalTotal = unsigned16bit SID+ PAYLOAD_LENGTH+ PAYLOAD_ID+ Σi = on PAYLOAD iFigure 32. Generic data frame

The current CAN messages available in the MCP are listed in the following table.

Table 1. Starting frame codes managed by MCP

SID Description

0x01 Set register frame: to write a value into a relevant motor control variable.

0x02 Get register frame: to read a value from a relevant motor control variable.

0x03 Execute command frame: to send a command to the motor control object.

0x06 Get board info: to retrieve information about the firmware currently running on the microcontroller. Payload length is 0.

0x07 Exec ramp: to execute a speed ramp.

0x0A Set current references: to set the current reference.

UM2932Motor control protocol

UM2932 - Rev 1 page 29/62

Page 30: Getting started with the AEK-MOT-3P99081 CAN-controlled

9.2 Set register frameThe set register frame is sent by the master to write a value into a relevant motor control variable. The payloadlength depends on REG_ID (see Table 3 for more details) which indicates the register to be updated. Theremaining payload contains the value to be updated starting from the least significant byte to the most significantbyte.The acknowledgment frame can be of two types:• data acknowledgment frame - if the operation has been successfully completed. The payload is zero.• error acknowledgment frame - if the operation has not been successfully completed by the firmware. The

payload is always 1.

Figure 33. Set register frame

Table 2. List of error codes managed by MCP

Error name Errorcode Description

ERROR_BAD_FRAME_ID 0x01 Bad Frame ID- the Frame ID has not been recognized by the firmware.

ERROR_CODE_SET_READ_ONLY 0x02 Write on read-only - the master wants to write on a read-only register.

ERROR_CODE_GET_WRITE_ONLY 0x03 Read not allowed - the value cannot be read.

ERROR_CODE_WRONG_SET 0x05 Out of range - the value used in the frame is outside the range expectedby the firmware.

ERROR_CODE_WRONG_CMD 0x07 Bad command ID - the command ID has not been recognized.

ERROR_CODE_OVERRUN 0x08 Overrun error - the frame has not been received correctly as thetransmission speed is too fast.

ERROR_CODE_TIMEOUT 0x09Timeout error - the frame has not been received correctly and a timeoutoccurred. This kind of error usually occurs when the frame is not correct oris not correctly recognized by the firmware.

ERROR_CODE_BAD_CRC 0x0A Bad CRC - the computed CRC is not equal to the received CRC byte.

Table 3. List of relevant motor control registers managed by MCPFor each register, the table lists:• Type: u8 means 8-bit unsigned, u16 means 16-bit unsigned, u32 means 32-bit unsigned, s16 means 16-bit signed, s32

means 32-bit signed)• Payload length in set register frame• Allowed access: R for read, W for write, RW for read and write• REG_ID

Register name Type Payload length Access REG_ID

Target motor u8 2 RW 0x00

UM2932Set register frame

UM2932 - Rev 1 page 30/62

Page 31: Getting started with the AEK-MOT-3P99081 CAN-controlled

Register name Type Payload length Access REG_ID

Flags u32 5 R 0x01

Status u8 2 R 0x02

Control mode u8 2 RW 0x03

Speed reference s32 5 R 0x04

Speed KP u16 3 RW 0x05

Speed KI u16 3 RW 0x06

Speed KD u16 3 RW 0x07

Torque reference (Iq) s16 3 RW 0x08

Torque KP u16 3 RW 0x09

Torque KI u16 3 RW 0x0A

Torque KD u16 3 RW 0x0B

Flux reference (Id) s16 3 RW 0x0C

Flux KP u16 3 RW 0x0D

Flux KI u16 3 RW 0x0E

Flux KD u16 3 RW 0x0F

Observer C1 s16 3 RW 0x10

Observer C2 s16 3 RW 0x11

Cordic Observer C1 s16 3 RW 0x12

Cordic Observer C2 s16 3 RW 0x13

PLL KI u16 3 RW 0x14

PLL KP u16 3 RW 0x15

Flux weakening KP u16 3 RW 0x16

Flux weakening KI u16 3 RW 0x17

Flux weakening BUSVoltage allowedpercentage reference

u16 3 RW 0x18

Bus Voltage u16 3 R 0x19

Heat sink temperature u16 3 R 0x1A

Motor power u16 3 R 0x1B

DAC Out 1 u8 2 RW 0x1C

DAC Out 2 u8 2 RW 0x1D

Speed measured s32 5 R 0x1E

Torque measured (Iq) s16 3 R 0x1F

Flux measured (Id) s16 3 R 0x20

Flux weakening BUSVoltage allowedpercentage measured

u16 3 R 0x21

Revup stage numbers u8 2 R 0x22

Stator Current Ia s16 3 R 0x23

Stator Current Ib s16 3 R 0x24

Stator Current Ialpha s16 3 R 0x25

Stator Current Ibeta s16 3 R 0x26

UM2932Set register frame

UM2932 - Rev 1 page 31/62

Page 32: Getting started with the AEK-MOT-3P99081 CAN-controlled

Register name Type Payload length Access REG_ID

Stator Current Iq s16 3 R 0x27

Stator Current Id s16 3 R 0x28

Stator Current Iqref s16 3 R 0x29

Stator Current Idref s16 3 R 0x2A

Stator Voltage Vq s16 3 R 0x2B

Stator Voltage Vd s16 3 R 0x2C

Stator Voltage Valpha s16 3 R 0x2D

Stator Voltage Vbeta s16 3 R 0x2E

Electrical Anglemeasured s32 5 R 0x2F

Mechanical rotorspeed s32 5 R 0x30

Observed ElectricalAngle s32 5 R 0x31

Observed Mechanicalrotor speed s32 5 R 0x32

Observed Ialpha s16 3 R 0x33

Observed Ibeta s16 3 R 0x34

Observed Back Emfalpha s16 3 R 0x35

Observed Back Emfbeta s16 3 R 0x36

Cordic ObservedElectrical Angle s32 5 R 0x37

Cordic ObservedMechanical rotorspeed

s32 5 R 0x38

Cordic ObservedIalpha s16 3 R 0x39

Cordic Observed Ibeta s16 3 R 0x3A

Cordic Observed BackEmf alpha s16 3 R 0x3B

Cordic Observed BackEmf beta s16 3 R 0x3C

DAC User 1 s16 3 R 0x3D

DAC User 2 s16 3 R 0x3E

Maximum applicationspeed u32 5 R 0x3F

Minimum applicationspeed u32 5 R 0x40

Iq reference in speedmode s16 3 W 0x41

Expected BEMF level(PLL) s16 3 R 0x42

Observed BEMF level(PLL) s16 3 R 0x43

Expected BEMF level(CORDIC) s16 3 R 0x44

UM2932Set register frame

UM2932 - Rev 1 page 32/62

Page 33: Getting started with the AEK-MOT-3P99081 CAN-controlled

Register name Type Payload length Access REG_ID

Observed BEMF level(CORDIC) s16 3 R 0x45

Feedforward (1Q) s32 5 RW 0x46

Feedforward (1D) s32 5 RW 0x47

Feedforward (2) s32 5 RW 0x48

Feedforward (VQ) s16 3 R 0x49

Feedforward (VD) s16 3 R 0x4A

Feedforward (VQ PIout) s16 3 R 0x4B

Ramp final speed s32 5 RW 0x5B

Ramp duration u16 3 RW 0x5C

External fault 1 u32 5 RW 0x66

External fault 2 u32 5 R 0x67

External fault 3 u32 5 R 0x68

External fault 4 u32 5 R 0x69

External fault 5 u32 5 R 0x6A

External fault 6 u32 5 R 0x6B

External fault 7 u32 5 R 0x6C

External fault 8 u32 5 R 0x6D

External fault 9 u32 5 R 0x6E

External fault 10 u32 5 R 0x6F

External fault 11 u32 5 R 0x70

Table 4. List of external faults for L9908 managed by MCP

External fault Reg returned from external device Description

1 GEN_STATUS1 GEN_STATUS1 Register

2 GEN_STATUS2 GEN_STATUS1 Register

3 GEN_STATUS3 GEN_STATUS3 Register

4 GEN_TEMP_STATUS GEN_TEMP_STATUS Register

5 WDT_STATUS WDT_STATUS Register

6 CH1_STATUS1 CH1_STATUS1 Register

7 CH1_STATUS2 CH1_STATUS2 Register

8 CH2_STATUS1 CH2_STATUS1 Register

9 CH2_STATUS2 CH2_STATUS2 Register

10 CH3_STATUS1 CH3_STATUS1 Register

11 CH3_STATUS2 CH4_STATUS2 Register

9.3 Get register frameThe get register frame is sent by the master to read a value from a relevant motor control variable.

UM2932Get register frame

UM2932 - Rev 1 page 33/62

Page 34: Getting started with the AEK-MOT-3P99081 CAN-controlled

Figure 34. Get register frame

Payload length is always 1.REG_ID indicates the register to be queried.The acknowledgment frame can be of two types:• data acknowledgment frame - if the operation has been successfully completed. In this case, the returned

value is embedded in the data acknowledgment frame. The size of the payload depends on REG_ID and isequal to the payload length of Table 3 minus 1. The value is returned starting from the least significant byteto the most significant byte

• error acknowledgment frame - if the operation has not been successfully completed by the firmware. Thepayload is always 1. The list of error codes is shown in Table 2.

9.4 Execute command frameThe execute command frame is sent by the master to the motor control firmware to request the execution of aspecific command.

Figure 35. Execute command frame

Payload length is always 1.COMMAND_ID indicates the requested command.

Table 5. List of commands

Command Command ID Description

Start Motor 0x01 Indicates the user request to start the motor regardless of the state of the motor.

Stop Motor 0x02 Indicates the user request to stop the motor regardless of the state of the motor.

UM2932Execute command frame

UM2932 - Rev 1 page 34/62

Page 35: Getting started with the AEK-MOT-3P99081 CAN-controlled

Command Command ID Description

Stop Ramp 0x03 Indicates the user request to stop the execution of the speed ramp that is currently executed.

Start/Stop 0x06 Indicates the user request to start the motor if the motor is still, or to stop the motor if it is running.

Fault Ack 0x07 Communicates the user acknowledgement of the occurred fault conditions.

Encoder

Align0x08 Indicates the user request to perform the encoder alignment procedure.

The acknowledgment frame can be of two types:• data acknowledgment frame - if the operation has been successfully completed. In this case, the returned

value embedded in the data acknowledgment frame is an echo of the same COMMAND_ID. The size ofpayload is always 1

• error acknowledgment frame - if the operation has not been successfully completed by the firmware. Thepayload is always 1. The list of error codes is shown in Table 2.

9.5 Execute ramp frameThe execute ramp frame is sent by the master to the motor control firmware, to request the execution of a speedramp.A speed ramp always starts from the current motor speed. The ramp is defined by a duration and a final speed

Figure 36. Execute ramp frame

Payload length is always 6.The four bytes FS[x] represent the final speed expressed in rpm starting from the least significant byte followed bythe most significant byte.DR_LB and DR_HB represent the duration expressed in milliseconds, respectively least significant byte and mostsignificant byte.The acknowledgment frame can be of two types:• data acknowledgment frame - if the operation has been successfully completed. The payload is zero• error acknowledgment frame - if the operation has not been successfully completed by the firmware. The

payload is always 1. The list of error codes is shown in Table 2.

9.6 Set current reference frameThe set current references frame is sent by the master to modify the current references (Iq and Id).

UM2932Execute ramp frame

UM2932 - Rev 1 page 35/62

Page 36: Getting started with the AEK-MOT-3P99081 CAN-controlled

Figure 37. Set current reference frame

Payload length is always 4.Iq_LB and Iq_HB are the requested new Iq references expressed in digits (respectively, the least significant byteand the most significant byte).Id_LB and Id_HB are the requested new Id reference expressed in digits (respectively, the least significant byteand the most significant byte).To convert current expressed in amps to current expressed in digits, use the following formula:Current digit = Current Amp × 65536 × R_Sℎunt × A_OP /VDDmicroThe acknowledgment frame can be of two types:• data acknowledgment frame - if the operation has been successfully completed. The payload is zero• error acknowledgment frame - if the operation has not been successfully completed by the firmware. The

payload is always 1. The list of error codes is shown in Table 2.

UM2932Set current reference frame

UM2932 - Rev 1 page 36/62

Page 37: Getting started with the AEK-MOT-3P99081 CAN-controlled

10 Source code for the master board MCU

10.1 OverviewThe source code to be flashed on the AEK-MCU-C4MLIT1 board MCU is theSPC58ECxx_RLA_MainEcuForBLDCControl-L9908-Test Application software package.After loading it into SPC5-STUDIO, you can verify:• how to configure the CAN protocol in the AEK-MCU-C4MLIT1 through SPC5-STUDIO;• the MotorControlCommunication library;• the Main.c file containing an example on how to interact via CAN messages with the slave board (AEK-

MOT-3P99081).

10.2 CAN protocol configurationTo configure the CAN protocol in an SPC5-STUDIO project follow the procedure below.

Step 1. Double-click on the low-level driver.

Step 2. Double-click on [Enabled drivers].

Step 3. Tick [CAN] drivers.

Figure 38. CAN protocol project driver selection

1

2

3

Step 4. Double-click on [MCAN Settings].

Step 5. Choose the CAN controllers for at least one subsystem.

UM2932Source code for the master board MCU

UM2932 - Rev 1 page 37/62

Page 38: Getting started with the AEK-MOT-3P99081 CAN-controlled

Step 6. Double-click on [Configs] in CAN Configurations to open the CAN Configuration Window. If the configsobject is not present, use the green "+" to add it.

Figure 39. CAN configuration

5

46

UM2932CAN protocol configuration

UM2932 - Rev 1 page 38/62

Page 39: Getting started with the AEK-MOT-3P99081 CAN-controlled

Step 7. In the CAN configuration window, configure the settings according to your application requirements.

Note: – Pay attention to the timing parameters: choose the "Bit Rate" value taking into account the "Bit Rate" of thesystem with which you want to exchange CAN messages.

– In [RX Buffer Configuration], select the interrupt and the name of the callback that will be associatedto the selected interrupt. Pay attention to the "RX buffer Filter" to add taking into account that the [FilterValue] represents the CAN message SID.

– Only the CAN messages that pass the CAN controller acceptance filters will be stored in the memory andprocessed by the callback previously defined.

Figure 40. CAN configuration settings

Note: For more details about the CAN protocol and configuration see Section Appendix A .

10.3 Motor Control Communication libraryThe MCP is included in the SPC58ECxx_RLA_MainEcuForBLDCControl-L9908-Test Application demo under theMotorControlCommunication library of the source folder.

UM2932Motor Control Communication library

UM2932 - Rev 1 page 39/62

Page 40: Getting started with the AEK-MOT-3P99081 CAN-controlled

Figure 41. Motor Control Communication library

The library exploits a set of functions implemented in the file MotorControlCommunication.c to request theAEK-MOT-3P99081 board to:• set register frame• get register frame• execute command frame• execute ramp frame• set current reference frame

The .h files are:• MotorControl.h - to define the constants and structure• MotorControlDB.h - to define a DB containing all the relevant motor control registers• MotorControlErrorCode - to define a DB containing error codes managed by the MCP

10.4 Demo implemented in main.c fileThe source code demo consists of the following functions:1. Init components2. Enable lsr3. Set up applicationThe first two instructions manage the initialization of the components related to MCU standard functions andthe low-level drivers for the MCU peripherals, such as clock, external interrupt request queue (EIRQ), portconfigurations, etc. These two functions are automatically generated by SPC5-STUDIO from the configurationinformation provided during the creation/loading of the SPC5-STUDIO project.The third function manages the initialization of all AutoDevKit components and MCU functionality implemented bythe application.

UM2932Demo implemented in main.c file

UM2932 - Rev 1 page 40/62

Page 41: Getting started with the AEK-MOT-3P99081 CAN-controlled

Figure 42. SPC58ECxx_RLA_MainEcuForBLDCControl-L9908-Test Application - main.c file extract

The main.c file of the SPC58ECxx_RLA_MainEcuForBLDCControl-L9908-Test Application software packagecontains some macro-functions designed to drive, on a dedicated CAN-based communication protocol, the Hall-effect sensor three-phase BLDC motor control:• key-press - to switch the application between the START/STOP of the BLDC motor when pushing the

AEK-MCU-C4MLIT1 board SW3 button;• turnUpRampSpeedBLDC - to increase the target speed of the BLDC motor when pushing the AEK-MCU-

C4MLIT1 board SW1 button;• turnDownRampSpeedBLDC - to decrease the target speed of the BLDC motor when pushing the AEK-MCU-

C4MLIT1 board SW2 button;• trace-error - to track the error coming from the communication between the master and the slave system

boards;• trace-value - to track the value of a register coming from the communication between the master and the

slave system boards.

Note: The trace-error function, even if implemented, is not used in the main.c file.The code below shows how to use this function in order to log the error code in a console.

returnValues_t * returnValue;returnValue = setRegister("Ramp_final_speed", 500);if(returnValue->status != CMD_OK){trace_error((int8_t)(returnValue->returnValue));}returnValue = getRegister("Ramp_final_speed");trace_value("Ramp_final_speed",returnValue->returnValue);

UM2932Demo implemented in main.c file

UM2932 - Rev 1 page 41/62

Page 42: Getting started with the AEK-MOT-3P99081 CAN-controlled

11 Schematic diagrams

Figure 43. AEK-MOT-3P99081 circuit schematic (1 of 5)

C44390pF

C40

27nF

R14

1.6k

C39330pF

R202k

AGND

COMP

FB

SB1

Closedcurrent = Imax

EN_V2

GND

EN_DCDCS1

SWITCH

VDCDC

ILIM11FSW10

SS6

EN5VCC4

VIN_23 VIN_12

SYNCH7PGOOD12

VBIAS 1

BOOT 15

LX_1 13LX_2 14

FB 9

COMP 8

GN

D16

TP17

U13

L7987L

AGND

C371uF

AGND

C3868nF

AGND

GND

R60 C36

100nF

R1351k

R551k

AGNDAGND AGND

C312.2uF/16V

C32100nF

C3310uF

GND GND GND

FB

COMP

C29

3.3u

F/10

0V

C301uF/100V

GND_TOT

C34

100n

F/10

0V

GND GND

current = 1.5 AVB VBD

VCC

VDCDC

12

J1

Vbat

EN_DCDC

VCC

VDCDC

VDCDC

VB

VBD

VDH

VBP

13

2J2JUMP3

TP3VBP

D6STPS2L60A

R1951k 0.5%

R21

4.02k 0.5%

EN1NC2GND3NC4RES5VCR6 VCW 7NC 8WI 9VOS 10VO 11VS 12

EX-P

AD

13

U2

L4995RJ

C41100nF

GND

VDCDC

C422.2uF

GND GND

C43100nF

current = 0.5 AV1_5V

GND

100 nF near device

EN1NC2GND3NC4RES5VCR6 VCW 7NC 8WI 9VOS 10VO 11VS 12

EX-P

AD

13

U3

L4995A

C45100nF

GND

VDCDC

C462.2uF

GND GND

C82100nF

current = 0.5 AV2_5V

GND

100 nF near device

EN_V2

TP2VDCDC

GND

GND

R1020

R1030

D.N.P.

R104

0AGND

GND_TOT

SB5Closed PGND

SB6Closed GND

GND_USBSB7Closed

D2SMA6T56AY

C130

1uF

R97100

D1

STPS5L60S

C28

10uF

/100

V

L4

39uH / 3.5A

C12_eTIMER0_ETC5

GND

TP4GND

C35

3.3u

F/10

0V

GND

UM

2932 - Rev 1

page 42/62

UM

2932Schem

atic diagrams

Page 43: Getting started with the AEK-MOT-3P99081 CAN-controlled

Figure 44. AEK-MOT-3P99081 circuit schematic (2 of 5)

NCS1SCLK2SDI3SDO4VIO5CSO3_PVF6CSO27CSO18VDD9SGND10EN_BR11NDIS12IS3-13IS3+14IS2-15IS2+16IS1-17IS1+18SLS_319GLS_320SLS_221GLS_222SLS_123GLS_124

CBS_3 25GHS_3 26SHS_3 27CBS_2 28GHS_2 29SHS_2 30CBS_1 31GHS_1 32SHS_1 33VDH 34

CP2M 35CP2P 36VBP 37

CP1M 38PGND 39CP1P 40

VPRE 41INH3 42INH2 43INH1 44INL3 45INL2 46INL1 47

FS_FLAG 48

EX-P

AD

0

U14

L9908

C1 1uF/100V

C4 1uF

C5 1uF

PGND

C2 1uF/100V

C3 1uF/100V

C171nF

C1622nF

C1822nF

R10

22R11

22

PGND

PGND

R12

1k C19270pF

GND

CSO3CSO2CSO1

CSO1

IS1_F_P

IS1_F_N

C6100nF

C71uF

PGND PGND

GND

100nF near device

C8100nF

C91uF

PGND PGND

C10100nF

C111uF

GND GND

C12100nF

C131uF

GND GND

C211nF

C2022nF

C2222nF

R29

22R31

22

PGND

PGND

R33

1k C23270pF

GND

CSO2

IS2_F_P

IS2_F_NC251nF

C2422nF

C2622nF

R30

22R32

22

PGND

PGND

R35

1k C27270pF

GND

CSO3

IS3_F_P

IS3_F_N

GDU_NCSGDU_SCLKGDU_MOSIGDU_MISO

CSO1_F CSO2_F CSO3_F

IS1_F_PIS1_F_NIS2_F_PIS2_F_NIS3_F_PIS3_F_N

EN_BRNDIS

SLS_3PWM_INH3PWM_INH2PWM_INH1PWM_INL3PWM_INL2PWM_INL1FS_FLAG

GLS_3SLS_2GLS_2SLS_1GLS_1

GHS_3SHS_3

GHS_2SHS_2

GHS_1SHS_1

C14 4.7uF/25V

PGND

C15 100nF

VPRE pin current 2Apk; DC 1 A

VBP pin current 300mApk; DC 60mAC4,C5 near device

C1,C2,C3 near device

100nF near device

100nF near device

100nF near device

both caps near device

RC near device pin RC near device pin RC near device pin

VDD pin current DC 80mA

C17 near device pin C21 near device pin

C27 near device pin

VIO

VDD

VDH

VBP

VIO

VDDVPRE

VBPVPRE

VDH

C25 near device pin

R22 100R23 100R24 100R25 100

R26 100R27 100

R28 100

IS1_P

IS1_N

IS2_P IS3_P

IS2_N IS3_N

R101 100R100 100R99 100R98 100R9 100R8 100

VDD_HV_AD

VDD_HV

GND

1 23 45 67 89 1011 1213 14

J3

HEADER 7X2

GND

NCSSCLKSDISDO

INH3INH2INH1INL3INL2INL1FS_FLAGi

EN_BRi

NCSSCLKSDISDOEN_BRiFS_FLAGi

INH3INH2INH1INL3INL2INL1

GLSx, GHS x needs 2Apk, 150mA DCUse simmetric path for ISxP-ISxP F and ISxN F

UM

2932 - Rev 1

page 43/62

UM

2932Schem

atic diagrams

Page 44: Getting started with the AEK-MOT-3P99081 CAN-controlled

Figure 45. AEK-MOT-3P99081 circuit schematic (3 of 5)

R6410m 1W

R46100k

PGND

R61100k

GHS_1

SHS_1

GLS_1

SLS_1

PGND

C85100nF/100V

PGND

R6510m 1W

R47100k

PGND

R62100k

GHS_2

SHS_2

GLS_2

SLS_2

C87100nF/100V

PGND

R6610m 1W

R48100k

PGND

R63100k

GHS_3

SHS_3

GLS_3

SLS_3

C89100nF/100V

PGND

123

P2

Motor

OUT1 OUT2 OUT3

OUT1OUT2OUT3

R6751k

R723k5

C9647nF

PGND PGND

DCB

V

C90N/M

C93N/M

C91N/M

C94N/M

C92N/M

C95N/M

R6839k

R734k3

C97N/M

PGND PGND

OUT1

PF1

R6939k

R744k3

C98N/M

PGND PGND

OUT2

PF2

R7139k

R754k3

C99N/M

PGND PGND

OUT3

PF3

DZ3BZM55C12-TR

DZ4BZM55C12-TR

DZ1BZM55C12-TR

DZ5BZM55C12-TR

DZ2BZM55C12-TR

DZ6BZM55C12-TR

PGND PGND

VDH

VDH

D7

STPS2H100A

R39

100

R36

100

D15

STPS2H100A

R57

100

R51

100

D9

STPS2H100A

R40

100

R37

100

D10

STPS2H100A

R41

100

R38

100

D17

STPS2H100A

R58

100

R53

100

D18

STPS2H100A

R60

100

R55

100

IS2_P IS3_P

IS2_N IS3_N

IS1_P

IS1_N

C83220uF/100V

C86220uF/100V

C88220uF/100V

1

34

Q2

STD105N10F7AG

1

34

Q3

STD105N10F7AG

1

34

Q4

STD105N10F7AG

1

34

Q5

STD105N10F7AG

1

34

Q6

STD105N10F7AG

1

34

Q7

STD105N10F7AG

UM

2932 - Rev 1

page 44/62

UM

2932Schem

atic diagrams

Page 45: Getting started with the AEK-MOT-3P99081 CAN-controlled

Figure 46. AEK-MOT-3P99081 circuit schematic (4 of 5)

R1

1KGND_USB

VCIO

A3 GND2 VCCA1 VCCB 6DIR 5

B 4

U12

SN74LVC1T45DCK

GND_USB

3V3_USB

R154k7 R16

4k7

GND_USBGND_USB

VCIOSRST#_DIR

SRST#_O SRST#_USB

A3 GND2 VCCA1 VCCB 6DIR 5

B 4

U10

SN74LVC1T45DCK

GND_USB

3V3_USB VCIOTMS_DIRTMS_USBTMS_IO

R2

4k7

A3 GND2 VCCA1 VCCB 6DIR 5

B 4

U7

SN74LVC1T45DCK

GND_USB

3V3_USB VCIO

TDO_USBTDO_I

GND_USB

A3 GND2 VCCA1 VCCB 6DIR 5

B 4

U6

SN74LVC1T45DCK

3V3_USB VCIO

TDI_USBTDI_O

GND_USB

A3 GND2 VCCA1 VCCB 6DIR 5

B 4

U5

SN74LVC1T45DCK

3V3_USB

TCK_O

GND_USB

VCIO

TCK_USB

USB_TX

USB_RX

A3 GND2 VCCA1 VCCB 6DIR 5

B 4

U4

SN74LVC1T45DCK

A3 GND2 VCCA1 VCCB 6DIR 5

B 4

U8

SN74LVC1T45DCK

GND_USB

3V3_USB VCIO

Direction B->A

Direction A->B

TXD

RXD

GND_USB

FT2232H->Micro

Micro->FT2232H

GND_USB

3V3_USB

3V3_USB VCIO

3V3_USB

3V3_USB

3V3_USB

R17

1K

R18

1K

TDI GNDTDO GNDTCK GNDEVTI NCRESET TMSVDDE7 GNDRDY JCOMP

X1

JTAG 14-PIN

JTAG connector not mounted

V_USB 1USBD- 2USBD+ 3

ID 4GND 5

CH-GND 6CH-GND 6CH-GND 7CH-GND 7

P1

USB_MINI_B

GND_USB

GND_USB

L760ohm-500mA

V_U

SB

USB_NUSB_P

GND1

OSCI2OSCO3

VPHY4

GND5

REF6

DM7DP8

VPLL9

AGND10

GND11

VCORE12

TEST13

RESET#14

GND15

ADBUS0 16ADBUS1 17ADBUS2 18ADBUS3 19

VCCIO20

ADBUS4 21ADBUS5 22ADBUS6 23ADBUS7 24

ACBUS0 26ACBUS1 27ACBUS2 28ACBUS3 29ACBUS4 30

GND25

VCCIO31

ACBUS5 32ACBUS6 33ACBUS7 34

BDBUS0 38

GND35

SUSPEND#36

VCORE37

BDBUS1 39BDBUS2 40BDBUS3 41

VCCIO42

BDBUS4 43BDBUS5 44BDBUS6 45BDBUS7 46

GND47

BCBUS0 48BCBUS1 52BCBUS2 53BCBUS3 54

VREGOUT49 VREGIN50

GND51

BCBUS4 55

VCCIO56

BCBUS5 57BCBUS6 58BCBUS7 59

PWREN#60

EEDATA61EECLK62EECS63

VCORE64

U1

FT2232H

3V3_USB

GND_USB

V_CORE

3V3_USB

3V3_USB

3V3_USBV_CORE

GND_USB

R8312kΩ

R8410Ω

R8510Ω

EECSEECLKEEDATA

R86

1kΩ

3V3_USB

TCK_OTDI_OTDO_ITMS_IOTMS_IORTCK_I

LED_1

TRST#_OSRST#_O

SRST#_DIRTMS_DIRLED_2

CS1

SCL2 DI3 DO 4

GND5

WE6 PRE7 VCC 8U18

M93S46-WMN6TP

3V3_USB

R92

2,2kΩ

EEDATA

GND_USB

R89 4,7kΩ

EECS

GND_USB

R90

4,7kΩ

3V3_USBEEPREEEWRE

EEDATAEECLK

C111100nF/50V

C112100nF/50V

C113100nF/50V

C119100nF/50V

C115100nF/50V

C116100nF/50V

C117100nF/50V

C118100nF/50V

C121100nF/50V

C122100nF/50V

C107100nF/50V

C109100nF/50V

VPHYVPLL

USB_OSCIUSB_OSCO

USB_VCC

USB_TXUSB_RX

1.8V

C1143,3uF/16V

GND_USB

C1084,7uF/16V

C1104,7uF/16V

From FTDI 2232H RS232 mode:Pin 38 TXD, transmitter outputPin 39 RXD, receiver input

GND_USB

GND_USBC10118pF/16V

C10218pF/16V

GN

D1

Vout 2Vin3U19 LD1117S33TR

C105100nF/50V

C10610uF/16V

VPLL VPHY

GND_USB GND_USB

V_CORE

Place close toVREGOUT pin 49

3V3_USB

GND_USB

LED_232_RXLED_232_TX

C120100nF/50V

GND_USB

VCIO

C125100nF/50V

C126100nF/50V

C124100nF/50V

GND_USB

3V3_USB

I/O11GND2I/O23 I/O2 4Vbus 5I/O1 6

U9

USBLC6-2P6

USB_VCCGND_USB

C123100nF/50V

USB_VCC

BDBUS4BDBUS5BDBUS6BDBUS7

EEPROM

USB_D_P

USB_D_N

L660ohm-500mA

L560ohm-500mA

1.8V

TP353V3_USB

GND_USB

USB_VCC 1

3GND2

GND 4Y1

7B-12.000MAAJ-T

3V3_USB

3V3_USB

LED_232_RX

LED_232_TX

VCIO

D5

LED - Green

D19

LED - GREEN

D8

LED - GREEN

L9

60ohm-500mA

GND_USB

VDD_HV

VCONN

D.N.P.

USB_TXUSB_RX 1

23

J4

CON3

GND_USB

JTAG0_TMS

JTAG0_TDIJTAG0_TDOJTAG0_TCKOUT

RESET

R95 10k

B0_CAN0_TXD

B1_CAN0_RXD VDD_HV

VDD_HV

CAN_HCAN_L

R107 22R

R108 22RC131100n

R105N.M.

C134100n

R109

120R

5V_M

C13247p

C13347p

CAN Interface

TXD1VSS2VDD3RXD4

STBY 8CANH 7CANL 6

VIO 5

U11

MCP2562FD-E_SN

R106

0R

to U16 pin #109

to U16 pin #110

C1354.7nF

C1364.7nFnot mountednot mounted

GND

GND GND

GND

21

J5

61900211121

TP6CAN_H

TP5CAN_L

UM

2932 - Rev 1

page 45/62

UM

2932Schem

atic diagrams

Page 46: Getting started with the AEK-MOT-3P99081 CAN-controlled

Figure 47. AEK-MOT-3P99081 circuit schematic (5 of 5)

A0 eTIMER0_ETC[0] DSPI2_SCK FCU0_F[0] GPIO[0]73A1 eTIMER0_ETC[1] DSPI2_SOUT FCU0_F[1] GPIO[1]74A2 eTIMER0_ETC[2] DSPI2_SIN FlexPWM0_A[3] GPIO[2]84A3 eTIMER0_ETC[3] DSPI2_CS0 FlexPWM0_B[3] GPIO[3]92A4 eTIMER1_ETC[0] DSPI2_CS1 eTIMER0_ETC[4] GPIO[4]108A5 DSPI1_CS0 eTIMER1_ETC[5] DSPI0_CS7 GPIO[5]14A6 DSPI1_SCK GPIO[6]2A7 DSPI1_SOUT GPIO[7]10A8 DSPI1_SIN GPIO[8]12A9 DSPI2_CS1 FlexPWM0_FAULT[0] FlexPWM0_B[3] GPIO[9]134A10 DSPI2_CS0 FlexPWM0_B[0] FlexPWM0_X[2] GPIO[10]118A11 DSPI2_SCK FlexPWM0_A[0] FlexPWM0_A[2] GPIO[11]120A12 DSPI2_SOUT FlexPWM0_A[2] FlexPWM0_B[2] GPIO[12]122A13 DSPI2_SIN FlexPWM0_B[2] FlexPWM0_FAULT[0] GPIO[13]136A14 SafetyPort0_TXD eTIMER1_ETC[4] GPIO[14]143A15 SafetyPort0_RXD eTIMER1_ETC[5] GPIO[15]144

B0 CAN0_TXD eTIMER1_ETC[2] SSCM_DEBUG[0] GPIO[16]109B1 CAN0_RXD eTIMER1_ETC[3] SSCM_DEBUG[1] GPIO[17]110B2 LIN0_TXD SSCM_DEBUG[2] GPIO[18]114B3 LIN0_RXD SSCM_DEBUG[3] GPIO[19]116B4 JTAG0_TDO GPIO[20]89B5 JTAG0_TDI GPIO[21]86B6 CLKOUT DSPI2_CS2 GPIO[22]138B7 ADC0_AN[0] LIN0_RXD GPIO[23]43B8 ADC0_AN[1] eTIMER0_ETC[5] GPIO[24]47B9 ADC0-1_AN[11] GPIO[25]52B10 ADC0-1_AN[12] GPIO[26]53B11 ADC0-1_AN[13] GPIO[27]54B12 ADC0-1_AN[14] GPIO[28]55B13 ADC1_AN[0] LIN1_RXD GPIO[29]60B14 ADC1_AN[1] eTIMER0_ETC[4] GPIO[30]64B15 ADC1_AN[2] GPIO[31]62

C0 ADC1_AN[3] GPIO[32]66C1 ADC0_AN[2] GPIO[33]41C2 ADC0_AN[3] GPIO[34]45C3 DSPI0_CS1 eTIMER1_ETC[4] LIN1_TXD GPIO[35]16C4 DSPI0_CS0 FlexPWM0_X[1] SSCM_DEBUG[4] GPIO[36]11C5 DSPI0_SCK FlexPWM0_FAULT[3] SSCM_DEBUG[5] GPIO[37]13C6 DSPI0_SOUT FlexPWM0_B[1] SSCM_DEBUG[6] GPIO[38]142C7 DSPI0_SIN FlexPWM0_A[1] SSCM_DEBUG[7] GPIO[39]15C8 DSPI1_CS1 FlexPWM0_FAULT[2] DSPI0_CS6 GPIO[40]130C9 DSPI2_CS3 FlexPWM0_FAULT[2] FlexPWM0_X[3] GPIO[41]123C10 DSPI2_CS2 FlexPWM0_FAULT[1] FlexPWM0_A[3] GPIO[42]111C11 eTIMER0_ETC[4] DSPI2_CS2 DSPI3_CS0 GPIO[43]80C12 eTIMER0_ETC[5] DSPI2_CS3 DSPI3_CS1 GPIO[44]82C13 eTIMER1_ETC[1] CTU0_EXT_IN FlexPWM0_EXT.SYNC GPIO[45]101C14 eTIMER1_ETC[2] CTU0_EXT_TGR GPIO[46]103C15 FlexRay0_CA_TR_EN eTIMER1_ETC[0] FlexPWM0_A[1] GPIO[47]124

D0 FlexRay0_CA_TX eTIMER1_ETC[1] FlexPWM0_B[1] GPIO[48]125D1 FlexRay0_CA_RX eTIMER1_ETC[2] CTU0_EXT_TRG GPIO[49]3D2 FlexRay0_CB_RX eTIMER1_ETC[3] FlexPWM0_X[3] GPIO[50]140D3 FlexRay0_CB_TX eTIMER1_ETC[4] FlexPWM0_A[3] GPIO[51]128D4 FlexRay0_CB_TR_EN eTIMER1_ETC[5] FlexPWM0_B[3] GPIO[52]129D5 DSPI0_CS3 FCU0_F[0] DSPI3_SOUT GPIO[53]33D6 DSPI0_CS2 DSPI3_SCK FlexPWM0_FAULT[1] GPIO[54]34D7 DSPI1_CS3 FCU0_F[1] DSPI3_SIN GPIO[55]37D8 DSPI1_CS2 FlexPWM0_FAULT[3] DSPI0_CS5 GPIO[56]32D9 FlexPWM0_X[0] LIN1_TXD GPIO[57]26D10 FlexPWM0_A[0] DSPI3_CS0 GPIO[58]76D11 FlexPWM0_B[0] DSPI3_CS1 DSPI3_SCK GPIO[59]78D12 FlexPWM0_X[1] LIN1_RXD GPIO[60]99D13 FlexPWM0_A[1] DSPI3_CS2 DSPI3_SOUT GPIO[61]95D14 FlexPWM0_B[1] DSPI3_CS3 DSPI3_SIN GPIO[62]105D15 ADC1_AN[4] GPIO[63]58

XTA

L29

EXTA

L30

RESET_B31

TMS87TCK88NEXUS0_MDO09

NMI1

VPP TEST107

E0 ADC1_AN[5] GPIO[64] 68E1 ADC0_AN[4] GPIO[65] 39E2 ADC0_AN[5] GPIO[66] 49E3 ADC0_AN[6] GPIO[67] 40E4 ADC0_AN[7] GPIO[68] 42E5 ADC0_AN[8] GPIO[69] 44E6 ADC0_AN[9] GPIO[70] 46

E7 ADC0_AN[10] GPIO[71] 48E8 ADC1_AN[6] GPIO[72] 59E9 ADC1_AN[7] GPIO[73] 61

E10 ADC1_AN[8] GPIO[74] 63E11 ADC1_AN[9] GPIO[75] 65

E12 ADC1_AN[10] GPIO[76] 67E13 DSPI3_SCK GPIO[77] 117

E14 DSPI3_SOUT GPIO[78] 119E15 DSPI3_SIN GPIO[79] 121

F0 FlexRay0_DBG0 DSPI3_CS3 GPIO[80] 133F1 FlexRay0_DBG1 DSPI3_CS2 GPIO[81] 135F2 FlexRay0_DBG2 DSPI3_CS1 GPIO[82] 137F3 FlexRay0_DBG3 DSPI3_CS0 GPIO[83] 139

F4 NEXUS0_MDO[3] GPIO[84] 4F5 NEXUS0_MDO[2] GPIO[85] 5F6 NEXUS0_MDO[1] GPIO[86] 8F7 NEXUS0_MCKO GPIO[87] 19F8 NEXUS0_MSEO1 GPIO[88] 20F9 NEXUS0_MSEO0 GPIO[89] 23F10 NEXUS0_EVTO GPIO[90] 24F11 NEXUS0_EVTI GPIO[91] 25

F12 eTIMER1_ETC[3] GPIO[92] 106F13 eTIMER1_ETC[4] GPIO[93] 112

F14 LIN1_TXD GPIO[94] 115F15 LIN1_RXD GPIO[95] 113

G0 FCU0_F[0] GPIO[96] 38G1 FCU0_F[1] GPIO[97] 141

G2 FlexPWM0_X[2] GPIO[98] 102G3 FlexPWM0_A[2] GPIO[99] 104

G4 FlexPWM0_B[2] GPIO[100] 100G5 FlexPWM0_X[3] GPIO[101] 85G6 FlexPWM0_A[3] GPIO[102] 98G7 FlexPWM0_B[3] GPIO[103] 83

G8 FlexPWM0_FAULT[0] GPIO[104] 81G9 FlexPWM0_FAULT[1] GPIO[105] 79

G10 FlexPWM0_FAULT[2] GPIO[106] 77G11 FlexPWM0_FAULT[3] GPIO[107] 75

VDD_HV_IO0 6VDD_HV_IO1 21VDD_HV_IO2 91VDD_HV_IO3 126

VDD_LV_COR0 18VDD_LV_COR1 93VDD_LV_COR2 131

VDD_HV_REG 72

VDD_LV_PLL 36

VDD_HV_AD0 50VDD_HV_AD1 56

VDD_LV_REGCOR 70

VDD_HV_FL 97VDD_HV_OSC 27

BCTRL 69

VSS

_HV

_IO

07

VSS

_HV

_IO

122

VSS

_HV

_IO

290

VSS

_HV

_IO

312

7V

SS_L

V_C

OR0

17V

SS_L

V_C

OR1

94V

SS_L

V_C

OR2

132

VSS

_HV

_FL

96V

SS_L

V_R

EGCO

R71

VSS

_HV

_OSC

28V

SS_L

V_P

LL35

VSS

_HV

_AD

051

VSS

_HV

_AD

157

U16

SPC560P50L5

GND

MDO0

A0_eTIMER0_ETC0A1_eTIMER0_ETC1A2_eTIMER0_ETC2A3_eTIMER0_ETC3

A5_DSPI1_CS0A6_DSPI1_SCKA7_DSPI1_SOUTA8_DSPI1_SINA9_DSPI2_CS1A10_DSPI2_CS0A11_DSPI2_SCKA12_DSPI2_SOUTA13_DSPI2_SINA14_SafetyPort0_TXDA15_SafetyPort0_RXD

B0_CAN0_TXDB1_CAN0_RXDB2_LIN0_TXDB3_LIN0_RXD

B6_CLKOUTB7_ADC0_AN0B8_ADC0_AN1B9_ADC0/1_AN11B10_ADC0/1_AN12B11_ADC0/1_AN13B12_ADC0/1_AN14B13_ADC1_AN0B14_ADC1_AN1B15_ADC1_AN2

C0_ADC1_AN3C1_ADC0_AN2C2_ADC0_AN3C3_DSPI0_CS1C4_DSPI0_CS0C5_DSPI0_SCKC6_DSPI0_SOUTC7_DSPI0_SINC8_DSPI1_CS1C9_DSPI2_CS3C10_DSPI2_CS2C11_eTIMER0_ETC4C12_eTIMER0_ETC5C13_eTIMER1_ETC1C14_eTIMER1_ETC2

C15_FlexRay0_CA_TR_EN

D0_FlexRay0_CA_TXD1_FlexRay0_CA_RXD2_FlexRay0_CB_RXD3_FlexRay0_CB_TX

D4_FlexRay0_CB_TR_END5_DSPI0_CS3D6_DSPI0_CS2D7_DSPI1_CS3D8_DSPI1_CS2D9_FlexPWM0_X0D10_FlexPWM0_A0D11_FlexPWM0_B0D12_FlexPWM0_X1D13_FlexPWM0_A1D14_FlexPWM0_B1D15_ADC1_AN4

NMIR43 0R

RESET

E0_ADC1_AN5E1_ADC0_AN4E2_ADC0_AN5E3_ADC0_AN6E4_ADC0_AN7E5_ADC0_AN8E6_ADC0_AN9E7_ADC0_AN10E8_ADC1_AN6E9_ADC1_AN7E10_ADC1_AN8E11_ADC1_AN9E12_ADC1_AN10E13_DSPI3_SCKE14_DSPI3_SOUTE15_DSPI3_SIN

F0_FlexRay0_DBG0F1_FlexRay0_DBG1F2_FlexRay0_DBG2F3_FlexRay0_DBG3F4_NEXUS0_MDO3F5_NEXUS0_MDO2F6_NEXUS0_MDO1F7_NEXUS0_MCKOF8_NEXUS0_MSEO1F9_NEXUS0_MSEO0F10_NEXUS0_EVTOF11_NEXUS0_EVTIF12_eTIMER1_ETC3F13_eTIMER1_ETC4F14_LIN1_TXDF15_LIN1_RXD

G0_FCU0_F0G1_FCU0_F1G2_FlexPWM0_X2G3_FlexPWM0_A2G4_FlexPWM0_B2G5_FlexPWM0_X3G6_FlexPWM0_A3G7_FlexPWM0_B3G8_FlexPWM0_FAULT0G9_FlexPWM0_FAULT1G10_FlexPWM0_FAULT2G11_FlexPWM0_FAULT3

C8127pF

C8027pF

R500R

R52 1M

1 2Y2 12MHz

Not populate

GND

C6010uF

GND

VDD_HV

VDD_LV_COR

GND

GND

C50

470nF

C51

470pF

C52

470nF

C53

470pF

C54

470nF

C47

10uF

C56

470nF

C48

10uF

C58

100nF

C49

10uF

VDD_LV_COR

C74

100nF

C70

100nF

C71

470pF

C72

100nF

C73

470pF

C75

10nF

C76

10nF

C77

1uF

GND

VDD_HV

VDD_HV_REG VDD_HV_FLAVDD_HV_OSC

C62

100nF

C63

470pF

C64

100nF

C65

470pF

C66

100nF

C67

470pF

C68

100nF

C69

470pF

VDD_HV_IO6 21 91 126

C55

470pF

C57

470pF

C59

470pF

C6110uF

Close to ballast

R343.3kVSS1 RST 2

MR3 VCC 4U20

STM6315RB - 2.63V

S3RST

C79100nF

TP15

RST

R59

2.2k

R561kVDD_HV

RESET

C78

100nFGND

R4910K

GND

R44

1k

R45

1k

VDD_HV A0_eTIMER0_ETC0

G4_FlexPWM0_B2R54

1k

A1_eTIMER0_ETC1

VDD_HV_AD

GND

VDD_HV_AD

VDD_HV

VDD_HV

R4220k

GND

JTAG0_TDIJTAG0_TDO

JTAG0_TMSJTAG0_TCKOUT

BCTRL

XTA

L

EXTA

L

TCK

GND

GND

5V_M

D16

STPS2L40

R4 0R70

0

TDI_USB

TCK_USB

TDO_USB

SRST#_USB

TMS_USB JTAG0_TMS

JTAG0_TDI

JTAG0_TDO

JTAG0_TCKOUT

RESET

PWM_INH1PWM_INL1

EN_BR

CSO1_F

PWM_INH2PWM_INL2

PWM_INH3PWM_INL3

GDU_MOSI

NDIS

GDU_NCSGDU_SCLK

GDU_MISO

NC

FS_FLAG

TP1

GND

GND

HALL_1HALL_2HALL_3

GND

ENC_IENC_CHAVSR

GND

ENC_CHB

C1032.2nF

R764.7k

GND

C1042.2nF

R774.7k

GND

C1272.2nF

R784.7k

GND

HALL_1 HALL_2 HALL_3

C129100nF

GND GND

B3_LIN0_RXD

B2_LIN0_TXD

RXD

TXD

VDD_HV_ADL1

HI1206N101R-10C841uF

C100100nF

GND GND

R7

0

SB4open

R33.3k

GND

5V_A

R79 0

CSO3_FPF1

PF2PF3

DCBV

CSO2_FENC_CHAENC_CHB

HALL_1HALL_3HALL_2

R80 0RESETR87 0

R88 0

R91 0

R93 0

R94 0

R96 0

R81 0

R82 0

VSR

1122334455

P3

HALL_SR

1122334455

P4

ENC_SR

VSR VSR VSR

5V_A VSR

V1_5V V2_5V5V_M 5V_A 5V_M VDD_HV5V_A 5V_M

5V_A

VDD_HV

D.N.P.

VCONN

D11

LED - GreenD12

LED - GreenD13

LED - Green

1

32 4

T1BCP68T1G

D14LED - Red

D4LED - Green

D3LED - Green

C12847uF/16V

ENC_I

ENC_I

A4_eTIMER1_ETC0

A4_eTIMER1_ETC0

B0_CAN0_TXDB1_CAN0_RXD

UM

2932 - Rev 1

page 46/62

UM

2932Schem

atic diagrams

Page 47: Getting started with the AEK-MOT-3P99081 CAN-controlled

12 Bill of materials

Table 6. AEK-MOT-3P99081 bill of materials

Item Q.ty Ref. Part/Value Description Manufacturer Order code

1 1 R105 D.N.P., R0603 SMD resistor Any

2 20

R4, R6, R7,R43, R50,R70, R79,R80, R81,R82, R87,R88, R91,R93, R94,R96, R102,R103, R106,SB4

0 Ohm,R0603, 1/10W

SMD resistors Vishay CRCW06030000Z0EA

3 5R104, SB1,SB5, SB6,SB7

0 Ohm,R1206, ¼ W SMD resistors Vishay RCA12060000ZSEA

4 3 R64, R65,R66

0.010 Ohm,R2512, 1 W,±1%

SMD resistors Yageo PE2512FKE070R01L

5 2 R84, R8510 Ohm,R0603, 1/10W, ±%

SMD resistors Vishay CRCW060310R0FKEB

6 8

R10, R11,R29, R30,R31, R32,R107, R108

22 Ohm,R0603, 1/3 W,±5%

SMD resistors Vishay CRCW060322R0JNEAHP

7 26

R8, R9, R22,R23, R24,R25, R26,R27, R28,R36, R37,R38, R39,R40, R41,R51, R53,R55, R57,R58, R60,R97, R98,R99, R100,R101

100 Ohm,R0603, 1/10W, ±%

SMD resistors Vishay CRCW0603100RFKTA

8 1 R109120 Ohm,R0603, 1/10W, ±5%

SMD resistors Vishay CRCW0603120RJNEA

9 11

R1, R12, R17,R18, R33,R35, R44,R45, R54,R56, R86

1 kOhm,R0603, 1/10W, ±1

SMD resistors Vishay CRCW06031K00FKEC

10 1 R141.6 kOhm,R0603, 1/10W, ±1%

SMD resistor Vishay CRCW06031K60FKEA

11 1 R202 kOhm,R0603, 1/10W, ±5%

SMD resistor Vishay CRCW06032K00JNEA

12 2 R59, R922.2 kOhm,R0603, 1/10W, ±%

SMD resistors Vishay CRCW06032K20FKEB

UM2932Bill of materials

UM2932 - Rev 1 page 47/62

Page 48: Getting started with the AEK-MOT-3P99081 CAN-controlled

Item Q.ty Ref. Part/Value Description Manufacturer Order code

13 2 R3, R343.3 kOhm,R0603,1/10W, +/-5%

SMD resistors Vishay CRCW06033K30JNEA

14 1 R723.48 kOhm,R0603, 1/10W, ±%

SMD resistor Vishay MCT06030C3481FP500

15 1 R21

4.02 kOhm,R0603,1/10W, ±0.5%

SMD resistor Yageo RT0603DRE074K02L

16 3 R73, R74,R75

4.3 kOhm,R0603, 1/10W, ±1%

SMD resistors Vishay MCWR06X4301FTL

17 8

R2, R15, R16,R76, R77,R78, R89,R90

4.7 kOhm,R0603, 1/10W, ±5%

SMD resistors Vishay CRCW06034K70JNEAHP

18 2 R49, R9510 kOhm,R0603, 1/10W, ±5%

SMD resistors Vishay CRCW060310K0JNEAHP

19 1 R8312 kOhm,R0603, 1/4 W,±1%

SMD resistor Vishay RCS060312K0FKEA

20 1 R4220 kOhm,R0603, 1/10W, ±1%

SMD resistor Vishay CRCW060320K0FKEB

21 3 R68, R69,R71

39k Ohm,R0603, 1/4W,+/-1%

SMD resistors Vishay RCS060339K0FKEA

22 4 R5, R13, R19,R67

51 kOhm,R0603, 1/4 W,±0.5%

SMD resistors Panasonic ERJ3RBD5102V

23 6R46, R47,R48, R61,R62, R63

100 kOhm,R0603, 1/10W, ±1%

SMD resistors Vishay CRCW0603100KFKEC

24 1 R521 MOhm,R0603, 1/10W, ±5%

SMD resistor Vishay CRCW06031M00FKEAHP

25 9

C90, C91,C92, C93,C94, C95,C97, C98,C99

D.N.P, C0603 Ceramiccapacitors Any

26 2 C101, C102 18 pF, C0603,16 V, ±10%

Ceramiccapacitors TDK CGA3E2C0G1H180J080A

A

27 2 C80, C81 27 pF, C0603,25 V, ±10%

Ceramiccapacitors TDK CGA3E2C0G1H270J080A

A

28 2 C132, C33 47 pF, C0603,50 V, ±5%

Ceramiccapacitors TDK C1608C0G1H470J080AA

29 3 C19, C23,C27

270 pF,C0603, 25 V,±10%

Ceramiccapacitors TDK CGA3E2C0G1H271J080A

A

30 1 C39330 pF,C0603, 25 V,±10%

Ceramiccapacitor

WurthElektronik 885012006060

UM2932Bill of materials

UM2932 - Rev 1 page 48/62

Page 49: Getting started with the AEK-MOT-3P99081 CAN-controlled

Item Q.ty Ref. Part/Value Description Manufacturer Order code

31 1 C44390 pF,C0603, 25 V,±10%

Ceramiccapacitor TDK CGA3E2C0G1H391J080A

A

32 11

C51, C53,C55, C57,C59, C63,C65, C67,C69, C71,C73

470 pF,C0603, 25 V,±10%

Ceramiccapacitors

WurthElektronik 885012006061

33 3 C17, C21,C25

1 nF, C0603,25 V, ±10%

Ceramiccapacitors

WurthElektronik 885012006063

34 3 C103, C104,C127

2.2 nF,C0603, 25 V,±10%

Ceramiccapacitors TDK CGA3E2X7R1H222K080A

A

35 2 C135, C1364.7 nF,C0603, 50 V,±10%

Ceramiccapacitors TDK CGA3E2X7R1H472K080A

A

36 2 C75, C76 10 nF, C0603,25 V, ±10%

Ceramiccapacitors TDK CGA3E2X7R2A103K080A

A

37 6C16, C18,C20, C22,C24, C26

22 nF, C0603,25 V, ±10%

Ceramiccapacitors

WurthElektronik 885012206091

38 1 C40 27 nF, C0603,25 V, ±10%

Ceramiccapacitor Multicomp MC0603B273K250CT

39 1 C96 47 nF, C0603,25 V, ±10%

Ceramiccapacitor

WurthElektronik 885012206093

40 1 C38 68 nF, C0603,25 V, ±10%

Ceramiccapacitor

WurthElektronik 885012206094

41 43

C6, C8, C10,C12, C15,C32, C36,C41, C43,C45, C58,C62, C64,C66, C68,C70, C72,C74, C78,C79, C82,C100, C105,C107, C109,C111, C112,C113, C115,C116, C117,C118, C119,C120, C121,C122, C123,C124, C125,C126, C129,C131, C134

100 nF,C0603, 50 V,±10%

Ceramiccapacitors

WurthElektronik 885012206095

42 4 C34, C85,C87, C89

100 nF,C0805, 100 V,±10%

Ceramiccapacitors

WurthElektronik 885012207128

43 4 C50, C52,C54, C56

470 nF,C0603, 25 V,±10%

Ceramiccapacitors TDK CGA3E3X5R1H474K080A

B

UM2932Bill of materials

UM2932 - Rev 1 page 49/62

Page 50: Getting started with the AEK-MOT-3P99081 CAN-controlled

Item Q.ty Ref. Part/Value Description Manufacturer Order code

44 10

C4, C5, C7,C9, C11, C13,C37, C77,C84, C130

1 µF, C0805,25 V, ±10%

Ceramiccapacitors

WurthElektronik 885012207103

45 4 C1, C2, C3,C30

1 µF, C0805,100 V, ±10%

Ceramiccapacitors TDK CGA4J3X7S2A105K125AB

46 3 C31, C42,C46

2.2 µF,C0805, 16 V,±10%

Ceramiccapacitors

WurthElektronik 885012207052

47 1 C1143.3 µF,C0805, 16 V,±10%

Ceramiccapacitor TDK CGA4J3X7R1C335K125A

D

48 2 C29, C353.3 µuF,C1206, 100 V,±10%

Ceramiccapacitors TDK CGA5L3X7S2A335K160AB

49 2 C108, C1104.7 µF,C1206, 16 V,±10%

Ceramiccapacitors TDK CGA5L1X7R1E475K160A

C

50 1 C144.7 µF,C1206, 25 V,±10%

Ceramiccapacitor

WurthElektronik 885012208068

51 7

C33, C47,C48, C49,C60, C61,C106

10 µF, C1206,16 V, ±10%

Ceramiccapacitors

WurthElektronik 885012208041

52 1 C28

10 µF, CAP.8.3 X 6.2 -SMD, 100 V,±20%

Electrolyticcapacitor Panasonic EEE2AA100UP

53 1 C128

47 µF, CAP.6.3 X 5.4 -SMD, 16 V,±20%

Electrolyticcapacitor

WurthElektronik 865230343004

54 3 C83, C86,C88

220 µF, CAP.12.5 x 25 mm,100 V, ±20%

Electrolyticcapacitors

WurthElektronik 860040878017

55 4 L5, L6, L7, L9 60 Ohm,F0603, ±25% Ferrite beads Wurth

Elektronik 74279267

56 1 L1 100 Ohm,F1206 Ferrite bead TDK MPZ2012S101ATD25

57 1 L439 µH,744770139,3.5 A, ±20%

Inductor WurthElektronik 744770139

58 1 D14 0805 LED Red LED WurthElektronik 150080RS75000

59 8D3, D4, D5,D8, D11, D12,D13, D19

0805 LED Green LED WurthElektronik 150080GS75000

60 1 D1 STPS5L60S,DO-214AB

60 V, 5 A lowdrop powerSchottkyrectifier

ST STPS5L60S

61 1 D2 SMA6T56AY,DO-214AC

Automotive600 W, 47.6 VTVS in SMA

ST SMA6T56AY

UM2932Bill of materials

UM2932 - Rev 1 page 50/62

Page 51: Getting started with the AEK-MOT-3P99081 CAN-controlled

Item Q.ty Ref. Part/Value Description Manufacturer Order code

62 1 D6 STPS2L60A,DO-214AC

60 V, 2 A lowdrop powerSchottkyrectifier

ST STPS2L60A

63 6D7, D9, D10,D15, D17,D18

STPS2H100A, DO-214AC

100 V, 2 ApowerSchottkyrectifier

ST STPS2H100A

64 1 D16 STPS2L40,DO-214AA

40 V, 2 A lowdrop powerSchottkyrectifier

ST STPS2L40

65 6DZ1, DZ2,DZ3, DZ4,DZ5, DZ6

BZM55C12-TR, MICRO-MELF

Zener diode Vishay BZM55C12-TR

66 1 Y1 7B-12.000MAAJ-T

Crystaloscillator

WurthElektronik 830055999

67 1 Y2XTAL003210,HC49/4HSMX

Crystaloscillator

WurthElektronik 830003210

68 1 S3TSB06339-050-4 (180,KTH55150KA

Tactile switch ADIMPEX TSB06339-050-4 (180

69 1 S1 MMS 228 T(SPDT) Slide switch KNITTER-

SWITCH MMS 228 T

70 8

TP1, TP2,TP3, TP4,TP5, TP6,TP15, TP35

TEST POINT Test points Any Any

71 2 J2, J4 p. 2.54 mm,SIP3 Headers Wurth

Elektronik 61300311121

72 1 J3 p. 2.54 mm,HEADER 7X2 Header Wurth

Elektronik 61301421121

73 1 J5 p. 2.54 mm,61900211121

Polarizedheader

WurthElektronik 61900211121

74 2 P3, P4 p. 2.54 mm,SIP5

Polarizedheaders

WurthElektronik 61900511121

75 1 X1 p. 2.54 mm,IDC14 Boxed header Wurth

Elektronik 61201421621

76 1 J1 p. 5.08 mm,CON2

Connectorcart

WurthElektronik 691213510002

77 1 P2 p. 5.08 mm,CON3

Connectorcart

WurthElektronik 691213510002

78 1 P1 MINI USB Mini-USB WurthElektronik 65100516121

79 6 Q2, Q3, Q4,Q5, Q6, Q7

STD105N10F7AG, DPAK

Automotive-grade N-channel 100V, 6.8 mOhmtyp., 80 ASTripFET F7powerMOSFET in aDPAKpackage

ST STD105N10F7AG

UM2932Bill of materials

UM2932 - Rev 1 page 51/62

Page 52: Getting started with the AEK-MOT-3P99081 CAN-controlled

Item Q.ty Ref. Part/Value Description Manufacturer Order code

80 1 T1 BCP68T1G,SOT-223 Transistor OnSemicondu

ctor BCP68T1G

81 1 U19 LD1117S33TR, SOT-223

Adjustableand fixed lowdrop positivevoltageregulator

ST LD1117S33TR

82 1 U13 L7987L,HTSSOP-16

61 V 2 Aasynchronousstep-downswitchingregulator withadjustablecurrentlimitation

ST L7987L

83 1 U2 L4995RJ,PowerSSO-12

Automotive 5V, 500 mA lowdrop voltageregulator

ST L4995RJ

84 1 U3 L4995AJ,PowerSSO-12

Automotive 5V, 500 mA lowdrop voltageregulator

ST L4995AJ

85 1 U14 L9908,TQFP48

Automotive 3-phase motorgate driverunit

ST L9908

86 1 U16 SPC560P50L5, LQFP144

32-bit powerarchitectureMCU forautomotivechassis andsafetyapplications

ST SPC560P50L5

87 1 U20STM6315RBW13F,SOT-143

Open drainmicroprocessor reset

ST STM6315RBW13F

88 1 U1 FT2232HL-REEL, QFP64 USB-to-UART FTDI FT2232HL-REEL

89 1 U9 USBLC6-2P6,SOT-666

ESDProtection forUSB 2.0 HighSpeed

ST USBLC6-2P6

90 1 U18M93S46-WMN6TP,SO-8

1-KbitMICROWIREserial accessEEPROM withblockprotection

ST M93S46-WMN6TP

91 7U4, U5, U6,U7, U8, U10,U12

SN74LVC1T45DCKT,SC-70

Transceivers TexasInstruments SN74LVC1T45DCKT

92 1 U11 MCP2562FD-E/SN, SO-8

CAN bustransceiver Microchip MCP2562FD-E/SN

UM2932Bill of materials

UM2932 - Rev 1 page 52/62

Page 53: Getting started with the AEK-MOT-3P99081 CAN-controlled

13 Board versions

Table 7. AEK-MOT-3P99081 versions

Finished good Schematic diagrams Bill of materials

AEK$MOT-3P99081A (1) AEK$MOT-3P99081A schematic diagrams AEK$MOT-3P99081A bill of materials

1. This code identifies the AEK-MOT-3P99081 evaluation board first version.

UM2932Board versions

UM2932 - Rev 1 page 53/62

Page 54: Getting started with the AEK-MOT-3P99081 CAN-controlled

14 Regulatory compliance

Formal Notice Required by the U.S. Federal Communications Commission

FCC NOTICE:This kit is designed to allow:(1) Product developers to evaluate electronic components, circuitry, or software associated with the kit todetermine whether to incorporate such items in a finished product and(2) Software developers to write software applications for use with the end product.This kit is not a finished product and when assembled may not be resold or otherwise marketed unless allrequired FCC equipment authorizations are first obtained. Operation is subject to the condition that this productnot cause harmful interference to licensed radio stations and that this product accept harmful interference. Unlessthe assembled kit is designed to operate under part 15, part 18 or part 95 of this chapter, the operator of the kitmust operate under the authority of an FCC license holder or must secure an experimental authorization underpart 5 of this chapter 3.1.2.The evaluation kit has been designed to comply with part 15 of the FCC Technical Rules. Operation is subject tothe following two conditions: (1) This device may not cause harmful interference, and (2) this device must acceptany interference received, including interference that may cause undesired operation.This equipment has been tested and found to comply with the limits for a Class B digital device, pursuant to part15 of the FCC Rules. These limits are designed to provide reasonable protection against harmful interferencein a residential installation. This equipment generates, uses and can radiate radio frequency energy and, if notinstalled and used in accordance with the instructions, may cause harmful interference to radio communications.However, there is no guarantee that interference will not occur in a particular installation.Standard applied: FCC CFR 47 Part 15 Subpart B. Test method applied: ANSI C63.4 (2014).

Formal Product Notice Required by Industry Canada Innovation, Science and Economic Development

Canada compliance:For evaluation purposes only. This kit generates, uses, and can radiate radio frequency energy and has not beentested for compliance with the limits of computing devices pursuant to Industry Canada (IC) rules.À des fins d'évaluation uniquement. Ce kit génère, utilise et peut émettre de l'énergie radiofréquence et n'a pasété testé pour sa conformité aux limites des appareils informatiques conformément aux règles d'Industrie Canada(IC).This device has been tested with Innovation, Science and Economic Development RSS standards. Operation issubject to the following two conditions: (1) this device may not cause harmful interference, and (2) this devicemust accept any interference received, including interference that may cause undesired operation.Standard applied: ICES-003 Issue 7 (2020), Class B. Test method applied: ANSI C63.4 (2014).Cet appareil a été testé pour les normes RSS d'Innovation, Science et Développement économique. L'utilisationest soumise aux deux conditions suivantes: (1) cet appareil ne doit pas causer d'interférences nuisibles, et (2)cet appareil doit accepter de recevoir tous les types d’interférence, y comprises les interférences susceptiblesd'entraîner un fonctionnement indésirable.Norme appliquée: NMB-003, 7e édition (2020), Classe B. Méthode d'essai appliquée: ANSI C63.4 (2014).

Formal product notice required by EU

This device is in conformity with the essential requirements of the Directive 2014/30/EU (EMC) and of theDirective 2015/863/EU (RoHS).Standards applied: EN 61000-6-1:2019, EN 61000-6-3:2007 + A1:2011 + AC:2012, EN 55032:2015 + A1:2020,EN 55035:2017 + A11:2020, EN 61000-3-2:2019, EN 61000-3-3:2013 + A1:2019.

UM2932Regulatory compliance

UM2932 - Rev 1 page 54/62

Page 55: Getting started with the AEK-MOT-3P99081 CAN-controlled

Appendix A CAN protocol in automotive applicationsThe car area network (CAN) protocol is widely used in automotive body and convenience applications where themain body control module (BCM) is connected with several electrical control units (ECUs).Typical in-vehicle CAN messages belong to the following categories:1. Messages triggered by specific events2. Message cyclically sent for safety reasonsThe ECU normally manages cyclic messages with a scheduler to ensure appropriate timing of transmission.The SPC58ECxx_RLA_MainEcuForBLDCControl-L9908-Test Application demo software only implements basiccommunication with the IPC. For more information regarding CAN communication protocol and set-up in SPC5-STUDIO, refer to AN5416.

UM2932CAN protocol in automotive applications

UM2932 - Rev 1 page 55/62

Page 56: Getting started with the AEK-MOT-3P99081 CAN-controlled

Appendix B Calculate electrical angle when using Hall sensorsThe electrical angle is an important parameter that must be set when motor control algorithm inputs come fromHall sensors.The Hall sensors provide absolute rotor position information, but, due to construction reasons, they are often notperfectly mounted. Even a small misalignment with the center of the stator winding of phase A might generate anerror in the measurement of the angle that degrades the control.This important parameter has to be added in the sensor section of the motor control library configuration.

Figure 48. Hall sensor configuration

To calculate this value, follow the procedure below.

Step 1. Plot the following signals in the oscilloscope:– Back Emf Phase A (B-emf, a in the image below)– Hall Phase A (H1 in the image below)– Hall Phase B (H2 in the image below)– Hall Phase C (H3 in the image below)

Figure 49. Oscilloscope plot

Step 2. Measure:– electrical period calculated between two rising edges of H1 = 3.78 ms in this case– electrical period of Back Emf Phase A = 3.802 ms in this case

Step 3. Compute:– delay by subtracting the rising edge of signal H1 time from the max point of B-emf on phase A

42.2 ms – 39.1 ms = 3.1 ms

– Pℎase Delta = DelayElectrical Period × 360deg = 3.1ms3.78ms × 360deg = 295.24 deg

UM2932Calculate electrical angle when using Hall sensors

UM2932 - Rev 1 page 56/62

Page 57: Getting started with the AEK-MOT-3P99081 CAN-controlled

Revision history

Table 8. Document revision history

Date Revision Changes

13-Sep-2021 1 Initial release.

UM2932

UM2932 - Rev 1 page 57/62

Page 58: Getting started with the AEK-MOT-3P99081 CAN-controlled

Contents

1 Getting started . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2

1.1 System overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

1.2 Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

1.3 Board components . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

2 How to set up the AEK-MOT-3P99081 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5

3 How to set up the AEK-MCU-C4MLIT1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .8

4 How to install UDE visual platform and PLS USB JTAG drivers . . . . . . . . . . . . . . . . . . . .11

5 How to flash the microcontroller firmware using UDE visual platform. . . . . . . . . . . . . .14

5.1 How to flash the microcontroller firmware on the AEK-MOT-3P99081. . . . . . . . . . . . . . . . . . 14

5.2 How to flash the microcontroller firmware on the AEK-MCU-C4MLIT1 . . . . . . . . . . . . . . . . . 15

6 How to manage the system demo using CAN communication protocol between theAEK-MCU-C4MLIT1 and the AEK-MOT-3P99081 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .16

7 SPC5-STUDIO overview. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .18

7.1 How to create a new project in SPC5-STUDIO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

7.2 How to add components to an SPC5-STUDIO project . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

7.3 How to generate and compile application source code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

7.4 AutoDevKit plug-in . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

8 How to set up BLDC motor parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .25

8.1 How to determine the number of pole pairs of a BLDC motor . . . . . . . . . . . . . . . . . . . . . . . . . 26

8.2 How to calculate stator resistance and inductance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

9 Motor control protocol . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .29

9.1 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

9.2 Set register frame . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

9.3 Get register frame . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

9.4 Execute command frame . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

9.5 Execute ramp frame . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

9.6 Set current reference frame . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

10 Source code for the master board MCU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .37

10.1 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

UM2932Contents

UM2932 - Rev 1 page 58/62

Page 59: Getting started with the AEK-MOT-3P99081 CAN-controlled

10.2 CAN protocol configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

10.3 Motor Control Communication library . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

10.4 Demo implemented in main.c file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

11 Schematic diagrams . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .42

12 Bill of materials . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .47

13 Board versions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .53

14 Regulatory compliance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .54

Appendix A CAN protocol in automotive applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .55

Appendix B Calculate electrical angle when using Hall sensors . . . . . . . . . . . . . . . . . . . . . . .56

Revision history . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .57

Contents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .58

List of tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .60

List of figures. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .61

UM2932Contents

UM2932 - Rev 1 page 59/62

Page 60: Getting started with the AEK-MOT-3P99081 CAN-controlled

List of tablesTable 1. Starting frame codes managed by MCP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29Table 2. List of error codes managed by MCP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30Table 3. List of relevant motor control registers managed by MCP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30Table 4. List of external faults for L9908 managed by MCP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33Table 5. List of commands. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34Table 6. AEK-MOT-3P99081 bill of materials . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47Table 7. AEK-MOT-3P99081 versions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53Table 8. Document revision history . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57

UM2932List of tables

UM2932 - Rev 1 page 60/62

Page 61: Getting started with the AEK-MOT-3P99081 CAN-controlled

List of figuresFigure 1. AEK-MOT-3P99081 evaluation board . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1Figure 2. System overview describing a generic high-level system block diagram for Hall-effect sensor three-phase BLDC

motor control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2Figure 3. AEK-MOT-3P99081 components . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4Figure 4. AEK-MOT-3P99081 switch and jumper . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5Figure 5. AEK-MOT-3P99081 power supply connection and LEDs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6Figure 6. AEK-MOT-3P99081 three-phase BLDC motor and Hall-effect sensor connections. . . . . . . . . . . . . . . . . . . . . . 7Figure 7. AEK-MCU-C4MLIT1 JP37, JP36, JP35 and JP34 jumpers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8Figure 8. AEK-MCU-C4MLIT1 other jumpers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8Figure 9. AEK-MCU-C4MLIT1 plug connector for DC supply and power switch. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9Figure 10. AEK-MCU-C4MLIT1 physical connection between pin A10 and pin A23. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9Figure 11. AEK-MCU-C4MLIT1 and AEK-MOT-3P99081 wire connections . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10Figure 12. SPC5-UDESTK starter-kit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11Figure 13. VCP driver library . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11Figure 14. PLS JTAG Adapter for SPC5xxx B . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12Figure 15. PLS JTAG Adapter for SPC5xxx A . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12Figure 16. New COM port available . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13Figure 17. Loading the binary file onto the microcontroller . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14Figure 18. Flashing the firmware using UDE-STK. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15Figure 19. BLDC drive system configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16Figure 20. AEK-MCU-C4MLIT1 board SW1, SW2 and SW3 (highlighted below) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17Figure 21. SPC5-STUDIO - SPC58ECxx_RLA_MainEcuForBLDCControl-L9908-Test Application project workspace . . . . 18Figure 22. SPC5-STUDIO - SPC58ECxx_RLA_MainEcuForBLDCControl-L9908-Test Application project components . . . 19Figure 23. SPC5-STUDIO - software architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20Figure 24. SPC5-STUDIO new application MCU platform . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21Figure 25. SPC5-STUDIO new application files in outline view and main.c file automatically generated . . . . . . . . . . . . . . 22Figure 26. SPC5-STUDIO new components visible in the project tree . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23Figure 27. SPC5-STUDIO compiled project files. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24Figure 28. SP56xx-Motor-Control-Component parameters to be updated to use a different Hall-effect sensor three-phase

BLDC motor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25Figure 29. Nominal shape of voltage and current during the procedure to determine the stator resistance and inductance of

the BLDC motor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26Figure 30. Results of the procedure to determine the stator resistance and inductance of the BLDC motor, when applied to

the BLDC motor MAXON EC40 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27Figure 31. Drive Settings section . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28Figure 32. Generic data frame . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29Figure 33. Set register frame . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30Figure 34. Get register frame. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34Figure 35. Execute command frame . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34Figure 36. Execute ramp frame . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35Figure 37. Set current reference frame . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36Figure 38. CAN protocol project driver selection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37Figure 39. CAN configuration. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38Figure 40. CAN configuration settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39Figure 41. Motor Control Communication library. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40Figure 42. SPC58ECxx_RLA_MainEcuForBLDCControl-L9908-Test Application - main.c file extract. . . . . . . . . . . . . . . . 41Figure 43. AEK-MOT-3P99081 circuit schematic (1 of 5) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42Figure 44. AEK-MOT-3P99081 circuit schematic (2 of 5) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43Figure 45. AEK-MOT-3P99081 circuit schematic (3 of 5) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44Figure 46. AEK-MOT-3P99081 circuit schematic (4 of 5) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45Figure 47. AEK-MOT-3P99081 circuit schematic (5 of 5) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46Figure 48. Hall sensor configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56Figure 49. Oscilloscope plot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56

UM2932List of figures

UM2932 - Rev 1 page 61/62

Page 62: Getting started with the AEK-MOT-3P99081 CAN-controlled

IMPORTANT NOTICE – PLEASE READ CAREFULLY

STMicroelectronics NV and its subsidiaries (“ST”) reserve the right to make changes, corrections, enhancements, modifications, and improvements to STproducts and/or to this document at any time without notice. Purchasers should obtain the latest relevant information on ST products before placing orders. STproducts are sold pursuant to ST’s terms and conditions of sale in place at the time of order acknowledgement.

Purchasers are solely responsible for the choice, selection, and use of ST products and ST assumes no liability for application assistance or the design ofPurchasers’ products.

No license, express or implied, to any intellectual property right is granted by ST herein.

Resale of ST products with provisions different from the information set forth herein shall void any warranty granted by ST for such product.

ST and the ST logo are trademarks of ST. For additional information about ST trademarks, please refer to www.st.com/trademarks. All other product or servicenames are the property of their respective owners.

Information in this document supersedes and replaces information previously supplied in any prior versions of this document.

© 2021 STMicroelectronics – All rights reserved

UM2932

UM2932 - Rev 1 page 62/62