Перейти к содержанию

Проблемы в работе I2C


Рекомендуемые сообщения

Добрый день! В данный момент прохожу производственную преддипломную практику (сам учусь в УРТК). Стоит задача соединить Lego EV3 и Raspberry PI по I2C интерфейсу. До этого, при работе с другими устройствами, у меня никогда не было проблем с I2C интерфейсом, но в данной связке "EV3-RPI" - начались ошибки. Перед описанием ошибок, уточню, что EV3 - Master, а Raspberry - Slave, т.к. EV3 умеет работать только в режиме Master.
Первое, что бросается в глаза, это практически постоянная передача в эфир SLA пакета (адреса Slave-устройства). По-факту, именно с этого и должна начинаться передача, но в данном случае, её попросту не происходит. А, если быть точнее, то происходит она только каждый шестой раз.
Следующая проблема заключается в том, что обмен данными не всегда происходит до конца. Даже если EV3 отправляет свой пакет (два байта), то ответ от Raspberry (он тоже два байта) приходит через-раз, а то и ещё реже.
я также пробовал соединять EV3 с Arduino, Arduino с Raspberry, что бы найти причину, но там всё отлично работало и ошибок было ноль. Стабильный обмен двумя байтами, как и нужно.

Очень нужна помощь в устранении данных ошибок!


P.S: У EV3 используется нестандартный уровень лог. единицы (там он 4.3в) и обычные конверторы уровней уже не работают с ним. Поэтому, мне пришлось перепаивать его под другие номиналы подтягивающих резисторов, что бы всё заработало. В его работе нареканий нет.

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

Снимок экрана (9).png

Снимок экрана (8).png

Ссылка на комментарий
Поделиться на другие сайты

Реклама: ООО ТД Промэлектроника, ИНН: 6659197470, Тел: 8 (800) 1000-321

В обеих осциллограммах видно, что при передаче от EV3 в линии SDA уровень нуля не дотягивает до собственно нуля. Причем в рабочем варианте он немного не дотягивает, а в нерабочей процентов 40 остается между нижним уровнем импульса и собственно нулем (GND). сравните с импульсами ACK от raspberry. Предполагаю, что в какой-то момент raspberry просто не может принять то, что прислали и не выдает ACK и в этом случае EV3 начинает слать снова, отсюда и спам.

33 minutes ago, Nikolay_R said:

P.S: У EV3 используется нестандартный уровень лог. единицы (там он 4.3в) и обычные конверторы уровней уже не работают с ним. Поэтому, мне пришлось перепаивать его под другие номиналы подтягивающих резисторов, что бы всё заработало. В его работе нареканий нет.

вот имхо тут и проблема. Какие резисторы сейчас стоят?

Изменено пользователем LeonidPr
Ссылка на комментарий
Поделиться на другие сайты

20% скидка на весь каталог электронных компонентов в ТМ Электроникс!

Акция "Лето ближе - цены ниже", успей сделать выгодные покупки!

Плюс весь апрель действует скидка 10% по промокоду APREL24 + 15% кэшбэк и бесплатная доставка!

Перейти на страницу акции

Реклама: ООО ТМ ЭЛЕКТРОНИКС, ИНН: 7806548420, info@tmelectronics.ru, +7(812)4094849

Организация питания на основе надежных литиевых аккумуляторов EVE и микросхем азиатского производства

Качественное и безопасное устройство, работающее от аккумулятора, должно учитывать его физические и химические свойства, профили заряда и разряда, их изменение во времени и под влиянием различных условий, таких как температура и ток нагрузки. Мы расскажем о литий-ионных аккумуляторных батареях EVE и нескольких решениях от различных китайских компаний, рекомендуемых для разработок приложений с использованием этих АКБ. Представленные в статье китайские аналоги помогут заменить продукцию западных брендов с оптимизацией цены без потери качества. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

18.01.2021 в 16:05, LeonidPr сказал:

/////////////////////

Доброго времени суток! Спасибо за хорошую подсказку. На момент поста использовал 47к с обеих сторон, теперь поменял резисторы со стороны EV3 на 30к и оно стало +- стабильно работать.  Кроме того, подтяжка теперь идёт не от 4.3в, а от 5в (опять же, это всё со стороны EV3).
Но! Работает стабильно лишь с подключенным осциллографом (щупы осциллографа ISDS 205B подключены к SDA SCL линиям EV3) . Если отключить щупы от этих контактов, то связь вновь барахлит. Ещё заметил, что связь нормализуется при касании пальцев к этим линиям. Если убрать Щупы, то опять начинаются проблемы (до замены резисторов проблемы были всегда).

