Среда, 18.10.2017
BBB Ready!
Меню сайта
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
Главная » 2015 » Май » 25 » Настройка pinmux BBB
00:55
Настройка pinmux BBB

Нужно для:

1. Изменения моды ( см. таблицу в SRM )
2. Изменение подтяжек
3. Включение подтяжек

очень полезно: http://derekmolloy.ie/gpios-on-the-beaglebone-black-using-device-tree-overlays/

Итак, посмотреть текущую таблицу:

root@beaglebone:/sys/kernel/debug/pinctrl/44e10800.pinmux# cat pins

cat /sys/kernel/debug/pinctrl/44e10800.pinmux/pins
registered pins: 142
pin 0 (44e10800) 00000031 pinctrl-single
pin 1 (44e10804) 00000031 pinctrl-single
pin 2 (44e10808) 00000031 pinctrl-single
pin 3 (44e1080c) 00000031 pinctrl-single
pin 4 (44e10810) 00000031 pinctrl-single
pin 5 (44e10814) 00000031 pinctrl-single
pin 6 (44e10818) 00000031 pinctrl-single
pin 7 (44e1081c) 00000031 pinctrl-single
pin 8 (44e10820) 00000027 pinctrl-single
pin 9 (44e10824) 00000027 pinctrl-single
pin 10 (44e10828) 00000027 pinctrl-single
pin 11 (44e1082c) 00000027 pinctrl-single
pin 12 (44e10830) 00000027 pinctrl-single
pin 13 (44e10834) 00000027 pinctrl-single
pin 14 (44e10838) 00000027 pinctrl-single
pin 15 (44e1083c) 00000027 pinctrl-single
pin 16 (44e10840) 00000027 pinctrl-single
pin 17 (44e10844) 00000027 pinctrl-single
pin 18 (44e10848) 00000027 pinctrl-single
pin 19 (44e1084c) 00000027 pinctrl-single
pin 20 (44e10850) 00000017 pinctrl-single
pin 21 (44e10854) 00000007 pinctrl-single
pin 22 (44e10858) 00000017 pinctrl-single
pin 23 (44e1085c) 00000007 pinctrl-single
pin 24 (44e10860) 00000017 pinctrl-single
pin 25 (44e10864) 00000027 pinctrl-single
pin 26 (44e10868) 00000027 pinctrl-single
pin 27 (44e1086c) 00000027 pinctrl-single
pin 28 (44e10870) 00000026 pinctrl-single
pin 29 (44e10874) 00000006 pinctrl-single
pin 30 (44e10878) 00000037 pinctrl-single
pin 31 (44e1087c) 00000037 pinctrl-single
pin 32 (44e10880) 00000032 pinctrl-single
pin 33 (44e10884) 00000032 pinctrl-single
pin 34 (44e10888) 00000037 pinctrl-single
pin 35 (44e1088c) 00000027 pinctrl-single
pin 36 (44e10890) 00000037 pinctrl-single
pin 37 (44e10894) 00000037 pinctrl-single
pin 38 (44e10898) 00000037 pinctrl-single
pin 39 (44e1089c) 00000037 pinctrl-single
pin 40 (44e108a0) 0000002f pinctrl-single
pin 41 (44e108a4) 0000002f pinctrl-single
pin 42 (44e108a8) 0000002f pinctrl-single
pin 43 (44e108ac) 0000002f pinctrl-single
pin 44 (44e108b0) 0000002f pinctrl-single
pin 45 (44e108b4) 0000002f pinctrl-single
pin 46 (44e108b8) 0000002f pinctrl-single
pin 47 (44e108bc) 0000002f pinctrl-single
pin 48 (44e108c0) 0000002f pinctrl-single
pin 49 (44e108c4) 0000002f pinctrl-single
pin 50 (44e108c8) 0000002f pinctrl-single
pin 51 (44e108cc) 0000002f pinctrl-single
pin 52 (44e108d0) 0000002f pinctrl-single
pin 53 (44e108d4) 0000002f pinctrl-single
pin 54 (44e108d8) 0000002f pinctrl-single
pin 55 (44e108dc) 0000002f pinctrl-single
pin 56 (44e108e0) 00000027 pinctrl-single
pin 57 (44e108e4) 00000027 pinctrl-single
pin 58 (44e108e8) 00000027 pinctrl-single
pin 59 (44e108ec) 00000027 pinctrl-single
pin 60 (44e108f0) 00000030 pinctrl-single
pin 61 (44e108f4) 00000030 pinctrl-single
pin 62 (44e108f8) 00000030 pinctrl-single
pin 63 (44e108fc) 00000030 pinctrl-single
pin 64 (44e10900) 00000030 pinctrl-single
pin 65 (44e10904) 00000030 pinctrl-single
pin 66 (44e10908) 00000027 pinctrl-single
pin 67 (44e1090c) 00000027 pinctrl-single
pin 68 (44e10910) 00000020 pinctrl-single
pin 69 (44e10914) 00000000 pinctrl-single
pin 70 (44e10918) 00000020 pinctrl-single
pin 71 (44e1091c) 00000000 pinctrl-single
pin 72 (44e10920) 00000000 pinctrl-single
pin 73 (44e10924) 00000000 pinctrl-single
pin 74 (44e10928) 00000000 pinctrl-single
pin 75 (44e1092c) 00000020 pinctrl-single
pin 76 (44e10930) 00000020 pinctrl-single
pin 77 (44e10934) 00000020 pinctrl-single
pin 78 (44e10938) 00000020 pinctrl-single
pin 79 (44e1093c) 00000020 pinctrl-single
pin 80 (44e10940) 00000020 pinctrl-single
pin 81 (44e10944) 00000027 pinctrl-single
pin 82 (44e10948) 00000030 pinctrl-single
pin 83 (44e1094c) 00000010 pinctrl-single
pin 84 (44e10950) 00000021 pinctrl-single
pin 85 (44e10954) 00000001 pinctrl-single
pin 86 (44e10958) 00000062 pinctrl-single
pin 87 (44e1095c) 00000062 pinctrl-single
pin 88 (44e10960) 0000002f pinctrl-single
pin 89 (44e10964) 00000027 pinctrl-single
pin 90 (44e10968) 00000037 pinctrl-single
pin 91 (44e1096c) 00000037 pinctrl-single
pin 92 (44e10970) 00000030 pinctrl-single
pin 93 (44e10974) 00000000 pinctrl-single
pin 94 (44e10978) 00000073 pinctrl-single
pin 95 (44e1097c) 00000073 pinctrl-single
pin 96 (44e10980) 00000020 pinctrl-single
pin 97 (44e10984) 00000020 pinctrl-single
pin 98 (44e10988) 00000070 pinctrl-single
pin 99 (44e1098c) 00000070 pinctrl-single
pin 100 (44e10990) 00000033 pinctrl-single
pin 101 (44e10994) 00000033 pinctrl-single
pin 102 (44e10998) 00000013 pinctrl-single
pin 103 (44e1099c) 00000013 pinctrl-single
pin 104 (44e109a0) 00000024 pinctrl-single
pin 105 (44e109a4) 00000027 pinctrl-single
pin 106 (44e109a8) 00000027 pinctrl-single
pin 107 (44e109ac) 00000027 pinctrl-single
pin 108 (44e109b0) 00000023 pinctrl-single
pin 109 (44e109b4) 00000027 pinctrl-single
pin 110 (44e109b8) 00000030 pinctrl-single
pin 111 (44e109bc) 00000028 pinctrl-single
pin 112 (44e109c0) 00000030 pinctrl-single
pin 113 (44e109c4) 00000028 pinctrl-single
pin 114 (44e109c8) 00000028 pinctrl-single
pin 115 (44e109cc) 00000028 pinctrl-single
pin 116 (44e109d0) 00000030 pinctrl-single
pin 117 (44e109d4) 00000030 pinctrl-single
pin 118 (44e109d8) 00000030 pinctrl-single
pin 119 (44e109dc) 00000030 pinctrl-single
pin 120 (44e109e0) 00000020 pinctrl-single
pin 121 (44e109e4) 00000030 pinctrl-single
pin 122 (44e109e8) 00000030 pinctrl-single
pin 123 (44e109ec) 00000028 pinctrl-single
pin 124 (44e109f0) 00000028 pinctrl-single
pin 125 (44e109f4) 00000028 pinctrl-single
pin 126 (44e109f8) 00000030 pinctrl-single
pin 127 (44e109fc) 00000028 pinctrl-single
pin 128 (44e10a00) 00000028 pinctrl-single
pin 129 (44e10a04) 00000020 pinctrl-single
pin 130 (44e10a08) 00000028 pinctrl-single
pin 131 (44e10a0c) 00000028 pinctrl-single
pin 132 (44e10a10) 00000028 pinctrl-single
pin 133 (44e10a14) 00000028 pinctrl-single
pin 134 (44e10a18) 00000028 pinctrl-single
pin 135 (44e10a1c) 00000020 pinctrl-single
pin 136 (44e10a20) 00000028 pinctrl-single
pin 137 (44e10a24) 00000028 pinctrl-single
pin 138 (44e10a28) 00000028 pinctrl-single
pin 139 (44e10a2c) 00000028 pinctrl-single
pin 140 (44e10a30) 00000028 pinctrl-single
pin 141 (44e10a34) 00000020 pinctrl-single

