Upload
others
View
4
Download
0
Embed Size (px)
Citation preview
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Revision history
Table 8. Document revision history
Date Revision Changes
13-Sep-2021 1 Initial release.
UM2932
UM2932 - Rev 1 page 57/62
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
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
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
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
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