Пороговое значение напряжения SMBus v1.1

#embedded #pic #i2c #smbus

#встроенный #рис #i2c #smbus

Вопрос:

Я планирую использовать PIC18F26K83 и взаимодействовать с интеллектуальной батареей, которая использует SMBus версии 1.1. Итак, из таблицы данных PIC указано, что мне нужно выбрать подходящее пороговое значение входного сигнала для SMBus из регистра RxyI2C. Для выбора этого порога используются биты 0 и 1, но для версии 1.1 SMBus нет информации (см. Ниже.).

TH<1:0>: биты выбора порогового значения ввода I2C

11 = входной порог SMBus 3.0 (1,35 В)

10 = пороговое значение входного сигнала SMBus 2.0 (2.1 В)

01 = входные пороги, специфичные для I2C

00 = Стандартный ввод GPIO, активированный через регистры INLVLxy

И через Интернет я не смог найти порог ввода для SMBus v1.1. Итак, мой вопрос:

Каково входное пороговое напряжение для SMBus v1.1? Или как я должен установить связанные биты, чтобы использовать SMBus v1.1 из регистра RxyI2C?

Комментарии:

1. Не вопрос программирования — попробуйте electronics.stackexchange.com ?

2. Ну, это, может быть, немного вопрос программирования, но хорошо, сделаем это.

3. Да, я колебался, прежде чем комментировать — жаль, что у нас нет встроенного StackExchange для подобных вопросов с сочетанием электроники и программирования.

4. Действительно, это было бы здорово.

Ответ №1:

Спецификация микросхемы PIC18F26K83. Указывает, что микросхема поддерживает SMBus v2.0 и v3.0. Сравнивая SMBus v2.0 и v1.1, есть некоторые различия в отношении напряжения, но электрические различия на SMBus v1.1 и v2.0 должны быть достаточно близки для совместной работы. Что касается обратной совместимости, обратите внимание на сопротивление подтягивания для SMBus v1.1. Рекомендуемое сопротивление подтягивания SMBus v2.0 близко к стандартному I2C и, следовательно, не будет работать на SMBus v1.1.

Поэтому использование микроконтроллера в конфигурации для SMBus 2.0 с сопротивлением подтягивания, совместимого с SMBus v1.1, должно работать нормально.

Далее у вас есть ссылки на документацию, которую я использовал для реализации SMBus v1.1.

Интеллектуальные данные батареи

Спецификация SMBus для каждой версии SMBus

Прочитайте это <- Реализация интерфейса SMBus

Комментарии:

1. Спасибо, да, я использую RB1I2C = 0x02; что равно входному порогу 2,1 В. Я также использую SMBus v1.1, как вы думаете, подойдут ли для этого подтягивающие резисторы на 20 Ком?

2. Мой опыт работы с SMBus доказал, что разные батареи на SMBus v1.1 имеют разные допуски. Большинство хост-устройств (Master devices) могут нормально работать в гораздо более широком диапазоне как высокого, так и низкого напряжения. Поэтому моя лучшая рекомендация — использовать два потенциометра для начала работы при 12-20 ком. 20 Ком может работать нормально, но точная настройка сопротивления, вероятно, обеспечит лучшую производительность. «может быть достаточно 15 Кб». (Также имейте в виду, что ~ 50 см — это максимальное расстояние от ведущего-> ведомого устройства)

3. но в этом случае я бы не получил никаких данных в буфере приема, верно? Иначе я бы не получил подтверждение для моей передачи.

4. хорошо. Вот где SMBus может быть сложным. Неправильное подключение будет означать, что вы не получите подтверждение от аккумулятора. Или, что еще хуже, ваше сообщение для аккумулятора будет неверным. Либо батарея вообще не увидит сообщение, либо хуже.. При повреждении данных возвращаются неправильные данные. Если вы раньше не работали с i2c и / или SMBus, я настоятельно рекомендую вам ознакомиться с «SmartBatteryDataSpesification». а также спецификация шины системного управления и «ReadThis» (Bren-Tronics «Реализация интерфейса SMBus»). Я работаю с несколькими батареями «BB-2590 / u». «70791BK, на данный момент».

5. Да, я использовал тот же тест, решил проблему. Спасибо за руководство!