Портирование последовательной связи Arduino на автономный atmega328 - PullRequest
2 голосов
/ 20 июня 2019

У меня есть довольно сложный проект, выполненный на Arduino2560, который я хочу портировать на автономную Atmega328.Моя проблема заключается в том, что одна из особенностей проекта заключается в том, что он может связываться с моим компьютером через последовательный порт (я создал программу на C # для его обработки на стороне компьютера, используя порт COM3).Тем не менее, Arduino использует связь USB для виртуального последовательного порта, и я немного запутался, как это можно сделать для Atmega.У него есть линии RX-TX, но что дальше?Может быть, использовать некоторые последовательные USB-конвертеры?Какой лучший подход для этого?Есть ли что-то, с чем я должен быть осторожен?Спасибо.

1 Ответ

2 голосов
/ 20 июня 2019

Учитывая, что вы упомянули конкретный порт COM3 на вашем компьютере, я думаю, мы можем предположить, что у вас есть собственный порт RS-232 (один из них с разъемом sub-D9, к которому мы привыкли в прежние времена, но уже не так часто встречается).

Если это так, то вы можете получить RS232-регулятор уровня . Вам просто нужно будет подключиться к RX, TX, Vcc и GND, и это устройство изменит уровни напряжения RS-232 на то, что требуется вашей плате (скорее всего, 5 В или 3,3 В). Некоторые (может быть, большинство) высококлассных плат разработки включают в себя этот вид сдвига уровня, так что, возможно, проверьте свой, если он у вас уже есть (если вы это сделаете, вы, вероятно, где-то увидите MAX232 IC ). Или, если вы хитры, вы также можете DIY .

Если вы предпочитаете подключаться к порту USB (тогда, конечно, это не будет COM3, если вы явно не измените конфигурацию в диспетчере устройств Windows), вы можете выбрать переходник USB-последовательный порт. С этой точки зрения у вас есть много вариантов, начиная с самого дешевого за 5 $, но я бы предпочел выбрать один, основанный на чипе FTDI, который в настоящее время достаточно распространен и доказал свою надежность. Этот является хорошим примером и по той же цене, что и переключатель уровня.

Теперь, есть ли различия между использованием родного RS-232 или USB-адаптера? Ответ для большинства практических целей - нет. Если вы перейдете к мелким деталям, например, к размеру буфера, будут различия, но если вам нужно пойти туда, вам нужно изучить детали в обоих случаях, чтобы увидеть, есть ли у вас порт (или тот, который вы планируете) добавить) удовлетворить ваши потребности. Для большинства сценариев я бы выбрал USB, хотя бы потому, что он у вас везде (у большинства ноутбуков нет встроенного RS-232).

Все вышеперечисленное (на основе RS-232 и / или USB) будет отлично работать для кабелей длиной до 5 метров (~ 15 футов) для USB или, возможно, от 10 до 15 метров (~ 30-45 футов). , Этого должно быть достаточно для большинства хобби или домашних проектов. Если вы хотите использовать более длинные кабели, вам придется использовать что-то вроде RS-485 .

Если вы выбираете сейчас USB-адаптер и считаете, что в будущем вам может понадобиться переместить плату, чтобы она находилась на расстоянии более 20 метров (15 от RS-232 + 5 USB) от компьютера, просто убедитесь, что ваш адаптер включает в себя сигнал включения TX (TXEN). Большинство адаптеров на базе чипа FTDI будут иметь этот сигнал на выводе (как тот, который я подключил выше), и это облегчит вашу жизнь, если вы захотите использовать RS-485 на двухкабельной полудуплексной шине.

РЕДАКТИРОВАТЬ: на основе приведенных ниже отзывов есть новая информация, которая заслуживает быстрого обновления.

Во-первых, на вашем компьютере нет порта RS-232 старой школы, а во-вторых, вы должны спроектировать соединение на стороне микроконтроллера.

Имея это в виду, ясно, что вы должны пойти на решение USB. Но вам нужно выбрать, переключите ли вы обе стороны на уровни RS-232 или останетесь на TTL. Это решение снова зависит от длины вашего автобуса. Если он будет очень коротким (до 2 метров), тогда вы можете остаться на TTL, иначе лучше перейти на RS-232, чтобы быть в безопасности. Есть много людей, которые скажут вам, что у них намного более длинные последовательные каналы, но насколько они надежны, вы никогда не узнаете.

Поскольку вы должны проектировать плату, я думаю, что имеет смысл интегрировать туда MAX232 и разъем D-9 и получить кабель , который вы упомянули для вашего ПК.

Или, вы можете добавить только разъем на плату и получить переключатель уровня Sparkfun, который я подключил выше для стороны микро, и тот же USB-порт для RS-232 для вашего ПК.

...