реклама на сайте
подробности

 
 
2 страниц V  < 1 2  
Reply to this topicStart new topic
> Мультиплексирование I2C шины, Внешняя + внутренний core на обшие выходы
Михаил_K
сообщение Dec 2 2008, 12:38
Сообщение #16


Знающий
****

Группа: Свой
Сообщений: 552
Регистрация: 29-02-08
Пользователь №: 35 481



Цитата(XVR @ Dec 1 2008, 14:46) *
Топикстартеру - а если просто запараллелить обе I2C шины? I2C поддерживает multimaster.


Отвечу за топикстартера. smile.gif
Самопальный мастер, который часто приходится реализовывать на FPGA или микроконтроллере для одномастерной шины реализуется очень просто. Можно сказать - халявно. А вот многомастерный - это уже арбитраж вводить нужно.
Go to the top of the page
 
+Quote Post
XVR
сообщение Dec 2 2008, 14:37
Сообщение #17


Гуру
******

Группа: Свой
Сообщений: 3 123
Регистрация: 7-04-07
Из: Химки
Пользователь №: 26 847



Цитата(Михаил_K @ Dec 2 2008, 15:38) *
Отвечу за топикстартера. smile.gif
Самопальный мастер, который часто приходится реализовывать на FPGA или микроконтроллере для одномастерной шины реализуется очень просто. Можно сказать - халявно. А вот многомастерный - это уже арбитраж вводить нужно.
У него уже есть арбитраж (вообще вне МК), т.к. он собрался коммутировать I2C шину от 2х мастеров через FPGA. Если моменты неактивности мастера в МК известны, и мастер в FPGA будет использовать только их, то на I2C шину можно прямо повесить оба мастера в параллель (Если только у МК нету параллельно включенного слейва, но это уже извращение smile.gif )
Go to the top of the page
 
+Quote Post
Саша Z
сообщение Dec 2 2008, 20:39
Сообщение #18


Знающий
****

Группа: Свой
Сообщений: 921
Регистрация: 6-04-07
Из: Israel
Пользователь №: 26 822



Цитата(XVR @ Dec 2 2008, 18:37) *
У него уже есть арбитраж (вообще вне МК), т.к. он собрался коммутировать I2C шину от 2х мастеров через FPGA. Если моменты неактивности мастера в МК известны, и мастер в FPGA будет использовать только их, то на I2C шину можно прямо повесить оба мастера в параллель (Если только у МК нету параллельно включенного слейва, но это уже извращение smile.gif )


Возможно я не совсем точно задал вопрос, но дилемма была как раз не о multi-masterности (ибо оба мастера могут работать заведомо только раздельно, т.е. в разделчные промежутки времени что всегда заранее известно - этот факт был правилчьноподмечен в ветке).
Дилемма была в ситуации когда работает внешний мастер (коммутация - в FPGA). Проблема возникает в линии SDA когда должен быть "переворот" направлений (например acknowledge после передачи адреса/данных). Понятно что в коде оба SDA - вход и SDA - выход определены как tri-state, но "переворот" направления не может быть "автоматическим",т.е. кто-то в коде должен отслеживать traffic и управлять направлениями сквозной SDA линии...
Go to the top of the page
 
+Quote Post
XVR
сообщение Dec 2 2008, 21:34
Сообщение #19


Гуру
******

Группа: Свой
Сообщений: 3 123
Регистрация: 7-04-07
Из: Химки
Пользователь №: 26 847



Цитата(Саша Z @ Dec 2 2008, 23:39) *
Возможно я не совсем точно задал вопрос, но дилемма была как раз не о multi-masterности (ибо оба мастера могут работать заведомо только раздельно, т.е. в разделчные промежутки времени что всегда заранее известно - этот факт был правилчьноподмечен в ветке).
Дилемма была в ситуации когда работает внешний мастер (коммутация - в FPGA). Проблема возникает в линии SDA когда должен быть "переворот" направлений (например acknowledge после передачи адреса/данных). Понятно что в коде оба SDA - вход и SDA - выход определены как tri-state, но "переворот" направления не может быть "автоматическим",т.е. кто-то в коде должен отслеживать traffic и управлять направлениями сквозной SDA линии...
Не надо ничего никуда переворачивать. И I2C сквозь FPGA пропускать не надо. Нужно сделать в FPGA банальный I2C мастер и его ноги SDA и SCL включить параллельно мастеру в МК и приемнику.
Go to the top of the page
 
