Компонент Adafruit PiCowbell CAN Bus
Динь-дон! Слышал это? Это звонит PiCowbell, сообщая вам, что новая CAN-шина Adafruit PiCowbell поступила в продажу и готова помочь вашему проекту Raspberry Pi Pico и Pico W подключиться к сетям CAN-шин для автомобильных или робототехнических проектов.
CAN Bus — это маломасштабный сетевой стандарт, первоначально разработанный для автомобилей и, да, автобусов, но в настоящее время используемый для многих робототехнических или сенсорных сетей, которым требуется больший диапазон и адресация, чем I2C, и у которых нет контактов или вычислительных возможностей для обмена данными по Ethernet. CAN — это 2-проводный дифференциал, что означает, что он хорош для работы на больших расстояниях и в шумной среде.
Сообщения отправляются со скоростью около 1 Мбит/с — вы устанавливаете частоту для шины, и затем все «присоединяющиеся» должны соответствовать ей и иметь адрес перед пакетом, чтобы каждый узел мог прослушивать сообщения только для него. Новые узлы могут быть легко подключены, потому что им просто нужно подключиться к двум линиям передачи данных в любом месте общей сети. Каждое устройство CAN отправляет сообщения, когда ему заблагорассудится, и благодаря некоторому хитроумному кодированию данных может обнаружить конфликт сообщений и повторно передать их позже.
Если вы хотите подключить свой Raspberry Pi Pico к CAN-шине, CAN-шина Adafruit PiCowbell оснащена контроллером MCP2515 и приемопередатчиком TJA1051/3! Используемый контроллер — MCP2515, чрезвычайно популярный и хорошо поддерживаемый набор микросхем, который имеет драйверы в Arduino и CircuitPython и требует только SPI-порт и два контакта для chip-select и IRQ. Используйте его для отправки и получения сообщений в стандартном или расширенном формате со скоростью до 1 Мбит/с.
Мы добавили несколько приятных дополнений к этому PiCowBell, чтобы сделать его полезным во многих распространенных сценариях использования CAN:
- Генератор напряжения накачки заряда 5 В, поэтому, даже если вы используете 3,3 В на плате Pico, он будет генерировать хорошее чистое напряжение 5 В, как того требует трансивер.
- предварительно припаянная клеммная колодка диаметром 3,5 мм обеспечивает быстрый доступ к высоким и низким линиям передачи данных, а также к контакту заземления.
- на плате имеется оконечный резистор на 120 Ом, вы можете легко снять оконечность, перерезав перемычку с маркировкой Term в верхней части платы.
- Предварительно подключите контакты CS и INT на Pico GPIO #20 и #21. Вы можете отрезать нижние паяные перемычки и использовать разъемные площадки для подключения к любым двум выводам ввода-вывода, которые вам нравятся
Каждый заказ поставляется с собранной печатной платой и коллектором. Вам нужно будет самостоятельно припаять коллектор, но это быстрая задача.
Пожалуйста, обратите внимание! Существует множество возможных конфигураций, и у нас есть различные разъемы в зависимости от того, как вы хотите их припаять и прикрепить. Особенно, если вы хотите, чтобы Пико располагалось сверху, чтобы были доступны кнопка загрузки и светодиод.
CAN-шина PiCowbell предоставляет вам:
- Прямоугольный разъем JST SH для подключения I2C / Stemma QT / Qwiic. Обеспечивает 3V, GND, IO4 (SDA) и IO5 (SCL)
- Кнопка сброса — нажмите, чтобы перезапустить вашу программу
- Каждая накладка на раструбе имеет рядом с собой двойную накладку с отверстиями для соединения припоя
- На подушечках заземления нанесены белые прямоугольники с шелкографией, которые легко распознать, плюс одна длинная полоса заземления рядом с кнопкой сброса
- Позолоченные накладки для легкой пайки
При использовании ядра Philhower Arduino периферийное устройство Wire уже настроено на использование IO4 и IO5, а SPI по умолчанию установлен на IO16, IO18 и IO19. Если вы используете CircuitPython или MicroPython, вам нужно сообщить коду, чтобы он посмотрел на 4 +5 для выводов SDA +SCL, и сконфигурировать порт SPI для SCK=18, MOSI=19 и MISO=16.
Печатная плата
Схема
Список пинов
Пин | Тип |
---|---|
VBUS | мама |
VBUS | папа |
VSYS | мама |
VSYS | папа |
3.3V | папа |
3.3V | папа |
3.3V | мама |
VREF | мама |
VREF | папа |
IO0 | мама |
IO0 | папа |
IO1 | папа |
IO1 | мама |
IO2 | папа |
IO2 | мама |
IO3 | мама |
IO3 | папа |
IO4 | папа |
IO4 | мама |
IO4 | папа |
IO5 | папа |
IO5 | папа |
IO5 | мама |
IO6 | папа |
IO6 | мама |
IO7 | папа |
IO7 | мама |
IO8 | мама |
IO8 | папа |
IO9 | мама |
IO9 | папа |
IO10 | папа |
IO10 | мама |
IO11 | папа |
IO11 | мама |
IO12 | мама |
IO12 | папа |
IO13 | папа |
IO13 | мама |
IO14 | папа |
IO14 | мама |
IO15 | мама |
IO15 | папа |
!EN | мама |
!EN | папа |
AD2 | мама |
AD2 | папа |
AD1 | папа |
AD1 | мама |
AD0 | мама |
AD0 | папа |
!RESET | папа |
!RESET | мама |
IO22 | мама |
IO22 | папа |
CAN_INT_DEFAULT | мама |
CAN_INT_DEFAULT | папа |
CAN_CS_DEFAULT | мама |
CAN_CS_DEFAULT | папа |
MOSI | папа |
MOSI | мама |
SCK | мама |
SCK | папа |
IO17 | мама |
IO17 | папа |
MISO | мама |
MISO | папа |
CAN_CS | папа |
CAN_H | папа |
!CAN_INT | папа |
CAN_L | папа |
CAN_RESET | папа |
SILENT | папа |
GND | папа |
GND | мама |
GND | мама |
GND | мама |
GND | мама |
GND | мама |
GND | мама |
GND | мама |
GND | мама |
GND | папа |
GND | папа |
GND | папа |
GND | папа |
GND | папа |
GND | папа |
GND | папа |
GND | папа |
GND | папа |
Мне очень важно получать обратную связь. Пожалуйста, оцените материал. Так я пойму в какую сторону его стоит изменить.