Ник:
Пароль:

Контакты

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

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

Ник:
Пароль:

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

ОбновитьПодробнееВсегоВсего:4
Форум » starterkit.ru » Отладочные платы » SK-MNUC950
Вопрос по настройке портов ввода/вывода
Jury093
Добавлено 23.05.2010 22:05 Сообщение: 11
Jury093
4.5

Пункты: 54233
Регистрация: 25.05.2009
Пол: Мужчина
Из: Санкт-Петербург
Цитата
Ещё вопрос, хотя, он. наверно, к теме не относиться. Какую функцию использовать для задержки в милисекундах? (до нескольких секунд) и в какой библиотеке?

Ну почему, раз работа с портами и пинами - задержки иногда требуются..
можно на таймере организовать..
можно поискать вот тут:

Цитата
ndelay - это функция ядра, цепляется через
#include <linux/delay.h>

я не смотрел, но думаю что-нить полезное найти можно будет..

На любой вопрос есть любой ответ.
Спуститься к концу Подняться к началу
Персональная информация
Ilya89
Добавлено 15.03.2013 19:47 Сообщение: 12
Ilya89
0

Пункты: 599
Регистрация: 09.05.2010
Прошу прощения за, наверно, простейший вопрос и назойливость.
Так и не смог сам разобраться, как адаптировать пример repairman с использованием mmap на эту плату.

1. Как найти на плате контакты, которые можно использовать как GPIO для управления, например, светодиодами?
2. Как найти соответствующие порты на схеме платы?
3. Как сопоставить конкретный контакт с портом из MCU Programmer's guid и номером в порте?

Если не сложно, можно, написать (или ссылку) пошаговую инструкцию по нахождению/конфигурированию/управлению на примере какого-нибудь одного выхода?

Буду очень благодарен.

P.S. звук видео и сим не использую, хотелось бы ориентироваться на максимальное число доступных выходов.
Спуститься к концу Подняться к началу
Персональная информация
Jury093
Добавлено 15.03.2013 20:35 Редактировалось 15.03.2013 20:36 Сообщение: 13
Jury093
4.5

Пункты: 54233
Регистрация: 25.05.2009
Пол: Мужчина
Из: Санкт-Петербург
Цитата
Прошу прощения за, наверно, простейший вопрос и назойливость.
Так и не смог сам разобраться, как адаптировать пример repairman с использованием mmap на эту плату.

я сам на него опирался, все отлично работает..

Цитата
1. Как найти на плате контакты, которые можно использовать как GPIO для управления, например, светодиодами?
2. Как найти соответствующие порты на схеме платы?
3. Как сопоставить конкретный контакт с портом из MCU Programmer's guid и номером в порте?

объясню, если не будет просветления по нижеприведенной ссылке..

Цитата
Если не сложно, можно, написать (или ссылку) пошаговую инструкцию по нахождению/конфигурированию/управлению на примере какого-нибудь одного выхода?

без проблем, подойдет?:
http://www.starterkit.ru/html/index.php?name=forum&op=view&id=10100#10100

Цитата
P.S. звук видео и сим не использую, хотелось бы ориентироваться на максимальное число доступных выходов.

если видео не надо, то надо посмотреть - может ножки графконтроллера можно заюзать как gpio..

На любой вопрос есть любой ответ.
Спуститься к концу Подняться к началу
Персональная информация
Ilya89
Добавлено 15.03.2013 21:30 Сообщение: 14
Ilya89
0

Пункты: 599
Регистрация: 09.05.2010
В принципе, с самим примером относительно понятно.
Допустим, хочу найти все контакты, которыми можно напрямую управлять.
1. Смотрю на плату - не задействованы выходы х8-х12, к которым удобно подключиться.
2. Смотрю на схему. Ищу одинаковые обозначения контактов на выбранном выходе и на процессоре, например MK_168 (как в вашем примере) идёт от процессора напрямую на x8.
3. Где теперь можно посмотреть адреса этого пина?
#define GPIO_BA 0xB8003000
#define GPIOH_DIR *(int*)(mapped_base+0x54)
#define GPIOH_OUT *(int*)(mapped_base+0x58)
GPIOH_DIR = GPIOH_DIR | 0x02; // use pin->irq1
GPIOH_OUT = GPIOH_OUT & 0xfffffffd; // pin->low
GPIOH_OUT = GPIOH_OUT | 0x02; // pin->high
Спуститься к концу Подняться к началу
Персональная информация
Jury093
Добавлено 15.03.2013 22:11 Сообщение: 15
Jury093
4.5

Пункты: 54233
Регистрация: 25.05.2009
Пол: Мужчина
Из: Санкт-Петербург
у вас на диске д.б. даташит на проц, посмотрите там раздел "GPIO shared pin desc", там расписаны пины, какие можно использовать..
увы с графконтроллера (X8) использовать нельзя..
и еще, пины этого проца малотоковые, можно легко спалить, в отличие от того же Атмела..
смотрим X12, допустим 27 ножка разъема - это MK_4, подводится к АРМу на 4 контакт с именем SDA0. т.е. это часть аппаратной шины i2c0..
теперь смотрим в даташит - это по совместительству GPIOG[1]
далее, смотрим адрес начала блока регистров GPIO = 0xB8003000

