enc28j60 и модуль SD

Тема в разделе "Arduino & Shields", создана пользователем lazerrain, 29 май 2016.

  1. lazerrain

    lazerrain Нуб

    Здравствуйте!
    от всей души желаю, чтобы не успел я это написать, как меня упрекнут в том, что про это уже сто раз спрашивали/писали, а я тут со своими вопросами.
    дык вот. у меня есть ethernet шилд enc28j60 и модуль SD Card. по закону жанра разумеется по-отдельности работают, а вот как их подключить оба на SPI - недоумеваю.
    это мой первый опыт в подключении нескольких устройств на шине SPI и в теории я понимаю как в общем случае должен происходить выбор устройства. я пробовал выбирать тупо с помощью digitalwrite(SS_пин_устройства, LOW), но подозреваю, что это путь не верный.
    тыкните пожалуйста носом где б почитать
     
  2. aleksis-76

    aleksis-76 Нерд

  3. lazerrain

    lazerrain Нуб

    спасибо. общие сведения разумеется полезны, но по ссылке ни одного примера с реализацией
     
  4. aleksis-76

    aleksis-76 Нерд

    Вывод ss использовать не надо,вешаете девайсы на интерфейс,ноги CS девайсов подключите на разные ноги ардуины, при инициализации устройств в качестве аргумента укажите ногу CS
    инициализация SD карты(полный код можно узреть в примерах к ардуине)

     
  5. lazerrain

    lazerrain Нуб

    Благодарю! если CS при нескольких устройствах на шине нельзя вешать на SS и это принципиально, то я в беде - у меня nano ethernet shield и в нём CS просто припаян к SS. при инициализации разумеется указывается 10 пин (по умолчанию), а для SD Card - 4 пин (тоже по умолчанию).
    Заметил, что проблемы начинаются с того момента, как в скетч просто добавляется библиотека SD. при этом его размер составляет 98% флеш-памяти, а ардуина начинает циклически перезагружаться выполнив всего несколько строк кода. Возникло предположение, что при выполнении кода тупо не хватает ОЗУ
    [​IMG]
     
  6. aleksis-76

    aleksis-76 Нерд

    возможно, место в озу нужно под стек и локальные переменные
    это как CS обычно на подчиненном устройстве
     
  7. lazerrain

    lazerrain Нуб

    ноги веб-сервера по распиновке точно совпадают с распиновкой ардуино нано (чтобы ардуину просто воткнуть в неё) и CS веб-сервера жёстко припаян к 10 пин на свей плате что соответствует SS на ардуине. [​IMG]
     
  8. aleks1270

    aleks1270 Нерд

    дело в том, что эти модули протокол SPI то поддерживают, но только программный уровень, а вот с железом у этих модулей конфликт, он выражается в том, что вывод MISO, что у CD, что у интернет модуля они жёстко привязан к выходу устройства в независимости от сигнала выбор устройства SS, в момент обращению к CD карте вывод MISO у инет модуля надо отключать так как он шунтирует выход CD MISO на землю, а в момент обращения к инет модулю надо отключать вывод MISO у CD карты, так как он поднимает вывод к питанию, мне помог буфер с 3мя состояниями и активацией выхода выбором устройства, сколько не рыл инет ни на одном форуме этого нет, на шилде CD буфер стоит VLC125A но он подключен напрямую без использования 3 его состояния, а у шилда инетовского там вообще тупо стоит логика на выход MISO.
     
    b707 нравится это.
  9. aleks1270

    aleks1270 Нерд

    я конечно понимаю что ответ запоздалый, но все же.
     
  10. b707

    b707 Гуру

    не совсем правы - это известное решение, обычно берут 74HC125.
    Даже на этом сайте это обсуждалось, например в этой теме:
    http://forum.amperka.ru/threads/Как-работать-с-несколькими-rfid-ридерами-rc522.4704/