From e7ef78bccafb41efa53907df2d3825ad9c342d8e Mon Sep 17 00:00:00 2001 From: Oskar Weigl Date: Wed, 25 Nov 2020 22:52:38 -0800 Subject: [PATCH] Sample DRV fault when going to idle. Update Vds setting on DRV --- Firmware/.vscode/c_cpp_properties.json | 9 +++++---- Firmware/MotorControl/axis.cpp | 1 + Firmware/MotorControl/axis.hpp | 1 + Firmware/Private | 2 +- Firmware/odrive-interface.yaml | 1 + tools/.vscode/launch.json | 2 +- 6 files changed, 10 insertions(+), 6 deletions(-) diff --git a/Firmware/.vscode/c_cpp_properties.json b/Firmware/.vscode/c_cpp_properties.json index 33d6b37a..9d93f425 100644 --- a/Firmware/.vscode/c_cpp_properties.json +++ b/Firmware/.vscode/c_cpp_properties.json @@ -3,12 +3,13 @@ { "name": "Win32", "includePath": [ + "${workspaceFolder}/Private/**", "${workspaceFolder}/**" ], "defines": [ "__arm__", - "STM32F405xx", - "FPU_FPV4", + "STM32F722xx", + "FPU_FPV5", "USE_HAL_DRIVER", "HW_VERSION_MAJOR=4", "HW_VERSION_MINOR=1", @@ -21,8 +22,8 @@ "compilerPath": "arm-none-eabi-g++.exe", "compilerArgs": [ "-mthumb", - "-mcpu=cortex-m4", - "-mfpu=fpv4-sp-d16", + "-mcpu=cortex-m7", + "-mfpu=fpv5-sp-d16", "-mfloat-abi=hard", "-specs=nosys.specs", "-specs=nano.specs", diff --git a/Firmware/MotorControl/axis.cpp b/Firmware/MotorControl/axis.cpp index 90cd80b5..25af856d 100644 --- a/Firmware/MotorControl/axis.cpp +++ b/Firmware/MotorControl/axis.cpp @@ -417,6 +417,7 @@ bool Axis::run_homing() { } bool Axis::run_idle_loop() { + last_drv_fault_ = motor_.gate_driver_.get_error(); mechanical_brake_.engage(); set_step_dir_active(config_.enable_step_dir && config_.step_dir_always_on); while (requested_state_ == AXIS_STATE_UNDEFINED) { diff --git a/Firmware/MotorControl/axis.hpp b/Firmware/MotorControl/axis.hpp index 0682ed54..be42a7c6 100644 --- a/Firmware/MotorControl/axis.hpp +++ b/Firmware/MotorControl/axis.hpp @@ -177,6 +177,7 @@ public: // variables exposed on protocol Error error_ = ERROR_NONE; bool step_dir_active_ = false; // auto enabled after calibration, based on config.enable_step_dir + uint32_t last_drv_fault_ = 0; // updated from config in constructor, and on protocol hook Stm32Gpio step_gpio_; diff --git a/Firmware/Private b/Firmware/Private index d9b3887e..11c72c40 160000 --- a/Firmware/Private +++ b/Firmware/Private @@ -1 +1 @@ -Subproject commit d9b3887e5f15a21672cbe059898a3715fa483482 +Subproject commit 11c72c408f49cdace46a3b78da1231c439f2eda9 diff --git a/Firmware/odrive-interface.yaml b/Firmware/odrive-interface.yaml index 859fd328..e5980558 100644 --- a/Firmware/odrive-interface.yaml +++ b/Firmware/odrive-interface.yaml @@ -406,6 +406,7 @@ interfaces: # unused doc: Check `motor.error` for more details. step_dir_active: readonly bool + last_drv_fault: readonly uint32 current_state: readonly AxisState requested_state: AxisState loop_counter: readonly uint32 diff --git a/tools/.vscode/launch.json b/tools/.vscode/launch.json index 9a36a076..5247bf4a 100644 --- a/tools/.vscode/launch.json +++ b/tools/.vscode/launch.json @@ -9,7 +9,7 @@ "type": "python", "request": "launch", "stopOnEntry": true, - "pythonPath": "${command:python.pythonPath}", + "python": "${command:python.pythonPath}", "program": "${file}", "cwd": "${workspaceRoot}", "env": {},