+Quote Post
Sergei_Ilchenko
сообщение Dec 3 2008, 06:53
Сообщение #20


Частый гость
**

Группа: Свой
Сообщений: 180
Регистрация: 17-05-05
Из: Санкт-Петербург
Пользователь №: 5 128



Цитата(Саша Z @ Dec 2 2008, 23:39) *
Дилемма была в ситуации когда работает внешний мастер (коммутация - в FPGA). Проблема возникает в линии SDA когда должен быть "переворот" направлений (например acknowledge после передачи адреса/данных). Понятно что в коде оба SDA - вход и SDA - выход определены как tri-state, но "переворот" направления не может быть "автоматическим",т.е. кто-то в коде должен отслеживать traffic и управлять направлениями сквозной SDA линии...


На заметку wink.gif

Линия SCK тоже двунаправленная...

Цитата(XVR @ Dec 3 2008, 00:34) *
Не надо ничего никуда переворачивать. И I2C сквозь FPGA пропускать не надо. Нужно сделать в FPGA банальный I2C мастер и его ноги SDA и SCL включить параллельно мастеру в МК и приемнику.


+1
Go to the top of the page
 
+Quote Post
Саша Z
сообщение Dec 3 2008, 12:29
Сообщение #21


Знающий
****

Группа: Свой
Сообщений: 921
Регистрация: 6-04-07
Из: Israel
Пользователь №: 26 822



Цитата(XVR @ Dec 3 2008, 01:34) *
Не надо ничего никуда переворачивать. И I2C сквозь FPGA пропускать не надо. Нужно сделать в FPGA банальный I2C мастер и его ноги SDA и SCL включить параллельно мастеру в МК и приемнику.


Да, точно, ежели стандард поддерживает multi-masterность - действительно должно быть просто...
Одно понять - pull-upы. Внешняя система в принципе автономна, у нее есть свои I2C "приемники", т.е. свои pull-ups. Когда-же я к ней подключаю свой "аппаратус" то у него стоят свои pull-ups (ибо он может и в stand-alone работать).
Получается при подключении моего устройства к системе, будут по 2 pull-upа запараллелены. Это может и не проблема если pull-upы могут быть в range (например от 1к до 10к). Но ежели нужен более точная их величина - тогда по идее может понадобится их коммутация. Хотя и это решаемо (FETный ключ как функция от сигнала режима работы).
Go to the top of the page
 
+Quote Post
Sergei_Ilchenko
сообщение Dec 3 2008, 12:34
Сообщение #22


Частый гость
**

Группа: Свой
Сообщений: 180
Регистрация: 17-05-05
Из: Санкт-Петербург
Пользователь №: 5 128



Какое у Вас Vcc?
Скорость обмена у Вас какая?
Какие длины линий?
Go to the top of the page
 
+Quote Post
Саша Z
сообщение Dec 3 2008, 13:44
Сообщение #23


Знающий
****

Группа: Свой
Сообщений: 921
Регистрация: 6-04-07
Из: Israel
Пользователь №: 26 822



Цитата(Sergei_Ilchenko @ Dec 3 2008, 16:34) *
Какое у Вас Vcc?
Скорость обмена у Вас какая?
Какие длины линий?


В самой системе линии короткие, но когда подключается мое устройство - длины будут примерно 15-20 см.
Скорости - не думаю что будет более чем стандартные 400кHz, Vcc = 3.3V
Go to the top of the page
 
+Quote Post

2 страниц V  < 1 2
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th July 2025 - 23:52
Рейтинг@Mail.ru


Страница сгенерированна за 0.02851 секунд с 7
ELECTRONIX ©2004-2016