|
Как разумнее 8 датчиков I2C c одинаковым адресом подключить к atmega328p |
|
|
|
Jan 12 2012, 23:12
|
вопрошающий
    
Группа: Свой
Сообщений: 1 726
Регистрация: 24-01-11
Пользователь №: 62 436

|
Всем привет, посоветуйте, пожалуйста, САБЖ. Датчики на 1.8В, атмега на 5В, ног CS или переустановки адресов в датчиках нет, датчики идентичные, опрашивать их надо одновременно, или последовательно по циклу. Я вижу два выхода: 1) электронный ключ, например, как SN74CBT3251D на каждую SDA ногу датчиков и через выравниватель уровней на SDA атмеги, а SCL через выравниватель уровней на все датчики броадкастом, понятно дополнительно задействовать 3 ноги для выбора датчика по схеме SN74CBT3251D. 2) воткнуть 8 пинов через выравниватель уровней в каждую SDA ногу датчиков, SCL через выравниватель уровней на все датчики броадкастом. В первом случае - вроде все просто, но схема сложнее, могу по габаритам не пролезть, большая вероятность ошибки в схеме, а мне желательно с первого раза иметь работающую версию. Во втором случае - основной недостаток - мутить софтверный I2C. Есть ли он такой, можно ли так сделать? Я пока только через SDA/SCL эту шину реализовывал и софтверно не видел можно ли. Если такой софт есть, то склоняюсь ко второму варианту. Ножек на оба варианта хватает, так как надо дополнительно только ком порт и 3 обычные ноги еще подключить. Вдруг я что-то еще не учел, пожалуйста, посоветуйте! Спасибо ИИВ Цитата(iiv @ Jan 13 2012, 04:26)  2) воткнуть 8 пинов через выравниватель уровней в каждую SDA ногу датчиков, SCL через выравниватель уровней на все датчики броадкастом. кажется, этот вариант отпадает, так как ведомый может удерживать уровень SCL, если данные не готовы... Остается первый вариант, если в нем нет каких-то еще подводных камней.
|
|
|
|
|
 |
Ответов
|
Jun 4 2013, 08:08
|
вопрошающий
    
Группа: Свой
Сообщений: 1 726
Регистрация: 24-01-11
Пользователь №: 62 436

|
Всем привет,
решил не открывать новую тему, так как вопрос об этом же...
Сейчас все работает через PCA9548A (восьми портовый i2c разветвитель) на все 8 блоков моих датчиков, в каждом блоке сидит по lsm303 и l3g4200d, за что, выражаю всем преогромнейшую благодарность...
Но есть одно но... Скорость шины 400кГц, больше вроде бы нельзя. Трафик с датчиков таков, что я могу опрашивать только 70-80 запросов в секунду с каждого датчика. Так как суммарно у меня 24 датчика, каждый из которых посылает мне 6 байт, то один такой 6-ти байтный запрос "стоит" мне примерно 200 тиков по i2c шине, что в общем-то многовато, но, близко к пику (110 тиков).
Хочется это как-то ускорить...
Готов везде сделать напряжение 3.3В. Правильно ли я понимаю, что если я SCL одной ногой всем раздам, а SDA c каждого датчика повешу на свою контроллерную ногу, и запрограммирую софтверный i2c, то все должно работать? В этом случае, на 400КГц я смогу считывать все, что мне надо.
Меня интересует,
1. имеет ли право слейв i2c задерживать сигнал с SCL, например, в момент ack/nack или он только SDA сигнал имеет право задержать? 2. Хватит ли мощности не надо ли что-то еще сделать, чтобы раздать 1 сигнал с SCL на все 24 датчика?
Спасибо
ИИВ
|
|
|
|
|
Jan 12 2018, 18:12
|
Участник

Группа: Участник
Сообщений: 59
Регистрация: 19-01-17
Пользователь №: 95 076

|
У меня вопрос по PCA9545A - можно им UARTы щёлкать?
ИЛИ
Есть что-то подходящее для UARTов?
Спасибо!
|
|
|
|
Сообщений в этой теме
iiv Как разумнее 8 датчиков I2C c одинаковым адресом подключить к atmega328p Jan 12 2012, 23:12 KARLSON Если есть аппаратный I2C в контроллере, то лучше ч... Jan 13 2012, 04:54 stells а что если выводы SDA/SCL тех датчиков, которые в ... Jan 13 2012, 05:19 Sergey_Aleksandrovi4 Однажды использовал PCA9545A - 4-х портовый трансл... Jan 13 2012, 06:11 ILYAUL Сами датчики обзавите , как нибудь , а лучше уж ср... Jan 13 2012, 11:15 iiv Дорогие друзья, огромное спасибо за интересные сов... Jan 13 2012, 12:15  stells Цитата(iiv @ Jan 13 2012, 16:15) Сейчас ч... Jan 13 2012, 12:21   iiv Цитата(stells @ Jan 13 2012, 18:21) она ж... Jan 13 2012, 12:40 stells кстати, датчики Ваши питаются до 3,6В... может под... Jan 13 2012, 12:44 iiv Цитата(stells @ Jan 13 2012, 18:44) кстат... Jan 13 2012, 12:48  stells Цитата(iiv @ Jan 13 2012, 16:48) если у м... Jan 13 2012, 12:54   iiv Цитата(stells @ Jan 13 2012, 18:54) с раз... Jan 13 2012, 13:08     aaarrr Цитата(AVStech @ Jan 12 2018, 21:12) У ме... Jan 12 2018, 18:39      AVStech Цитата(aaarrr @ Jan 12 2018, 21:39) Конеч... Jan 12 2018, 18:43       aaarrr Цитата(AVStech @ Jan 12 2018, 21:43) Три ... Jan 12 2018, 19:02        AVStech Цитата(aaarrr @ Jan 12 2018, 22:02) Поста... Jan 12 2018, 19:28     UncleHarry Цитата(AVStech @ Jan 12 2018, 22:12) У ме... Feb 6 2018, 18:28 arttab можно мультиплексорами коммутировать датчики. до к... Jun 4 2013, 08:23 iiv Цитата(arttab @ Jun 4 2013, 13:23) можно ... Jun 4 2013, 08:34  Elresearch Цитата(iiv @ Jun 4 2013, 11:34) это не ин... Feb 7 2018, 10:06
3 чел. читают эту тему (гостей: 3, скрытых пользователей: 0)
Пользователей: 0
|
|
|