AN 999: Drive-on-Chip with Functional Safety Design Example: Agilex™ 7 Devices
ID
823627
Date
7/04/2024
Public
Visible to Intel only — GUID: mzm1716372462515
Ixiasoft
1. About the Drive-on-Chip with Functional Safety Design Example for Agilex™ 7 Devices
2. Getting Started
3. Rebuilding the Drive-on-Chip Design
4. Functional Description of the Drive-On-Chip with Functional Safety Design Example for Agilex 7 Devices
5. HPS Channel Safety Software
6. Drive-on-Chip Design Recommendations and Disclaimers
7. Document Revision History for AN 999: Drive-on-Chip with Functional Safety Design Example for Agilex 7 Devices
2.1. Software Requirements for the Drive-On-Chip with Functional Safety Design Example for Agilex 7 Devices
2.2. Hardware Requirements for the Safe Drive-On-Chip with Functional Safety Design Example for Agilex 7 Devices
2.3. Downloading and Installing the Design
2.4. Installing Python
2.5. Creating an SD Card Image
2.6. Setting Up your Development Board for the Drive-On-Chip with Functional Safety Design Example for Agilex 7 Devices
2.7. Debugging and Monitoring the Drive-On-Chip with Functional Safety Design Example for Agilex 7 Devices with Python GUI
2.8. Looking into the Drive-On-Chip Output
3.1. Generating the Platform Designer System
3.2. Generating and Building the NiosV/g BSP for the Drive-On-Chip Design Example
3.3. Compiling the Hardware in the Intel Quartus Prime Software
3.4. Modifying the Motor Control Software Application
3.5. Generating .jic and .rbf files After Hardware Modifications
3.6. Recreate an SD Card Image
3.7. Modifying the HPS Safety Function Application
Visible to Intel only — GUID: mzm1716372462515
Ixiasoft
5.2.2. Speed Estimation Thread (speed_estmation.c/.h)
The thread, which you can change, runs every 25ms (4kHz). The mechanism calculates a wake up time. It runs the speed estimation in every cycle after the wake-up time taking readings from the drive-on-chip encoder, specifically from the Raw Count Capture register (accessing the device doc_qep0). The design passes the values to main functions using pointers and the HPS calculates the next wake up time. The design allocates this thread to core 3, which is isolated for this purpose.
Figure 25. Speed Estimation Thread Flow