roboforum.ru

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

OMAP3530 как платформа для "робота"

Re: OMAP3530 как платформа для "робота"

mgalemin » 14 авг 2011, 16:08

В 3.1-rc1 пока нет, на LKML мелькают патчи за конец 2010 года, сам драйвер нашел только в master репозитория что давал выше. Подождем... Хотя патч есть - значит пока есть с чем работать.

Re: OMAP3530 как платформа для "робота"

Sigi » 14 авг 2011, 17:35

mgalemin писал(а):Да, в linux есть драйвер i2c шины, но нет драйвера для этого акселерометра. Не будет же user space приложение напрямую работать с данными от чипа (может на шине висят еще 32 устройства) или обрабатывать прерывания от микросхемы - это работа драйвера. :)


А я так и хотел сделать (из своего приложения по I2C просто считывать данные) :) Правда я думаю это вообще на DSP ядре делать, там же его можно отфильтровать, DSP для этого на мой взгляд лучше подходит. На неделе собираюсь поехать за датчиком, там посмотрим как с ним работать. В любом случае наличие патча явно упростит задачу.

А Вы кстати какую версию ядра используете? 3.1?

Re: OMAP3530 как платформа для "робота"

mgalemin » 15 авг 2011, 01:35

3.1 еще только rc1 (release candidate). Пока использую 2.6.39.1, скоро перейду на 3.x - жду когда в mainline добавят драйвер mt9p031 от Atpina (это модуль камеры, который я использую).

Re: OMAP3530 как платформа для "робота"

Sigi » 18 авг 2011, 13:02

mgalemin писал(а):3.1 еще только rc1 (release candidate). Пока использую 2.6.39.1, скоро перейду на 3.x - жду когда в mainline добавят драйвер mt9p031 от Atpina (это модуль камеры, который я использую).


А DSPlink на этом релизе работает? У меня при попытке включить питание ядра командой "lpmON.x470uC" система выдает:

Код: Выделить всёРазвернуть
==== LPM ON Test ====
app: LPM_open
app: LPM_set(LPM_CTRL_REFCOUNTOVR)
Segmentation fault


Не сталкивались с этой проблемой?

Кстати когда я пытался использовать ядро 2.6.38 была такая же ошибка, я после этого откатился до 2.6.32, на нем все работает.

Добавлено спустя 1 час 58 минут 21 секунду:
Пока смог найти, что ошибка происходит в lpm в файле "lpm_driver.c" при вызове процедуры "down_interruptible(&inst->sem)" в процедуре "lpm_ioctl":

Код: Выделить всёРазвернуть
static int lpm_ioctl(struct inode *inode, struct file *filp,
                     unsigned int cmd, unsigned long args)
{
    struct LPM_Dev     *dev;
    LPM_Instance       *inst;
    LPM_Client         *client;
    LPM_Status          lpmStat = LPM_SOK;
    int                 stat = 0;

    TRACE(KERN_ALERT "--> lpm_ioctl, cmd: 0x%X\n", cmd);

   
    /* get pointer to this driver's device object */
    dev = container_of(inode->i_cdev, struct LPM_Dev, cdev);
   
    /* set alias to instance object for this device */
    inst = &dev->inst[iminor(inode)];
   
    /* enter critical section */
    if (down_interruptible(&inst->sem)) {
        stat = -ERESTARTSYS;
        goto fail;
    }

    ...


Я так понимаю проблема в несовместимости модуля с текущей версией ядра, правда я пока не понял, что надо поменять, что бы все заработало.

Re: OMAP3530 как платформа для "робота"

mgalemin » 18 авг 2011, 16:49

Я не совсем понял что именно не работает. Вы скомпилировали lpm_omap3530.ko используя исходники 2.6.38 и на ядре 2.6.38 вылетает ошибка, но после сборки под 2.6.32 все работает на 2.6.32? Просто если вы собрали LPM модуль используя исходники 2.6.32, то и работать он будет на 2.6.32 (на 2.6.38 не будет, т.к. там много изменений было).

P.S. 2.6.32 для Beagleboard (validation) на сегодняшний день самое проверенное и стабильное ядро. В нем были смержены все PM вкусности из репозиториев Arago (сейчас большинство уже в mainline). Если нет необходимости переходить на новое ядро - я бы на Вашем месте не переходил бы.

Re: OMAP3530 как платформа для "робота"

Sigi » 18 авг 2011, 19:36

mgalemin писал(а):Я не совсем понял что именно не работает. Вы скомпилировали lpm_omap3530.ko используя исходники 2.6.38 и на ядре 2.6.38 вылетает ошибка, но после сборки под 2.6.32 все работает на 2.6.32? Просто если вы собрали LPM модуль используя исходники 2.6.32, то и работать он будет на 2.6.32 (на 2.6.38 не будет, т.к. там много изменений было).


Я компилировал модуль для 2.6.39 и для 2.6.38, и запускал я соответственно под той же версией ядра, что и компилировал, и в том и в другом случае вылетает одна и та же ошибка. Работает все на модуле скомпилированном для ядра 2.6.32, и соответственно под ядром 2.6.32.

mgalemin писал(а):P.S. 2.6.32 для Beagleboard (validation) на сегодняшний день самое проверенное и стабильное ядро. В нем были смержены все PM вкусности из репозиториев Arago (сейчас большинство уже в mainline). Если нет необходимости переходить на новое ядро - я бы на Вашем месте не переходил бы.


Я не знал, спасибо за совет, в этом случае не буду переходить на новое ядро. Кстати, а что такое "PM вкусности"?

ПС Кстати купил акселерометр, осталось припаять его и заставить работать :)

