Эмуляция 1-проводных устройств
Я хочу сделать микросхему ATTiny ведомой на 1-проводной шине со своим собственным серийным номером и списком команд для своих конкретных функций.
Я хочу знать, могу ли я использовать библиотеку One Wire с сайта Arduino для отправки данных в виде раб.
Например, в одной комнате у вас может быть подчиненное устройство с несколькими типами датчиков, которые будут сообщать главному запрошенную информацию, или главный может приказать ему управлять чем-то вроде жалюзи.
Вопрос Придется ли мне следить за линией шины и отвечать на запрос ведущего устройства, а также принимать во внимание способ отправки данных обычным датчиком? На какой частоте мне следует запускать ведомое устройство, чтобы получить максимальную функциональность?
Я не буду использовать паразитную силу.
@RSM, 👍10
Обсуждение1 ответ
Насколько мне известно, библиотека 1-wire, которую вы указали в своем вопросе, позволяет действовать только как ведущая, а не ведомая.
Я только что выпустил библиотеку, позволяющую превратить плату Arduino в однопроводное ведомое устройство, здесь: https://github .com/neuoy/OneWireArduinoSlave (редактирование: перенесено сюда https://gitea.youb.fr/youen /OneWireArduinoSlave). Я использую его в своей собственной системе домашней автоматизации, и в моей настройке он работает безупречно (1-проводное главное устройство, DS9490R, подключается к ноутбуку через USB, а также обеспечивает питание Arduino, которым является Arduino Uno). Библиотека обрабатывает детали низкого уровня: сопоставление ПЗУ, отправку и получение байтов (что на самом деле довольно сложно сделать правильно, в большинстве случаев невозможно без логического анализатора). Остальное зависит от вас.
Он полностью реализован с помощью прерываний, все коммуникации выполняются в фоновом режиме, вы можете выполнять другой код как обычно, параллельно, и получать уведомления с помощью обратного вызова при получении байтов и т. д. Отправка байтов мастеру также является асинхронной.
р>Я также знаю, что существует как минимум еще одна библиотека, https://github.com/MarkusLange/OneWireSlave, как указано выше. автор Рю_хаябуса. У меня это не сработало (не знаю, связано ли это с моей аппаратной настройкой или по другой причине), но у других оно определенно работает, так что тоже стоит попробовать. Кажется, эта библиотека не реализована с прерываниями, поэтому ваша программа блокируется в ожидании основной активности (что вполне приемлемо во многих сценариях).
Репозиторий, похоже, переехал на https://gitea.youb.fr/youen/OneWireArduinoSlave., @Jonas Berlin
@JonasBerlin Действительно, я переместил репозиторий (просто отредактировал ответ, чтобы отразить это). Я оставляю старую ссылку в качестве резервной копии на всякий случай и в качестве ссылки, чтобы найти ответвления других людей на GitHub., @youen
Возможно, следует скопировать проблемы?, @Jonas Berlin
- ATtiny85 и DHT11 - Датчик всегда возвращает 0
- Считывание температуры (DS18B20) с помощью ATtiny85
- Использование библиотеки емкостных датчиков с мультиплексором 74HC4067
- Датчик освещенности BH1750 всегда дает выходной сигнал 54612 лк
- ATtiny85 AC Phase Control для регулировки яркости лампочки
- Существуют ли хорошие и поддерживаемые библиотеки для использования моста DS2482 I2C с 1-Wire?
- Не удалось найти подходящую библиотеку для MPU9250.
- Ошибка повторного объявления библиотеки Arduino
http://forum.arduino.cc/index.php?PHPSESSID=trj6v208snqfutqhrfltnu0364&topic=65706.0, @Gerben
@Gerben - я уже нашел это раньше в поиске. Пролистал его. Но меня это насторожило, так как были некоторые ошибки, правда решенные, достоверность не знаю. Кроме того, поиск конструкций врагов с использованием пользовательских рабов не казался обычным делом, отсюда и вопрос выше., @RSM
Вроде говорят, что библиотека это поддерживает. [Вот библиотека специально для этого](http://forum.pjrc.com/threads/23939-Strange-behavior-on-the-Onewireslave-library?p=33608&viewfull=1#post33608) Думаю. Скорость вроде около 15кбит/с. Я думаю, что скорость процессора не имеет особого значения, но это зависит от библиотеки. Если он не питается от батареи, просто запустите его на частоте 8 или 16 МГц, и все будет в порядке., @Gerben
@Gerben Я проверю библиотеку, чтобы посмотреть, как она работает. Я до сих пор не понимаю одного: почему некоторые вещи так редко не используют однопроводное подчиненное устройство?, @RSM
@RSM Вам следует проверить эту библиотеку https://github.com/MarkusLange/OneWireSlave, @Ryu_hayabusa
@Ryu_hayabusa, ты должен использовать это как ответ, @AMADANON Inc.