Проект

Общее

Профиль

Подключить терминирующий резистор (FLAG_CONFIG_TERMINATOR 0x05) deprecated

Некоторые устройства позволяют задействовать терминирующий резистор на 120Ом между линиями CAN-H и CAN-L. В таком случае используется данная настройка со следующей структурой обмена данных:

enum TERMINATOR_STATES {
    CAN_TERMINATOR_OFF  = 0x00,
    CAN_TERMINATOR_ON   = 0x01
};

typedef struct {
    CommandHeader header;
    uint8_t state;
} __attribute__((packed)) ChannelConfigureTerminator;

Данная настройка доступна для устройств с идентификаторами HW_CHP (0x03), HW_CHPM03 (0x13) и HW_FDL2 (0x06). Если устройство не поддерживает данную настройку, то ответ будет содержать 0xFF в поле с номером команды.

Запрос

Поле Значение
header.command 0x11
header.sequence порядковый номер запроса
header.flags FLAG_CHANNEL_x + FLAG_CONFIG_TERMINATOR
header.dSize 0x01
state значение из TERMINATOR_STATES

Ответ
Если запрос успешно обработан и значение состояния терминатора задано из допустимого диапазона значений.

Поле Значение
command 0x91
sequence порядковый номер запроса
flags 0x00
dSize 0x00

Если запрос не обработан.

Поле Значение
command 0xFF
sequence порядковый номер запроса
flags 0x00
dSize 0x00

Пример
Подключение терминатора для канала 2.

⇒ 11 xx 45 01 01
⇐ 91 xx 00 00

Задание состояния терминатора для канала 2 с неправильным значением.

⇒ 11 xx 45 01 10
⇐ FF xx 00 00