roboforum.ru

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

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

Правила форума
Правила раздела OpenRobotics

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

=DeaD= » 16 фев 2010, 14:54

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

По поводу расширений - да, именно поэтому мы и говорим, что каждый драйвер сможет регистрировать свою часть парсера для своих команд.

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

Michael_K » 16 фев 2010, 15:21

Угу, я так и понял. :good:

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

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

kbnn » 09 мар 2010, 08:58

Где можно побольше узнать об синтаксисе ORFA, какие в ней есть драйвера и как ими пользоваться. Т.е. синтаксис драйверов. Как должны выглядеть команды?

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

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? И, вот, мы значение прочитали, а куда?

Прошу прощения за ламерство.

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

=DeaD= » 09 мар 2010, 20:11

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

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

Прочитанный байт видно в ответе:
>SWAASWASR01P

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-битный. Можно читать меньше, тогда будем знать состояние первых нескольких линий.

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

=DeaD= » 09 мар 2010, 20:23

там вроде как раз 11-битный, просто перепутали :) 16 бит это просто два байта, потому как полбайта нельзя вернуть.

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

Vooon » 09 мар 2010, 23:11

Нет, это все же ошибка! Режим 10 бит, а не 11 (таких просто нет :)).
А вот читать нужно два байта (16 бит) т.к. минимальный размер данных — байт (октет).

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

=DeaD= » 09 мар 2010, 23:36

Понял, внёс исправления в инструкции, расположены там же. Исправил блок про драйвер АЦП и про драйвер портов в части примера ввода инфы с порта А (а не А0 как было).

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 каналы?

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битный

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

kbnn » 10 мар 2010, 17:04

Что то не понимаю.
Вот, например, делаем АЦП - анализатор напряжения.
Подаем на PORTA0 напряжение с батареек.
Пишем S40 0C 03 00 P
Это мы включили.
А что бы прочитать нужно написать
S41 0C 09 P
Так? Мы получим в ответ 8 бит?

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 - приступить к выполнению.


cron
Rambler\'s Top100 Mail.ru counter