реклама на сайте
подробности

 
 
> Драйвер АЦП, для ARM9
TigerSHARC
сообщение Jan 12 2012, 18:42
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 688
Регистрация: 4-09-09
Пользователь №: 52 195



Хочу прикрутить драйвер АЦП AD7606 к Linux на AT91SAM9260.
На сайте AD нашёл драйвер, интсрукцию по применению
=ad7606]http://wiki.analog.com/resources/tools-software/linux-drivers/iio-adc/ad7606?s[]=ad7606

вопросы:
1) нужно использовать файлы *.c и *.h (файлы драйвера по ссылке выше) как подключаемый модуль ядра (как по книге "Linux Device Driver")?
2) По ссылке выше сказано, что нужно добавить в конфигурацию ядра "Industrial I/O support", но у меня в меню конфигурации такой графы просто нет
У меня ядро 2.6.24. Старое для таких целей? или что-то нужно добавить предварительно?
3) встречаю пример применения драйвера:
CODE
static struct ad7606_platform_data ad7606_pdata = {
.default_os = 0,
.default_range = 10000,
.gpio_convst = GPIO_PF9,
.gpio_reset = GPIO_PF10,
.gpio_range = GPIO_PH0,
.gpio_os0 = GPIO_PH1,
.gpio_os1 = GPIO_PH2,
.gpio_os2 = GPIO_PH3,
.gpio_frstdata = -1,
.gpio_stby = GPIO_PF12,
};


правильно ли я понимаю что дефайны ног процессора (вроде GPIO_PF9) нужно искать в библиотеке компилятора (arm-none-eabi в моём случае) как для обычного ногодрыга.

Сообщение отредактировал TigerSHARC - Jan 12 2012, 18:43
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
TigerSHARC
сообщение May 22 2012, 18:22
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 688
Регистрация: 4-09-09
Пользователь №: 52 195



Не могу добится появления устройства в системе, как тут:

root:/> cd /sys/bus/iio/devices/
root:/sys/bus/iio/devices> ls
device0 device0:buffer0:access0 trigger0
device0:buffer0 device0:buffer0:event0

и тут:

root:/sys/devices/platform/ad7606-8.0/device0>


Хотя добавил устройства в makeconfig, добавил инициализацию АЦП, в массив ek_spi_devices[]:

CODE

static struct spi_board_info board_spi_board_info[] __initdata = {
#if defined(CONFIG_AD7606) || \
defined(CONFIG_AD7606_MODULE)
{
/* the modalias must be the same as spi device driver name */
.modalias = "ad7606-8", /* Name of spi_driver for this device */
.max_speed_hz = 10000000, /* max spi clock (SCK) speed in HZ */
.bus_num = 0, /* Framework bus number */
.chip_select = 3, /* Framework chip select */
.platform_data = &ad7606_pdata,
.irq = gpio_to_irq(AT91_PIN_PA22),
.mode = SPI_MODE_3,
},
#endif
};


сама структура АЦП тоже описана в файле борды

CODE
static struct ad7606_platform_data ad7606_pdata = {
.default_os = 0,
.default_range = 10000,
.gpio_convst = AT91_PIN_PA27,
.gpio_reset = AT91_PIN_PA28,
.gpio_range = AT91_PIN_PA29,
.gpio_frstdata = -1,
.gpio_stby = -1,
};


В качестве тактового генератора используется hrtimer. В файле борды есть :
CODE

static const char *hrtimer_trigger_pdata[] = {
"0", /* 0 is the name of the trigger */
NULL,
};

static struct platform_device hrtimer_trigger = {
.name = "iio_hrtimer_trigger",
.device = {
.platform_data = &hrtimer_trigger_pdata,
},
};