Не шибко понимаю, почему Pimux обитает в этом месте.

Второе поле означает

Bit Field Reset Description
6 conf_<module>_<pin>_slewctrl X Slew Control. Slew Rate: Fast is 0, Slow is 1
5 conf_<module>_<pin>_rxactive 1h Receiver Active. Input Enable: Receiver Disable 0, Receiver Enable 1
4 conf_<module>_<pin>_putypesel X Pad Pullup/Pulldown Type. Pulldown is 0, Pullup is 1
3 conf_<module>_<pin>_puden X Pad Pullup/Pulldown enable. Enabled is 0, Disabled is 1
2-0 conf_<module>_<pin>_mmode X Mode. Pad functional mux select. A number between 0 and 7 i.e. 000 and 111. This depends on which mode we require.

 

Пытаемся поменять для 0_27  пина. У него  pin 27 (44e1086c) 00000027 pinctrl-single .

Говорят, нужно пользоваться Device Tree Overlays.

Ну, попробуем. Я взял Файл Derek'а, подставил в него смещение 6с я насчитал)

Я три раза прочитал, не понял что там со смещениями, не нашел закономерностей в том, что Дерек написал. Пин 60 у него считается и как то становится пином 88, что-то я не догоняю. Будем пробовать)

/dts-v1/;
/plugin/;

