Клон Arduino Nano на СР340g + Ubuntu
- Войдите на сайт для отправки комментариев
Вс, 31/01/2016 - 23:07
Добрый день,
Мучаюсь с клоном nano на CH340g.
К примеру на ней крутится тестовый простой сткетч который просто возвращает что пришло в Serial
int incomingByte = 0;
void setup() {
Serial.begin(9600);
}
void loop() {
if (Serial.available() > 0) {
incomingByte = Serial.read() - '0';
Serial.print("I received: ");
Serial.println(incomingByte, DEC);
}
}
Проблемма в том что на ubuntu при отправке через echo DATA > /dev/ttyUSB0 прибаляется какой то мусор, например:
К примеру отплавлять через python;
import serial
ser = serial.Serial('/dev/ttyUSB0', 9600)
ser.write("3")
ser.close()
Мусорапри этом нет, НО не работает до тех пор пока не выполнить tail -f /dev/ttyUSB и прервать CTRL+C. После этого все работает ок (до перезакрузки).
C дистрибутивом не связанно, проверяля еще на 2х 14.04 одна из которых была специально для теста .
Может у кого нибудь есть идеи ?
PS. Пробовал разную скорость для serial и разные параметры в stty -не помогло.
идея есть: поставь винду
идея есть: поставь винду
винда - зло
свободные люди должны одеться в рубище и утсановить себе линукс на комп.
да пожалуйста. на каких костылях работать каждый сам выбирает
Еще пример вывода:
А в Ubuntu какая скорость порта при инициализации?
Пробовал разную: 4800, 9600, 19200, 38400 на ардуине в скетче аналогично - разницы ноль.Результат один
Еще пример вывода:
хм. это какой код у тебя это выводит?
Пробовал разную: 4800, 9600, 19200, 38400 на ардуине в скетче аналогично - разницы ноль.Результат один
А каким образом инициализируешь порт?
Вот так - stty -F /dev/ttyUSB0 cs8 115200 ignbrk -brkint -icrnl -imaxbel -opost -onlcr -isig -icanon -iexten -echo -echoe -echok -echoctl -echoke noflsh -ixon -crtscts
Так у Вас 115200, а не 9600
это я отправил последнюю пробу, в стандарте я и спользую 9600 и на ардуине так же.
При обращении к порту какие светодиоды на ардуине моргают?
Возможно что проблема с сигналом DTR, он при каждом обращении ребутит ардуину
Спасибо! проблемма идентичная.
То что описанно там не проверял еще, но думаю поможет.
Еще раз спасибо за правильное направление
Вообщем вот так, может кому пригодится:
Когда Nano подключена либо к компьютеру с Mac OS X или Linux, она перезапускается каждый раз, когда состоится подключение к ней из программы (через USB). В последующие полсекунды (примерно) на плате запускается загрузчик. Когда она запрограммирована на игнорирование данных (например, на всё кроме загрузки нового кода), она перехватит несколько первых байтов данных, отправленных плате после открытия соединения. Если программа на плате получает данные на лету или другие данные когда она запускается, удостоверьтесь, что ПО, которое передаёт данные, делает паузу в одну секунду после открытия подключения перед отправкой данных.
Поэтому когда tail держит порт - все работает.
Поэтому когда tail держит порт - все работает.
Только в режиме записи, а врежиме чтения такой фокус не пройдет