Внешний EEPROM
Внешний EEPROM
Уважаемые знатоки, возможен ли вариант подключения одной внешней EEPROM для нескольких Ардуин плат при выполнении одинаковых задач?
- Boroda
- Капитан
- Сообщения: 836
- Зарегистрирован: 01 май 2016, 01:04
- Откуда: Коломна
- Имя: Станислав
- Контактная информация:
Внешний EEPROM
Будут глюки. Шина I2C позволяет одновременную передачу данных от нескольких устройств, всмысле, что КЗ не будет, но при этом на шине будет каша. Лучше одной Ардуиной взять эти данные и раскидать на остальные каким-либо другим способом. А что такое за монструозное у Вас устройство, что там несколько Ардуин используется? Может эту проблему обойти как-то можно?
Последний раз редактировалось Boroda 05 апр 2017, 16:44, всего редактировалось 1 раз.
- Boroda
- Капитан
- Сообщения: 836
- Зарегистрирован: 01 май 2016, 01:04
- Откуда: Коломна
- Имя: Станислав
- Контактная информация:
Внешний EEPROM
Например, одна Ардуина главная, у нее есть Выход, который проходит по "управляющим входам" других Ардуин. Главная все время держит этот выход в единице. Выдает короткий нулевой импульс (100мс) на этом выходе и сама читает EEPROM. У остальных Ардуин на "управляющем входе" стоит такая схема (плата обязательно с условием):
[spoiler=Спойлер][/spoiler]
Таймеры TON у каждой ведомой ардуины настроены на 100мс, 200мс, 300мс и т.д. По сработке таймера каждая Ардуина читает из памяти данные. Получится с помощью управляющего сигнала и разных таймеров последовательное обращение Ардуин к памяти. Медленно, костыльно и зависит от ведущего, но должно работать.
Добавлено (05.04.2017, 17:16)
---------------------------------------------
Можно сделать пару коробочек на СИ. Через все Ардуины идет один провод, подтянутый резистором к +5v.
Блок1: любая Ардуинка захотела прочитать EEPROM, посмотрела на шину, подождала 2мс, посмотрела на шину еще раз, шина в единице - можно читать. Притягивает шину к земле.
Далее идут стандартные блоки чтения памяти.
Блок2: после чтения памяти отпустит шину.
Время 2мс лучше сделать разным 1,2,3,4,5..мс у каждой Ардуины.
[spoiler=Спойлер][/spoiler]
Таймеры TON у каждой ведомой ардуины настроены на 100мс, 200мс, 300мс и т.д. По сработке таймера каждая Ардуина читает из памяти данные. Получится с помощью управляющего сигнала и разных таймеров последовательное обращение Ардуин к памяти. Медленно, костыльно и зависит от ведущего, но должно работать.
Добавлено (05.04.2017, 17:16)
---------------------------------------------
Можно сделать пару коробочек на СИ. Через все Ардуины идет один провод, подтянутый резистором к +5v.
Блок1: любая Ардуинка захотела прочитать EEPROM, посмотрела на шину, подождала 2мс, посмотрела на шину еще раз, шина в единице - можно читать. Притягивает шину к земле.
Далее идут стандартные блоки чтения памяти.
Блок2: после чтения памяти отпустит шину.
Время 2мс лучше сделать разным 1,2,3,4,5..мс у каждой Ардуины.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось Boroda 05 апр 2017, 17:05, всего редактировалось 1 раз.
Внешний EEPROM
[l] Boroda, Это 3-х фазный термовакуумный пресс 2.7х1.2 метра на ИК лампах. Мощность нагревания регулируется шестью симисторами через опторазвязку по два на каждую фазу. Управляется всё это компом через LPT порт. Температура в разных зонах пресса отличается. Поэтому хотелось бы отказаться от компьютера и разделить управление между 3-мя Ардуинками с бесконтактными инфракрасными датчиками MLX90614. Датчик такой можно подключить только один к одной Ардуине. Используя четыре общие кнопки (Меню и уставка) для 3-х с одинаковым скетчем плат с Вашим блоком ПИД регулятора (за что Вам огромное человеческое Спасибо!!!) планирую выровнять температуру в 3-х зонах пресса. Хотелось бы задействовать общий EEPROM на случай отключения электричества.[/l]
-
- Капитан
- Сообщения: 908
- Зарегистрирован: 04 окт 2015, 19:10
- Откуда: Новосибирск
- Имя: Павел
- Благодарил (а): 20 раз
- Поблагодарили: 22 раза
Внешний EEPROM
А если попробовать вариант с коммутацией питания?Marcony_V писал(а):....Датчик такой можно подключить только один к одной Ардуине.
Т.е. сигналы SDA, SCL у всех общие, а вот питание датчиков посадить на дискретные выходы ардуинки (не смотрел, но по моему ток питания у него небольшой и должно хватить).
Подали на выход 1 единичку, подождали, считали датчик, убрали; подали на выход 2 единичку, подождали, считали, убрали.
- Boroda
- Капитан
- Сообщения: 836
- Зарегистрирован: 01 май 2016, 01:04
- Откуда: Коломна
- Имя: Станислав
- Контактная информация:
Внешний EEPROM
Уж лучше CD4052A и 6 резисторов подтяжки, а то кто знает как эти датчики к такому питанию относятся.
Внешний EEPROM
А вместо ламп нельзя поставить ТЭНы? Тогда регуляторы с алгоритмом Брезенхема + оптопара MOC3061 на симисторы и все потянет один контроллер (регулятор с пропуском периодов сети, лампочки будут неприятно моргать, хотя если не смотреть на них работать будет ) Алгоритм хорош тем, что практически не кушает ресурсы контроллера... Сорри, про термодатчики не дочитал. Попробовать использовать кольцо.
Последний раз редактировалось Леша 06 апр 2017, 09:14, всего редактировалось 1 раз.
- Boroda
- Капитан
- Сообщения: 836
- Зарегистрирован: 01 май 2016, 01:04
- Откуда: Коломна
- Имя: Станислав
- Контактная информация:
Внешний EEPROM
Marcony_V, а вообще одна Ардуина Master Modbus, остальные Slave. К мастеру цепляется экран, кнопки, память и он раскидывает уставки и параметры на подчиненные Ардуинки. Слейвы вообще ничего не сохраняют и не запоминают, все паметры берутся с мастера.
Последний раз редактировалось Boroda 06 апр 2017, 09:35, всего редактировалось 1 раз.
Внешний EEPROM
Boroda, Подключал две Ардуины в кольцо с датчиками DS18b20 на стенде (те датчики пока в пути), всё работает не плохо, но пугает количество переменных в кольце - памяти на грани. С Madbus пока не пробовал, а наверное стоит. Буду изучать матчасть. Спасибо за идею.
Леша, там весь смысл в ИК лампах, тепло аккумулируется на поверхности пленки. Так намного экономичнее.
Леша, там весь смысл в ИК лампах, тепло аккумулируется на поверхности пленки. Так намного экономичнее.
- Boroda
- Капитан
- Сообщения: 836
- Зарегистрирован: 01 май 2016, 01:04
- Откуда: Коломна
- Имя: Станислав
- Контактная информация:
Внешний EEPROM
Ну так для ПИД много не надо... десяток переменных на каждый слейв кидать. Да и текущую мощность и температуру забирать.Marcony_V писал(а):но пугает количество переменных в кольце
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 2 гостя