/{
       compatible = "ti,beaglebone", "ti,beaglebone-black";
       part-number = "DM-GPIO-Test";
       version = "00A0";

       fragment@0 {
             target = <&am33xx_pinmux>;
            
             __overlay__ {
                  pinctrl_test: DM_GPIO_Test_Pins {
            pinctrl-single,pins = <

                0x06с 0x37  /* I think it is p0-27, pull-up, in_en, mode7 */
                       
                               /* OUTPUT  GPIO(mode7) 0x07 pulldown, 0x17 pullup, 0x?f no pullup/down */
                   /* INPUT   GPIO(mode7) 0x27 pulldown, 0x37 pullup, 0x?f no pullup/down */

            >;
          };
             };
       };

       fragment@1 {
        target = <&ocp>;
        __overlay__ {
            test_helper: helper {
                compatible = "bone-pinmux-helper";
                pinctrl-names = "default";
                pinctrl-0 = <&pinctrl_test>;
                status = "okay";
            };
        };
    };
};

 

Компиляция безуспешная, хз почему

root@beaglebone:/lib/firmware# dtc -O dtb -o DM-GPIO-Test-00A0.dtbo -b 0 -@ DM-GPIO-Test.dts
Error: DM-GPIO-Test.dts:15.5-6 syntax error
FATAL ERROR: Unable to parse input tree

 

