MOD-MRF24J40

Материал из Wiren Board
Версия от 19:52, 18 июля 2019; RomanKulibaba (обсуждение | вклад) (Новая страница: «==Connection== The module is connected to the Wiren Board controller via the UEXT2 connector. Pins 6-7 (program I2C) are used in GPIO mode.»)

Другие языки:


IEEE 802.15.4 transceiver module from Olimex. Contains a chip of Microchip MRF24J40. The module can be bought in the Olimex store.


Is inserted into the connector UEXT uses the SPI interface.


IEEE 802.15.4

IEEE 802.15.4 is a physical layer that is used by ZigBee, 6LoWPAN, and other standards. Linux supports the standard 6LoWPAN - IPv6 network over the physical layer. Operating frequency - 2.4 Ghz, unlicensed range.


Support for 6LoWPAN on Linux is currently not fully functional. http://elinux.org/images/7/71/Wireless_Networking_with_IEEE_802.15.4_and_6LoWPAN.pdf

Connection

The module is connected to the Wiren Board controller via the UEXT2 connector. Pins 6-7 (program I2C) are used in GPIO mode.

Для работы в Linux необходимо использовать выход прерывания INT. В UEXT-разъёме модуля этот сигнал заведён на вывод UART RX (4), что делает невозможным его использование в качестве источника прерывания. Необходимо подключить вывод INT на выводы UEXT2, которые представляют из себя GPIO, например на вывод 6 UEXT2 (GPIO53).

Самый простой способ сделать это - накоротко замкнуть (например припоем) ножки 4 и 6 на UEXT-вилке модуля.

Настройка

Драйвер трансивера в ядре [1]. В драйвер добавлены незначительные изменения для работы в полудуплексном режиме SPI и для использования Device Tree. Драйвер в виде модуля включен в образ по-умолчанию.

Для подключения модуля, необходимо объявить устройство в Device Tree:

ssp1: ssp@80034000 {
 ..............

        cs-gpios = <&gpio0 17 0
		   &gpio2 28 0
		   &gpio1 20 0
		   &gpio2 27 0 /* 91 	25 @ CON2 	UEXT2 CS/GPIO */    <-------- Chip Select разъёма UEXT2 соответствует устройству номер 6 (2+4)
	          >;


    ..............

	6lowpan@0 {
		compatible = "microchip,mrf24j40";
		spi-max-frequency = <100000>;
		reg = <6>;
		interrupt-parent = <&gpio1>;  <--------  используем GPIO 53 (21 + 32) в качестве IRQ
		interrupts = <21 0>;          <--------  Это соответствует выводу 6 разъёма UEXT2
	};


                        ..............


};


Работа с 6LoWPAN

Устанавливаем пакеты для работы с 6LoWPAN:

apt-get install  lowpan-tools


Работа с 6LoWPAN производится с помощью утилиты iz

root@wirenboard:~# iz listphy
wpan-phy0  IEEE 802.15.4 PHY object
    page: 0  channel: n/a
    channels on page 0: 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26


Для работы необходим пакет lowpan-tools из sid

Ссылки