Ник:
Пароль:

Контакты

E-mail: info@starterkit.ru
тел.: +7 922 680-21-73
тел.: +7 922 680-21-74
Телеграм: t.me/starterkit_ru
Партнеры:
otladka.com.ua - г.Киев

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

User Info


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

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

Ник:
Пароль:

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

ОбновитьПодробнееВсегоВсего:6
Форум » starterkit.ru » Отладочные платы » SK-AT91SAM9260-SIMXXX
Драйвер АЦП
Franky
Добавлено 13.12.2011 07:47 Редактировалось 13.12.2011 08:07
0
Сообщение: 1
Franky
5

Пункты: 5030
Регистрация: 29.06.2010
Хочу написать драйвер для внешнего АЦП, данные принимать планирую в Linux по SPI.
АЦП нужно чем-то тактировать частотой 100кГц. Изпод Linux это возможно?
задержек не будет?
Спуститься к концу Подняться к началу
Персональная информация
Lampus
Добавлено 13.12.2011 09:45 Сообщение: 2
Lampus
5

Пункты: 3552
Регистрация: 26.04.2011
А что за АЦП? Если от Analog Devices, то стоит посомтреть в сторону подсистемы IIO (Industrial Input/Output).
По поводу генеарции частоты много не скажу, ибо пока с данным вопросом не связывался. Но на expansion-слот выходит несколько таймеров. Смотрите в файл arch/arm/mach-at91/at91sam9260_devices.c в функцию at91_add_device_tc().
А дальше надо смотреть как их крутить через Linux Clock Framework: http://www.kernel.org/doc/htmldocs/kernel-api/clk.html
Спуститься к концу Подняться к началу
Персональная информация
Franky
Добавлено 13.12.2011 11:05 Редактировалось 13.12.2011 11:29 Сообщение: 3
Franky
5

Пункты: 5030
Регистрация: 29.06.2010
Цитата
А что за АЦП? Если от Analog Devices, то стоит посомтреть в сторону подсистемы IIO (Industrial Input/Output).
По поводу генеарции частоты много не скажу, ибо пока с данным вопросом не связывался. Но на expansion-слот выходит несколько таймеров. Смотрите в файл arch/arm/mach-at91/at91sam9260_devices.c в функцию at91_add_device_tc().
А дальше надо смотреть как их крутить через Linux Clock Framework: http://www.kernel.org/doc/htmldocs/kernel-api/clk.html

АЦП AD7606. Работает хоть по SPI хоть паралельно
Реализрвывал standalone драйвер. Теперь хочу под Linux.
что за IIO (Industrial Input/Output) можно подробнее?
наверное придётся на уровне ядра реализовывать генерацию постоянную. Узнать бы где копать....
Спуститься к концу Подняться к началу
Персональная информация
Lampus
Добавлено 13.12.2011 12:38 Сообщение: 4
Lampus
5

Пункты: 3552
Регистрация: 26.04.2011
Есть уже драйвер: http://lxr.free-electrons.com/source/drivers/staging/iio/adc/ad7606_spi.c
Как раз для вышеупомянутой подсистемы IIO ( http://wiki.analog.com/software/linux/docs/iio/iio )
Описание как юзать тут: =ad7606]http://wiki.analog.com/resources/tools-software/linux-drivers/iio-adc/ad7606?s[]=ad7606
> наверное придётся на уровне ядра реализовывать генерацию постоянную. Узнать бы где копать...
А я вам, наверное, случайно астрологический прогноз выдал вместо ссылки на документацию к Linux Clock Framework? =)
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 13.12.2011 16:51 Редактировалось 13.12.2011 17:18 Сообщение: 5
sasamy
4.70

Пункты: 77331
Регистрация: 14.08.2009
Цитата
Но на expansion-слот выходит несколько таймеров. Смотрите в файл arch/arm/mach-at91/at91sam9260_devices.c в функцию at91_add_device_tc().


