Перейти к содержанию

SN65HVD230 и MCP2551 — трансиверы шины CAN

Трансивер CAN превращает логические сигналы TXD и RXD контроллера в дифференциальные уровни шины CAN_H и CAN_L. SN65HVD230 работает от 3,3 В и подходит к ESP32 и STM32, MCP2551 — классический 5-вольтовый. Выводы у них расположены одинаково, а различия — в питании и уровнях.

Обновлено Редакция GAW

Трансивер — физический уровень шины CAN: контроллер CAN (встроенный в STM32, ESP32 или отдельный MCP2515) работает с логическими сигналами TXD и RXD, а трансивер передаёт их на витую пару CAN_H и CAN_L и принимает обратно. Протокол, уровни шины, терминаторы и расчёт битового тайминга разобраны в статье «Шина CAN» и в калькуляторе битового тайминга.

Выводы

SN65HVD230 и MCP2551, вид сверху: 1 TXD (у TI — D), 2 GND, 3 VCC, 4 RXD (у TI — R), 5 VREF, 6 CANL, 7 CANH, 8 RSSN65HVD2301TXD2GND3VCC4RXD5VREF6CANL7CANH8RSвид сверху
SN65HVD230 и MCP2551 в корпусе SOIC-8, вид сверху: выводы на одинаковых местах

TI называет вход передатчика D, а выход приёмника — R, Microchip — TXD и RXD. VREF — выход половины питания, обычно не используется. Ноль на TXD — доминантный уровень шины, единица — рецессивный; RXD повторяет состояние шины.

Сравнение

ПараметрSN65HVD230 (TI)MCP2551 (Microchip)
Питание3,0–3,6 В4,5–5,5 В
Скоростьдо 1 Мбит/сдо 1 Мбит/с
Единица на TXDот 2 Вот 2,0 В
Единица на RXDот 2,4 В при токе 8 мАот 0,7 питания
Узлов на шинедо 120до 112
Дежурный режим370 мкА типично, приёмник работаетесть, приёмник работает медленнее
Защита от залипания TXD в нуле—отключение передатчика через 1,25 мс
Статусвыпускаетсяне рекомендован для новых разработок, замена — MCP2561

SN65HVD231 — вариант с режимом сна 40 нА вместо дежурного, SN65HVD232 — без вывода RS.

Режимы вывода RS

Подключение RSРежимЧто даёт
К общему проводувысокая скоростьсамые быстрые фронты, для 1 Мбит/с
Через резистор на общий проводуправление крутизнойменьше помех: у SN65HVD230 10–100 кОм дают около 15–2 В/мкс
К питанию (у MCP2551 — выше 0,75 VDD)дежурныйпередатчик выключен, приёмник следит за шиной

Управление крутизной полезно на длинных линиях и низких скоростях: плавные фронты меньше излучают. Если RS подключён к выводу микроконтроллера, трансивер можно будить при появлении трафика — TI описывает именно такой сценарий.

Подключение

К шине трансивер подключают выводами CAN_H и CAN_L; на двух концах линии ставят терминаторы по 120 Ом, а у промежуточных узлов их нет. SN65HVD230 по TI работает при синфазном напряжении на шине от −2 до +7 В. Принцип дифференциальной передачи, длина линии и формат кадра — в статье о шине CAN. Выводы TXD и RXD соединяют с контроллером CAN: TXD трансивера — с выходом передатчика контроллера, RXD — с входом приёмника. Другие интерфейсные микросхемы — в разделе «Интерфейсные микросхемы».

Частые вопросы

Можно ли подключить MCP2551 к ESP32 или STM32 на 3,3 В?

Наполовину. Вход TXD MCP2551 воспринимает единицу от 2,0 В, так что 3,3-вольтовый выход его открывает. Но выход RXD поднимается до уровня от 0,7 питания, то есть больше 3,5 В при 5 В, — вход микроконтроллера должен это выдерживать, иначе нужен делитель. Проще взять SN65HVD230, который сам питается от 3,3 В.

Куда подключать вывод RS у SN65HVD230?

К общему проводу — для максимальной скорости. Через резистор 10–100 кОм на общий провод — для ограничения крутизны фронтов и снижения помех: по TI при 10 кОм около 15 В/мкс, при 100 кОм около 2 В/мкс. Единица на RS переводит трансивер в дежурный режим: передатчик выключен, приёмник работает, ток около 370 мкА.

Взаимозаменяемы ли SN65HVD230 и MCP2551?

По расположению выводов — да: TXD, общий, питание, RXD, опорное, CAN_L, CAN_H, RS на тех же местах. Но SN65HVD230 питается от 3,0–3,6 В, а MCP2551 — от 4,5–5,5 В, поэтому без переделки цепи питания замена невозможна. На одной шине они работают вместе: оба соответствуют ISO 11898.

Зачем трансиверу защита от постоянного доминантного уровня?

Если контроллер завис с TXD в нуле, трансивер держал бы шину в доминантном состоянии и остановил бы всю сеть. MCP2551 отключает передатчик, когда TXD в нуле дольше 1,25 мс; отсюда ограничение снизу на скорость — около 16 кбит/с. У SN65HVD230 в даташите такой функции нет.

Источники

  1. Texas Instruments. SN65HVD23x 3.3-V CAN Bus Transceivers (SLOS346O, revised April 2018) — выводы; питание 3–3,6 В; режимы RS: к GND — высокая скорость, 10–100 кОм — управление фронтом (около 15 и 2 В/мкс), к VCC — дежурный режим 370 мкА; синфазный диапазон −2…+7 В; дифференциальный выход 1,5–3 В; до 120 узлов, 1 Мбит/с
  2. Microchip. MCP2551 High-Speed CAN Transceiver (DS20001667G, 2016) — выводы; питание 4,5–5,5 В; режимы RS по току и напряжению; TXD: единица от 2,0 В; RXD: единица от 0,7 VDD; отключение передатчика при TXD в нуле дольше 1,25 мс; до 112 узлов; не рекомендован для новых разработок — замена MCP2561

Нашли ошибку?