Arduino Nano, SPI и два устройства

ivpo
Offline
Зарегистрирован: 07.01.2014

Здравствуйте

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");               
    }     

 

 

OlegK
OlegK аватар
Offline
Зарегистрирован: 26.11.2014

Пока не покажете, что и как объявляется/подключается, останется только гадать.

CAN.begin(13) - Не в курсе, что туда должно передаваться, но 13-й пин в хардварном SPI - это Clock (SCK).

ivpo
Offline
Зарегистрирован: 07.01.2014

13 - это не номер пина, а скорость передачи (125 кбит/с)

OlegK
OlegK аватар
Offline
Зарегистрирован: 26.11.2014

Ссылка на библиотеку есть?

ivpo
Offline
Зарегистрирован: 07.01.2014
OlegK
OlegK аватар
Offline
Зарегистрирован: 26.11.2014

Ну а пины для дисплея, 2515 и CS какие объявлены?

Цитата:
13 - это не номер пина, а скорость передачи (125 кбит/с)

Библа по ссылке гласит, что
#define CAN_1000KBPS 13 (в вашей версии)
и
#define CAN_500KBPS  13 (в более свежей).

ЗЫ. Посвежее версия библы тут.

ivpo
Offline
Зарегистрирован: 07.01.2014

Пины дисплея:

LiquidCrystalRus lcd(4, 5, 10, 11, 12, 13);       

И 9-й пин под CS для MCP2515

Версию посвежее сейчас попробую. Спасибо.

OlegK
OlegK аватар
Offline
Зарегистрирован: 26.11.2014

Так дисплей же не SPI, зачем он на ноги 11, 12, 13 повешен?
Это пины аппаратного SPI, который используется MCP2515.
Потому инициализация MCP-шки и "прибивает" работу дисплея.

ivpo
Offline
Зарегистрирован: 07.01.2014

Разве дисплей МЭЛТ и библиотека LiquidCrystal работают не через SPI?

OlegK
OlegK аватар
Offline
Зарегистрирован: 26.11.2014

Нет, конечно. В дисплей данные передаются по паралельной шине.

ivpo
Offline
Зарегистрирован: 07.01.2014

Пардон, виноват. Извините за тупость :) 

Большое спасибо!