diff --git a/.settings/language.settings.xml b/.settings/language.settings.xml
index 7d6a0e4..48cb063 100644
--- a/.settings/language.settings.xml
+++ b/.settings/language.settings.xml
@@ -5,7 +5,7 @@
-
+
@@ -16,7 +16,7 @@
-
+
diff --git a/Core/Src/usart.c b/Core/Src/usart.c
index 0af0b83..4da57d6 100644
--- a/Core/Src/usart.c
+++ b/Core/Src/usart.c
@@ -44,7 +44,7 @@ void MX_USART1_UART_Init(void)
/* USER CODE END USART1_Init 1 */
huart1.Instance = USART1;
- huart1.Init.BaudRate = 1500000;
+ huart1.Init.BaudRate = 921600;
huart1.Init.WordLength = UART_WORDLENGTH_8B;
huart1.Init.StopBits = UART_STOPBITS_1;
huart1.Init.Parity = UART_PARITY_NONE;
diff --git a/a8000_hbot_robot_controler.ioc b/a8000_hbot_robot_controler.ioc
index 70f1078..69f0a0b 100644
--- a/a8000_hbot_robot_controler.ioc
+++ b/a8000_hbot_robot_controler.ioc
@@ -281,7 +281,7 @@ TIM6.IPParameters=Prescaler
TIM6.Prescaler=71
TIM7.IPParameters=Prescaler
TIM7.Prescaler=81
-USART1.BaudRate=1500000
+USART1.BaudRate=921600
USART1.IPParameters=VirtualMode,BaudRate
USART1.VirtualMode=VM_ASYNC
USART2.IPParameters=VirtualMode
diff --git a/sdk b/sdk
index 14654f9..8f364e5 160000
--- a/sdk
+++ b/sdk
@@ -1 +1 @@
-Subproject commit 14654f98532a65013384eb1582845af08c9cf327
+Subproject commit 8f364e5f9d3b8f1858abfe2ff3ba71376aa941d9
diff --git a/usrc/board.h b/usrc/board.h
index aa5f605..a22ba29 100644
--- a/usrc/board.h
+++ b/usrc/board.h
@@ -1,6 +1,6 @@
#pragma once
-#define BOARD_ID 1
+#define BOARD_ID 1
#define TMC_MOTOR_SPI hspi1
// MOTOR1
@@ -19,10 +19,11 @@
#define TMC_MOTOR2_SUB_IC_ENN_IO PC7
#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_SENSOR6_GPIO PD5
#define ARM_SENSOR7_GPIO PD6
diff --git a/usrc/main.cpp b/usrc/main.cpp
index bb58f65..c3c25aa 100644
--- a/usrc/main.cpp
+++ b/usrc/main.cpp
@@ -43,8 +43,8 @@ void nvs_init_cb() {
}
static void initsubmodule() {
static XYRobotCtrlModule xyRobotCtrlModule;
- static TMC4361A motora;
- static TMC4361A motorb;
+ static TMC4361A motora; // 1
+ static TMC4361A motorb; // 2
{
TMC4361A::cfg_t cfg = {
.spi = &TMC_MOTOR_SPI, //
@@ -57,6 +57,7 @@ static void initsubmodule() {
};
motora.initialize(&cfg);
motora.setMotorShaft(false);
+ motora.setGLOBAL_SCALER(32);
ZLOGI(TAG, "motora initialize TMC4361A:%x DriverIC:%x", motora.readICVersion(), motora.readSubICVersion());
}
@@ -72,6 +73,7 @@ static void initsubmodule() {
};
motorb.initialize(&cfg);
motorb.setMotorShaft(false);
+ motorb.setGLOBAL_SCALER(32);
ZLOGI(TAG, "motorb initialize TMC4361A:%x DriverIC:%x", motorb.readICVersion(), motorb.readSubICVersion());
}
@@ -89,17 +91,45 @@ static void initsubmodule() {
/*******************************************************************************
* 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();
initer.register_module(&xyRobotCtrlModule);
@@ -111,7 +141,10 @@ void umain() {
.deviceId = getDeviceId(),
.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 =
{
@@ -119,5 +152,6 @@ void umain() {
},
};
initer.init(&cfg);
+ initsubmodule();
initer.loop();
}
diff --git a/usrc/project_configs.h b/usrc/project_configs.h
index e7c7d4a..aef2588 100644
--- a/usrc/project_configs.h
+++ b/usrc/project_configs.h
@@ -1,6 +1,6 @@
#pragma once
-#define PC_VERSION "v1.0.0"
+#define PC_VERSION "v1.0.1"
#define PC_MANUFACTURER "http://www.iflytop.com/"
#define PC_PROJECT_NAME "xy_robot_board"
#define PC_IFLYTOP_ENABLE_OS 1
@@ -18,4 +18,3 @@
#define PC_NVS_ENABLE 1
#define PC_NVS_CONFIG_FLASH_SECTOR 8
-#define PC_NVS_INIT_CB nvs_init_cb