теперь идем в раздел 7.16 описание работы GPIO
там в карте адресов находим относящиеся к GPIOG типа
DIR
DATAOUT
DATAIN
ну и все, остальное как в любой однокристалке, позиция бита в регистре однозначно определяет с каким пином АРМа хотим работать..
т.е. gpiog[1] - это справа налево второй разряд..

если даташитов нет, то могу выложить: даташит и доку как программировать (хотя она и бестолковая)

На любой вопрос есть любой ответ.
Спуститься к концу Подняться к началу
Персональная информация
Ilya89
Добавлено 15.03.2013 22:35 Сообщение: 16
Ilya89
0

Пункты: 599
Регистрация: 09.05.2010
Ваш пример удалось успешно запустить на плате.
Вот эти константы понял, откуда и зачем:
#define GPIO_BA 0xB8003000
#define GPIOH_DIR *(int*)(mapped_base+0x54)
#define GPIOH_OUT *(int*)(mapped_base+0x58)
GPIOH_DIR = GPIOH_DIR | 0x02; // use pin->irq1

Остался один вопрос, как вы определили, что выход №168
а) соответствует порту H,
б) управляется вторым битом с конца?
Где-то в даташите есть такие подробности или методом тыка подобрали?
Спуститься к концу Подняться к началу
Персональная информация
Ilya89
Добавлено 15.03.2013 22:47 Сообщение: 17
Ilya89
0

Пункты: 599
Регистрация: 09.05.2010
Цитата
если даташитов нет, то могу выложить: даташит и доку как программировать (хотя она и бестолковая)


Дока по программированю, с разделом 17 по GPIO, есть. Таблицу соответствия портов и пинов нигде не могу найти. Помню. что где-то видел.
Спуститься к концу Подняться к началу
Персональная информация
Jury093
Добавлено 15.03.2013 22:58 Редактировалось 15.03.2013 22:59 Сообщение: 18
Jury093
4.5

Пункты: 54233
Регистрация: 25.05.2009
Пол: Мужчина
Из: Санкт-Петербург
Цитата
Остался один вопрос, как вы определили, что выход №168
а) соответствует порту H,
б) управляется вторым битом с конца?
Где-то в даташите есть такие подробности или методом тыка подобрали?

ну.. метод тыка я пробовал при попытках запустить аппаратный курсор в этом АРМе и графический ускоритель.. нереально..

в случае с этим пином все просто при наличие даташита..
итак, N168 разъем X12 ножка 22 - идет на АРМ пин 168 (см схему)
это nIRQ1 - т.е. основная функция входа обслуживание внешнего прерывания (одного из 3)
опять смотрим даташит раздел 7.16, где сказано, что
GPIOH[2..0] - это nIRQ[2..0], дальше надо? :)

кстати, сколько ног надо и какая скорострельность? если посмотреть на схему кита, то число свободных для развлечений пинов крайне мало. еще чуть можно наскрести подпаявшись проводками в определенные точки платы (см схему)
если требуется что-то монументальное и неспешное, то можно поставить I2C-GPIO расширители и ни в чем себе не отказывать..
либо для ускорения работы думать над SPI интерфейсом и внешними сдвиговыми регистрами..

На любой вопрос есть любой ответ.
Спуститься к концу Подняться к началу
Персональная информация
Ilya89
Добавлено 16.03.2013 07:59 Сообщение: 19
Ilya89
0

Пункты: 599
Регистрация: 09.05.2010
Цитата
опять смотрим даташит раздел 7.16,

Подскажите, как называется у вас этот документ. Я пересмотрел все документы с диска, у меня нет нигде раздела 7.16. Или, может быть, проще вам выложить ваши версии документов где-нибудь?

В итоге хотелось бы получить подвижного робота с usb-web камерой, usb-wifi управлением, и, может быть, каким-то "полезным" прибором на борту.
Похоже, что управление механизмами и "полезным" прибором надо выносить на платы расширения. Я в сами платы расширения пока не вникал. Создам новую тему по этому вопросу.
Спуститься к концу Подняться к началу
Персональная информация
Jury093
Добавлено 16.03.2013 10:27 Сообщение: 20
Jury093
4.5

Пункты: 54233
Регистрация: 25.05.2009
Пол: Мужчина
Из: Санкт-Петербург
Цитата
Подскажите, как называется у вас этот документ. Я пересмотрел все документы с диска, у меня нет нигде раздела 7.16. Или, может быть, проще вам выложить ваши версии документов где-нибудь?

ничего более полного у меня нет, внутри дока на АРМ и мануал по программированию:

nuc950.zip
номер: 6430627, размер: 4.1 Мб, размещён: 2013-03-16 11:15
Адрес файла: http://webfile.ru/6430627

Цитата
В итоге хотелось бы получить подвижного робота с usb-web камерой, usb-wifi управлением, и, может быть, каким-то "полезным" прибором на борту.

понятно, вот тут будет изрядно проблем, т.к. последнее стабильное ядро (по моим данным) 2.6.17.14 и запустить на нем что-нить из современного железа достаточно напряжно (а то и невозможно)..
впрочем, может не так все мрачно и запилили что-нить поновее..

На любой вопрос есть любой ответ.
Спуститься к концу Подняться к началу
Персональная информация
Форум » starterkit.ru » Отладочные платы » SK-MNUC950