Сторінки

субота, 30 червня 2018 р.

Beaglebobe Black та Wireless Connectivity Cape


В цій темі я опишу початок роботи з  модулем Wireless Connectivity Cape для плати Beaglebone Black.  

 

BBONE-GATEWAY-CAPE - плата розширення, яка забезпечує підключення платформи BeagleBone Black до інтернету та створення з неї мережевого шлюзу (gateway). Ця плата роширення створена на основі сертифікованого модуля Texas Instrument WL837MOD, який є наступним поколінням дводіапазонного промислового модуля Wi-Fi, Bluetooth і BLE. Також модуль підтримує ZigBee і NFC та призначена для підтримки IoT-пристроїв. Ось її короткі характеристики:
  • TI WL1837MOD
  • 2.4- and 5-GHz Dual-Band WiFi
  • Bluetooth and BLE
  • TI CC2530 for IEEE 802.15.4, Zigbee and RF4CE applications
  • TI RF430CL331, a NFC transponder to facilitate Bluetooth/WiFi pairing
  • Includes dual on-board chip antennas & U.FL connectors

Для роботи використовується дистрибутив Мachinekit Based on Debian Stretch with 4.14.x rt kernel with U-Boot Overlays, скачаний з сайту elinux.org. Мachinekit позиціонується як платформа для програм керування промисловими роботами (наприклад, 3D принтером). Login/password користувача - machinekit/machinekit.

Після встановлення дистрибутиву у файлі /boot/uEnv.txt  потрібно встановити налаштування завантаження Wireless Connectivity Cape. Текс файлу виглядає наступним чином:


Потрібно прописати uboot_overlay_addr0=/lib/firmware/BB-BONE-WL1837-00A0.dtbo для підключення модуля  та важливо відключити emmc, video, audio, wireless. З іншими налаштуваннями модуль не запускався. Після перезавантаження ОС модуль завантажився, про що говорить включення світлодіодів


А при  перегляді логів завантаження плати, викликавши команду dmesg, можна спостерігати наступне

Хочу відмітити, що для живлення плати та модуля використовувалося блок живлення на 5В, 2А. На просторах інтернету знаходив інформацію , що струму від USB комп’ютера може бути недостатньо для живлення обох пристроїв.

Тепер необхідно вибрати метод керування бездротовими з'єднаннями. На сайті wiki.archlinux.org є достатньо інформації, що допоможе  знайти відповідний метод роботи. Який би не був ваш вибір, спочатку потрібно спробувати підключитися через ручний спосіб для рузуміння як це працює.  

Далі для простоти використаємо автоматичне налаштування Connman. ConnMan розроблена так, щоб бути невимогливою до ресурсів, що робить її ідеальною для нетбуків і інших мобільних пристроїв.
Для запуску певної команди користувач може ввести команду connmanctl [параметри] або просто connmanctl, в останньому випадку починається інтерактивна взаємодія.

 Виконаємо наступні команди
$> sudo connmanctl
#connmanctl
#connmanctl> tether wifi disable
#connmanctl> enable wifi
#connmanctl> scan wifi
#connmanctl> services
#connmanctl> agent on
#connmanctl> connect wifi_*_managed_psk 

#connmanctl> quit 

Результат на рисунку
Після підключення до точки доступу відпала Ethernet-мережа. Довелось сканувати IP на наявність нової WI-FI точки та перепідключатися до неї через Putty. 
Як видно з результатів команди ipconfig в eth0 змінився IP:
   




 


Як видно з наступного зображення маємо успішне підключення до Інтернету плати Beaglebone Black, використовуючи плату розширення Wireless Connectivity Cape.

 
 
Оновлення
 
Плата версії rev.B  може підримувати роботу з Wireless Connectivity Cape тільки з ОС, яка втановлена на SD карту, тому що існує конфлікт пінів  ("This cape is not compatible with eMMC due to pin conflict" - https://community.element14.com/products/devtools/technicallibrary/m/files/420?CommentSortBy=CreatedDate&CommentSortOrder=Ascending).
Тому відповідно потрібно зробити налаштування (відключити
eMMC)

Edit the /boot/uEnv.txt  with these modifications.

###Additional custom capes

uboot_overlay_addr4=/lib/firmware/BB-GATEWAY-WL1837-00A0.dtbo


###Disable auto loading of virtual capes (emmc/video/wireless/adc)

disable_uboot_overlay_emmc=1

disable_uboot_overlay_video=1

disable_uboot_overlay_audio=1

#disable_uboot_overlay_wireless=1

disable_uboot_overlay_adc=1


# enable_uboot_cape_universal=1


Якщо спробувати лишити включенийeMMC, то неможливо законектитися по SSH до плати. І плата розширення запалює синій світлодіод, а не зелений.
Після включення плати видно, що відсутніq
eMMC

debian@beaglebone:~$ lsblk
NAME        MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
mmcblk0     179:0    0  1.9G  0 disk
`-mmcblk0p1 179:1    0  896M  0 part /

debian@beaglebone:~$ ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,DYNAMIC,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 1c:ba:8c:a8:78:88 brd ff:ff:ff:ff:ff:ff
    inet 192.168.0.92/24 brd 192.168.0.255 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 fd01::1eba:8cff:fea8:7888/64 scope global dynamic mngtmpaddr
       valid_lft 297sec preferred_lft 297sec
    inet6 fe80::1eba:8cff:fea8:7888/64 scope link
       valid_lft forever preferred_lft forever
3: wlan0: <NO-CARRIER,BROADCAST,MULTICAST,DYNAMIC,UP> mtu 1500 qdisc mq state DOWN group default qlen 1000
    link/ether 7c:ec:79:c8:4b:d2 brd ff:ff:ff:ff:ff:ff

Переглянути піни, які використовуються платою можна за посиланням
https://github.com/beagleboard/bb.org-overlays/blob/master/src/arm/BB-BONE-WL1837-00A0.dts


/* P9_21: gpio0_3 BT_EN*/

/* P8_21: gpmc_csn1.mmc1_clk */
/* P8_20: gpmc_csn2.mmc1_cmd */
/* P8_25: gpmc_ad0.mmc1_dat0 */
/* P8_24: gpmc_ad1.mmc1_dat1 */
/* P8_05: gpmc_ad2.mmc1_dat2 */
/* P8_06: gpmc_ad3.mmc1_dat3 */

/* P9_22: gpio0_2 WL_EN */
/* P9_42: gpio0_7 WL_IRQ */

/* P8_26: gpmc_csn0.gpio1_29 BF_EN*/
/* P8_07: gpmc_advn_ale.gpio2_2  Audio_sync*/

/* P9_15: EEPROM Enable */

/* P9_26: (D16) uart1_rxd.uart1_rxd */
/* P9_24: (D15) uart1_txd.uart1_txd */
/* P9_20: (D18) uart1_ctsn.uart1_ctsn */
/* P9_19: (D17) uart1_rtsn.uart1_rtsn  */

/* P9_17: i2c1 */
/* P9_18: i2c1 */