Здравствуйте! от всей души желаю, чтобы не успел я это написать, как меня упрекнут в том, что про это уже сто раз спрашивали/писали, а я тут со своими вопросами. дык вот. у меня есть ethernet шилд enc28j60 и модуль SD Card. по закону жанра разумеется по-отдельности работают, а вот как их подключить оба на SPI - недоумеваю. это мой первый опыт в подключении нескольких устройств на шине SPI и в теории я понимаю как в общем случае должен происходить выбор устройства. я пробовал выбирать тупо с помощью digitalwrite(SS_пин_устройства, LOW), но подозреваю, что это путь не верный. тыкните пожалуйста носом где б почитать
Вывод ss использовать не надо,вешаете девайсы на интерфейс,ноги CS девайсов подключите на разные ноги ардуины, при инициализации устройств в качестве аргумента укажите ногу CS инициализация SD карты(полный код можно узреть в примерах к ардуине)
Благодарю! если CS при нескольких устройствах на шине нельзя вешать на SS и это принципиально, то я в беде - у меня nano ethernet shield и в нём CS просто припаян к SS. при инициализации разумеется указывается 10 пин (по умолчанию), а для SD Card - 4 пин (тоже по умолчанию). Заметил, что проблемы начинаются с того момента, как в скетч просто добавляется библиотека SD. при этом его размер составляет 98% флеш-памяти, а ардуина начинает циклически перезагружаться выполнив всего несколько строк кода. Возникло предположение, что при выполнении кода тупо не хватает ОЗУ
возможно, место в озу нужно под стек и локальные переменные это как CS обычно на подчиненном устройстве
ноги веб-сервера по распиновке точно совпадают с распиновкой ардуино нано (чтобы ардуину просто воткнуть в неё) и CS веб-сервера жёстко припаян к 10 пин на свей плате что соответствует SS на ардуине.
дело в том, что эти модули протокол SPI то поддерживают, но только программный уровень, а вот с железом у этих модулей конфликт, он выражается в том, что вывод MISO, что у CD, что у интернет модуля они жёстко привязан к выходу устройства в независимости от сигнала выбор устройства SS, в момент обращению к CD карте вывод MISO у инет модуля надо отключать так как он шунтирует выход CD MISO на землю, а в момент обращения к инет модулю надо отключать вывод MISO у CD карты, так как он поднимает вывод к питанию, мне помог буфер с 3мя состояниями и активацией выхода выбором устройства, сколько не рыл инет ни на одном форуме этого нет, на шилде CD буфер стоит VLC125A но он подключен напрямую без использования 3 его состояния, а у шилда инетовского там вообще тупо стоит логика на выход MISO.
не совсем правы - это известное решение, обычно берут 74HC125. Даже на этом сайте это обсуждалось, например в этой теме: http://forum.amperka.ru/threads/Как-работать-с-несколькими-rfid-ридерами-rc522.4704/