Re: OMAP3530 как платформа для "робота"

mgalemin » 19 авг 2011, 02:09

Хм, тогда затрудняюсь ответить почему модуль не работает.

PM - это Power Management, в частности такая полезная штука как SmartReflex - подстройка напряжения ядра соответственно частоте, нужна для запуска OMAP3630 на 1 HGz.

Завидую белой завистью. :) Так быстро акселерометр с Digikey доставили? И выбор, как я понимаю, пал на LSM303DLM?

Я кстати решил добавить на плату еще гироскоп L3G4200D, и как ни странно у Linaro в ветке для ux500 тоже есть для него драйвер, чему я безумно рад. :) Пора браться за разводку платы.

Re: OMAP3530 как платформа для "робота"

Vooon » 19 авг 2011, 08:38

Это все потому что аксель/магнитометр, гира и барометр уже не плате :)
Кстати похоже что U9500 может I2C 400 KHz.

Re: OMAP3530 как платформа для "робота"

Sigi » 19 авг 2011, 09:24

mgalemin писал(а):Хм, тогда затрудняюсь ответить почему модуль не работает.

PM - это Power Management, в частности такая полезная штука как SmartReflex - подстройка напряжения ядра соответственно частоте, нужна для запуска OMAP3630 на 1 HGz.

Завидую белой завистью. :) Так быстро акселерометр с Digikey доставили? И выбор, как я понимаю, пал на LSM303DLM?

Я кстати решил добавить на плату еще гироскоп L3G4200D, и как ни странно у Linaro в ветке для ux500 тоже есть для него драйвер, чему я безумно рад. :) Пора браться за разводку платы.


Не работает он как я понял т.к. написан был под более старую версию ядра, надо сам модуль переписывать.

Акселерометр я в Терраэлектронике купил, он там в наличии, так что забрал почти сразу. Да купил его, вернее почти его, LSM303DLHTR.

Vooon писал(а):Это все потому что аксель/магнитометр, гира и барометр уже не плате :)
Кстати похоже что U9500 может I2C 400 KHz.


Эх если бы у меня акселерометрт был на плате... припаять его будет не просто :)

Re: OMAP3530 как платформа для "робота"

Vooon » 19 авг 2011, 10:21

Без break-out board что ли? Тогда он может еще и не заработать.
Я думал sparkfun'овский комплект.

Ну а размещение на плате имеет свои недостатки.

Re: OMAP3530 как платформа для "робота"

mgalemin » 19 авг 2011, 10:42

Vooon писал(а):Без break-out board что ли? Тогда он может еще и не заработать.


What does it mean?

Update: Сорри, с рабочего компьютера писал. Что значит модуль может не заработать, это же просто микросхема?..

P.P. Кстати, завидую еще что есть всякие террыэлектроники, тут в плане поставки электроники совсем болото. :(

Re: OMAP3530 как платформа для "робота"

Vooon » 21 авг 2011, 20:18

Может не заработать если не сделать по рефренсу питание и прочие части.

ЗЫ: Дэйв как-то же справляется... :) http://www.youtube.com/user/EEVblog

Re: OMAP3530 как платформа для "робота"

Sigi » 21 авг 2011, 22:22

Vooon писал(а):Может не заработать если не сделать по рефренсу питание и прочие части.


А, что там можно не так сделать? Там схема подключения элементарная (четыре конденсатора да подключение к питанию и шине данных).

Re: OMAP3530 как платформа для "робота"

mgalemin » 22 авг 2011, 01:42

Не особо понял что можно сделать не так с питанием и с чем же справляется Дэйв, ну да ладно... :)

Re: OMAP3530 как платформа для "робота"

Sigi » 25 авг 2011, 11:35

А как его вообще к плате присоединить?

Я сегодня попытался его припаять, приклеил её кверху ногами на макетную плату и собирался припаять проводками контактные площадки к плате. Но припаяв первый провод, я слегка дернул его (что бы проверить надежность пайки) и он оторвался вместе с контактной площадкой. Пока я вижу вариант припаять провода жестко к плате, а потом уже к микросхеме подпаивать.


Rambler\'s Top100 Mail.ru counter