|
Как сделать мост 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 6 2014, 10:53
|

я только учусь...
     
Группа: Модераторы
Сообщений: 3 447
Регистрация: 29-01-07
Из: Украина
Пользователь №: 24 839

|
Цитата(syoma @ Apr 6 2014, 13:27)  Народ извините, в VHDL и Verilog ни бум бум, а надо пару строчек кода придумать.
Короче есть шина i2c, назовем ее А, которая одним концом (SCL, SDA) подключена к пинам FPGA, а на других висят несколько периферии - тактовый генератор, датчики температуры и питания. FPGA вроде как мастер.
Но также есть и еще одна I2C шина B, концы которой заведены на эту же FPGA, и которая управляется внешним МК. Помимо самой ФПГА на этой шине тоже висит еще несколько устройств.
В общем для того, чтобы не лепить в ПЛИСине I2C мастер, а потом еще и I2C слейв и как-то эмулировать все это дело, появилось желание просто каким-то образом закоротить SDA и SCL пины этих двух шин через FPGA. Вопрос собственно в бинаправленности SDA. Т.е. по идее логика должна быть такой, что по умолчанию SDA пины обеих шин в ПЛИС - это входы. На них будет высокий уровень. Если на одном из входов появляется низкий уровень, то другой переключается на выход и тоже начинает генерить ноль.
В общем логика я думаю понятно. Вопрос в том - можно ли такое реализовать малой кровью и как? Спасибо. Ip core l2c не подходит?
--------------------
If it doesn't work in simulation, it won't work on the board.
"Ты живешь в своих поступках, а не в теле. Ты — это твои действия, и нет другого тебя" Антуан де Сент-Экзюпери повесть "Маленький принц"
|
|
|
|
Сообщений в этой теме
syoma Как сделать мост I2C на Xilinx? Apr 6 2014, 10:27 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 syoma Я так подозреваю, что мне пытаются сказать, что в ... Apr 7 2014, 06:38 svss Любопытная тема. Есть всё:Цитата- Короче есть... Dec 8 2014, 07:16 egorman44 Если у Вас есть тактовая достаточно большая что-бы... Dec 8 2014, 08:12
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|