Проблема с CAN-шилдом MCP2515 (Niren)
- Войдите на сайт для отправки комментариев
Здравствуйте
1. Имеется два MCP2515 (Niren), вот таких:
2. Один подключаю к Nano, другой - к Leo (просто из того, что есть в наличии, было бы два Nano под рукой - использовал бы их). С Nano пытаюсь отправить, на Leo - принять.
3. Не работает совсем. Уже все перепробовал.
4. Библиотеку использую вот эту: https://github.com/p1ne/CAN_BUS_Shield
(об этом прочитал вот здесь: https://www.drive2.ru/l/460733581140951184/, в целом руководствовался этой статьей).
5. Схема подключения примерно соответствует этой (за исключением, что у меня Leo + Nano, а не два Nano):
6. Про отличие кварца и нюансы с библиотекой знаю. Но как я понимаю, если используются именно два одинкавых MCP2515, то это не играет роли.
7. Разные скорости и положения терминирующего резистора пробовал.
8. Код для отправки (Nano):
// demo: CAN-BUS Shield, send data #include <mcp_can.h> #include <SPI.h> const int SPI_CS_PIN = 10; MCP_CAN CAN(SPI_CS_PIN); void setup() { Serial.begin(9600); if(CAN_OK == CAN.begin(1)) { Serial.println("CAN BUS Shield init ok!"); } } unsigned char stmp[8] = {0, 1, 2, 3, 4, 5, 6, 7}; void loop() { CAN.sendMsgBuf(0x00, 0, 8, stmp); Serial.print("."); delay(100); }
Код для получения (Leonardo)
#include <SPI.h> #include "mcp_can.h" const int SPI_CS_PIN = 9; MCP_CAN CAN(SPI_CS_PIN); void setup() { Serial.begin(9600); if(CAN_OK == CAN.begin(1)) { Serial.println("CAN BUS Shield init ok!"); } } void loop() { if(CAN_MSGAVAIL == CAN.checkReceive()) { Serial.println("received"); } }
Буду благодарен за любые мнения и советы.
Заранее спасибо!
CAN.begin(1) - это что? какая скорость? 5kbps ?
6. Про отличие кварца и нюансы с библиотекой знаю. Но как я понимаю, если используются именно два одинкавых MCP2515, то это не играет роли.
Еще как играет. Попробуйте:
CAN.begin(CAN_500KBPS, MCP_8MHZ);
И еще, не увидел в схеме куда подключен вывод INT. подключите на 2 вывод ардуины.
Конечно, уже не к месту, но INT вообще рояли не играет в данном случае.
Добрый день. Собрал схему, как у автора темы. С библиотеками по ссылке https://github.com/p1ne/CAN_BUS_Shield, запустить не удалось. Инициализация модулей проходила, но данные не передавались. Загрузил библиотеки от шилда Seeed CAN_BUS_Shield https://github.com/Seeed-Studio/CAN_BUS_Shield, и о чудо данные побежали...