Вообщем мне нужно подключить примерно подключить 10-15 arduino по SPI. Одна из них будет опрашивать все остальные через какое-то время. Максимальное расстояние между arduino 2-4 метра. Хочу сделать передачу по проводам, только не знаю как подключать. Помогите!
А чего в гугле не вбить SPI? Куча картинок и статей Вот например: UPD: Только SPI как и I2C не предназначен для связи на метровых расстояниях.
Не лучшее решение. Пинов хост-Ардуины не напасешся. Старайтесь сделать так, чтоб трех проводов хватило на всех. В примерах SPI есть скетч с использованием адресного байта - преамбулы перед данными.
Можно, Ну в уну, думаю, по памяти не влезет, судя по вопросам ТС, опыта у него немного, а тут еще и усложнение логики, а у меги пинов хватит. Тут проще RS-485 - всего три провода, но нужно что-то городить с драйвером. Ну и скорость можно снизить, чтобы подальше работало.
А что, проблема сгородить драйвер 485 интерфейса? Там других проблем, в частности, софтовых будет не меньше.
Проблема в том, что нужна плата, желательно в форм-факторе шилда, на которой будет распаян драйвер. А по SPI можно просто воткнуть разъемы.
Здесь аппаратная проблема конфликта выходов передатчиков периферийных устройств. Поэтому стандартное решение - все выхода последовательно с резистором 100ом. Но - придется усложнять алгоритм связи. Устройства услышавшие НЕ СВОй адрес - должны на некоторое время перевести выход передатчика в Z-состояние, чтобы не давить сигнал передатчика адресата. В протоколе SPI такой возможности скорее всего нет. Поэтому придется на время выключать SPI режим, и переводить пин передатчика в Z-состояние или в режим входа. А потом снова включать режим SPI и слушать линию приема, ожидая своего адреса. Программно здесь вроде бы ничего сложного нет. ПС. Возможно сигнал от хоста на линии #SS - будет маркером что шина свободна, и периферия может включать режим SPI на прием. А готовые существуют. или разрабатывать самосад ?
очень интересные заявления. ChipEnable просто так у SPI интерфейса или для чего-то всё же нужен? без малейшего представления. Если мне нужна будет такая связь, я возьму всё самое лучшее на данный момент и сделаю Но в реалиях квартиры/дома радиосвязь будет дешевле.
Нужен для работы ПАРЫ - хоста и слейва, в простейшем аппаратном решении. А у нас - хост и куча слейвов на одной шине. Это не вписывается в техзадание ТСа.
всё верно. Хост работает только с тем устройством, которому на CE (или SS) подан разрешающий потенциал. Все остальные сидят (внимание!) У самой AVR всё наоборот. Правда, только в старых МК. При подаче нуля на аппаратный пин SS (если он сконфигурирован как вход), SPI тупо аппаратно переходит в SLAVE режим. В новых сериях МК это пофиксили. Поэтому если у вас SPI всегда мастер, то пин SS должен быть сконфигурирован как выход или же схемотехнически висеть на единице.