Вопросы по SPI, 1 Master > 1 Slave
- Войдите на сайт для отправки комментариев
Сб, 22/02/2020 - 00:59
Хочу подключить Arduino Nano как мастер к единственному ведомому устройству, и только для MOSI. Надо сэкономить два вывода на ардуино.
1) Нужно ли подключать вывод D10 "SS" (как я понял это Slave Select) от ардуино к единственному устройству? Или можно постоянно повесить вывод /CS в устройстве на землю, и ардуино своими датами-клоками будет все нормально передавать? А "SS" ардуины использовать как обычный цифровой пин (см. ниже).
2) Вывод D12 "MISO" мне не нужен, и если сделать pinMode(12, INPUT) или pinMode(12, OUTPUT), он будет вести себя как обычный цифровой пин независимо от работы шины SPI?
SPI в атмеге работает именно как SPI, а не какой-то обрезнный кусок экономии. По двум проводам есть i2c. А если не полениться написать софтварно, то можно и одним проводом обойтись.
1) Нужно ли подключать вывод D10 "SS" (как я понял это Slave Select) от ардуино к единственному устройству? Или можно постоянно повесить вывод /CS в устройстве на землю,
Зависит от того, что там за устройство такое. некоторым достаточно, а некоторым для начала сеанса нужен именно falling фронт на SS
2) Вывод D12 "MISO" мне не нужен, и если сделать pinMode(12, INPUT) или pinMode(12, OUTPUT), он будет вести себя как обычный цифровой пин независимо от работы шины SPI?
При инициализации SPI он сам настроится в INPUT
В документации ардуино написано что D10 SS должен быть установлен как OUTPUT, иначе арудино будет слейвом. А в примерах скетчей SS вешают на любой пин, а D10 SS не используют и в OUTPUT не ставят. Может эти скетчи не для Nano, и непонятно что делать с D10.
Всё верно написано, противоречий нет.
Для мастера SS должен быть выходом, а чем вы будете трогать SS ведомого - это ваше дело.
SS мастера вы можете использовать для своих целей, но только как выход.
Да, MISO можно читать через digitalRead(12).
В документации ардуино написано что D10 SS должен быть установлен как OUTPUT, иначе арудино будет слейвом.
Не так однозначно.
Он может быть и INPUT, но тогда должен всего оставаться HIGH. Дословно сказано вот так: