zhaohe 2 years ago
parent
commit
da3bdb6eae
  1. 4
      .settings/language.settings.xml
  2. 2
      Core/Src/usart.c
  3. 2
      a8000_hbot_robot_controler.ioc
  4. 2
      sdk
  5. 9
      usrc/board.h
  6. 62
      usrc/main.cpp
  7. 3
      usrc/project_configs.h

4
.settings/language.settings.xml

@ -5,7 +5,7 @@
<provider copy-of="extension" id="org.eclipse.cdt.ui.UserLanguageSettingsProvider"/> <provider copy-of="extension" id="org.eclipse.cdt.ui.UserLanguageSettingsProvider"/>
<provider-reference id="org.eclipse.cdt.core.ReferencedProjectsLanguageSettingsProvider" ref="shared-provider"/> <provider-reference id="org.eclipse.cdt.core.ReferencedProjectsLanguageSettingsProvider" ref="shared-provider"/>
<provider-reference id="org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider" ref="shared-provider"/> <provider-reference id="org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider" ref="shared-provider"/>
<provider class="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" console="false" env-hash="760907916960452258" id="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" keep-relative-paths="false" name="MCU ARM GCC Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} -E -P -v -dD &quot;${INPUTS}&quot;" prefer-non-shared="true">
<provider class="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" console="false" env-hash="995385305838657757" id="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" keep-relative-paths="false" name="MCU ARM GCC Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} -E -P -v -dD &quot;${INPUTS}&quot;" prefer-non-shared="true">
<language-scope id="org.eclipse.cdt.core.gcc"/> <language-scope id="org.eclipse.cdt.core.gcc"/>
<language-scope id="org.eclipse.cdt.core.g++"/> <language-scope id="org.eclipse.cdt.core.g++"/>
</provider> </provider>
@ -16,7 +16,7 @@
<provider copy-of="extension" id="org.eclipse.cdt.ui.UserLanguageSettingsProvider"/> <provider copy-of="extension" id="org.eclipse.cdt.ui.UserLanguageSettingsProvider"/>
<provider-reference id="org.eclipse.cdt.core.ReferencedProjectsLanguageSettingsProvider" ref="shared-provider"/> <provider-reference id="org.eclipse.cdt.core.ReferencedProjectsLanguageSettingsProvider" ref="shared-provider"/>
<provider-reference id="org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider" ref="shared-provider"/> <provider-reference id="org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider" ref="shared-provider"/>
<provider class="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" console="false" env-hash="773643773921567763" id="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" keep-relative-paths="false" name="MCU ARM GCC Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} -E -P -v -dD &quot;${INPUTS}&quot;" prefer-non-shared="true">
<provider class="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" console="false" env-hash="1008121162799773262" id="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" keep-relative-paths="false" name="MCU ARM GCC Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} -E -P -v -dD &quot;${INPUTS}&quot;" prefer-non-shared="true">
<language-scope id="org.eclipse.cdt.core.gcc"/> <language-scope id="org.eclipse.cdt.core.gcc"/>
<language-scope id="org.eclipse.cdt.core.g++"/> <language-scope id="org.eclipse.cdt.core.g++"/>
</provider> </provider>

2
Core/Src/usart.c

@ -44,7 +44,7 @@ void MX_USART1_UART_Init(void)
/* USER CODE END USART1_Init 1 */ /* USER CODE END USART1_Init 1 */
huart1.Instance = USART1; huart1.Instance = USART1;
huart1.Init.BaudRate = 1500000;
huart1.Init.BaudRate = 921600;
huart1.Init.WordLength = UART_WORDLENGTH_8B; huart1.Init.WordLength = UART_WORDLENGTH_8B;
huart1.Init.StopBits = UART_STOPBITS_1; huart1.Init.StopBits = UART_STOPBITS_1;
huart1.Init.Parity = UART_PARITY_NONE; huart1.Init.Parity = UART_PARITY_NONE;

2
a8000_hbot_robot_controler.ioc

@ -281,7 +281,7 @@ TIM6.IPParameters=Prescaler
TIM6.Prescaler=71 TIM6.Prescaler=71
TIM7.IPParameters=Prescaler TIM7.IPParameters=Prescaler
TIM7.Prescaler=81 TIM7.Prescaler=81
USART1.BaudRate=1500000
USART1.BaudRate=921600
USART1.IPParameters=VirtualMode,BaudRate USART1.IPParameters=VirtualMode,BaudRate
USART1.VirtualMode=VM_ASYNC USART1.VirtualMode=VM_ASYNC
USART2.IPParameters=VirtualMode USART2.IPParameters=VirtualMode

2
sdk

