Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Порты ввода/вывода
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему
_chaos_
День добрый!
Встала задача написать "драйвер" который будет показывать состояния портов ввода вывода + менять. контролеер AT91SAM9260
под портами ввода вывода понимается.....эм сам не знаю как объяснить smile.gif
вообщем имеется на плате 8 клемников в каждом по 2 дырки.
4 из них подписаны как DIN1-DIN4 - это дискретные входы
2 DOUT1-DOUT2 это дискретные выходы и 2 AIN1-AIN2 - это аналоговые входы.
Есть "разводка"(не знаю правельно ли обозвал smile.gif )

DIN1 - подключен к PB0
DIN2 - подключен к PB1
DIN3 - подключен к PB2
DIN4 - подключен к PB3

DOUT1 - подключен к PB30
DOUT2 - подключен к PB31

AIN1 - подключен к PC0
AIN2 - подключен к PC1

Вот вроде и все из теории.

У меня возникли следующие проблемы: с чего начать не знаю sad.gif тк ковырянием в ядре Linux начал относительно недавно.

То что я нарыл: судя по всему мне надо использовать: AT91_PIN_PB0, AT91_PIN_PB1, ....
нашел в файле gpio.h набор функций
at91_gpio_init
at91_set_B_periph
at91_set_A_periph
.....
назначение данных функций мне не понятно-документации по ним не нашел sad.gif

Хотелось бы что кто-нибудь помог разобраться со всем этим

Заранее благодарен!

ЗЫ я не схемотехник, а программист
rv3dll(lex)
Цитата(_chaos_ @ Sep 16 2008, 15:24) *
ЗЫ я не схемотехник, а программист


в заголовке темы лучше написать тип контроллера
_chaos_
Цитата(rv3dll(lex) @ Sep 16 2008, 14:29) *
в заголовке темы лучше написать тип контроллера

сорри. добавил тип контроллера.

ЗЫ "вольюсь" в вашу среду мож меньше касячить буду
amw
Цитата(_chaos_ @ Sep 16 2008, 14:24) *
День добрый!
Встала задача написать "драйвер" который будет показывать состояния портов ввода вывода + менять.
под портами ввода вывода понимается.....эм сам не знаю как объяснить smile.gif
вообщем имеется на плате 8 клемников в каждом по 2 дырки.
4 из них подписаны как DIN1-DIN4 - это дискретные входы
2 DOUT1-DOUT2 это дискретные выходы и 2 AIN1-AIN2 - это аналоговые входы.
Есть "разводка"(не знаю правельно ли обозвал smile.gif )

DIN1 - подключен к PB0
DIN2 - подключен к PB1
DIN3 - подключен к PB2
DIN4 - подключен к PB3

DOUT1 - подключен к PB30
DOUT2 - подключен к PB31

AIN1 - подключен к PC0
AIN2 - подключен к PC1

Вот вроде и все из теории.

У меня возникли следующие проблемы: с чего начать не знаю sad.gif тк ковырянием в ядре Linux начал относительно недавно.

То что я нарыл: судя по всему мне надо использовать: AT91_PIN_PB0, AT91_PIN_PB1, ....
нашел в файле gpio.h набор функций
at91_gpio_init
at91_set_B_periph
at91_set_A_periph
.....
назначение данных функций мне не понятно-документации по ним не нашел sad.gif

Хотелось бы что кто-нибудь помог разобраться со всем этим

Заранее благодарен!

ЗЫ я не схемотехник, а программист

arch/arm/at91sam9260.c
arch/arm/at91sam9260_devices.c
arch/arm/gpio.c
arch/arm/leds.c
Здесь можно посмотреть как и какие пины настраиваются "на уровне платы". Это не руководство к действию, но низкоуровневый пример использования.
Собственно названные Вами функции должны экспортироватся в драйвер GPIO верхнего уровня.
К сожалению, по GPIO больше ничем не могу помочь.
Посмотрите также драйверы
drivers/gpio/*
drivers/leds/*
Специфику для своей платы все равно придется писать.
Можно через "Generic GPIO API" или через "Platform Device".
Собственно я не вижу криминала в том, чтобы использовать функции at91_*. Просто такая реализация будет "не кросс-платформенной".

А документация в основном находится в *.c файлах в виде коментариев плюс
Documentation/gpio.txt
Documentation/leds-class.txt
_chaos_
Цитата(amw @ Sep 16 2008, 14:49) *
arch/arm/at91sam9260.c
arch/arm/at91sam9260_devices.c
arch/arm/gpio.c
arch/arm/leds.c
Здесь можно посмотреть как и какие пины настраиваются "на уровне платы". Это не руководство к действию, но низкоуровневый пример использования.
Собственно названные Вами функции должны экспортироватся в драйвер GPIO верхнего уровня.
К сожалению, по GPIO больше ничем не могу помочь.
Посмотрите также драйверы
drivers/gpio/*
drivers/leds/*
Специфику для своей платы все равно придется писать.
Можно через "Generic GPIO API" или через "Platform Device".
Собственно я не вижу криминала в том, чтобы использовать функции at91_*. Просто такая реализация будет "не кросс-платформенной".

А документация в основном находится в *.c файлах в виде коментариев плюс
Documentation/gpio.txt
Documentation/leds-class.txt


спасибо! начну читать документацию!
dch
полезная утилитка gpio

http://www.ipbx.ru/rm9200/

для 9200 из user space, может пригодиться
_chaos_
Цитата(dch @ Sep 16 2008, 16:14) *
полезная утилитка gpio

http://www.ipbx.ru/rm9200/

для 9200 из user space, может пригодиться


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

ЗЫ буду курить исходник

Спасибо!

Тема закрыта
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.