Ник:
Пароль:

Контакты

E-mail: info@starterkit.ru
тел.: +7 922 680-21-73
тел.: +7 922 680-21-74
Телеграм: t.me/starterkit_ru

Способы оплаты

User Info


Добро пожаловать,
Guest

Регистрация или входРегистрация или вход
Потеряли пароль?Потеряли пароль?

Ник:
Пароль:

ПользователейПользователей:1
Поисковых ботовПоисковых ботов:3
ГостейГостей:1

ОбновитьПодробнееВсегоВсего:5
Форум » starterkit.ru » Embedded Linux
LIRC AT91
Spym
Добавлено 23.11.2010 12:44
0
Сообщение: 1
Spym
0

Пункты: 75
Регистрация: 23.11.2010
Добрый день.

Интересует применение LIRC на AT91.
Есть ли опыт применения, имеется ли поддержка порта, кто эксперементировал?
Совместим ли драйвер последовательного порта LIRC с аппаратурой AT91?

Заранее благодарен.
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 23.11.2010 13:22 Сообщение: 2
sasamy
4.71

Пункты: 83567
Регистрация: 14.08.2009
Цитата
Совместим ли драйвер последовательного порта LIRC с аппаратурой AT91?


Цитата

Please note that the serial port driver in the LIRC package only supports 8250 compatible UARTs


Но думаю можно заставить работать на обычном gpio с небольшими переделками - DCD который там в качестве пина данных - как ногодрыгатель и используется. У меня есть какой-то IR приемник, попробую на imx233.
Спуститься к концу Подняться к началу
Персональная информация
Spym
Добавлено 23.11.2010 14:28 Сообщение: 3
Spym
0

Пункты: 75
Регистрация: 23.11.2010
Хм. А существующих решений, что, нет?
А то я пошел писать драйвер.
Спуститься к концу Подняться к началу
Персональная информация
aal72
Добавлено 01.05.2011 11:24 Сообщение: 4
aal72
1

Пункты: 699
Регистрация: 18.04.2011
Пол: Мужчина
Как продвигаются дела?
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 05.05.2011 13:33 Редактировалось 05.05.2011 13:34 Сообщение: 5
sasamy
4.71

Пункты: 83567
Регистрация: 14.08.2009
Подправил драйвер
http://sasamy.narod.ru/lirc_serial.c

Правил последнюю версию lirc-0.9.0, чтобы собрать нужно

1 Изменить номер GPIO под свои реалии, у меня использовался
static int signal_pin = 153; // AT91_PIN_PD25

2 заменить существующий драйвер в lirc-0.9.0/drivers/lirc_serial/lirc_serial.c

3 задать переменные окружения перед сборкой (для правильной сборки модулей ядра)
#export ARCH=arm
#export CROSS_COMPILE=arm-angstrom-linux-gnueabi-

4 сконфигурировать, например для моего случая (префикс для целевой системы я оставил по умолчанию , чтобы потом было удобней удалять ;-) /usr/local)

./configure --build=i386-linux-gnu --target=arm-angstrom-linux-gnueabi --host=arm-angstrom-linux-gnueabi --with-driver=serial --with-kerneldir=/home/sasa/atmelnew/kernel-m10/linux-2.6.30-exp4sk_test_ramswap --without-x

5 собрать
#make

6 Установить, например
#make DESTDIR=/home/sasa/lirc install
при этом у меня почему-то версия ядра взялась с хостовой системы и модули оказались в
/home/sasa/lirc/lib/modules/2.6.32-32-generic/misc

7 Скоптровать бинарники в целевую корневую, модули я скопировал в домашнюю директорию /root

8 После запуска на целевой системе
#insmod /root/lirc_dev.ko
#insmod /root/lirc_serial.ko

Для теста использовал
#cat /dev/lirc0

ИК приемник мне выпаяли из какого-то телевизора - поэтому не знаю название :) самый распространенный tsop1738 должен работать но имейте ввиду - я все делал на at91sam9g45, у него порты 3,3 В и не толерантны к 5 В, я на линию данных последовательно ставил резистор 10 кОм.

Результат - что-то работает но у меня срабатывает если пульт ДУ приставить вплотную к ИК приемнику - с чем связано не знаю, либо частота модуляции пульта и приемника разные, либо неправильно что-то с согласованием уровней 5В->3,3В. Если найдете ИК приемник который работает на 3,3 В будет все намного проще.
Спуститься к концу Подняться к началу
Персональная информация
Pegase
Добавлено 22.02.2012 15:23 Сообщение: 6
Pegase
0

Пункты: 2484
Регистрация: 10.11.2010
Добрый день.
Нужно перенести поддержку Lirc на плату SK-MNUC950. Меняю GPIO на MK_168 (nIRQ1) порт H1. Модуль нормально становится но при записи irrecord говорит что сигнал длинный. Одно нажатие клавиши воспринимается как несколько. (Пульт и приемник рабочий, все хорошо функционирует на AT91SAM9XE512). В чем может быть проблема? Нужно еще менять какие-то временные параметры?

Драйвер lirc_serial.c

Код
root@NUC950:~# modprobe lirc_serial

lirc_dev: IR Remote Control driver registered, major 61

lirc_serial: auto-detected active low receiver

lirc_dev: lirc_register_driver: sample_rate: 0

root@NUC950:~# irrecord / -d /dev/lirc0 /home  /lircd.conf
irrecord - application for recording IR-codes for usage with lirc
Don't stop pressing buttons until two lines of dots (2x80) have been
generated.
Press RETURN now to start recording.
................................................................................

Found gap: 1613
Please keep on pressing buttons like described above.
....irrecord: signal too long
Creating config file in raw mode.
Спуститься к концу Подняться к началу
Персональная информация
Jury093
Добавлено 23.02.2012 01:30 Сообщение: 7
Jury093
4.5

Пункты: 54271
Регистрация: 25.05.2009
Пол: Мужчина
Из: Санкт-Петербург
Цитата
Меняю GPIO на MK_168 (nIRQ1) порт H1.

проверьте, может надо с настройкой прерывания разобраться. например, изменить с уровня на фронт..
или смотрите в сорцах место, где пишется "too long" и почему оно пишется..

На любой вопрос есть любой ответ.
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 23.02.2012 15:33 Сообщение: 8
sasamy
4.71

Пункты: 83567
Регистрация: 14.08.2009
Нужно чтобы прерывания срабатывали по обоим фронтам на GPIO - можно ли так сделать на мнуке не знаю, возможно придется переделывать драйвер немного.
Спуститься к концу Подняться к началу
Персональная информация
Jury093
Добавлено 24.02.2012 22:15 Сообщение: 9
Jury093
4.5

Пункты: 54271
Регистрация: 25.05.2009
Пол: Мужчина
Из: Санкт-Петербург
вот варианты внешних прерываний для W90P950:
title

На любой вопрос есть любой ответ.
Спуститься к концу Подняться к началу
Персональная информация
Pegase
Добавлено 28.02.2012 15:27 Сообщение: 10
Pegase
0

Пункты: 2484
Регистрация: 10.11.2010
Всем спасибо. Подправил драйвер, все хорошо работает. Немного прийшлось по мучиться с прерываниями.
lirc_serial.c
Спуститься к концу Подняться к началу
Персональная информация
Форум » starterkit.ru » Embedded Linux