Мост I2C-UART в виде прорыва или в корпусе DIP

Для проекта мне нужно подключить более одного устройства к Arduino через последовательный порт с аппаратным управлением потоком данных (RTS/CTS).

Sparkfun раньше производила разделительные платы для SC16IS750, но этот продукт снят с производства, и я не могу найти в любом месте заказать. Есть также много микросхем, которые делают то, что мне нужно, но я не увлекаюсь пайкой SMD- компонентов и не могу найти какие-либо продукты, например, в старомодном DIP-корпусе.

Кто-нибудь знает о доступной коммутационной плате или DIP-пакетах I2C для моста UART? Поскольку устройство будет питаться от батареи, я бы предпочел выделенную маломощную схему вместо запрограммированного микроконтроллера, как предлагает majenko.

, 👍4

Обсуждение

Как насчет ATMega328P, запрограммированного на то, что вы хотите...?, @Majenko

@Majenko Почему я не подумал об этом. Это действительно сработало бы, но поскольку мне нужно, чтобы мост был всегда включен в устройстве с батарейным питанием, энергопотребление ATMega328P как минимум невыгодно. Я бы предпочел выделенную цепь. Я отредактирую свой вопрос и добавлю требования к мощности., @jarnbjo

ATTiny немного снизит энергопотребление, так же как и использование спящих режимов и пробуждение по прерываниям I2C или UART., @Majenko

Да, спящие режимы должны делать это. Обратите внимание, что аппаратное управление потоком не является несовместимым с концепцией последовательного программного обеспечения, хотя может быть несколько деталей, которые необходимо проработать. Также могут быть доступны ATmega с двумя UART в больших корпусах DIP., @Chris Stratton

Вы действительно должны потратить час или два на то, чтобы научиться паять SMD-устройство — это совсем не сложно и устранит эти крайние ограничения, с которыми вы сталкиваетесь., @Chris Stratton

Согласно тому, что я прочитал, концепция «пробуждения по активности UART» не сработает. После пробуждения ATMega потребуется некоторое время, чтобы возобновить нормальную работу, и как минимум первый байт передачи UART будет потерян. Использование такого подхода требует управления передатчиком. который должен сначала отправить фиктивный «байт пробуждения» по UART, задержаться на короткий период, чтобы дождаться правильной работы ATMega, а затем начать реальную передачу. Поскольку я не могу изменить протокол, используемый подключенными устройствами, это не сработает., @jarnbjo

Менее дорогой вариант? У меня нет личного опыта, но я искал способ добавить второй аппаратный UART в Arduino Uno. https://www.embeddedadventures.com/i2c_to_uart_mod-1025.html, @exit8


1 ответ


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

2

Возможно, то, что вы ищете:

http://sandboxelectronics.com/?product=sc16is750-i2cspi-to-uart -bridge-модуль


С этой страницы:

SC16IS750 I2C/SPI-модуль моста UART

Модуль SC16IS750 I2C/SPI-UART Bridge

Этот модуль предназначен для преобразования I2C/SPI в UART. Он работает в ведомом режиме I2C/SPI и взаимодействует с устройствами, работающими в ведущем режиме I2C/SPI. Также есть 4 дополнительных GPIO для расширения ввода-вывода. В качестве ключевого компонента этого модуля используется NXP SC16IS750. Также поддерживаются сигналы управления потоком и модема.

Этот модуль полезен, когда требуется дополнительный интерфейс UART. Из-за характеристик I2C и SPI с несколькими ведомыми устройствами в систему можно одновременно добавить множество интерфейсов UART.

,

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

Согласен, ссылки со временем устаревают. Пожалуйста, обобщите свой ответ, чтобы он был самостоятельным. Хотя бы укажите номер детали и, возможно, опубликуйте ее фотографию., @Nick Gammon