Связь с Arduino Mega 2560 последовательных портов через x2 RS232

Я пытаюсь управлять шаговым двигателем с помощью Arduino Mega 2560. В идеале будет два сигнала RS232, считываемых / записываемых с Arduino, каждый с помощью штекерных разъемов USB 3.0; один из них предназначен для настройки и управления драйвером двигателя, а другой-просто для получения выходного измерения крутящего момента от измерителя крутящего момента, подключенного к валу двигателя. Мне просто интересно, сможет ли Arduino справиться с этими двумя функциями, и как я могу подключить каждый из двух потоков данных. Я изучал этот вопрос через документацию Arduino, учебные пособия и форумы в течение нескольких часов и, наконец, решил, что буду вносить свой вклад в сообщения самостоятельно.

- Спасибо! - растерянный студент колледжа

, 👍2

Обсуждение

У вас есть 4 последовательных порта. Очевидным вариантом было бы использовать Serial1 и Serial2, сохраняя при этом Serial для вывода отладки. Я не совсем понимаю, в чем вы видите проблему., @Edgar Bonet

Больше информации, пожалуйста! Выбранная вами часть должна быть более чем достаточно быстрой, чтобы делать то, что вы хотите. Большая часть интерфейса будет сенсорами и их возможностями, как вы указали. Последовательные каналы на Mega буферизованы, так что у вас есть время. Водитель, вы контролируете каждую фазу или просто командуете модулю, что делать? При чем здесь серийные каналы, там куча датчиков, которым они не нужны. Размещение ссылок на «техническую» информацию о каждом аппаратном элементе очень поможет, как и простая аннотированная схема или блок-схема., @Gil


1 ответ


1

Ваша главная проблема, похоже, заключается в том, что вся информация сбивает вас с толку. Я дам тебе еще немного.

Arduino использует UART (Универсальный асинхронный приемник-передатчик) со своими последовательными интерфейсами (на Mega их 4). Это отчасти тот же протокол, что и RS232, но он использует логические уровни TTL (в данном случае уровни 5 В и 0 В), в то время как RS232 имеет разные уровни напряжения и больше линий (например, линий управления). Когда вы подключаете свой Arduino к компьютеру, компьютер напрямую не разговаривает с чипом ардуино (здесь Atmega2560). Вместо этого каждый Arduino с USB - портом имеет дополнительный чип. Он будет обрабатывать (очень сложную) USB-связь, так что вы сможете увидеть эмулированный COM-порт на вашем компьютере. Данные, которые ПК отправляет на этот COM-порт, передаются по USB на этот дополнительный чип, который, в свою очередь, преобразует их в сигналы UART и отправляет их на Atmega2560.

Все известные мне Arduino имеют только 1 чип USB-to-UART. Но вы можете добавить свой собственный чип USB-к-UART в один из других последовательных интерфейсов. Вы можете использовать чип FTDI, ATmega16U2 или (если вы не хотите программировать дополнительный чип) просто кабель/модуль преобразователя USB в UART, который вы можете купить и использовать напрямую, просто подключив их контакты к последовательным контактам ардуино.


Кстати, здесь на самом деле не имеет значения, используете ли вы порты USB3.0, так как чипы такого размера не могут работать со столь высокими скоростями. Все эти чипы используют USB2, больше не нужно, они недостаточно быстры.

,