Модуль SD ОТКАЗЫВАЕТСЯ давать работать другим устройствам

Имеется “взрослая” сборка.
MEGA2560 + ENC28j60 + Модуль SD + 2 считывателя по протоколу Wiegand (D0+D1) + RTC DS1307 + RS485 на Serial3 + Слэйв Nano на Serial2. Всё на платах ЛУТ.
SPI между SD модулем и модулем ENC28j60, MISO через 220 Ом, как положено.

Запаяно всё надёжно. Питания и земли несколько раз перепроверял… По отдельности всё работает прекрасно. ДАЖЕ когда всё подключено, и без инициализации модуля SD карты - всё работает шикарно.

Пробовал: менять ноги CS SD, менять порядок инициализаций модулей, менять ноги и способы включения считывателей (мало ли - вдруг наводки). Уже воткнул НАНО для того чтоб она выполняла роль слэйва и кидала тэги меток на мастера… - и ничего. НИ - ЧЕ - ГО. Не работают оба считывателя одновременно с модулем карты… Даже с другой платы! Мистика.

Без считывателей всё работает шикарно. Включаем считыватели - один работает, второй - нет.
Откидываем инициализацию модуля карты - оба считуна работают. На работу карты SD при этом ничего не влияет.

Наталкивает мысль, что проблема не в схемотехнике, а именно в коде… Но доказать никак не могу. Вдруг всё-таки не в коде?

Первый раз вижу такую магию, чтоб всё с микроскопом изучить - и никаких зацепок!
Идеи?

Есть мнение, что китайские модули SD не отпускают MISO в Z-state при снятии сигнала SS. Или не MISO, но чота не отпускают, не помню.

1 лайк

Угу. Там неправильно сделан преобразователь уровня сигнала.
Способа борьбы два:

  1. Переделать преобразователь уровня на самом модуле.
  2. Использовать модуль на 3.3В (без преобразователя) и преобразователь добавить самостоятельно.

Проблема модуля SD. Были такие в продаже в Москве. Не отпускают сигнал управления. Говорил про проблему продавцу… Пришлось взять другой. Обоих сейчас нет - фото не могу.

есть третий - пустить MISO через буфер и включать синхронно с нужным CS нужный выход

Откусываешь выход микросхемы конвертера, кидаешь на эту площадку перемычку со входа.