OR-WRT - Поддержка

Разработка стандартизированных модулей для домашнего робостроения.
Правила форума
Правила раздела OpenRobotics

Re: OR-WRT - Поддержка

Сообщение AndreiSk » 30 июн 2012, 23:17

Может протокол обмена добавить с проверками принято-не принято?
Я припоминаю, на пике на больших скоростях (115200/230400/460800/921600)
без этого не работало.
Аватара пользователя
AndreiSk
 
Сообщения: 2639
Зарегистрирован: 23 апр 2009, 17:03
Откуда: Москва, Самара
прог. языки: C#

Re: OR-WRT - Поддержка

Сообщение =DeaD= » 01 июл 2012, 10:05

Какой смысл в протоколе, если оно уже 3-й символ гарантированно не принимает? У меня и так сейчас 100% команд вываливается с ошибкой приёмки, даже на существующих простейших проверках корректности команд. :(
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: OR-WRT - Поддержка

Сообщение Tsi329 » 01 июл 2012, 11:56

=DeaD=, не совсем понял как Вы подключали WR703N. Через встроенный ком порт? Или через USB?
У меня реализовано так: Arduno MEGA(FT232)->USB->WR703N->Ser2net(115200)->Wifi->Роутер(DIR-320)->Ethernet port->Комп
Всё отлично работает на скорости 115200.
Tsi329
 
Сообщения: 135
Зарегистрирован: 24 авг 2010, 11:48
Откуда: Минск
прог. языки: C++,C,Asm

Re: OR-WRT - Поддержка

Сообщение =DeaD= » 01 июл 2012, 12:07

Я делал всё через встроенный COM-порт. Не хочется городить USB-хаб еще на робота :( но на крайний вариант видимо придется.
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: OR-WRT - Поддержка

Сообщение Tsi329 » 01 июл 2012, 13:43

Попробуйте проверить работу встроенного COM-порта используя чистую Open-WRT, дабы исключить влияние прошивки на работу WR703N.
Tsi329
 
Сообщения: 135
Зарегистрирован: 24 авг 2010, 11:48
Откуда: Минск
прог. языки: C++,C,Asm

Re: OR-WRT - Поддержка

Сообщение =DeaD= » 01 июл 2012, 13:50

К сожалению нет квалификации для этого и времени её приобрести :(
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: OR-WRT - Поддержка

Сообщение dccharacter » 01 июл 2012, 14:33

Антон, костыль-то простой :-) Делай паузу между символами :-))))
Костыль №2 (проверять надо, не уверен, что так вообще можно) - задай в настройках роутера скорость не 115200, а, например, 115000
Костыль №3 - измени чуть-чуть каунтер бод-рейт генератора в атмеге.
Мой волшебник это я сам. Всю архитектуру программы придумал лично, а ребята помогли воплотить её. Я бы и сам мог написать, но лень учить язык и его конструкции.
Аватара пользователя
dccharacter
 
Сообщения: 4995
Зарегистрирован: 10 дек 2010, 13:16
Откуда: Красногорск МО
прог. языки: C, Python, wiring/processing
ФИО: Андрей

Re: OR-WRT - Поддержка

Сообщение =DeaD= » 01 июл 2012, 15:10

Если по каждому поводу не проблему решать, а костылями всё подпирать - это же что на выходе то получится? :)

Добавлено спустя 1 минуту 23 секунды:
Если не будет нормального решения - соглашусь на USB-хаб и OR-USB-UART в роботе. Всё равно последний желательно иметь для обновления прошивки контроллера. А в случае ORduino Nano - оно по умолчанию там будет.

Добавлено спустя 4 минуты 21 секунду:
В последнем случае идеально - если elmot сможет сделать прошивку, изначально поддерживающую CP2102.
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: OR-WRT - Поддержка

Сообщение _Pirra » 02 июл 2012, 11:04

