FLProg
Вход на сайт
Логин:
Пароль:
Поиск
...
Статистика
Четверг, 17.08.2017, 00:48
Приветствую Вас Гость | RSS
Главная | Регистрация | Вход

Поиск по сайту


Форум
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 1 из 11
Модератор форума: support, Сергей 
Форум » Основной » Спросить у знатоков » Внешний EEPROM
Внешний EEPROM
Marcony_V Дата: Среда, 05.04.2017, 00:43 | Сообщение # 1
Рядовой
Группа: Проверенные
Сообщений: 8
Награды: 0
Репутация: 0
Статус: Offline
Уважаемые знатоки, возможен ли вариант подключения одной внешней EEPROM для нескольких Ардуин плат при выполнении одинаковых  задач?
 
Boroda Дата: Среда, 05.04.2017, 16:37 | Сообщение # 2
Генерал-лейтенант
Группа: Проверенные
Сообщений: 793
Награды: 36
Репутация: 36
Статус: Offline
Будут глюки. Шина I2C позволяет одновременную передачу данных от нескольких устройств, всмысле, что КЗ не будет, но при этом на шине будет каша. Лучше одной Ардуиной взять эти данные и раскидать на остальные каким-либо другим способом. А что такое за монструозное у Вас устройство, что там несколько Ардуин используется? Может эту проблему обойти как-то можно?

Сообщение отредактировал Boroda - Среда, 05.04.2017, 16:44
 
Boroda Дата: Среда, 05.04.2017, 17:16 | Сообщение # 3
Генерал-лейтенант
Группа: Проверенные
Сообщений: 793
Награды: 36
Репутация: 36
Статус: Offline
Например, одна Ардуина главная, у нее есть Выход, который проходит по "управляющим входам" других Ардуин. Главная все время держит этот выход в единице. Выдает  короткий нулевой импульс (100мс) на этом выходе и сама читает EEPROM. У остальных Ардуин на "управляющем входе" стоит такая схема (плата обязательно с условием):


Таймеры TON у каждой ведомой ардуины настроены на 100мс, 200мс, 300мс и т.д. По сработке таймера каждая Ардуина читает из памяти данные. Получится с помощью управляющего сигнала и разных таймеров последовательное обращение Ардуин к памяти. Медленно, костыльно и зависит от ведущего, но должно работать.

Добавлено (05.04.2017, 17:16)
---------------------------------------------
Можно сделать пару коробочек на СИ. Через все Ардуины идет один провод, подтянутый резистором к +5v.
Блок1: любая Ардуинка захотела прочитать EEPROM, посмотрела на шину, подождала 2мс, посмотрела на шину еще раз, шина в единице - можно читать. Притягивает шину к земле.

Далее идут стандартные блоки чтения памяти.

Блок2: после чтения памяти отпустит шину.

Время 2мс лучше сделать разным 1,2,3,4,5..мс у каждой Ардуины.

Прикрепления: 4449787.png(15Kb)


Сообщение отредактировал Boroda - Среда, 05.04.2017, 17:05
 
Marcony_V Дата: Среда, 05.04.2017, 19:57 | Сообщение # 4
Рядовой
Группа: Проверенные
Сообщений: 8
Награды: 0
Репутация: 0
Статус: Offline
 Boroda, Это 3-х фазный термовакуумный пресс 2.7х1.2 метра на ИК лампах. Мощность нагревания регулируется шестью симисторами через опторазвязку по два на каждую фазу. Управляется всё это компом через LPT порт. Температура в разных зонах пресса отличается. Поэтому хотелось бы отказаться от компьютера и разделить управление между 3-мя Ардуинками с бесконтактными инфракрасными датчиками MLX90614. Датчик такой можно подключить только один к одной Ардуине. Используя четыре общие кнопки (Меню и уставка) для 3-х с одинаковым скетчем плат с Вашим блоком ПИД регулятора (за что Вам огромное человеческое Спасибо!!!) планирую выровнять температуру в 3-х зонах пресса. Хотелось бы задействовать общий EEPROM на случай отключения электричества.
 
Naladchik Дата: Четверг, 06.04.2017, 04:31 | Сообщение # 5
Майор
Группа: Проверенные
Сообщений: 160
Награды: 1
Репутация: 1
Статус: Offline
Цитата Marcony_V ()
....Датчик такой можно подключить только один к одной Ардуине.
А если попробовать вариант с коммутацией питания?
Т.е. сигналы SDA, SCL у всех общие, а вот питание датчиков посадить на дискретные выходы ардуинки (не смотрел, но по моему ток питания у него небольшой и должно хватить).
Подали на выход 1 единичку, подождали, считали датчик, убрали; подали на выход 2 единичку, подождали, считали, убрали.


Предпочитаю Portable версию.
 
Boroda Дата: Четверг, 06.04.2017, 08:14 | Сообщение # 6
Генерал-лейтенант
Группа: Проверенные
Сообщений: 793
Награды: 36
Репутация: 36
Статус: Offline
Уж лучше CD4052A и 6 резисторов подтяжки, а то кто знает как эти датчики к такому питанию относятся.
 
Леша Дата: Четверг, 06.04.2017, 08:49 | Сообщение # 7
Рядовой
Группа: Проверенные
Сообщений: 12
Награды: 0
Репутация: 0
Статус: Offline
А вместо ламп нельзя поставить ТЭНы? Тогда регуляторы с алгоритмом Брезенхема + оптопара MOC3061 на симисторы и все потянет один контроллер (регулятор с пропуском периодов сети, лампочки будут неприятно моргать, хотя если не смотреть на них работать будет wink ) Алгоритм хорош тем, что практически не кушает ресурсы контроллера... Сорри, про термодатчики не дочитал. Попробовать использовать кольцо.

Сообщение отредактировал Леша - Четверг, 06.04.2017, 09:14
 
Boroda Дата: Четверг, 06.04.2017, 09:30 | Сообщение # 8
Генерал-лейтенант
Группа: Проверенные
Сообщений: 793
Награды: 36
Репутация: 36
Статус: Offline
Marcony_V, а вообще одна Ардуина Master Modbus, остальные Slave. К мастеру цепляется экран, кнопки, память и он раскидывает уставки и параметры на подчиненные Ардуинки. Слейвы вообще ничего не сохраняют и не запоминают, все паметры берутся с мастера.

Сообщение отредактировал Boroda - Четверг, 06.04.2017, 09:35
 
Marcony_V Дата: Четверг, 06.04.2017, 10:10 | Сообщение # 9
Рядовой
Группа: Проверенные
Сообщений: 8
Награды: 0
Репутация: 0
Статус: Offline
Boroda, Подключал две Ардуины в кольцо с датчиками DS18b20 на стенде (те датчики пока в пути), всё работает не плохо, но пугает количество переменных в кольце - памяти на грани. С Madbus пока не пробовал, а наверное стоит. Буду изучать матчасть. Спасибо за идею.
Леша,  там весь смысл в ИК лампах, тепло аккумулируется на поверхности пленки. Так намного экономичнее.
 
Boroda Дата: Четверг, 06.04.2017, 10:37 | Сообщение # 10
Генерал-лейтенант
Группа: Проверенные
Сообщений: 793
Награды: 36
Репутация: 36
Статус: Offline
Цитата Marcony_V ()
но пугает количество переменных в кольце
Ну так для ПИД много не надо... десяток переменных на каждый слейв кидать. Да и текущую мощность и температуру забирать.
 
Форум » Основной » Спросить у знатоков » Внешний EEPROM
Страница 1 из 11
Поиск:

FLProg © 2017
Яндекс.Метрика