Я планирую проект с Arduino, который включает в себя обработку большого количества запросов от главного компьютера, и стандартная максимальная скорость 115200 бод по последовательному каналу не достаточна. Я хотел бы иметь возможность получить 1 Мбит / с в полном дуплексе, если это возможно, но 400 Кбит / с + полный дуплекс будет приемлемым. Я использую Arduino Due, поэтому он должен иметь возможность обрабатывать значительно более высокие скорости связи.
Есть ли способ значительно увеличить скорость передачи по сравнению с последовательным интерфейсом, или есть второй вариант, который я могу использовать в плане взаимодействия с компьютером на более высоких скоростях?
Ответы:
Определенно возможно подняться в диапазоне Мбит / с с Arduino, особенно с вашим Due. Последовательный монитор поддерживает только скорости до 115200 бод, но вы можете использовать отдельное окно терминала, которое позволяет вам устанавливать все, что вам нравится.
Немного больше информации смотрите в этой теме на форуме Arduino.
С точки зрения настройки, на Arduino это так же просто, как
Serial.begin(1000000);
и до такой степени. Это все о настройке устройства, с которым вы хотите общаться, и о том, что он может обрабатывать.источник
Я бы посмотрел на написание кастомной прошивки для Atmega16u2, которая выполняет интерфейс USB. Эта микросхема может говорить по полной скорости USB (скорость сигнала до 12 Мбит), и выходной порт SPI этого чипа удобно доступен в заголовке ICSP. Подключите это к входу SPI в Arduino (также доступно в его заголовке ICSP), и вы можете запустить SPI со скоростью 4 Мбит / с (4 тактовых такта на бит).
Atmegas на мега (16u2 и 128) может работать со своим последовательным портом до 2 Мбит / с. Если вы пишете специальную прошивку для 16u2, вы также можете использовать уже существующий асинхронный последовательный USART.
В обоих случаях вы, скорее всего, потеряете программируемость последовательного порта, поэтому вам придется использовать отдельный программатор на основе USB.
В проекте LUFA есть много примеров программ и полезных библиотек для реального разговора USB на чипе Atmega. libusb - это удобная библиотека для непосредственного общения с USB-устройствами, вместо того, чтобы полагаться на последовательную эмуляцию.
источник
Есть некоторые результаты, которые могут быть полезны здесь .
источник