Для АЦП лучше взять более качественный клок pck0 с PLL вместо TC. В -EK он для аудиокодека используется, на местных платах вроде свободен.

http://lxr.free-electrons.com/source/arch/arm/mach-at91/board-sam9260ek.c#L98

UPD Навпрал :=) тут тоже для аудиокодека используется, давно схемы плат на 9260 не смотрел - думал там на кодеках кварц стоит. PCK1 свободен.
Спуститься к концу Подняться к началу
Персональная информация
Franky
Добавлено 13.12.2011 20:38 Сообщение: 6
Franky
5

Пункты: 5030
Регистрация: 29.06.2010
Цитата
Цитата
Но на expansion-слот выходит несколько таймеров. Смотрите в файл arch/arm/mach-at91/at91sam9260_devices.c в функцию at91_add_device_tc().


Для АЦП лучше взять более качественный клок pck0 с PLL вместо TC. В -EK он для аудиокодека используется, на местных платах вроде свободен.

http://lxr.free-electrons.com/source/arch/arm/mach-at91/board-sam9260ek.c#L98

UPD Навпрал :=) тут тоже для аудиокодека используется, давно схемы плат на 9260 не смотрел - думал там на кодеках кварц стоит. PCK1 свободен.


спасибо, а как вывести в pck1 сигнал нужой частоты?
Спуститься к концу Подняться к началу
Персональная информация
Lampus
Добавлено 13.12.2011 22:06 Редактировалось 13.12.2011 22:07 Сообщение: 7
Lampus
5

Пункты: 3552
Регистрация: 26.04.2011
Цитата
спасибо, а как вывести в pck1 сигнал нужой частоты?

Вестимо использовать функцию int clk_set_rate (struct clk * clk, unsigned long rate); и иже с ними.
Неужели так сложно сходить по ссылкам что я дал? Там _всё_ это есть.
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 13.12.2011 23:00 Редактировалось 13.12.2011 23:11 Сообщение: 8
sasamy
4.70

Пункты: 77331
Регистрация: 14.08.2009
Цитата

спасибо, а как вывести в pck1 сигнал нужой частоты?


С pck не все так просто - там максимальный делитель всего 64, 100 кГц даже с pllb не получить, так что рано благодарить :)
Спуститься к концу Подняться к началу
Персональная информация
Franky
Добавлено 15.12.2011 07:53 Сообщение: 9
Franky
5

Пункты: 5030
Регистрация: 29.06.2010
Цитата
Цитата

спасибо, а как вывести в pck1 сигнал нужой частоты?


С pck не все так просто - там максимальный делитель всего 64, 100 кГц даже с pllb не получить, так что рано благодарить :)

ну вот( как быть? может внешний генератор проще поставить?
Спуститься к концу Подняться к началу
Персональная информация
Franky
Добавлено 05.03.2012 21:42 Сообщение: 10
Franky
5

Пункты: 5030
Регистрация: 29.06.2010
Цитата
Есть уже драйвер: http://lxr.free-electrons.com/source/drivers/staging/iio/adc/ad7606_spi.c
Как раз для вышеупомянутой подсистемы IIO ( http://wiki.analog.com/software/linux/docs/iio/iio )
Описание как юзать тут: =ad7606]http://wiki.analog.com/resources/tools-software/linux-drivers/iio-adc/ad7606?s[]=ad7606
> наверное придётся на уровне ядра реализовывать генерацию постоянную. Узнать бы где копать...
А я вам, наверное, случайно астрологический прогноз выдал вместо ссылки на документацию к Linux Clock Framework? =)


В упомянутом вами драйвере и инструкции по использованию нет информации про настройку тактирования АЦП.
Если я запущу постоянное тактирование от таймера, как мне использовать этот драйвер?
Ведь в структуре ниже нога CONVST(тактировнаие) для чего-то задействована:
Код

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,
};
Спуститься к концу Подняться к началу
Персональная информация
Форум » starterkit.ru » Отладочные платы » SK-AT91SAM9260-SIMXXX