mirror of
https://github.com/odriverobotics/ODrive.git
synced 2026-08-18 18:20:15 +08:00
Add Bourns EMS22A SPI encoder
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user