Changes

Jump to: navigation, search

Wireless Module (DWM)

7,896 bytes removed, 12:39, 17 October 2018
no edit summary
{{InfoBoxTop}}
{{Applies To DWM}}
{{AppliesToSBCLynx}}
{{AppliesToAddOnSBCLynx}}
{{AppliesToSBCD}}
{{AppliesToSBCX}}
{{Applies To ADD-ON-SBC-AXEL}}
{{Applies To ADD-ON-SBC-DIVA}}
 
{{InfoBoxBottom}}
==Introduction==
 
Wireless Module (DWM) is one of DAVE's Add-On Modules. These devices are conceived and designed to be easily included in embedded system, in order to ease the use from the system integrator's standpoint, in terms of hardware issues and software compatibility. These characteristics make them suitable for use in combination with a wide range of host devices, from low-cost microcontrollers to high-end embedded processors.
 
[[File:Dwm_02.png|300px|frameless|border]]
 
DWM belongs to the Connectivity Modules subfamily and provides support for WiFi (802.11 b/g/n) and Bluetooth (2.1 + EDR) throgh, respectively, a SDIO interface and a UART interface.
==Specification==
The module is built around a an LS Research TiWi-R2 BLE Integrated Transceiver Modules for WLAN 802.11 b/g/n and Bluetooth. The module realizes implements the necessary PHY/MAC layers to support WLAN applications in conjunction with a host processor over a SDIO interface. The module also provides a Bluetooth platform through the HCI transport layer. Both WLAN and Bluetooth share the same antenna port.
=== Features ===
* Based on Texas Instruments WL1271 WL1271L Transceiver
* IEEE 802.11 b,g,n,d,e,i, compliant
* Bluetooth 2.1+EDR, Power Class 1.5
* Full support for BT4.0 BLE and ANT
* Reduced footprint: 25 mm x 38 mm
* Low height profile
=== Interface timings ===
Please refer to the [http://www.lsr.com/downloads/products/330-00450087.pdf TiWi-R2 BLE Datasheet] for SDIO [WiFi] and UART [Bluetooth] interface timings. ===Power consumption=== ===Reset=== 
==Pinout and detailed pin functions==
| 2||WIFI_EN||Input||WLAN Enable||3.3V||
|-
| 3||UART2_RTSnBT_CTS||OutputInput||Bluetooth HCI UART RTSCTS||3.3V||
|-
| 4||WIFI_IRQ||Output||WLAN Interrupt Request||3.3V||
|-
| 5||UART2_TXDBT_RX||Input/Output||Bluetooth HCI UART TXRX||3.3V||
|-
| 6||BT_F2||OutputInput||Bluetooth Wakeup / DC2DC Mode||3.3V||Please leave unconnected if not used
|-
| 7||UART2_CTSnBT_RTS||InputOutput||Bluetooth HCI UART CTSRTS||3.3V||
|-
| 8||WIFI_CLK_REQ(A)||Output||HOST_WakeUp||3.3V||Please leave unconnected if not used
|-
| 9||UART2_RXDBT_TX||InputOutput||Bluetooth HCI UART RXTX||3.3V||
|-
| 10||NC||||Reserved for future use||-||Please leave unconnected.
|
|}
 
==== Connector part number ====
 
* on module: Molex 501920-3001
* on Carrier board: for example Molex 52991-0308 (dependon on stand-off chosen)
==Antenna connector==
==Integration guide==
This section provides useful information and resources that allow let the system designer to integrate the DWM module in his/her the application very quickly.
=== Typical scenariosscenario=== The following picture shows the conceptual block diagram of the application where the host is an Embedded PC.
The following pictures shows conceptual block diagram of application where the role of the host is played by an Embedded PC.
[[File:Dwm-epc-scenario.png|thumb|center|400px|Typical scenario]]
 
====Electrical guidelines====
*Keep SDIO lines as short as possible.
*5V and 3.3V rails can power up in any order
*Keep WIFI_EN asserted during power-up sequence
===Mechanical information===
[[File:Dwm-layout-top.png|thumbnail|center|300px|DWM dimensions]]
* DXF: httphttps://www.dave.eu/downloadsystem/restrictedfiles/addarea-on-modulesriservata/dwm/CS061412.dxfdxf_.zip
===Layout===
[[File:Dwm_04.png|thumbnail|center|200px|DWM Bottom View]]
The component view (top and bottom) is avalable available as PDF file:
* PDF: httphttps://www.dave.eu/downloadsystem/restrictedfiles/addarea-on-modules/dwmriservata/CS061412_component_viewCS061412B_all_view.pdf
===3D===
* IDF (3D): http://www.dave.eu/download/restricted/add-on-modules/dwm/CS061412-3D.zip
 
