Подключение MCP2515 к Arduino

Сегодня расскажу как реализовать связь по CAN шине используя Arduino UNO и модуль MCP2515. CAN шина является основным протоколом связи в автомобилях, например блок управления двигателя, ABS и другими блоки. В качестве примера будем передавать данные с одного модуля MCP2515 на другой.

Технические параметры:

► Микросхема: MCP2515;
► Напряжение питания: от 2.7 до 5.5 В;
► Потребляемый ток: 5 мА (1 мкА в режиме ожидания);
► Максимальная скорость передачи данных: 1 Мбит/с;
► Интерфейс: SPI;
► Сопротивление: 120 Ом;
► Габариты: 40 × 18 × 14 мм;
► Вес: 7 грамм.

Общие сведенья

CAN (Controller Area Network) был разработан компанией BOSCH и выпущено в середине 80-х годов. Сначала применялась в автобусах и грузовиках, но сейчас можно встретить в автомобилях, кораблях, промышленности, тракторов и так далее. Кто хочет почитать больше информации о CAN протоколу, можно ознакомится с этой статьей.

Так как контроллеры Arduino не содержит внутренний CAN, поэтому используется внешний контроллер MCP2515 (самая большая микросхема на модуле), для работы которого необходим кварц на 8 МГц и небольшая обвязка. Микросхема MCP2515 способна получать и передавать данные с CAN шины на микроконтроллер, через SPI наоборот. Так же, на модуле установлен трансивер TJA1050, которая физически соединяет MCP2515 с CAN шиной.

Для заметки, некоторые контроллеры, такие как ESP32, уже содержат внутреннюю периферию CAN, но им все равно нужен трансивер TJA1050 или MCP2551.

Модуль MCP2515 содержит три разъема, самый большой, это вывода интерфейса SPI, который состоит из 7 контактов, шагом 2.54 мм. Второй и третий, дублируются, и являются выводами шины CAN

Назначение контактов SPI:
► VCC и GND — выводы питания 5В;
► CS — вывод выбора ведомого устройства;
► SO — вывод SPI;
► SI — вывод SPI;
► SCL — тактовый вывод SPI;
► INT — вывод прерывания MCP2515.

Назначение контактов CAN:
► H — вывод CAN;
► L — вывод CAN.

Подключение MCP2515 к Arduino UNO

Необходимые детали:
► Arduino UNO R3 x 2 шт;
► Модуль MCP2515 x 2 шт:
► Провод DuPont, 2,54 мм, 20 см, F-M (Female — Male) x 1 шт:
► Кабель USB 2.0 A-B x 2 шт;
► Светодиод 5 мм x 1 шт;
► Тактовая кнопка х 1 шт;
► Резистор 330.

Описание:
В примере покажу, как реализовать связь между двумя контроллерами Arduino UNO, через CAN шину используя модуль MCP2515.

Подключение:
Сначала подключаем модуль MCP2515 и Arduino UNO, для этого вывода INT, SCK, SI, SO, CS, GND, VCC с MCP2515 подключаем к выводам 2, 13, 11, 12, 10, GND, 5B, аналогично для второй сборки Arduino UNO и MCP2515. Далее соединяем два модуля MCP2515, для этого вывод H и L, соединяем к H и L. Светодиод и кнопку подключаем по схеме показанной ниже.

Установка библиотек:
Для работы программы, необходимо дополнительно установить библиотеку «mcp2515«, скачать ее можно в конце статьи.

Программа №1 (передатчик):
Первый скетч, необходимо загрузить на Arduino UNO с кнопкой, она будет передавать данные ко второй Arduino UNO.

Программа №2 (приемник):
Вторую программу необходимо загрузить во вторую Arduino UNO, к которой подключен светодиод.

Вот принципе и все, будут вопросы пишите.

Ссылки
  Библиотека mcp2515

Купить на Aliexpress
  Контроллер Arduino UNO R3 на CH340G
  Контроллер Arduino UNO R3 на Atmega16U2
  Провода DuPont, 2,54 мм, 20 см
  Модуль контроллера шины CAN на MCP2515

Купить в Самаре и области
  Контроллер Arduino UNO R3 на CH340G
  Контроллер Arduino UNO R3 на Atmega16U2
  Провода DuPont, 2,54 мм, 20 см
  Модуль контроллера шины CAN на MCP2515

2 комментария для “Подключение MCP2515 к Arduino”
  1. Может будет кому то полезно но у меня данный скетч заработал только после того как я установил джамперы J1 на обоих модулях.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *