Pull to refresh

Comments 43

Зачем задержка после считывания значения перед отключением питания?
На мой взгляд, не надо у датчиков выключать питание. Они после включения могут долго выходить на режим. Лучше транзистором SCL или SDA от датчика отцеплять, или дешифратор поставить
Есть, но их надо заказывать, ждать доставки и стоят они в 10 раз дороже чем стандартная логика 74 или 40 серии
И TCS9544 слишком умная, чтобы обойтись просто дерганьем ножек. Ей самой надо по I2C управлять.

Так это не недостаток, а достоинство. Не нужно тянуть отдельные GPIO для коммутации абонентов, все делается по одному I2C.
И касаемо TI — если это нужно на один раз, микросхема заказывается образцами (и идет
чуть больше недели из штатов в РФ), если нужно серийное устройство, то проще как раз взять готовую микросхему, чем потом разгребать возможные неочевидности.

и идет чуть больше недели из штатов в РФ

У них сейчас всё сильно лучше. Заказывал недавно несколько отладок — от Штатов до Самары 4-5 дней.
Раз есть свободные входы/выходы, почему бы не сделать просто несколько I2C-шин?
Потому, что для реализации I2C программным «ногодрыгом» нежно забыть про digitalWrite(), так полюбившуюся ардуинщикам, перестать писать «скетчи» и начать программировать.
UFO just landed and posted this here
Или 10 минут погуглить
UFO just landed and posted this here
Или взять MSP432E4, у которого десяток аппаратных I2C)

Сестра-близнец тивы TM4C1294 — это дикий монстр, который для 90% задач — оверкилл. Зато Ethernet с физикой на борту, это круто, да. Грубо говоря мультиплексор стоит 0.73USD*1ku, а этот монстрик ~14USD за штучку.


Для каждой задачи — свой инструмент

Так это же сарказм был))
И E401 в TQFP-128 стоит 8.66USD*1ku.

О, или я что-то напутал, или они реально подешевели. Впрочем TM4C1294NCPDTI3 все равно стоит 8.07*1ku :P

Кстати, я техасовскими MCU интересоваться начал недавно, поэтому никак не могу понять, вдруг вы объясните — что у них творится за чертовщина с названиями семейств? И какое в итоге актуальное, а какое выбросили на свалку истории?

Ну, я так понял, что SimpleLink (CC13xx, CC26XX, MSP432) — это "стильно-модно-молодежно" и развивать будут именно его. Собственно это не столько микроконтроллеры, сколько техасовская софтовая поддержка всего этого безобразия: куча кода зашита прям в ROM микроконтроллера, из-за чего и весь сыр-бор с отдельными микроконтроллерами.


Пока не выбросили ничего, продают даже Concerto и TM4C123, и, зная TI, старые контроллеры они могут поддерживать очень долго, пока есть крупный клиент, готовый их покупать.


А по остальным семействам — так у них же разные сферы применения: MSP430 — бюджетные и сверхмалопотребляющие железки, C2000 — числодробильные контроллеры с крутейшей аналоговой периферией (14 компараторов с собственными ЦАП + 2 буфферированных ЦАП + ШИМ высокого разрешения + 3 S/H SAR ADC по 3MSPS каждая + вычисление синуса за четыре такта).


Keystone, Sitara, DRA и иже с ними "микроконтроллерами" назвать язык не поворачивается, поэтому упоминать их не буду.

Окей, спасибо большое. Меня, собственно, позиционирование MSP432 как раз и интересовало. Видимо, 432 заменил Tiva, но Tiva продавать они не прекращают.
У TI же гарантированный 10-летний минимальный срок выпуска по любой позиции, без этого трудно считаться серьёзным производителем. Поэтому запуск новой серии, заменяющей старую, вообще никак не означает прекращение выпуска старой.

Ну, это если микросхема выбралась из состояния "preview", а то получается 66AK2G01. Но да, TI — пример очень долгой поддержки своих мелкосхем.

Если надо решить проблему строго без внешних чипов — есть контроллеры со свободной коммутацией GPIO, например, nRF52 или TI CC13xx/C26xx, там I2C можно перекидывать на произвольные ножки чипа (равно как и все прочие сигналы, кроме входов АЦП).

Контроллер с десятью I2C нужен, только если эти десять I2C должны фигачить одновременно.
а точно проверяли? потому что на входах scl sda предполагается защитный диод на vdd, который будет садить линии данных на землю, ведь на входе +Vdd лог. 0. А если 0 не подавать, а переводиться в высокоимпедансное состояние, то микросхема будет запитываться через тот же диод. Судя по требованию к напряжениям на входах scl sda <Vdd+0.3V это не истинный открытый сток и диод там должен быть.
Ну почему, почему как ардуина — так обязательно какой-то детский сад, а не советы?

Типичная схема цифрового входа включает в себя защитный диод с входа на + питания. Не у всех, но у многих. Если у HTU21D они есть, притянув его питание к земле, вы просто притянете к земле через диод всю свою шину I2C.

А если вы такие эксперименты начнёте на любой шине с push-pull драйвером, то это вообще немного печально закончится.
Да, данный пост полное днище и деградация. Тут я полностью солидарен.

Эффект Даннинга — Крюгера на практике :)

Отличный способ выстрелить себе в ногу. По даташиту максимальное входное напряжение на цифровых входах = VDD. Если отключить питание, то VDD=0, значит и на вход можно подовать не больше 0. У вас там утяжка шины висит, т.е. через защитный диод на входе датчика все время в выключенном состоянии будет течь ток VDD/Rpullup, скорее всего это будет около 3-5ма. Может диод и не сгорит, сразу, но греться может.
одна нога МК — общий SDA (для всех);
N ног МК — N отдельных SCL.
экономия — одна нога МК и не надо с питанием мучаться.
Да проще же. И ног меньше, и I2C аппаратный (мы же тут не про контроллеры, у которых SCL можно на любую ногу вывести?) — ставится аналоговый мультиплексор типа хоть доисторического CD4051, SDA напрямую на все чипы, SCL через мультиплексор.

Три дополнительные ноги, 8 дополнительных каналов. Подтяжку SCL к питанию не забыть поставить после мультиплексора, а не до.
Ну да, с мультиплексором еще больше экономия ног МК. Тока тут в названии было "… без лишних микросхем...".
Так делать нельзя.

Происходит деградация порта и в конце концов котроллер выходить из строя, при чём вы даже не поймёте, как в какой-то момент порт перестанет работать. Смотрите. Микросхема потребляет 500 мА, согласно даташиту:



А ATmega2560, стоящая в Arduino Mega выдаёт всего 100-200 мА на порт.



Оно работать будет, но не долго и очень плохо.

Микросхема потребляет 500 мА, согласно даташиту
Не 500 мА, а 500 мкА
Да, невнимателен'c… Ну тогда вполне себе вариант
Нет, все равно не вариант, и выше уже три человека написали почему: 1 2 3

У вас ошибка, там 500 микроА, а не 500mA (0.5)

Ничего удивительного, просто результат низкого порога вхождения который всё ардуинщики любят :)

Существенная проблема, ещё и в том, что после детального объяснения, например как выше в комментариях — не будет сделано никаких выводов. И, только единицы пойдут разбираться, что это там за диод такой…
Даже когда отключено напряжение питания HTU21, на микросхеме будет напряжение достаточное для работы (5V — Vd), тоесть примерно 5 — 0.6 = 4.4V
image
а в случае, когда Vcc HTU притянуто к нулю ногой МК — имеем такую же цепь, только вместо Vcc — GND, диоды получаются встречно-параллельно, и через резистор и диоды постоянно течет ток. а вход получается практически прижат к земле…
HTU21 не работает от 5 В, у него 3,6 В absolute maximum. У автора скорее всего готовая ардуино-плата с транслятором уровней.

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

Во-первых, R1 = 10...50 кОм, в зависимости от микроконтроллера, HTU21 при измерении потребляет 0,54 мА, итого падение на R1 будет 5,4 В, т.е. даже в идеальных условиях попытка чипа уйти в измерение обрушит питание ниже допустимого предела.

Во-вторых, SCL и SDA при передаче данных будут регулярно падать в ноль, чип при этом будет пытаться как-то жить на висящем у него на VCC конденсаторе…

Короче, лучше не думать, чем и как он там будет в линию мусорить, если его так насиловать.
Ну, может будет сделан вывод «в интернете говорили, что так включать почему-то нельзя».

А должен быть сделан вывод «книжки читать надо».

Причём тема-то элементарная, это вам не радиочастотка или там mixed signal какой-нибудь, в которых, если ударение во фразе не там поставить, можно Сатану случайно вызвать.
Автора! Мы так и не узнали, пробовал(а) ли автор на живом железе. Я сторонник нестандартных решений, и нередко сталкивался с тем, что не должно работать, и при этом работает!
UFO just landed and posted this here
Sign up to leave a comment.

Articles