Пробовал подвязывать через мегаомные резисторы эти линии к земле - не помогло (пытался сымитировать входное сопротивление осцилла). Так же, пробовал добавлять последовательно конденсатор на 10нФ, но помогло минимально.
Можете подсказать, что ещё можно изменить, что бы добиться такой же стабильности, но у же без осциллографа в схеме?)

Снимок экрана (11).png

Изменено пользователем Falconist
Оверквотинг
Ссылка на комментарий
Поделиться на другие сайты

Сравнительное тестирование аккумуляторов EVE Energy и Samsung типоразмера 18650

Инженеры КОМПЭЛ провели сравнительное тестирование аккумуляторов EVE и Samsung популярного для бытовых и индустриальных применений типоразмера 18650. 

Для теста были выбраны аккумуляторы литий-никельмарганцевой системы: по два образца одного наименования каждого производителя – и протестированы на двух значениях тока разряда: 0,5 А и 2,5 А. Испытания проводились в нормальных условиях на электронной нагрузке EBD-USB от ZKEtech, а зарядка осуществлялась от лабораторного источника питания в режиме CC+CV в соответствии с рекомендациями в даташите на определенную модель. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

3 hours ago, Nikolay_R said:

На момент поста использовал 47к с обеих сторон,

Не совсем понял с каких двух сторон... обычно I2C подтягивается к питанию. Один резистор между SCL и VDD, один между SDA и VDD. Выложите схему, если вы одну и ту же линию подтянули к разным питаниям у вас там некий средний уровень получится (если резюки равны). В общем без схемы сложно. по осциллограмме все как-то странно, уровни скачут

Ссылка на комментарий
Поделиться на другие сайты

Литиевые аккумуляторы EVE Energy и решения для управления перезаряжаемыми источниками тока (материалы вебинара)

Опубликованы материалы вебинара Компэл, посвященного литиевым аккумуляторам EVE Energy и решениям для управления перезаряжаемыми источниками тока.

На вебинаре мы представили информацию не только по линейкам аккумуляторной продукции EVE, но и по решениям для управления ею, что поможет рассмотреть эти ХИТ в качестве дополнительной альтернативы для уже выпускающихся изделий. Также рассмотрели нюансы работы с производителем и сервисы, предоставляемые Компэл по данной продукции. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

Схема вышла следующая.  Когда я говорил про подтяжку со стороны EV3, то имел ввиду, что выходы SDA и SCL EV3 подтягиваются теперь не к 4.3в, а к 5в.

P.S. за основу взята стандартная схема преобразователя уровней.
 

unnamed.png

Ссылка на комментарий
Поделиться на другие сайты

Литиевые батарейки и аккумуляторы от мирового лидера  EVE в Компэл

Компания Компэл, официальный дистрибьютор EVE Energy, бренда №1 по производству химических источников тока (ХИТ) в мире, предлагает продукцию EVE как со склада, так и под заказ. Компания EVE широко известна в странах Европы, Америки и Юго-Восточной Азии уже более 20 лет. Недавно EVE была объявлена поставщиком новых аккумуляторных элементов круглого формата для электрических моделей «нового класса» компании BMW.

Продукция EVE предназначена для самого широкого спектра применений – от бытового до промышленного. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

Не видел таких схем преобразователей, эта конкретно точно не рабочая. ну окей, со стороны малинки передача пойдет, что и видно на осциллограмме. а когда EV3 начнет тянуть в 0 выход у вас транзистор закрыт будет. ток пойдет через паразитный диод, что и видно на осциллограмме, т.к. падение на этом диоде будет больше вольта (судя по даташиту на транзюк).
Вы ведь осциллограмму снимали со стороны малинки? там как раз такая картина будет при таком подключении.
Что-то не вижу на схеме EV3 что бы там уровни 5 В были, или у вас другой какой-то девайс. Вообще можно попробовать без преобразователей, т.к. в I2C  все девайсы с в режиме открытым коллектором подключаются. т.е. на передачу все нормально должно быть. А если на прием не хватит уровня, будете разбираться. Оставьте подтяжку только со стороны малинки, остальное выкиньте. Но лучше найти точную схему EV3 именно вашей модели и посмотреть как там I2C часть сделана. ту, что привел я взял отсюда

Изменено пользователем LeonidPr
Ссылка на комментарий
Поделиться на другие сайты

P.S. Прошу прощения за самоуверенность. поглядел схемы преобразователей именно для I2C.
Плюс статейку на easyelectronics.
Действительно используют такое включение. Как я понимаю тут такой нюанс важен. Когда 5 вольтовое устройство подтягивает в ноль свою сторону и напряжение на истоке падает, разность потенциалов между затвором и истоком должна стать больше, чем Vgs(th), т.е. напряжение, при котором транзистор откроется. Возможно в вашем случае как раз и получается, что он не может открыться и работает только внутренний диод.

Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...