alex&r писал(а):Господа, и Дамы, конечно, а никто не пытался развить index.html и serial.cgi на C, которые я выкладывал 13 мая 2012? Все устойчиво работает на любых скоростях (от 9600 до 115200), с любыми байтами (от 0x00 до 0xFF) без всяких приписок и, главное, в обе стороны (мерю напряжения и температуры контроллеров Pololu ttp://www.pololu.com/docs/0J44/6.2.1 ).
На всякий случай, выкладываю повторно:


А туда никаких доп модулей не надо устанавливать? А то у меня uart молчит.
(порт в index подправила)

Добавлено спустя 46 минут 59 секунд:
=DeaD= писал(а):
Добавлено спустя 9 минут 25 секунд:
Похоже TP-Link WR703n выдаёт "чуть-чуть" большую скорость, чем 115200 и ATMega128 засыпается при попытке прочитать такой уарт, хотя CP2102 читает без проблем :(


А какой кварц на котроллере?
Если вчитатся в ПДФ там будет прописанно, что МК имеет накапливающуюся ошибку обмена по уарт, которую надо корректировать программно. Это связанно с коэффициентами деления частоты кварца. Если нужен уарт без ошибок, обычно используют нестандартные кварцы. Например для скорости 19200 на ПИКах я применяю кварц в 3,686400 МГц.
Это не дым канифоли. Это души погибших транзисторов...
Аватара пользователя
_Pirra
 
Сообщения: 29
Зарегистрирован: 23 май 2012, 15:46
Откуда: Ростов-на-Дону
прог. языки: Delphi

Re: OR-WRT - Поддержка

Сообщение =DeaD= » 02 июл 2012, 11:08

_Pirra писал(а):А какой кварц на котроллере?
Если вчитатся в ПДФ там будет прописанно, что МК имеет накапливающуюся ошибку обмена по уарт, которую надо корректировать программно. Это связанно с коэффициентами деления частоты кварца. Если нужен уарт без ошибок, обычно используют нестандартные кварцы. Например для скорости 19200 на ПИКах я применяю кварц в 3,686400 МГц.

Ну конечно же правильный кварц :) 7.3728MHz, - 0% ошибок на 115200.
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: OR-WRT - Поддержка

Сообщение boez » 02 июл 2012, 11:48

Ну а вот у роутера наверное кварц неправильный... Я ж думаю там аналог 16550, щас вроде на современных SoC самоделками не балуются, везде 16550 уарты ставят. Интересно было бы копнуть прошивку на предмет частот и делителей - какой частотой тактируется уарт? Наверняка какой-то периферийный такт, а у 16550 формула примерно такая же как у меги - baudrate=clock/(16*N). А может вообще косяк в драйверах, причем даже не в самом 16550, а clock реальный отличается от того, который сообщается драйверу уарта?
boez
 
Сообщения: 1981
Зарегистрирован: 27 авг 2008, 10:45
Откуда: Харьков
прог. языки: С/С++

Re: OR-WRT - Поддержка

Сообщение elmot » 02 июл 2012, 13:28

=Dead=, вот ты и поймал проблему, мною уже пойманную. Ты можешь оценить, какая реально скорость у UART роутера?
Аватара пользователя
elmot
 
Сообщения: 5691
Зарегистрирован: 10 ноя 2011, 12:02
Откуда: Turku, Finland
Skype: elmot73
прог. языки: Java и все-все=все
ФИО: Илья

Re: OR-WRT - Поддержка

Сообщение =DeaD= » 02 июл 2012, 13:41

Имхо - где-то 110`600 вместо 115`200. А вообще я уже сильно близок к решению с хабом :)
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: OR-WRT - Поддержка

Сообщение boez » 02 июл 2012, 16:47

Заглянул в исходник ядра (/arch/mips/ath79/clock.c). Там есть вот такая строчка:
Код: Выделить всё
260         pr_info("Clocks: CPU:%lu.%03luMHz, DDR:%lu.%03luMHz, AHB:%lu.%03luMHz, "
261                 "Ref:%lu.%03luMHz",
(там дальше передаются как раз CPU,DDR,AHF и Ref клоки в мегагерцах и их дробные части)
и вот такие (для чипсета 933x):
Код: Выделить всё
165         ath79_wdt_clk.rate = ath79_ref_clk.rate;
166         ath79_uart_clk.rate = ath79_ref_clk.rate;


Т.е. частота уарта = частоте Ref. А вот это из лога загрузки openwrt на 703-м (из вики опенврт):
Код: Выделить всё
Clocks: CPU:400.000MHz, DDR:400.000MHz, AHB:200.000MHz, Ref:25.000MHz


Т.е. можно видеть, что частота уарта составляет 25 МГц. 25000000/(16*115200) = 13.56. Я так понимаю, драйвер ставит или 13, или 14 и получает вполне оправданную ошибку скорости в (13.56/13-1)*100=4.3% или (14/13.56-1)*100 = 3.2%. Реальная скорость 25000000/(13*16) = 111607 или 25000000/(14*16) = 120192. Вот как-то так... Я кстати не понял, DeaD, у тебя на картинке и в сообщении под ней скорость выше, а ты пишешь 110600, это же ниже выходит...
boez
 
Сообщения: 1981
Зарегистрирован: 27 авг 2008, 10:45
Откуда: Харьков
прог. языки: С/С++

Re: OR-WRT - Поддержка

Сообщение elmot » 02 июл 2012, 16:59

Ну что, может перейти на 57600? тогда с коэффициентом 27 ошибка должна стать 0.5%?
Аватара пользователя
elmot
 
Сообщения: 5691
Зарегистрирован: 10 ноя 2011, 12:02
Откуда: Turku, Finland
Skype: elmot73
прог. языки: Java и все-все=все
ФИО: Илья

Пред.След.

Вернуться в Open Robotics

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1