Arduino Nano, SPI и два устройства
- Войдите на сайт для отправки комментариев
Вс, 04/06/2017 - 02:29
Здравствуйте
Arduino Nano. Подсоединяю два устройства по SPI. CS-ы разные, все остальное - общее. Но не работает.
Устройства: дисплей МЭЛТ и CAN-шилд MCP2515.
Вопрос скорее софтовый. Если убираю строчку инициализации CAN-шилда, то дисплей начинает работать.
Строчка вот эта:
while (CAN_OK != CAN.begin(13)) { Serial.println("CAN BUS Shield init fail"); Serial.println("Init CAN BUS Shield again"); }
Пока не покажете, что и как объявляется/подключается, останется только гадать.
CAN.begin(13) - Не в курсе, что туда должно передаваться, но 13-й пин в хардварном SPI - это Clock (SCK).
13 - это не номер пина, а скорость передачи (125 кбит/с)
Ссылка на библиотеку есть?
http://www.14core.com/wp-content/uploads/2015/12/MCPCAN-library.zip
Ну а пины для дисплея, 2515 и CS какие объявлены?
Библа по ссылке гласит, что
#define CAN_1000KBPS 13 (в вашей версии)
и
#define CAN_500KBPS 13 (в более свежей).
ЗЫ. Посвежее версия библы тут.
Пины дисплея:
И 9-й пин под CS для MCP2515
Версию посвежее сейчас попробую. Спасибо.
Так дисплей же не SPI, зачем он на ноги 11, 12, 13 повешен?
Это пины аппаратного SPI, который используется MCP2515.
Потому инициализация MCP-шки и "прибивает" работу дисплея.
Разве дисплей МЭЛТ и библиотека LiquidCrystal работают не через SPI?
Нет, конечно. В дисплей данные передаются по паралельной шине.
Пардон, виноват. Извините за тупость :)
Большое спасибо!