вот так выглядит функция инициализации перифирии:
CODE
static void __init ek_board_init(void)
{
/* Serial */
at91_add_device_serial();
/* USB Host */
at91_add_device_usbh(&ek_usbh_data);
/* USB Device */
at91_add_device_udc(&ek_udc_data);
/* SPI */
at91_add_device_spi(ek_spi_devices, ARRAY_SIZE(ek_spi_devices)); //в том числе и AD7606
/* NAND */
ek_add_device_nand();
/* Ethernet */
at91_add_device_eth(&ek_macb_data);
/* MMC */
at91_add_device_mmc(0, &ek_mmc_data);
/* I2C */
at91_add_device_i2c(ek_i2c_devices, ARRAY_SIZE(ek_i2c_devices));
/* LEDs */
at91_gpio_leds(ek_leds, ARRAY_SIZE(ek_leds));
/* Push Buttons */
ek_add_device_buttons();
}


Но в файловой системе всё равно ничего нового не появляется.
Что я делаю не так?
Как обычно добавляются драйверы в платформу?

Сообщение отредактировал TigerSHARC - May 22 2012, 18:23
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- TigerSHARC   Драйвер АЦП   Jan 12 2012, 18:42
- - xor.kruger   Нет. Если вы хотите написать драйверы, то все ...   Jan 13 2012, 07:32
- - Alesha   Судя по Linux Kernel Driver DataBase поддержка ind...   Jan 13 2012, 07:57
- - TigerSHARC   Спасибо ответившим. Буду копаться в ядрах постарше...   Jan 13 2012, 08:13
- - kurtis   Судя по http://kernelnewbies.org/Linux_2_6_39-Driv...   Jan 13 2012, 08:59
- - TigerSHARC   Добавить драйвер можно так(http://dmilvdv.narod.ru...   Jan 17 2012, 08:08
|- - TigerSHARC   Цитата(TigerSHARC @ Jan 17 2012, 12:08) Д...   Jan 22 2012, 10:40
- - xor.kruger   Да, после добавления (правки) файлов Kconfig и Mak...   Jan 18 2012, 19:53
|- - TigerSHARC   Цитата(xor.kruger @ Jan 18 2012, 22:53) Д...   Jan 19 2012, 08:07
- - xor.kruger   Попытаюсь вкратце ответить на Ваш вопрос. В меню-...   Jan 23 2012, 08:35
|- - TigerSHARC   Цитата(xor.kruger @ Jan 23 2012, 12:35) П...   Jan 23 2012, 19:12
- - xor.kruger   ЦитатаВ том то и дело что на сайте аналоговцев пок...   Jan 24 2012, 09:30
- - TigerSHARC   На аналоге не указано в каком файле описано Кодsta...   Jan 24 2012, 12:55
- - Dron_Gus   Структура (платформ дата) должна быть описана в фа...   Jan 25 2012, 18:20
- - TigerSHARC   Непонятно, как задать требуемую частоту дискретиза...   Mar 4 2012, 17:39
|- - sasamy   Цитата(TigerSHARC @ May 22 2012, 22:22) Х...   May 23 2012, 07:49
|- - TigerSHARC   Цитата(sasamy @ May 23 2012, 11:49) Вы не...   May 23 2012, 08:33
|- - sasamy   Цитата(TigerSHARC @ May 23 2012, 12:33) П...   May 23 2012, 08:46
- - TigerSHARC   выше написано. P.S. прошу прощения что немного ввё...   May 23 2012, 08:56
|- - sasamy   ЦитатаЕщё непонятно как довабить в систему hrtimer...   May 23 2012, 09:13
|- - TigerSHARC   Цитата(sasamy @ May 23 2012, 13:13) http:...   May 23 2012, 09:20
- - xor.kruger   На linux4sam.org (сайт посвященный Embedded Linux ...   Jun 20 2012, 10:54
- - TigerSHARC   Цитата(xor.kruger @ Jun 20 2012, 13:54) Н...   Jun 20 2012, 12:50


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 31st July 2025 - 07:26
Рейтинг@Mail.ru


Страница сгенерированна за 0.01389 секунд с 7
ELECTRONIX ©2004-2016