с этим работал непосредственно. Вот есть в SMBus 3.0 такая штука как ARP (address resolution protocol). Позволяет проводить энумерацию шины и назначать слейвам адреса. Вопрос в реальной имплементации. Если на шине есть 2 слейва с одинаковыми адресами, то все равно ж надо каким-то образом или отрубать физический сегмент шины, или держать одного из слейвов в ресете, пока первому назначаешь адрес? Вроде логично, но вдруг там можно переть "против физики" как-то )
Отпал вопрос. Слейвы должны понимать, что они "проигрывают" арбитрацию при чтении UDID (п . 6.6.1 спеки SMBus). Такой значит механизм
По стандарту не может быть на шине двух устройств с одним адресом, просто смиритесь с этим и стройте архитектуру устройства так что бы исключить этот факт
Так в спецификации все расписано. Слейвы должны ее поддерживать и иметь заводской unique device ID (типа MAC)
Обсуждают сегодня