roboforum.ru

Технический форум по робототехнике.

Концепция ORFA и немного шире

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

Re: Концепция ORFA и немного шире

Сообщение =DeaD= » 16 фев 2010, 14:54

Это как раз сейчас уже делает Vooon вынося отдельно HAL уровень - т.е. отделяет драйвера устройств от обертки под i2c протокол. См. картинку выше.

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

Re: Концепция ORFA и немного шире

Сообщение Michael_K » 16 фев 2010, 15:21

Угу, я так и понял. :good:
Аватара пользователя
Michael_K
 
Сообщения: 6028
Зарегистрирован: 07 окт 2009, 00:29
Откуда: СПб

Re: Концепция ORFA и немного шире

Сообщение =DeaD= » 16 фев 2010, 16:57

Скорректированная структура ORFA

По предложению Vooon'а устраняем мастер и слейв прошивку, сливаем воедино.
Вводим понятие ORFA-адаптера HAL-драйвера. Делаем специфические парсеры в каждом ORFA-адаптере.
Вложения
ORFA-struct.pdf
(49.77 КиБ) Скачиваний: 13
ORFA-master-struct.zip
(23.25 КиБ) Скачиваний: 0
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: Концепция ORFA и немного шире

Сообщение kbnn » 09 мар 2010, 08:58

Где можно побольше узнать об синтаксисе ORFA, какие в ней есть драйвера и как ими пользоваться. Т.е. синтаксис драйверов. Как должны выглядеть команды?
Аватара пользователя
kbnn
 
Сообщения: 74
Зарегистрирован: 22 окт 2009, 16:13
Откуда: Дедовск

Re: Концепция ORFA и немного шире

Сообщение =DeaD= » 09 мар 2010, 10:31

Вот тут Vooon инструкцию к ORFA начинал писать: viewtopic.php?p=151341#p151341

Еще можно глянуть примеры в инструкциях к модулям:
OR-AVR-M32-D - mediawiki/images/d/da/OR-AVR-M32-D-UG.pdf
OR-AVR-M128-S - mediawiki/images/4/45/OR-AVR-M128-S.pdf
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: Концепция ORFA и немного шире

Сообщение kbnn » 09 мар 2010, 19:53

Объясните пожалуйста:
OR-AVR-M128-S.pdf
страница 16
третья строка таблицы.

Пример* Установить порт A0 контроллера в логический вход и прочитать его значение:
<S40 06 00 S40 02 S41 01 P
>SWAASWASR01P

S40 06 00 - Это понятно но вроде не А0 а весть PORTA установили в "логический вход". правильно?
S41 01 - Не понятно что значит 41, почему 41? И, вот, мы значение прочитали, а куда?

Прошу прощения за ламерство.
Аватара пользователя
kbnn
 
Сообщения: 74
Зарегистрирован: 22 окт 2009, 16:13
Откуда: Дедовск

Re: Концепция ORFA и немного шире

Сообщение =DeaD= » 09 мар 2010, 20:11

S40 это запросы на запись к устройству 40, S41 - запросы на чтение (особенности адресации запросов протокола I2C).
<S40 06 00 S40 02 S41 01 P
>SWAASWASR01P

Да, тут весь порт ставим на чтение и читаем байт с этого порта.

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

Re: Концепция ORFA и немного шире

Сообщение kbnn » 09 мар 2010, 20:21

Спасибо.
Следующий вопрос.
Страница 17 (следующая)
1.Настройки АЦП (используются младшие 3 бита):
●биты 0..1:
00 - External reference
01 - AVCC
10,11 - Internal reference
●бит 2 - режим точности АЦП:
0 - 8-битный;
1 - 11-битный; это ошибка?
2.Маска включаемых в АЦП каналов (8 бит - соотв. 8 линиям порта А);
Второй регистр для чтения результатов - из него читаются 8 байт, если режим 8-битный или 16 байт, если режим 16-битный. Можно читать меньше, тогда будем знать состояние первых нескольких линий.
Аватара пользователя
kbnn
 
Сообщения: 74
Зарегистрирован: 22 окт 2009, 16:13
Откуда: Дедовск

Re: Концепция ORFA и немного шире

Сообщение =DeaD= » 09 мар 2010, 20:23

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

Re: Концепция ORFA и немного шире

Сообщение Vooon » 09 мар 2010, 23:11

Нет, это все же ошибка! Режим 10 бит, а не 11 (таких просто нет :)).
А вот читать нужно два байта (16 бит) т.к. минимальный размер данных — байт (октет).
Linux user | Firefox user
Аватара пользователя
Vooon
Site Admin
 
Сообщения: 3339
Зарегистрирован: 09 фев 2006, 15:36
Откуда: Москва
Skype: vooon341
прог. языки: Python, C, Bash, JavaScript, C++, PHP
ФИО: Владимир Ермаков

Re: Концепция ORFA и немного шире

Сообщение =DeaD= » 09 мар 2010, 23:36

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

Re: Концепция ORFA и немного шире

Сообщение kbnn » 10 мар 2010, 14:56

Спасибо за помощь.
Вот еще вопрос.
страница 17 (Драйвера АЦП)

Пример 2*. Читаем 0-3 каналы АЦП.
<S 40 0D S 41 04 P
>SWASRFFD7D7D6P
S40 0D - отправим в устройство 0x40 номер регистра 0D, после чего S 41 04 – прочитаем теперь из устройства четыре байта значений из АЦП, P - конец запроса. Ответ: SW - начали запись в устройство, A - подтверждения записи 1 байта в устройство, SR<aa><bb><cc><dd> - возвращенные значения на входах АЦП, P - конец ответа.

А откуда видно что мы читаем 0-3 каналы?
Аватара пользователя
kbnn
 
Сообщения: 74
Зарегистрирован: 22 окт 2009, 16:13
Откуда: Дедовск

Re: Концепция ORFA и немного шире

Сообщение =DeaD= » 10 мар 2010, 15:10

Потому что читаем всегда первые 0..N-1 каналов при запросе S 40 0D S 41 <N> P, если режим 8-битный, или первые 0..N-1 каналов при запросе S 40 0D S 41 <2*N> P, если режим 10битный
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: Концепция ORFA и немного шире

Сообщение kbnn » 10 мар 2010, 17:04

Что то не понимаю.
Вот, например, делаем АЦП - анализатор напряжения.
Подаем на PORTA0 напряжение с батареек.
Пишем S40 0C 03 00 P
Это мы включили.
А что бы прочитать нужно написать
S41 0C 09 P
Так? Мы получим в ответ 8 бит?
Аватара пользователя
kbnn
 
Сообщения: 74
Зарегистрирован: 22 окт 2009, 16:13
Откуда: Дедовск

Re: Концепция ORFA и немного шире

Сообщение =DeaD= » 10 мар 2010, 17:13

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

Пред.След.

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

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

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