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

 
 
> Порты ввода/вывода, хочу разобраться как с ними работать
_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
 
Start new topic
Ответов
amw
сообщение Sep 16 2008, 11:49
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 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



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

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 06:52
Рейтинг@Mail.ru


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