Страница 2 из 2

Re: I2C и автоприсвоение адресов slave'ам

Добавлено: Вт янв 31, 2012 16:34:25
T-Xen
Что касается перемычек это хорошая мысль. Возможно так и сделаю если вариант изящнее не пройдет.

Кратко о применении.
Делается это для автоматизированного управления ячейками источников питания. В каждой ячейке питания стоит МК, который замеряет напряжения, токи и температуру. Они являются ведомыми. Максимум ячеек питания 5-6, не больше.
Так же присутствует ведущая ячейка. В ней сидит мастер. Она собирает данные с ведомых и выводит их на LCD-дисплей и по RS-232 в комп оператора.
Далее на компе запущена программа для управления ячейками. Она выводит список доступных ячеек, их серийные номера и все замеряемые значения.


Psych писал(а):Вроде как он сказал что их можно прописать после прошивки...тобишь мастером(если я правильно понял топикстартера).
Не мастером, а на этапе сборки ячейки. В ручную видимо.
Как? Я пока что сам не знаю. :? Всё это для серийного производства делается. Поэтому прошивки отдельно, серийные номера в ручную...


Кстати, попробовал сделать 3 ведомых с одинаковыми адресами. Все они одновременно шлют мастеру разные данные (серийники). Мастер случайным образом принимает только от какого-то одного. Как только это происходит не пойму :dont_know: подозреваю, когда какой-то самый резвый ведомый отправляет бит подтверждения, то другие молчат в тряпочку пока не прозвучит стоп-бит...

Re: I2C и автоприсвоение адресов slave'ам

Добавлено: Вт янв 31, 2012 22:20:56
Psych
T-Xen писал(а):Что касается перемычек это хорошая мысль. Возможно так и сделаю если вариант изящнее не пройдет.
T-Xen писал(а):Не мастером, а на этапе сборки ячейки.
Ну здрасьте приехали...Люди тут мучаются, выдумывают алгоритмы..А тут вон оно что.
Сразу написали бы--был бы всего один пост!!! :evil:

Re: I2C и автоприсвоение адресов slave'ам

Добавлено: Ср фев 01, 2012 00:36:55
coredumped
Ниче страшного - идеи, они не умирают. Зарядка для мозгофф опять-же :))

Re: I2C и автоприсвоение адресов slave'ам

Добавлено: Ср фев 01, 2012 12:06:59
T-Xen
Так я же написал, что перемычки это запасной вариант если решение лучше не найдется.

Re: I2C и автоприсвоение адресов slave'ам

Добавлено: Ср фев 01, 2012 12:11:21
igor-x
T-Xen писал(а):Так я же написал, что перемычки это запасной вариант если решение лучше не найдется.
здесь как минимум 5 решений значительно лучше привели... :))

ну ладно.. забираю свои идеи и алгоритмы назад :) -пусть будет автоприсвоение адресов slave'ам с помощью перемычек

Re: I2C и автоприсвоение адресов slave'ам

Добавлено: Ср фев 01, 2012 12:23:29
Мастер Ломастер
T-Xen писал(а):Делается это для автоматизированного управления ячейками источников питания. В каждой ячейке питания стоит МК, который замеряет напряжения, токи и температуру. Они являются ведомыми. Максимум ячеек питания 5-6, не больше.
Так же присутствует ведущая ячейка. В ней сидит мастер. Она собирает данные с ведомых и выводит их на LCD-дисплей и по RS-232 в комп оператора.
все эти ячейки объединены в общий конструктив типа "корзина" или как? если именно так, то задача вообще не стоит: каждый разъем-слот в этой "корзине" и есть уникальный адрес ведомого устройства! т.е. прямо на разъеме распаивается адрес (аналог перемычек), и какую бы ячейку не воткнули в разъем, она оттуда берет свой адрес и далее на него откликается. в самих ячейках никак адрес программировать не нужно, они полностью одинаковы как по схеме, так и по программе.

Re: I2C и автоприсвоение адресов slave'ам

Добавлено: Ср фев 01, 2012 13:42:22
T-Xen
Мастер Ломастер писал(а):все эти ячейки объединены в общий конструктив типа "корзина" или как? если именно так, то задача вообще не стоит: каждый разъем-слот в этой "корзине" и есть уникальный адрес ведомого устройства! т.е. прямо на разъеме распаивается адрес (аналог перемычек), и какую бы ячейку не воткнули в разъем, она оттуда берет свой адрес и далее на него откликается. в самих ячейках никак адрес программировать не нужно, они полностью одинаковы как по схеме, так и по программе.
Да, сошлись в итоге на таком варианте. Всем спасибо :) остальные решения достаточно интересны и пригодятся в будущем 8)

Re: I2C и автоприсвоение адресов slave'ам

Добавлено: Ср фев 01, 2012 13:54:05
T-Xen
Возникла другая проблема. Решил продолжать в этой ветке)
Мастер в цикле по очереди передает каждому слейву индивидуальное сообщение. Но при этом слейв после принятия своей посылки умудряется принять следущую и предыдущую, предназначенные для других. Почему так происходит не пойму :dont_know:
То есть слейв_1 принимает посылку №1 и №2, слейв_2 принимает посылку №1 и №2 :roll:

Re: I2C и автоприсвоение адресов slave'ам

Добавлено: Ср фев 01, 2012 14:12:42
igor-x
T-Xen писал(а):Возникла другая проблема. Решил продолжать в этой ветке)
Мастер в цикле по очереди передает каждому слейву индивидуальное сообщение. Но при этом слейв после принятия своей посылки умудряется принять следущую и предыдущую, предназначенные для других. Почему так происходит не пойму :dont_know:
То есть слейв_1 принимает посылку №1 и №2, слейв_2 принимает посылку №1 и №2 :roll:
наверное идет обращение по широковещательному адресу

Re: I2C и автоприсвоение адресов slave'ам

Добавлено: Ср фев 01, 2012 15:25:42
T-Xen
Проблема решена :)
Я использовал адреса от A0 до A7. Но нечетные адреса имеют длину 8 бит, а передается лишь 7 бит адреса... :facepalm: