|
Как сделать мост I2C на Xilinx? |
|
|
|
Apr 6 2014, 10:27
|
Профессионал
    
Группа: Свой
Сообщений: 1 817
Регистрация: 14-02-07
Из: наших, которые работают за бугром
Пользователь №: 25 368

|
Народ извините, в VHDL и Verilog ни бум бум, а надо пару строчек кода придумать.
Короче есть шина i2c, назовем ее А, которая одним концом (SCL, SDA) подключена к пинам FPGA, а на других висят несколько периферии - тактовый генератор, датчики температуры и питания. FPGA вроде как мастер.
Но также есть и еще одна I2C шина B, концы которой заведены на эту же FPGA, и которая управляется внешним МК. Помимо самой ФПГА на этой шине тоже висит еще несколько устройств.
В общем для того, чтобы не лепить в ПЛИСине I2C мастер, а потом еще и I2C слейв и как-то эмулировать все это дело, появилось желание просто каким-то образом закоротить SDA и SCL пины этих двух шин через FPGA. Вопрос собственно в бинаправленности SDA. Т.е. по идее логика должна быть такой, что по умолчанию SDA пины обеих шин в ПЛИС - это входы. На них будет высокий уровень. Если на одном из входов появляется низкий уровень, то другой переключается на выход и тоже начинает генерить ноль.
В общем логика я думаю понятно. Вопрос в том - можно ли такое реализовать малой кровью и как? Спасибо.
|
|
|
|
|
 |
Ответов
|
Apr 7 2014, 06:38
|
Профессионал
    
Группа: Свой
Сообщений: 1 817
Регистрация: 14-02-07
Из: наших, которые работают за бугром
Пользователь №: 25 368

|
Я так подозреваю, что мне пытаются сказать, что в I2C есть переходы, когда мастер отпускает шину, а слейв должен ее держать - типа АСК в CANe. Тогда могут быть приколы. Эх надо корку смотреть - просто родное IP core - это просто мастер I2C, и слейва там вроде нету. Конечно можно в итоге всю инфу от Плис к процу уже через PCIe передавать - но именно хотелось красиво оставить. Дело в том, что у меня несколько покупных плат - процессорная, Плис и еще периферия. По стандарту у каждой из них есть IPMB шина для диагностики. Эта шина независимая от всяческих PCIe и т.д. чтобы можно было читать диагностическую инфу от датчиков температуры, тока, напряжения на платах, как раз в случаях если основные камни по каким-то причинам не фурычат. На данный момент на ПЛИСовой карте развели вот такую фигню по непонятным причинам(я подозреваю изза тактового генератора для PCIe) который должен программиться из ПЛИС). Но они на эту де шину и диагностику подцепили, хотя она должна была идти напрямую на IPMB. Плату должны исправить, но непонятно когда, вот я и хочу так сделать, чтобы потом софт не переделывать. Надеюсь понятно написал.
Мастер ессно один - процессор.
|
|
|
|
|
Dec 8 2014, 07:16
|

Местный
  
Группа: Свой
Сообщений: 231
Регистрация: 19-12-08
Из: Новосибирск
Пользователь №: 42 594

|
Любопытная тема.  Есть всё: Цитата - Короче есть шина i2c, назовем ее А, которая одним концом ... висят несколько периферии ... вроде как мастер. ... приколы. .. корку ... инфу ... к процу Наконец, после обсуждения, написаны таки четыре буквы: Цитата( @ Apr 7 2014, 12:38)  IPMB Отсюда выводы: 1. Multi-master redundant i2c. 2. Cовершенно не "ессно": Цитата(syoma) Мастер ессно один - процессор. Простите за некропостинг, интересно узнать чем история закончилась?
|
|
|
|
Сообщений в этой теме
syoma Как сделать мост I2C на Xilinx? Apr 6 2014, 10:27 Maverick Цитата(syoma @ Apr 6 2014, 13:27) Народ и... Apr 6 2014, 10:53 Bad0512 Цитата(syoma @ Apr 6 2014, 17:27) Народ и... Apr 6 2014, 12:50 Victor® Цитата(Bad0512 @ Apr 6 2014, 15:50) Задач... Apr 6 2014, 17:37  Bad0512 Цитата(Victor® @ Apr 7 2014, 00:37) Абсол... Apr 7 2014, 00:37   iosifk Цитата(Bad0512 @ Apr 7 2014, 04:37) Поэто... Apr 7 2014, 01:02 ZASADA в свое время распаралеливал шину I2C, ничего сложн... Apr 6 2014, 16:25 andreichk http://www.fpga4fun.com/I2C.html
проверено на связ... Apr 6 2014, 17:49 alexadmin Что-то, мэтры, вы перемудрили. У автора совершенно... Apr 7 2014, 04:02 Bad0512 Цитата(alexadmin @ Apr 7 2014, 11:02) Что... Apr 7 2014, 06:37 egorman44 Если у Вас есть тактовая достаточно большая что-бы... Dec 8 2014, 08:12
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|