Add Bourns EMS22A SPI encoder

This commit is contained in:
Paul Guenette
2023-04-29 12:49:21 -07:00
parent e2df8e9e74
commit c44dc24160
4 changed files with 12 additions and 0 deletions
+1
View File
@@ -67,6 +67,7 @@ enum EncoderMode {
ENCODER_MODE_SPI_ABS_AEAT = 258,
ENCODER_MODE_SPI_ABS_RLS = 259,
ENCODER_MODE_SPI_ABS_MA732 = 260,
ENCODER_MODE_SPI_ABS_EMS22A = 261,
};
// ODrive.Controller.ControlMode
+6
View File
@@ -494,6 +494,7 @@ void Encoder::sample_now() {
case MODE_SPI_ABS_AEAT:
case MODE_SPI_ABS_RLS:
case MODE_SPI_ABS_MA732:
case MODE_SPI_ABS_EMS22A:
{
abs_spi_start_transaction();
// Do nothing
@@ -595,6 +596,11 @@ void Encoder::abs_spi_cb(bool success) {
pos = (rawVal >> 2) & 0x3fff;
} break;
case MODE_SPI_ABS_EMS22A: {
uint16_t rawVal = abs_spi_dma_rx_[0];
pos = (rawVal >> 6) & 0x03ff;
} break;
default: {
set_error(ERROR_UNSUPPORTED_ENCODER_MODE);
goto done;
+3
View File
@@ -1599,6 +1599,9 @@ valuetypes:
SPI_ABS_MA732:
value: 0x104
doc: MagAlpha MA732 magnetic encoder
SPI_ABS_EMS22A:
value: 0x105
doc: Bourns EMS22A Non-Contacting Absolute Encoder
ODrive.Controller.ControlMode:
values:
+2
View File
@@ -56,6 +56,7 @@ ENCODER_MODE_SPI_ABS_AMS = 257
ENCODER_MODE_SPI_ABS_AEAT = 258
ENCODER_MODE_SPI_ABS_RLS = 259
ENCODER_MODE_SPI_ABS_MA732 = 260
ENCODER_MODE_SPI_ABS_EMS22A = 261
# ODrive.Controller.ControlMode
CONTROL_MODE_VOLTAGE_CONTROL = 0
@@ -214,6 +215,7 @@ class EncoderMode(enum.Enum):
SPI_ABS_AEAT = 258
SPI_ABS_RLS = 259
SPI_ABS_MA732 = 260
SPI_ABS_EMS22A = 261
class ControlMode(enum.Enum):
VOLTAGE_CONTROL = 0
TORQUE_CONTROL = 1