===Qualification tests===
 
==How to enable WiFi support==
 
=== Kernel setup ===
 
Edit kernel configuration adding support for MMC and WL1271 chipset
 
=== Make Wireless Tools ===
 
[http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/Tools.html Wifi Tools]
 
[http://www.omappedia.com/wiki/Mac80211_based_open_source_architecture FW DWL]
 
To build Wireless tools you need to modify the Makefile in order to cross-compile and install the tools:
 
Make:
* Check that the root file system path is correct
* Check the env CROSS_COMPILE and PATH variables
* make all
* sudo make install
 
=== Module Firmware ===
 
Download the firmware binaries and copy them into <RFS>/lib/firmware:
 
* wl1271-fw.bin
* wl1271-nvs.bin
 
=== User Space ===
 
====Boot====
<pre>
[...cut...]
[ 0.980000] cfg80211: Calling CRDA to update world regulatory domain
[...cut...]
[ 12.950000] lib80211: common routines for IEEE802.11 drivers
[ 12.960000] lib80211_crypt: registered algorithm 'NULL'
[...cut...]
[ 13.190000] mmc1: card claims to support voltages below the defined range. These will be ignored.
[ 13.210000] mmc1: queuing unknown CIS tuple 0x91 (3 bytes)
[ 13.220000] mmc1: new SDIO card at address 0001
[ 13.220000] PM: Adding info for mmc:mmc1:0001
[ 13.230000] PM: Adding info for sdio:mmc1:0001:1
[ 13.370000] PM: Adding info for sdio:mmc1:0001:2
[ 13.380000] PM: Adding info for platform:wl1271
[ 13.380000] PM: Adding info for No Bus:phy0
[ 13.390000] PM: Adding info for No Bus:wlan0
[ 13.390000] wl1271: loaded
[ 13.390000] wl1271: initialized
</pre>
 
====Dev Check====
 
Check module loading and device creation:
 
<pre>
ifconfig -a
[...cut...]
 
wlan0 Link encap:Ethernet HWaddr 00:00:00:00:00:00
BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
</pre>
 
Set the wlan0 MAC address:
 
<pre>
ifconfig wlan0 hw ether xx:yy:zz:kk:ww:jj
</pre>
 
You can create a simple script: '''setwmac''' to set the MAC address:
 
Use:
<pre>
setwmac 00:01:02:03:04:05
</pre>
 
Example:
<pre>
root@dm814x-evm:~# setwmac 00:50:C2:B9:CF:87
Disable Wlan0...
Set Wlan MAC: 00:50:C2:B9:CF:87
Enable Wlan0...
[ 36.960000] PM: Adding info for No Bus:mmc1:0001:2
[ 37.020000] PM: Removing info for No Bus:mmc1:0001:2
[ 37.020000] PM: Adding info for No Bus:mmc1:0001:2
[ 37.060000] PM: Removing info for No Bus:mmc1:0001:2
[ 37.220000] wl1271: firmware booted (Rev 6.1.0.50.350)
Done!
</pre>
 
==== Scan to find wireless network ====
<pre>
iwlist wlan0 scan
</pre>
 
Output example:
<pre>
root@dm814x-evm:~# iwlist wlan0 scanning
wlan0 Scan completed :
Cell 01 - Address: 00:1F:1F:BD:24:30
Channel:11
Frequency:2.462 GHz (Channel 11)
Quality=54/70 Signal level=-56 dBm
Encryption key:on
ESSID:"INTELLINET_AP"
Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s; 9 Mb/s
18 Mb/s; 36 Mb/s; 54 Mb/s
Bit Rates:6 Mb/s; 12 Mb/s; 24 Mb/s; 48 Mb/s
Mode:Master
Extra:tsf=0000000041e910e9
Extra: Last beacon: 10ms ago
IE: Unknown: 000D494E54454C4C494E45545F4150
IE: Unknown: 010882848B961224486C
IE: Unknown: 03010B
IE: Unknown: 2A0104
IE: Unknown: 32040C183060
IE: Unknown: 2D1AEE1117FF000000010000000000000000000000000C0000000000
IE: Unknown: 3D160B070700000000000000000000000000000000000000
IE: Unknown: 3E0100
IE: IEEE 802.11i/WPA2 Version 1
Group Cipher : CCMP
Pairwise Ciphers (1) : CCMP
Authentication Suites (1) : PSK
Preauthentication Supported
IE: Unknown: DD180050F2020101000003A4000027A4000042435E0062322F00
IE: Unknown: 0B05010007127A
IE: Unknown: 7F0101
IE: Unknown: DD07000C4304000000
IE: Unknown: DD1E00904C33EE1117FF000000010000000000000000000000000C0000000000
IE: Unknown: DD1A00904C340B070700000000000000000000000000000000000000
</pre>
 
=== Example: connecting to an encrypted wireless network ===
 
To connect to a secured AP use wpa_supplicant
 
[http://hostap.epitest.fi/wpa_supplicant/ wpa_supplicant]
 
Configure wireless security editing /etc/wpa_supplicant.conf
 
Example:
<pre>
ctrl_interface=/var/run/wpa_supplicant
eapol_version=1
ap_scan=0
fast_reauth=1
# Only WPA-PSK is used. Any valid cipher combination is accepted.
network={
ssid="INTELLINET_AP"
proto=WPA2
key_mgmt=WPA-PSK
pairwise=CCMP TKIP
group=CCMP TKIP
psk="davedavedave"
priority=2
}
</pre>
 
Start with the following options:
<pre>
wpa_supplicant -Dnl80211 -iwlan0 -c/etc/wpa_supplicant.conf -d -P/var/run/wpa_supplicant -B
</pre>
 
Associate to AP
<pre>
iwconfig wlan0 essid INTELLINET_AP
</pre>
 
Log
<pre>
[ 5102.560000] wlan0: authenticate with 00:1f:1f:bd:24:30 (try 1)
[ 5102.560000] wlan0: authenticated
[ 5102.610000] wlan0: associate with 00:1f:1f:bd:24:30 (try 1)
[ 5102.610000] wlan0: RX AssocResp from 00:1f:1f:bd:24:30 (capab=0x411 status=0 aid=1)
[ 5102.620000] wlan0: associated
[ 5103.300000] wl1271: Association completed.
</pre>
 
==How to enable Bluetooth support==
 
===Kernel Config===
 
Edit kernel configuration adding support for Bluetooth and HCI protocol:
 
<pre>
Networking Support
 
--- Bluetooth subsystem support
<*> L2CAP protocol support
<*> SCO links support
<*> RFCOMM protocol support
[*] RFCOMM TTY support
<*> BNEP protocol support
[*] Multicast filter support
[*] Protocol filter support
<*> HIDP protocol support
Bluetooth device drivers --->
</pre>
<pre>
<*> HCI USB driver
< > HCI SDIO driver
<*> HCI UART driver
[*] UART (H4) protocol support
[ ] BCSP protocol support
[ ] Atheros AR300x serial support
[*] HCILL protocol support
</pre>
 
 
=== Module Firmware===
 
Download the firmware binaries and copy them into <RFS>/lib/firmware:
 
* TIInit_7.2.31.bts
 
=== User space ===
 
====Boot====
<pre>
[ 1.000000] Bluetooth: Core ver 2.15
[ 1.010000] Bluetooth: HCI device and connection manager initialized
[ 1.020000] Bluetooth: HCI socket layer initialized
[...cut...]
[ 12.900000] Bluetooth: HCI UART driver ver 2.2
[ 12.900000] Bluetooth: HCI H4 protocol initialized
[ 12.900000] Bluetooth: HCILL protocol initialized
[ 12.910000] Bluetooth: Generic Bluetooth USB driver ver 0.6
[...cut...]
[ 13.080000] Bluetooth: L2CAP ver 2.15
[ 13.080000] Bluetooth: L2CAP socket layer initialized
[ 13.080000] Bluetooth: SCO (Voice Link) ver 0.6
[ 13.090000] Bluetooth: SCO socket layer initialized
[ 13.090000] Bluetooth: RFCOMM TTY layer initialized
[ 13.100000] Bluetooth: RFCOMM socket layer initialized
[ 13.110000] Bluetooth: RFCOMM ver 1.11
[ 13.110000] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[ 13.110000] Bluetooth: BNEP filters: protocol multicast
[ 13.120000] Bluetooth: HIDP (Human Interface Emulation) ver 1.2
</pre>
 
==== Install Bluez & Obex ====
 
From target
<pre>
opkg install bluez4
opkg install obex-data-server
opkg install obexd
opkg install obexftp
</pre>
 
 
=== Manual startup===
 
BT module Enable via GPIO 81
<pre>
# export GPIO=/sys/class/gpio
# echo 81 > $GPIO/export
# echo out > $GPIO/gpio81/direction
# echo 1 > $GPIO/gpio81/value
[ 58.810000] PM: Adding info for No Bus:gpio81
</pre>
 
===BT Services===
<pre>
# bluetoothd
# hciattach /dev/ttyO2 texas 3000000 flow
 
Found a Texas Instruments' chip!
Firmware file : /lib/firmware/TIInit_7.2.31.bts
Loaded BTS script version 1
texas: changing baud rate to 3000000, flow control to 1
[ 63.120000] PM: Adding info for No Bus:hci0
Device setup complete
 
</pre>
 
===Scan devices===
 
<pre>
hcitool scan
 
Scanning ...
9C:4A:7B:F0:xx:xx device 1
00:07:AB:6F:xx:xx device 2
 
</pre>
 
===Add Services===
 
To set the BT module '''name'''
<pre>
hciconfig hci0 name <NOME>
</pre>
 
To set the '''visibile services'''
<pre>
sdptool add <SERVICE>
</pre>
 
The available services are the following:
<pre>
Services:
DID SP DUN LAN FAX OPUSH FTP PRINT HS HSAG HF HFAG SAP PBAP NAP
GN PANU HCRP HID KEYB WIIMOTE CIP CTP A2SRC A2SNK AVRCT AVRTG
UDIUE UDITE SEMCHLA SR1 SYNCML SYNCMLSERV ACTIVESYNC HOTSYNC
PALMOS NOKID PCSUITE NFTP NSYNCML NGAGE APPLE ISYNC GATT
</pre>
 
==== Example1 : Obex FTP server====
For each visible service, the associated daemon should be launched. As an example, for the FTP service, you need to launch:
 
<pre>
obexftpd -b
</pre>
To send * IDF (3D): https://www.dave.eu/system/files/area-riservata/dwm-3D.zip===Calibration process===The radio interface of the DWM module is configured by several parameters. These parameters are set through a file using FTP on Bluetoothcalibration process, that is described in detail [http://processors.wiki.ti.com/index.php/WL12xx_NLCP_Calibration_Process here].
<pre>The calibration process—that produces an NVS file—is not trivial. Apart from the chip itself (Texas Instruments WL1271L in this case), it depends on:obexftp -b MAC-BT-DESTINO -p FILE*the antenna</pre>*the firmware version downloaded to the chip*the initialization data, typically stored in an INI file.
==== Example2 The following links refer to specific use cases, where the resulting NVS file is provided along with DAVE Embedded Systems products integrating DWM module.*[[XUELK-AN-001: Obex push server====_Using_WiFi-Bluetooth_combo_plugin_with_SBC_Lynx|SBC Lynx (XUELK)]]*[[XUELK-AN-002:_Running_Debian_distribution#Bluetooth_and_WiFi|SBC Lynx (Debian)]]
== References ==* [http://packagesprocessors.debianwiki.ti.com/index.php/WL127x WL127x Main page]* [http://processors.wiki.ti.com/index.php/WL127x_WLAN_API_Information WL127x WLAN API]* [http://processors.wiki.ti.com/index.php/WL12xx_NLCP_Calibration_Proccess Calibration Process]* [http://www.lsr.com/products-wiki?topic=TiWi-BLE+Downloads TiWi-BLE Downloads]* [http://www.lsr.com/downloads/products/330-0078.pdf INI Guide]* [http://www.lsr.com/downloads/products/330-0105.pdf Antenna Design]* [http://www.lsr.com/downloads/products/330-0053.pdf EMC Guide]* [http://wireless.kernel.org/squeezeen/users/Drivers/wl12xx/obexpushdcalibrator Linux Calibrator]
8,154
edits

Navigation menu