Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: i2c устройства и smbus на одной шине. Реально?
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Все остальные микроконтроллеры > PIC
demonizer
Приветствую всех.

Есть PIC18F2450, к нему по шине I2C подключены TNC75AV (датчик температуры) и 24LC16 (i2c флешпамять).
Я хочу дополнить систему контроллером вентилятора. Можно ли подружить эти устройства с smbus девайсом, например TI AMC6821?
Судя по документации самих девайсов различие в скорости быстродействия шин: i2c до 400 кГц, а smbus - максимально 100 кГц, а также во временных характеристиках захвата, освобождения шины.
Предполагаю что еще есть некие протокольные различия.
Есть у кого опыт такой коммутации? Реально заставить это работать, снизив общую частоту шины и есть ли такая возможность в PIC'e?
Ant_m
smbus это другое название i2c. разница в названиях из-за патентов, кто когда-то филлипсу не захотел денег дать.
rezident
В основе SMBUS лежит тот же самый интерфейс I2C. Основное различие в том, что I2C - полностью статическая шина (частота тактирования шины от 0 Гц), а в SMBUS частота тактирования ограничена снизу частотой 10кГц. Отсюда вытекают все прочие ограничения на таймауты. Ограничение сверху 100кГц точно такое же как для стандартного интерфейса I2C (standard-mode I2C - up to 100kbit/s).
Для справки. Up to 400kbit/s это уже Fast-mode I2C. Есть еще режим Fast-mode Plus I2C - до 1Мбит/с и High-speed mode I2C - до 3,4Мбит/с. См. спецификацию I2C.
Deka
Наверное лучше будет каким-то образом отключать лишние устройства от шины. Т.е. если шина работает в I2C надо запретить работать (отключить) девайсы SMBUS и наоборот. Скорость шины по идее должна выставлять мастером. Для PIC незнаю, а для тиньки скорость легко меняется настройками регистров.
demonizer
Цитата(Deka @ Aug 18 2010, 10:10) *
Наверное лучше будет каким-то образом отключать лишние устройства от шины. Т.е. если шина работает в I2C надо запретить работать (отключить) девайсы SMBUS и наоборот. Скорость шины по идее должна выставлять мастером. Для PIC незнаю, а для тиньки скорость легко меняется настройками регистров.



Как я вижу данную реализацию:
достаточно будет поставить два OR элемента на шины SCL и SDA, а на выходы логики повесить SMBUS устройство. Тогда подавая 1 на второй вход логики можно отключать SMBUS устройства, 0 соответственно будет разрешать работу. Думаю что отключать i2c устройства нет смысла, они не будут реагировать на чужой id девайса. Снижение частоты в PIC'e осуществляется через порты SPBRG и SPBRGH, управляющие делителем частоты EUSART интерфейса.

Но вот проблема в том что все выводы контроллера уже задействованы, и сделать разрешающий сигнал проблематично.

2 rezident:

спасибо за инфу. я видел этот документ, но просматривал мельком. а в памяти от старых источников отложилось, что частота I2C до 400 кГц. теперь буду знать.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.