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

 
 
 
Reply to this topicStart new topic
> Порты ввода/вывода, хочу разобраться как с ними работать
_chaos_
сообщение Sep 16 2008, 11:24
Сообщение #1


Участник
*

Группа: Новичок
Сообщений: 26
Регистрация: 20-05-08
Пользователь №: 37 653



День добрый!
Встала задача написать "драйвер" который будет показывать состояния портов ввода вывода + менять. контролеер 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

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

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

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

Сообщение отредактировал _chaos_ - Sep 16 2008, 11:40
Go to the top of the page
 
+Quote Post
rv3dll(lex)
сообщение Sep 16 2008, 11:29
Сообщение #2


Полное ничтожество
*****

Группа: Banned
Сообщений: 1 991
Регистрация: 20-03-07
Из: Коломна
Пользователь №: 26 354



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


в заголовке темы лучше написать тип контроллера
Go to the top of the page
 
+Quote Post
_chaos_
сообщение Sep 16 2008, 11:42
Сообщение #3


Участник
*

Группа: Новичок
Сообщений: 26
Регистрация: 20-05-08
Пользователь №: 37 653



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

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

ЗЫ "вольюсь" в вашу среду мож меньше касячить буду
Go to the top of the page
 
+Quote Post
amw
сообщение Sep 16 2008, 11:49
Сообщение #4


Знающий
****

Группа: Свой
Сообщений: 601
Регистрация: 22-09-05
Из: Kharkov
Пользователь №: 8 847



Цитата(_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


--------------------
- А мораль отсюда такова: всякому овощу свое время. Или, хочешь, я это сформулирую попроще: никогда не думай, что ты иная, чем могла бы быть иначе, чем будучи иной в тех случаях, когда иначе нельзя не быть.
© Lewis Carroll. Alice's adventures in wonderland.
Go to the top of the page
 
+Quote Post
_chaos_
сообщение Sep 16 2008, 11:55
Сообщение #5


Участник
*

Группа: Новичок
Сообщений: 26
Регистрация: 20-05-08
Пользователь №: 37 653



Цитата(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


спасибо! начну читать документацию!
Go to the top of the page
 
+Quote Post
dch
сообщение Sep 16 2008, 13:14
Сообщение #6


Профессионал
*****

Группа: Участник
Сообщений: 1 179
Регистрация: 15-09-04
Из: 141070 г. Королев МО, улица Горького 39-121
Пользователь №: 661



полезная утилитка gpio

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

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

Сообщение отредактировал dch - Sep 16 2008, 13:17
Go to the top of the page
 
+Quote Post
_chaos_
сообщение Sep 17 2008, 05:31
Сообщение #7


Участник
*

Группа: Новичок
Сообщений: 26
Регистрация: 20-05-08
Пользователь №: 37 653



Цитата(dch @ Sep 16 2008, 16:14) *
полезная утилитка gpio

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

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


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

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

Спасибо!

Тема закрыта
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 12th July 2025 - 10:12
Рейтинг@Mail.ru


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