@ -1 +1 @@
Subproject commit 14654f98532a65013384eb1582845af08c9cf327
Subproject commit 8f364e5f9d3b8f1858abfe2ff3ba71376aa941d9

9
usrc/board.h

@ -19,10 +19,11 @@
#define TMC_MOTOR2_SUB_IC_ENN_IO PC7 #define TMC_MOTOR2_SUB_IC_ENN_IO PC7
#define TMC_MOTOR2_ENN_IO // unused #define TMC_MOTOR2_ENN_IO // unused
#define ARM_SENSOR1_GPIO PD0
#define ARM_SENSOR2_GPIO PD1
#define ARM_SENSOR3_GPIO PD2
#define ARM_SENSOR4_GPIO PD3
#define ARM_X_ZERO PD0
#define ARM_X_LIMIT PD1
#define ARM_Y_ZERO PD2
#define ARM_Y_LIMIT PD3
#define ARM_SENSOR5_GPIO PD4 #define ARM_SENSOR5_GPIO PD4
#define ARM_SENSOR6_GPIO PD5 #define ARM_SENSOR6_GPIO PD5
#define ARM_SENSOR7_GPIO PD6 #define ARM_SENSOR7_GPIO PD6

62
usrc/main.cpp

@ -43,8 +43,8 @@ void nvs_init_cb() {
} }
static void initsubmodule() { static void initsubmodule() {
static XYRobotCtrlModule xyRobotCtrlModule; static XYRobotCtrlModule xyRobotCtrlModule;
static TMC4361A motora;
static TMC4361A motorb;
static TMC4361A motora; // 1
static TMC4361A motorb; // 2
{ {
TMC4361A::cfg_t cfg = { TMC4361A::cfg_t cfg = {
.spi = &TMC_MOTOR_SPI, // .spi = &TMC_MOTOR_SPI, //
@ -57,6 +57,7 @@ static void initsubmodule() {
}; };
motora.initialize(&cfg); motora.initialize(&cfg);
motora.setMotorShaft(false); motora.setMotorShaft(false);
motora.setGLOBAL_SCALER(32);
ZLOGI(TAG, "motora initialize TMC4361A:%x DriverIC:%x", motora.readICVersion(), motora.readSubICVersion()); ZLOGI(TAG, "motora initialize TMC4361A:%x DriverIC:%x", motora.readICVersion(), motora.readSubICVersion());
} }
@ -72,6 +73,7 @@ static void initsubmodule() {
}; };
motorb.initialize(&cfg); motorb.initialize(&cfg);
motorb.setMotorShaft(false); motorb.setMotorShaft(false);
motorb.setGLOBAL_SCALER(32);
ZLOGI(TAG, "motorb initialize TMC4361A:%x DriverIC:%x", motorb.readICVersion(), motorb.readSubICVersion()); ZLOGI(TAG, "motorb initialize TMC4361A:%x DriverIC:%x", motorb.readICVersion(), motorb.readSubICVersion());
} }
@ -89,17 +91,45 @@ static void initsubmodule() {
/******************************************************************************* /*******************************************************************************
* zcanXYRobotCtrlModule * * zcanXYRobotCtrlModule *
*******************************************************************************/ *******************************************************************************/
ZGPIO input[8];
input[0].initAsInput(ARM_SENSOR1_GPIO, ZGPIO::kMode_nopull, ZGPIO::kIRQ_noIrq, true);
input[1].initAsInput(ARM_SENSOR2_GPIO, ZGPIO::kMode_nopull, ZGPIO::kIRQ_noIrq, true);
input[2].initAsInput(ARM_SENSOR3_GPIO, ZGPIO::kMode_nopull, ZGPIO::kIRQ_noIrq, true);
input[3].initAsInput(ARM_SENSOR4_GPIO, ZGPIO::kMode_nopull, ZGPIO::kIRQ_noIrq, true);
input[4].initAsInput(ARM_SENSOR5_GPIO, ZGPIO::kMode_nopull, ZGPIO::kIRQ_noIrq, true);
input[5].initAsInput(ARM_SENSOR6_GPIO, ZGPIO::kMode_nopull, ZGPIO::kIRQ_noIrq, true);
input[6].initAsInput(ARM_SENSOR7_GPIO, ZGPIO::kMode_nopull, ZGPIO::kIRQ_noIrq, true);
input[7].initAsInput(ARM_SENSOR8_GPIO, ZGPIO::kMode_nopull, ZGPIO::kIRQ_noIrq, true);
xyRobotCtrlModule.initialize(initer.get_module_id(1), &motora, &motorb, &input[0], 8, FLASH_MASK_XYRobotCtrlModule1);
static ZGPIO input[4];
input[0].initAsInput(ARM_X_ZERO, ZGPIO::kMode_nopull, ZGPIO::kIRQ_noIrq, true);
input[1].initAsInput(ARM_Y_ZERO, ZGPIO::kMode_nopull, ZGPIO::kIRQ_noIrq, true);
input[2].initAsInput(ARM_X_LIMIT, ZGPIO::kMode_nopull, ZGPIO::kIRQ_noIrq, true);
input[3].initAsInput(ARM_Y_LIMIT, ZGPIO::kMode_nopull, ZGPIO::kIRQ_noIrq, true);
static XYRobotCtrlModule::flash_config_t xy_defaultcfg;
XYRobotCtrlModule::create_default_cfg(xy_defaultcfg);
xy_defaultcfg.configInited = true;
xy_defaultcfg.basecfg.robot_type = 1;
xy_defaultcfg.basecfg.robot_type = I_XYRobotCtrlModule::hbot;
xy_defaultcfg.basecfg.x_shaft = 0;
xy_defaultcfg.basecfg.y_shaft = 1;
xy_defaultcfg.basecfg.ihold = 1;
xy_defaultcfg.basecfg.irun = 16;
xy_defaultcfg.basecfg.iholddelay = 100;
xy_defaultcfg.basecfg.distance_scale = 7344;
xy_defaultcfg.basecfg.shift_x = 0;
xy_defaultcfg.basecfg.shift_y = 0;
// limit
xy_defaultcfg.basecfg.acc = 800;
xy_defaultcfg.basecfg.dec = 800;
xy_defaultcfg.basecfg.breakdec = 1600;
xy_defaultcfg.basecfg.maxspeed = 600;
xy_defaultcfg.basecfg.min_x = 0;
xy_defaultcfg.basecfg.max_x = 0;
xy_defaultcfg.basecfg.min_y = 0;
xy_defaultcfg.basecfg.max_y = 0;
xy_defaultcfg.basecfg.run_to_zero_max_d = 10000 * 100;
xy_defaultcfg.basecfg.run_to_zero_speed = 80;
xy_defaultcfg.basecfg.run_to_zero_dec = 1600;
xy_defaultcfg.basecfg.look_zero_edge_max_d = 10000 * 3;
xy_defaultcfg.basecfg.look_zero_edge_speed = 10;
xy_defaultcfg.basecfg.look_zero_edge_dec = 1600;
xyRobotCtrlModule.initialize(initer.get_module_id(1), &motora, &motorb, &input[0], 4, xy_defaultcfg, nullptr);
xyRobotCtrlModule.dumpcfg(); xyRobotCtrlModule.dumpcfg();
initer.register_module(&xyRobotCtrlModule); initer.register_module(&xyRobotCtrlModule);
@ -111,7 +141,10 @@ void umain() {
.deviceId = getDeviceId(), .deviceId = getDeviceId(),
.input_gpio = .input_gpio =
{ {
// {PC6, ZGPIO::kMode_nopull, ZGPIO::kIRQ_noIrq, true},
{ARM_SENSOR5_GPIO, ZGPIO::kMode_nopull, ZGPIO::kIRQ_noIrq, true},
{ARM_SENSOR6_GPIO, ZGPIO::kMode_nopull, ZGPIO::kIRQ_noIrq, true},
{ARM_SENSOR7_GPIO, ZGPIO::kMode_nopull, ZGPIO::kIRQ_noIrq, true},
{ARM_SENSOR8_GPIO, ZGPIO::kMode_nopull, ZGPIO::kIRQ_noIrq, true},
}, },
.output_gpio = .output_gpio =
{ {
@ -119,5 +152,6 @@ void umain() {
}, },
}; };
initer.init(&cfg); initer.init(&cfg);
initsubmodule();
initer.loop(); initer.loop();
} }

3
usrc/project_configs.h

@ -1,6 +1,6 @@
#pragma once #pragma once
#define PC_VERSION "v1.0.0"
#define PC_VERSION "v1.0.1"
#define PC_MANUFACTURER "http://www.iflytop.com/" #define PC_MANUFACTURER "http://www.iflytop.com/"
#define PC_PROJECT_NAME "xy_robot_board" #define PC_PROJECT_NAME "xy_robot_board"
#define PC_IFLYTOP_ENABLE_OS 1 #define PC_IFLYTOP_ENABLE_OS 1
@ -18,4 +18,3 @@
#define PC_NVS_ENABLE 1 #define PC_NVS_ENABLE 1
#define PC_NVS_CONFIG_FLASH_SECTOR 8 #define PC_NVS_CONFIG_FLASH_SECTOR 8
#define PC_NVS_INIT_CB nvs_init_cb
Loading…
Cancel
Save