Судя по схеме ревизии V2.B есть свободные GPIO. Они выведены и не задействованы.
1. Есть ли пример как можно настроить? Желательно, управление в user среде, по простому echo 1 > /....gpio
2. Какие электрические параметры? Если активирую GPIO, какое напряжение, какой ток ? Как вообще работает?
Спасибо!
Вы не тот процессор для дергания GPIO выбрали - возьмите микроконтроллер, там все для GPIO сделано. По теме - пин нужно переключить на GPIO в ядре, только потом им можно пользоваться как GPIO, примеры есть в board-файле, в юзерспейс интерфейс стандартный - ничем не отличается от других процессоров.
эхая туда можно управлять пином или считывать его уровень..
смотрим электросхему в месте запитки банков IO, вероятно там 3.3в. но похоже их можно регулировать через регистры (тут могу наврать).. не советую напрямую подключать светодиод или сильноточную нагрузку (это не терпеливый Атмел) - сгорит нафик.. только через буфер!
Скажем есть свободный GPIO_3_27.
На схеме не подключен в ядре не определен, значит свободный...
Нужно прописать его в структуре iomux_v3_cfg_t?
прописал MX53_PAD_EIM_D27__GPIO3_27,
он определен как #define _MX53_PAD_EIM_D27__GPIO3_27 IOMUX_PAD(0x490, 0x148, 1, 0x0, 0, 0).
Те я связал EIM_D27 и GPIO3_27 ?
Что такое EIM_D27, я так и не понял ?
А задача простая подать импульс или убрать с контакта через юзерспейс....
Извините, в ядре очень трудно разбираться, а сделать нужно быстро(
Может кто делал уже ?
Вам не gpio свободный искать надо а пин который не используется и выведен на разъем и уже от этого исходить - переключить его на GPIO, какой номер ему соответствует уже прописано все в arch/arm/plat-mxc/include/mach/iomux-mx53.h. В вашем примере это EIM_D27 у него есть ф-ция GPIO3_27, номер для юзерспейс будет
((3 - 1)х32 + 27).
GPIO_3_27 - это его так Павел обозначил для наглядности на схеме, у этого пина кроме GPIO может быть до 7 ф-ций разной периферии, GPIO - всего лшь одна из них. см стр 269 iMX53RM.pdf
Table 4-2. Pin Alternate Modes (continued)
вам нужно в файле arch/arm/mach-mx5/mx53_loco.c дописать в массиве
static iomux_v3_cfg_t mx53_loco_pads[] = {
...
MX53_PAD_EIM_D27__GPIO3_27,
...
}
в том же файле есть вызов ф-ции
mxc_iomux_v3_setup_multiple_pads(mx53_loco_pads,
ARRAY_SIZE(mx53_loco_pads));
которая и сделает реальную работу - запрограммирует 3 регистра соответствующими значениями из arch/arm/plat-mxc/include/mach/iomux-mx53.h - это макросы в которых прописаны смещения регистров и значения которые нужно прописать чтобы этот пин подключить к соответствующему IP.
MX53_PAD_EIM_D27__GPIO3_27, - означает переключить пин EIM_D27 на ф-ию GPIO 3-37, реально он преобразуется в 64 битное слово, содержащее смещения регистров и значения