Поменяйте контакты SPI на Arduino uno SD.h - PullRequest
0 голосов
/ 13 февраля 2019

У меня Arduino uno с ENC28J60 и картридером microSD, оба работают хорошо независимо друг от друга.Единственная проблема заключается в том, что они оба используют одни и те же контакты 13,12,11,10.Есть ли способ, как заменить его на другой?

Я попытался взглянуть на библиотеку SD.h, так как она кажется мне более читабельной, и изменить настройки в Sd2PinMap следующим образом

// SPI port
uint8_t const SS_PIN = 5;
uint8_t const MOSI_PIN = 6;
uint8_t const MISO_PIN = 7;
uint8_t const SCK_PIN = 4;

Кажется, это не дало никакого эффекта.Я подобрал их так, что новые выводы также являются ШИМ.Есть ли что-то еще, что должно быть установлено?Могут ли они быть изменены?Спасибо за ваши ответы

1 Ответ

0 голосов
/ 13 февраля 2019

SPI поддерживает несколько устройств, используя отдельные подчиненные линии выбора.

Ниже показано расположение, которое вы хотите (из https://upload.wikimedia.org/wikipedia/commons/thumb/f/fc/SPI_three_slaves.svg/350px-SPI_three_slaves.svg.png)

SPI with multiple slaves

Это означает, что оба устройства могут совместно использовать контакты синхронизации (SCK), входа (MISO) и вывода (MOSI). Но каждое устройство должно использовать отдельный вывод выбора (SS).

В зависимости откакую библиотеку вы используете для доступа к этим устройствам, то вы можете настроить их для использования различных пинов выбора.

например, для https://github.com/arduino-libraries/SD вы можете использовать:

boolean begin(uint8_t csPin = SD_CHIP_SELECT_PIN);

и дляhttps://github.com/njh/EtherCard вы можете использовать:

static uint8_t begin (const uint16_t size, const uint8_t* macaddr,
                      uint8_t csPin = SS);

Эти методы позволяют изменить выбранные выводы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...