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» и в калькуляторе битового тайминга.
Выводы
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 в даташите такой функции нет.
Источники
- 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 Мбит/с
- 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
Нашли ошибку?
Смотрите также
- Интерфейсные микросхемыРасширители портов и приёмопередатчики: параметры, карточки
- CANCAN_H и CAN_L, терминаторы, кадр, арбитраж, ошибки, тайминг, MCP2515
- Битовый тайминг CANCAN_BTR для STM32, CNF1–CNF3 для MCP2515, точка выборки
- Терминатор линииСогласующий резистор 120 Ом на концах шин RS-485 и CAN
- Дифференциальная передачаСигнал как разность двух проводов, помеха вычитается