|
Виж темите без отговор | Виж активните теми
Дата и час: Пон Юли 27, 2026 10:52 am
| Автор |
Съобщение |
|
Реконструктор
Ранг: Форумен бог
Регистриран на: Съб Сеп 25, 2004 12:32 pm Мнения: 8382 Местоположение: София
|
 Re: I2C адреси конфликт
Адресирането го направи го с 3 бр. 74HC595.  Тези могат да се навързват последователно колкото си искаш, тоест само с 3 жици от контролера можеш да задаваш адреси на колкото си искаш слейв дивайси. Раздаването на адреси може да се случва както автоматично, така и ръчно, с някво шарено GUI. 
|
| Чет Яну 09, 2020 5:15 pm |
|
 |
|
Cekins
Ранг: Форумен бог
Регистриран на: Сря Апр 20, 2005 12:02 pm Мнения: 9119 Местоположение: Разград
|
 Re: I2C адреси конфликт
Тия дни почнах да се образовам за профибъс (Profibus DP по конкретно) - направено е за точно такива системи и протокола позволява повече от един мастър и слейвове без предварително зададен адрес. Е като трябва да е толкова дуракоустойчиво, с някой модификации, може да се докара да върви и по i2c. Профибъс също върви върху полудуплексна линия. Само че в случая вече самото i2c леко се обезсмисля.
|
| Съб Яну 11, 2020 2:48 pm |
|
 |
|
Ivo4o
Ранг: Минаващ
Регистриран на: Пон Мар 30, 2009 10:27 pm Мнения: 48
|
 Re: I2C адреси конфликт
Здравейте, За Profibus адреса винаги трябва да е конфигуриран на устройството обикновенно с DIP ключетата,иначе няма как без да е конфигуриран да стане комуникацията.
|
| Съб Яну 11, 2020 8:47 pm |
|
 |
|
sukhoi
Ранг: Напреднал
Регистриран на: Чет Авг 21, 2008 2:52 pm Мнения: 476 Местоположение: Пловдив
|
 Re: I2C адреси конфликт
Интересно, така ли е наистна на Профибъс? Да бе и аз какво питам, като работих в Айгер щракахме ключета на инверторите с простите протоколи за да го хване. Сигурно съм загубил 2 часа от живота си за това  Да търся къде е причината - кабел, софтуер пц, връзка, захранване машина и прочие....  То едни келяви профибъс адаптори Значи има логика, дори и големите компании нямат защити срещу еднакви адреси...
|
| Нед Яну 12, 2020 3:31 am |
|
 |
|
Cekins
Ранг: Форумен бог
Регистриран на: Сря Апр 20, 2005 12:02 pm Мнения: 9119 Местоположение: Разград
|
 Re: I2C адреси конфликт
Има някакви простотии в протокола за конфигурация на устройство ама още не съм стигнал до там. Принципно при commissioning можеш да закачиш само едно устройство и да му налееш и адреса освен настройките. В GSD файла на устройството се описва какво може и какво не. На вентилатор гледах един пример и там имаше и дали адреса може да се преконфигурира. Вероятно ако накачиш 2+ устройства на един адрес няма да има начин да ги достъпнеш по отделно и ще има колизия. Аз на М6-цата прфибъс имам вграден с хардуерен порт. Битката ми в момента е по-скоро да закача едно пик-че да предава 10-тина байта към един Comfort панел.
|
| Нед Яну 12, 2020 12:17 pm |
|
 |
|
gicho
Ранг: Форумен бог
Регистриран на: Пон Мар 13, 2006 1:59 pm Мнения: 3867 Местоположение: Габрово
|
 Re: I2C адреси конфликт
Има сума ти бъсове при които е решен проблема с адресирането и конфликтите. Никой от тях обаче не ползва i2c отдолу, и то към чип с твърда логика (разширителят). Ако имаше контролери в слейвовете можеше да се измисли нещо на по-високо ниво като процедура да се раздадат адреси, ама в конкретния случай си мисля че е mission impossible. В случаят питащият иска да ползва евтинията на готовите разширители, но да постигне функции от по-високо ниво. Има CAN i/o extender-и, има и по SPI с възможност за daisy chain на няколко чипа един след друг. Има и контролери, с които да си напише протокол и да си реши проблема. Принципно подхода е като за закърпване на нещо - i2c не е подходяща да излиза от една платка и да ходи на друга, както и SPI. Преди да се реше този проблем (сменяне на физическия слой) е безпредметно да се слага на свинче звънче.
|
| Нед Яну 12, 2020 12:44 pm |
|
 |
|
ig_ivanov
Ранг: Професионалист
Регистриран на: Съб Май 21, 2016 9:47 pm Мнения: 577 Местоположение: Бургас
|
 Re: I2C адреси конфликт
Горе-долу на цената и мястото на едни DIP ключета може да се сложи един 8-краков PIC (примерно 12F1822). Два от изводите се свързват към I2C, осганалите 3- към А0,А1,А2 на разширителя. PICa се програмира да отговаря "заводски" примерно на адрес 0х20 ( mcp-то е на 0х80-0х8Е). При включване на устройството софтуерът на хоста търси най-напред какво има на този адрес (нещо като chipID). При положителен отговор задава два параметъра в PICa- 1. Новият му адрес (примерно 0х22, програмата му го записва в EEPROMа) и 2. Адрес на разширителя (0-7); Следващото устройство, което ще се добави ще получи следващия свободен адрес (примерно 0х24) и т.н. Така само с едно сканиране на шината ще се знае колко са устройствата и тяхната конфигурация. Единственото нещо, което трябва да направи потребителят в този случай, е да добавя устройствата едно по едно.
|
| Нед Яну 12, 2020 1:29 pm |
|
|
Кой е на линия |
Потребители разглеждащи този форум: 0 регистрирани и 8 госта |
|
Вие не можете да пускате нови теми Вие не можете да отговаряте на теми Вие не можете да променяте собственото си мнение Вие не можете да изтривате собствените си мнения Вие не можете да прикачвате файл
|
|