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

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Аватара пользователя
T-Xen
Родился
Сообщения: 15
Зарегистрирован: Пн янв 30, 2012 17:09:59
Откуда: Тучково

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

Сообщение T-Xen »

Что касается перемычек это хорошая мысль. Возможно так и сделаю если вариант изящнее не пройдет.

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



Psych писал(а):Вроде как он сказал что их можно прописать после прошивки...тобишь мастером(если я правильно понял топикстартера).

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


Кстати, попробовал сделать 3 ведомых с одинаковыми адресами. Все они одновременно шлют мастеру разные данные (серийники). Мастер случайным образом принимает только от какого-то одного. Как только это происходит не пойму :dont_know: подозреваю, когда какой-то самый резвый ведомый отправляет бит подтверждения, то другие молчат в тряпочку пока не прозвучит стоп-бит...
Аватара пользователя
Psych
Опытный кот
Сообщения: 848
Зарегистрирован: Ср мар 02, 2011 07:47:39
Откуда: Уфа

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

Сообщение Psych »

T-Xen писал(а):Что касается перемычек это хорошая мысль. Возможно так и сделаю если вариант изящнее не пройдет.

T-Xen писал(а):Не мастером, а на этапе сборки ячейки.


Ну здрасьте приехали...Люди тут мучаются, выдумывают алгоритмы..А тут вон оно что.
Сразу написали бы--был бы всего один пост!!! :evil:
Аватара пользователя
coredumped
Опытный кот
Сообщения: 838
Зарегистрирован: Вт апр 12, 2011 18:38:19
Откуда: с Земли

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

Сообщение coredumped »

Ниче страшного - идеи, они не умирают. Зарядка для мозгофф опять-же :))
Все будет только лучше, в крайнем случае - хуже.
Аватара пользователя
T-Xen
Родился
Сообщения: 15
Зарегистрирован: Пн янв 30, 2012 17:09:59
Откуда: Тучково

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

Сообщение T-Xen »

Так я же написал, что перемычки это запасной вариант если решение лучше не найдется.
Аватара пользователя
igor-x
Мудрый кот
Сообщения: 1817
Зарегистрирован: Пн ноя 29, 2010 15:58:43

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

Сообщение igor-x »

T-Xen писал(а):Так я же написал, что перемычки это запасной вариант если решение лучше не найдется.


здесь как минимум 5 решений значительно лучше привели... :))

ну ладно.. забираю свои идеи и алгоритмы назад :) -пусть будет автоприсвоение адресов slave'ам с помощью перемычек
Мастер Ломастер
Поставщик валерьянки для Кота
Сообщения: 1995
Зарегистрирован: Ср май 11, 2011 21:37:45
Откуда: Цветочный город
Контактная информация:

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

Сообщение Мастер Ломастер »

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

все эти ячейки объединены в общий конструктив типа "корзина" или как? если именно так, то задача вообще не стоит: каждый разъем-слот в этой "корзине" и есть уникальный адрес ведомого устройства! т.е. прямо на разъеме распаивается адрес (аналог перемычек), и какую бы ячейку не воткнули в разъем, она оттуда берет свой адрес и далее на него откликается. в самих ячейках никак адрес программировать не нужно, они полностью одинаковы как по схеме, так и по программе.
битва с дураками проиграна, победители торжествуют. слава победителям!
Аватара пользователя
T-Xen
Родился
Сообщения: 15
Зарегистрирован: Пн янв 30, 2012 17:09:59
Откуда: Тучково

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

Сообщение T-Xen »

Мастер Ломастер писал(а):все эти ячейки объединены в общий конструктив типа "корзина" или как? если именно так, то задача вообще не стоит: каждый разъем-слот в этой "корзине" и есть уникальный адрес ведомого устройства! т.е. прямо на разъеме распаивается адрес (аналог перемычек), и какую бы ячейку не воткнули в разъем, она оттуда берет свой адрес и далее на него откликается. в самих ячейках никак адрес программировать не нужно, они полностью одинаковы как по схеме, так и по программе.

Да, сошлись в итоге на таком варианте. Всем спасибо :) остальные решения достаточно интересны и пригодятся в будущем 8)
Аватара пользователя
T-Xen
Родился
Сообщения: 15
Зарегистрирован: Пн янв 30, 2012 17:09:59
Откуда: Тучково

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

Сообщение T-Xen »

Возникла другая проблема. Решил продолжать в этой ветке)
Мастер в цикле по очереди передает каждому слейву индивидуальное сообщение. Но при этом слейв после принятия своей посылки умудряется принять следущую и предыдущую, предназначенные для других. Почему так происходит не пойму :dont_know:
То есть слейв_1 принимает посылку №1 и №2, слейв_2 принимает посылку №1 и №2 :roll:
Аватара пользователя
igor-x
Мудрый кот
Сообщения: 1817
Зарегистрирован: Пн ноя 29, 2010 15:58:43

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

Сообщение igor-x »

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


наверное идет обращение по широковещательному адресу
Аватара пользователя
T-Xen
Родился
Сообщения: 15
Зарегистрирован: Пн янв 30, 2012 17:09:59
Откуда: Тучково

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

Сообщение T-Xen »

Проблема решена :)
Я использовал адреса от A0 до A7. Но нечетные адреса имеют длину 8 бит, а передается лишь 7 бит адреса... :facepalm:
Закрыто

Вернуться в «Микроконтроллеры и ПЛИС»