Переключение между устройствами SPI, когда одно из них является SD-картой
Я использую USB-сканер штрих-кода, подключенный через USB-экран. Я могу получить показания штрих-кода с помощью этого например, после получения этих показаний я хотел бы сохранить их на SD-карту, но SD-карта не инициализируется, так как штрих-код также использует SPI. Как я могу деактивировать ICSP, чтобы активировать SD-карту ? Или как переключаться между несколькими ведомыми устройствами SPI?
@lukman, 👍0
Обсуждение2 ответа
при использовании SPI на каждом устройстве есть неявный контакт выбора подчиненного устройства, который должен быть переведен в низкий уровень, чтобы включить устройство.
Подключите каждый контакт выбора ведомого устройства SPI к их собственному неиспользуемому цифровому контакту на вашей Arduino и держите его на высоком уровне, пока вы не захотите поговорить с ведомым устройством.
Однако не все устройства SPI должным образом переводят вывод MISO в высокое сопротивление, когда SS подтянут к высокому уровню, поэтому вам может потребоваться использовать буфер с тремя состояниями на этом выводе или использовать мультиплексор.
При добавлении собственного буфера с тремя состояниями (например, HS125) вам необходимо подключить каждый вывод MISO устройства SPI к входу буфера, затем выбор подчиненного устройства подключается к выходному выводу разрешения выхода с тремя состояниями. Выходы буферов можно соединить вместе с выводами MISO устройств, которые должным образом подключаются к MISO ведущего устройства с высоким импедансом.
При использовании мультиплексоров есть 2 варианта:
Вы можете последовательно подключить мультиплексоры 2:1, подключив MISO устройства к 0-входу мультиплексора, а ведомый выбор к входному контакту выбора мультиплексора.
вы можете использовать мультиплексор >2, чтобы выбрать правильную линию MISO на основе адреса набора S-линий. Затем с помощью декодера вы можете передать фактический сигнал SS на устройство SPI. Таким образом, вам нужно всего 2 контакта SS для 4 устройств SPI.
SD-карты, как известно, плохо взаимодействуют с другими устройствами на одной шине. Особенно с некоторыми адаптерами с плохими схемами переключения логических уровней., @Majenko
Я могу это подтвердить... У меня было так много проблем при совместном использовании (дешевой) карты SD Break и (SPI) SRAM, что в конце концов я купил отдельную карту регистрации SD. Но мне интересно, как реализовать этот «буфер» или какой мультиплексор (и как его использовать)… Можете ли вы объяснить это немного, пожалуйста?, @Michel Keijzers
См. приведенную ниже схему для наглядного пояснения того, что объясняется в этой теме в отношении буфера с тремя состояниями. Я успешно использовал эту схему на печатной плате. Я получил эту схему от: © 2017 Вишну М Айеа. www.vishnumaiea.in
- Проблемы Funduino USB Host Shield
- Использование экрана SD-карты на Arduino Due
- Nano не может получить ответ от ENC28J60 Ethernet Shield
- Подключение джойстика Logitech к Arduino и прерывание цикла while
- Конфликт SPI с двумя экранами - IOREF?
- USB-хост Arduino и SD-карта
- USB-УСТРОЙСТВА С 32U4?
- ESP8266 с экраном RTC DS1307 - Экран WS2818B не мигает - проблема с I2C?
@LookAlterno Если кто-то может ответить, как преобразовать буфер в три состояния или использовать мультиплексор, чтобы обойти проблему SD, это может быть полезным дополнением, а не полным дубликатом., @Michel Keijzers