Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: I2C на verilog
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Работаем с ПЛИС, области применения, выбор
addi II
Здравствуйте!

Нет ли у кого, кто мог бы поделиться, проекта для квартуса реализации I2C?

Если не жалко)

Заранее благодарен!

П.С. необязательно только для квартуса, главное исходники

Maverick
Цитата(addi II @ Mar 31 2016, 08:21) *
Здравствуйте!

Нет ли у кого, кто мог бы поделиться, проекта для квартуса реализации I2C?

Если не жалко)

Заранее благодарен!

П.С. необязательно только для квартуса, главное исходники

вот - Verilog / VHDL
andrew_b
Цитата(addi II @ Mar 31 2016, 08:21) *
Нет ли у кого, кто мог бы поделиться, проекта для квартуса реализации I2C?
На opencores.org есть.
Maverick
еще вот
и вот
Александр77
Цитата(andrew_b @ Mar 31 2016, 08:34) *
На opencores.org есть.

Даже каким-то из проектов пользуется altera и ставит в своих демонстрашках (видимо экономят на оплате патента за бренд i2c)
Koluchiy
Набирайте на сайте альтеры i2с и качайте то, куда оно пошлет. Отлично работает, исходники открыты.
Я их для Xilinx использую, чуть подправил только для совместимости с хилыми библиотеками sm.gif.
Timmy
Интересно, умеют ли i2c корки обрабатывать ситуацию с зависанием слейва на чтении. Если слейв не поймает(например из-за помехи) финальный ACK, или мастер внезапно отвалится, слейв может застрять на промежуточном нулевом бите и держать SDA в LOW, не давая делать старт/стоп правильным образом. Чтобы выйти из этого состояния, кто-то должен подёргать за SCL, пока подвисший слейв не дойдёт до позиции ACK или единичного бита данных и не отпустит SDA.
В микроконтроллере это можно решить софтовым ногодрыгом, а вот в FPGA переключения пинов в GPIO обычно не предусматриваютsm.gif.
Corner
Цитата(Timmy @ Mar 31 2016, 19:20) *
Интересно, умеют ли i2c корки обрабатывать ситуацию с зависанием слейва на чтении. Если слейв не поймает(например из-за помехи) финальный ACK, или мастер внезапно отвалится, слейв может застрять на промежуточном нулевом бите и держать SDA в LOW, не давая делать старт/стоп правильным образом. Чтобы выйти из этого состояния, кто-то должен подёргать за SCL, пока подвисший слейв не дойдёт до позиции ACK или единичного бита данных и не отпустит SDA.
В микроконтроллере это можно решить софтовым ногодрыгом, а вот в FPGA переключения пинов в GPIO обычно не предусматриваютsm.gif.

Короче. В корку нужно прикрутить вотчдог))) два байта переслать....
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.