Как программируется SC16IS740?

Я заинтересован в использовании преобразователя UART-SPI SC16IS740 для взаимодействия с контроллером Ethernet W5500, который имеет входы SPI. Поскольку даташит мне непонятен, я спрашиваю, знает ли кто-нибудь, как программируется SC16IS740? По интерфейсу UART или SPI, или по обоим?

Если он использует интерфейс SPI для программирования, может ли кто-нибудь порекомендовать недорогой мост UART-SPI (или преобразователь)?

ОБНОВЛЯТЬ

W5500 является частью системы сбора данных, состоящей из: нескольких плат датчиков с MSP432, каждая из которых имеет коммуникационный модуль, который будет передавать Ethernet по кабелю или оптоволоконному кабелю, и «шлюз», который собирает все данные с плат датчиков и подключается к локальной сети. районная сеть. W5500 будет размещен на шлюзе с

Схема системы

Некоторые модули могут передавать данные по кабелю Ethernet, а другие — по оптоволоконным кабелям. Коммуникационный модуль представляет собой интерфейс Ethernet основной платы.

В случае передачи по оптоволокну он должен преобразовывать электрические сигналы от W5500 в оптические. Практически я не могу разместить W5500 на коммуникационных модулях, потому что он выдает 2 дифференциальных сигнала, поэтому требуется 4 оптоволоконных кабеля. Таким образом, решением будет передача с использованием UART (от основной платы к модулю связи и к шлюзу через оптоволокно), таким образом, используя 2 оптоволокна, и преобразование его в SPI (используя SC16IS740) на преобразователе оптоволокно-Ethernet, где W5500 быть помещенным. В этом случае мастером SC16IS740 будет W5500, но это неприемлемо.

Другие решения: передавать данные SPI по волокну (неприемлемо, потому что для этого требуется 3 волокна), использовать другой контроллер для преобразования UART в SPI.

Идеальный случай: разместить на коммуникационном модуле Ethernet-контроллер с выходами для оптоволоконных кабелей (таких контроллеров я не знаю) и иметь на шлюзе соответствующий преобразователь.

Я мог бы ответить на часть вашего вопроса, но не на все, поэтому не могу написать полный ответ. Это потому, что ваша терминология кажется запутанной. SC16IS740 обычно не называют преобразователем UART-SPI, а наоборот, т.е. это SPI (хост-интерфейс) в UART (внешнее устройство). Это не то, что вам нужно, поскольку ваше «внешнее устройство» — это SPI. Поэтому ИМХО вы также не хотите запрашивать мост «SPI-UART», а вместо этого мост [что-то]-SPI, чтобы «разговаривать» SPI с вашим W5500. Это верно? Также было бы полезно узнать, какое у вас хост-устройство и почему оно не может напрямую использовать SPI?
@SamGibson См. обновленный вопрос.
Спасибо за обновление. К сожалению, для меня слишком много неясностей, чтобы понять систему (диаграмма, вероятно, поможет). Кроме того, обновление, похоже, не ответило на мой вопрос о том, почему любой MCU, являющийся «шлюзом», не может напрямую подключаться к W5500 с использованием SPI и, следовательно, избежать необходимости преобразования UART <-> SPI, о котором вы спрашивали. Таким образом, обновление подтверждает, что я недостаточно понимаю общую проблему, чтобы попытаться ответить на нее. Надеюсь, кто-то еще понимает вашу систему лучше, чем я!
@SamGibson Потому что шлюз будет действовать в основном как блок ретрансляции, преобразуя оптоволоконный Ethernet в кабельный Ethernet, используемый локальной сетью. Его выходы будут подключены к коммутатору. Я хотел избежать размещения контроллера здесь, где требуется только преобразование физического носителя. Таким образом, идеальным сценарием было бы: W5500 размещен на коммуникационном модуле и использует 2 волокна для подключения к блоку ретрансляции, но это невозможно, так как он выдает 2 дифференциальных сигнала. Таким образом, для использования 2 волокон решением будет передача UART и преобразование в SPI при повторной передаче. блок, в котором будет размещаться W5500.
@CristianM Мне также трудно понять, как вы пытаетесь это построить, пожалуйста, сделайте одолжение людям и себе и нарисуйте диаграмму, на которой вы указываете различные ссылки и типы соединений (например, Ethernet, SPI и т. д.) и ваши датчики и т.д. Постарайтесь быть как можно более подробным.
@CristianM Я забыл упомянуть, что SPI нужен мастер, укажите свой мастер на диаграмме.
@CristianM о, а у вас сейчас что-нибудь работает или это все на «чертежной доске»? Ваши датчики взаимодействуют с W5500 «из коробки»?
@ user1890202 Я обновил вопрос. Это пока только на чертежной доске.

Ответы (1)

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

Практически я не могу разместить W5500 на коммуникационных модулях, потому что он выдает 2 дифференциальных сигнала, поэтому требуется 4 оптоволоконных кабеля.

Но это не так, стандартный Ethernet (10BASE-T, 100BASE-TX и т. д.) использует дифференциальную передачу сигналов по витым парам для снижения помех, две пары из четырех, если быть точным. Одна пара для передачи и одна для приема. Дифференциальная сигнализация означает, что провода в каждой паре передают одни и те же данные, но с обратной полярностью. В Википедии есть статья на эту тему.

Но делать что-то на физическом уровне Ethernet не так уж и просто, могу ли я предложить вам вместо этого купить пару оптоволоконных медиаконвертеров ? Таким образом, вы можете проектировать «узлы» со стандартным подключением к сети Ethernet и использовать оптическое волокно, когда это необходимо, используя только «готовые» материалы.

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

О, я чуть не забыл исходный вопрос! SC16IS740 — это UART с интерфейсом SPI (подчиненный). Это не (и такой компонент не имеет особого смысла) «конвертер SPI-to-UART». Как его «программировать», я понятия не имею, но ему явно нужен мастер (ваш микроконтроллер), который запрограммирован для взаимодействия с ним. В наши дни в микроконтроллеры обычно встроены UART, поэтому я все равно не вижу особого смысла в его использовании.

Удачи!