Arduino Nano Каждый Vin 5 В исправляет проблемы I2c

У меня возникли проблемы с подключением моих устройств через I2C. "Запрос от" постоянно зависал, и конечная передача иногда давала ответы NACK.

После отключения устройств от 12 В и включения питания одного из них через USB (vin, с помощью которого он был подключен к другому arduino, стал 3,8 В) они перестали плохо себя вести и работали вместе в гармонии.

Как это возможно? Я что-то упускаю? Каждый Arduino Nano должен работать в диапазоне от 6 до 21 В?

Все устройства являются "Arduino Nano Every". Раньше они получали 12 В непосредственно на Vin и соединялись вместе в цепочку с помощью Vin,GND,A5(SCK),A4(SDA).

Мастер находится в середине цепочки так, чтобы расстояние составляло не более 20 см.

Я также попытался подключить их через vin с 9 В и 5 В. Была та же проблема.

Уже большое спасибо за помощь.

, 👍0

Обсуждение

Какие устройства? Как они подключены? О чем это ты говоришь?, @Majenko

@Majenko добавил информацию "Все устройства являются"Arduino nano каждый". Они привыкли получать 12 В непосредственно на Vin и соединены вместе в одну линию по Vin,GND,A5(SCK),A4(SDA)", @Roel

Где вы подключили свой подтягивающий резистор I2C?, @ocrdu

Просто предположение: возможно, регуляторы напряжения в Vin влияют друг на друга. Напряжение от Vin (12 В) регулируется микросхемой MPM3610 для получения 5 В. Затем это значение 5 В регулируется на втором этапе, чтобы получить 3,3 В для микроконтроллера SAMD. MPM3610-это понижающий преобразователь 2 МГц. Если вы подключите две микросхемы MPM обоих ардуино (как вы подключаете Vin), микросхемы, вероятно, влияют друг на друга или на ваш источник питания. Вы можете проверить это только с помощью осциллографа. Если вы используете 5 Вольт от USB, активируется только преобразование второго уровня от 5 В до 3,3 В. И это преобразование выполняется простым LDO от Adafruit AP2112: Никакого переключения!, @Peter Paul Kiefer

@PeterPaulKiefer SAMD используется только для программирования ATmega4809 на каждом, который работает на 5 В. Хотя не помешало бы попробовать добавить дополнительный конденсатор к VIN на каждой плате., @Gerben

Если вы хотите подавать 5 В напрямую с USB, вы должны подключать его не к VIN-контакту, а непосредственно к 5 В-контакту. Таким образом, вы обходите понижающий преобразователь и получаете 5 В на микроконтроллер вместо 3,8 В, которые вы измерили., @Gerben

Какой длины провода, соединяющие Ардуинос? Кроме того, как сказал ocrdu, какие подтягивающие резисторы вы использовали на линиях I2C?, @Gerben

@Gerben Я не говорил, что SAMD является основным mcu ;-). Я только хочу дать возможное объяснение, почему Vin выходит из строя, когда работает 5 В. Я не думаю, что дополнительный конденсатор сильно меняет ситуацию. Возможно, фильтр нижних частот с ферромагнитным шариком., @Peter Paul Kiefer

Я зашел так далеко, что проверил, что подтяжки на каждой плате Nano включены по умолчанию в ядре 1.8.6. У меня получилось примерно 30 тыс., что соответствует таблице данных. Таким образом, два из них параллельно будут составлять примерно 15 тысяч, что не очень хорошо. Максимальное значение, указанное в таблице данных, составляет 50 К (25 К параллельно). Если бы это был я, я бы просто устранил любые опасения по этому поводу, поставив более сильный подъем в автобусе. Тогда мы (или, по крайней мере, я) сможем вообще перестать думать о них. До тех пор, кажется, не совсем исключено, что они все еще в игре., @timemage

К вашему сведению, другие arduino s с 3,8 В на их vin на самом деле отлично работают! Их зеленые светодиоды сияют ярко, как бриллиант. Если вы, ребята, хотите, чтобы я что-то проверил, дайте мне знать. (Больший подтягивающий резистор? Какой ом я должен попробовать, 30 тысяч?) Я знаю, что могу питать их напрямую через вывод 5 В, но это не та ситуация. Почему мои arduino хорошо проводят время, делая i2c при 3,8 В на своем vin? И почему они не работают, когда на 12 В на их vin., @Roel

Попробуй 5 ТЫСЯЧ. В сочетании с внутренними компонентами, которые дадут вам что-то более разумное, чем то, что у вас есть в настоящее время. Отчасти я предлагаю это, потому что это *простой* тест, который может устранить переменную. Если это не имеет никакого значения, нет смысла болтать о том, как эта разница может иметь значение., @timemage

Я бы предложил использовать что-то в диапазоне 4K-5K для подтягивающих резисторов до +5. Причина, по которой они работают при более низком напряжении, заключается в том, что им не нужно так сильно раскачиваться, и при плохом подтягивании они, вероятно, едва преодолевают пороги., @Gil

Приятно, что они работают с напряжением 3,8 В на своем VIN-выводе, но это выходит за рамки спецификаций Nano Every, это повышающий преобразователь и микроконтроллер (на частоте 20 МГц). Я не знаю, почему они работают при таком низком напряжении. Но лично я бы ему не доверял. Это интересно, но на самом деле не решение проблемы, с которой вы столкнулись. Вы пробовали добавить конденсатор между VIN и GND на каждой плате?, @Gerben

Комментарии не предназначены для расширенного обсуждения; этот разговор был [перенесен на chat](https://chat.stackexchange.com/rooms/128425/discussion-on-question-by-roel-arduino-nano-every-vin-5v-fixes-i2c-problems)., @Juraj


1 ответ


Лучший ответ:

0

ИТАК... В таблице данных говорится, что вы должны использовать 7-21 В на VIN. Это создало проблему. Я запитал ардуино напрямую от 5 В на vin. Это исправило все проблемы с I2C. У меня больше не было никаких проблем после изменения этого.

,

Вы хотите сказать, что напряжение на входной стороне регулятора... заставляет внутренние подтягивания изменять значение внутри микросхемы на выходной стороне регулятора?, @timemage

это не имеет смысла, @Juraj

Во всяком случае, не так, как я читаю это сейчас., @timemage

Нет, я говорю, что, по-МОЕМУ, что-то не так с регулятором напряжения каждого и что на самом деле проходит более высокое напряжение. При использовании более высокого напряжения на шине I2C подтягивающие резисторы не подходят для подачи хорошего сигнала передачи данных. Вот почему он постоянно прерывает соединение через некоторое время., @Roel

Чистая догадка. Но это решило мои проблемы, просто включив его через 5 В на vin., @Roel

Я вижу, было бы хорошо прояснить, что вы обнаружили, что это помогло (эмпирически) и что разговор о том, что "на самом деле создает сопротивление...", на самом деле является спекулятивным. Для меня это все еще не имеет смысла, но я признаю, что, возможно, что-то изменилось. До тех пор, пока тот, кто читает это, понимает, что является предположением, а что нет, хорошая сделка., @timemage

Так лучше?, @Roel

На мой взгляд, да. Вы говорите что-то фактическое о том, что вы сделали, и то, что вы наблюдали, соотносится с этим. Вы удалили кусочки, которые, казалось бы, не имели за собой никакого факта или теории и не указывали на то, что они, как вы выразились, "чистая догадка". Я называю это улучшением., @timemage