В комментах Дерека, написано что надо сделать именно синхронизацию на bbb. Я сделал гит прямо на устройство, и, о чудо! компилится. Не связанно ли это с переводами строк? Зашел в эклипсе, поменял строки, сохранил (все на устройстве), компилится.

Переносим *.dtbo  в /lib/firmware

root@beaglebone:/home/dm_gpio/boneDeviceTree/overlay# cp DM-GPIO-Test-00A0.dtbo /lib/firmware

uEnv.txt

optargs=quiet capemgr.disable_partno=BB-BONELT-HDMI,BB-BONELT-HDMIN  capemgr.enable_partno=BB-SPIDEV1,BB-UART1,BB-UART2,BB-UART4,DM-GPIO-Test

перезагружаемся...

root@beaglebone:~# cat /sys/devices/bone_capemgr.*/slots
 0: 54:PF---
 1: 55:PF---
 2: 56:PF---
 3: 57:PF---
 4: ff:P-O-L Bone-LT-eMMC-2G,00A0,Texas Instrument,BB-BONE-EMMC-2G
 5: ff:P-O-- Bone-Black-HDMI,00A0,Texas Instrument,BB-BONELT-HDMI
 6: ff:P-O-- Bone-Black-HDMIN,00A0,Texas Instrument,BB-BONELT-HDMIN
 7: ff:P-O-L Override Board Name,00A0,Override Manuf,BB-SPIDEV1
 8: ff:P-O-L Override Board Name,00A0,Override Manuf,BB-UART1
 9: ff:P-O-L Override Board Name,00A0,Override Manuf,BB-UART2
10: ff:P-O-L Override Board Name,00A0,Override Manuf,BB-UART4
 

А вот так сработало, страннооо

root@beaglebone:~# echo DM-GPIO-Test > /sys/devices/bone_capemgr.*/slots
root@beaglebone:~# cat /sys/devices/bone_capemgr.*/slots
 0: 54:PF---
 1: 55:PF---
 2: 56:PF---
 3: 57:PF---
 4: ff:P-O-L Bone-LT-eMMC-2G,00A0,Texas Instrument,BB-BONE-EMMC-2G
 5: ff:P-O-- Bone-Black-HDMI,00A0,Texas Instrument,BB-BONELT-HDMI
 6: ff:P-O-- Bone-Black-HDMIN,00A0,Texas Instrument,BB-BONELT-HDMIN
 7: ff:P-O-L Override Board Name,00A0,Override Manuf,BB-SPIDEV1
 8: ff:P-O-L Override Board Name,00A0,Override Manuf,BB-UART1
 9: ff:P-O-L Override Board Name,00A0,Override Manuf,BB-UART2
10: ff:P-O-L Override Board Name,00A0,Override Manuf,BB-UART4
11: ff:P-O-L Override Board Name,00A0,Override Manuf,DM-GPIO-Test

 

 

проверяем

pin 27 (44e1086c) 00000037 pinctrl-single

Ну, это почти победа!

По факту, не работает. Неправильное смещение? Оказывается, там лабуда с номерами пинов полная. Смотри таблицу смещений тут

http://www.valvers.com/embedded-linux/beaglebone-black/step04-gpio/

 

согласно таблице, наш адрес 2c, суть пин 11 в файле pinmux

Работает, нога подтянулась к питанию. Но это жесть путаница. Не понимаю, почему не работает uEnv.txt  Работает он, просто пробел поставил после запятой, поэтому не работало.

Просмотров: 235 | Добавил: bobapro | Рейтинг: 0.0/0
Всего комментариев: 0
Имя *:
Email *:
Код *:
Форма входа
Поиск
Календарь
«  Май 2015  »
ПнВтСрЧтПтСбВс
    123
45678910
11121314151617
18192021222324
25262728293031
Архив записей
Друзья сайта
  • Официальный блог
  • Сообщество uCoz
  • FAQ по системе
  • Инструкции для uCoz
  • Copyright MyCorp © 2017
    Бесплатный хостинг uCoz