Arduino DUE SPI через расширитель портов PCA9534
- Войдите на сайт для отправки комментариев
Сб, 28/10/2017 - 17:55
Работаю с DUE. Нужно контролировать 5 девайсов через SPI. Как известно у DUE есть 3 стандартных пина для SS, а именно 4, 10 и 52 (имхо 10 по умолчанию) и прижимает к земле она их сама когда надо. Подробнее
пины PCA9534 к пинам SS девайсов, при старте все в HIGH.
Пытаюсь сделать так: прижимаю пин PCA9534 к земле ---> SPI.transfer(val) ---> пин PCA9534 к плюсу.
Рассуждаю так: что там будет делать библиотека SPI со стандартными SS пинами мне не важно, важно лишь то, что во время передачи SS нужного мне девайса был прижат к земле. Но почему то не работает.
Есть идеи??
4, 10, 52 как OUTPUT настроены? Иначе можно в режим слэйв переходить и соответственно ничего не будет работать.
Настроены, но как я понимаю это не важно, библиотека SPI сама это делает. Если напрямую подключить SS девайса к 52 то SPI.transfer(52,vol) работает как надо.
PCA9534 четко прижимает SS к земле, я проверял, но почему не идет передача я не пойму ((((
RogerRU, если бы Вы все понимали правильно, думаю, задавать вопросы на этом форуме у Вас не было бы необходимости.
Попытайтесь понять вопрос Penni и ответить на него.
Разве я не ответил в первом же слове? К чему этот пафос?
Смотрите логическим, анализатором, так будет проще и быстрее. Если все три на оутпут настроены, возможно не хватает задержки между чипселектом и клоком. Надо смотреть тайминги для ваших устройств, а там видно будет. Еще бы даташит на pca глянуть как быстро она отрабатывает, сдается мне что клок стартует быстрее чем чипселект в 0 перейдет
Вообщем проблема решилась.
Причины были 2:
1. Была битая дорожка на плате, которую я заказывал в Китае, вот на всех ок, а на одной из партии которую я распаял - битая.
2. Самый прикол был в том, что все категорически не работало пока я не убрал pinMode(4, OUTPUT), как убрал все заработало. В качестве "фиктивного" SS я использовал 4 пин т.е. SPI.begin(4)
А в целом схема рабочая, можно взять на заметку. Можно рулить большим количеством слейвов не напрягаясь, ну ессно немного упираясь в быстродействие I2C, если супер скорость не важна, то решение просто идеальное.
И, да, Penni, спасибо за отклик.