Hi all--
We have an AM335x BeagleBone-like board with WL1831 module onboard, running Linux kernel 3.8.13 with BlueZ stack enabled.
We modified the UART port assignments for interfacing with the WL18xx HCI UART lines, and tried various pinmux options enabling/disabling RTS/CTS. We also have GPIO assigned for manually toggling BT_EN.
So far the WL18xx chip only gets enumerated via 'hciattach' when using the generic profile without flow control. However this has not been sufficient for testing the BT radio for nearby devices with 'hcitool scan'.
When we use the TI-specific profile with 'hciattach', it switches HCI comm-link to faster baud rate with flow control enabled, but initialization times out. There is a brief burst of activity on UART TxD/RxD lines observed with RTS/CTS lines going low.
When RTS/CTS is enabled for UART3:
root@beaglebone:~# ./bt_en.sh root@beaglebone:~# hciattach /dev/ttyO3 texas 115200 flow Found a Texas Instruments' chip! Firmware file : /lib/firmware/TIInit_11.8.32.bts Loaded BTS script version 1 texas: changing baud rate to 3000000, flow control to 1 Initialization timed out.
When RTS/CTS is disabled for UART3:
root@beaglebone:~# ./bt_en.sh root@beaglebone:~# hciattach /dev/ttyO3 any 115200 noflow [ 245.020416] Bluetooth: HCI UART driver ver 2.2 [ 245.025277] Bluetooth: HCI H4 protocol initialized [ 245.030373] Bluetooth: HCI BCSP protocol initialized [ 245.035638] Bluetooth: HCILL protocol initialized [ 245.040625] Bluetooth: HCIATH3K protocol initialized [ 245.045883] Bluetooth: HCI Three-wire UART (H5) protocol initialized Device setup complete root@beaglebone:~# [ 245.475620] Bluetooth: BNEP (Ethernet Emulation) ver 1.3 [ 245.481356] Bluetooth: BNEP filters: protocol multicast [ 245.493115] Bluetooth: BNEP socket layer initialized [ 245.588394] Bluetooth: RFCOMM TTY layer initialized [ 245.594295] Bluetooth: RFCOMM socket layer initialized [ 245.599742] Bluetooth: RFCOMM ver 1.11 root@beaglebone:~# hciconfig -a hci0: Type: BR/EDR Bus: UART BD Address: 98:7B:F3:D8:E9:C2 ACL MTU: 1021:6 SCO MTU: 180:4 UP RUNNING PSCAN RX bytes:924 acl:0 sco:0 events:40 errors:0 TX bytes:1010 acl:0 sco:0 commands:40 errors:0 Features: 0xff 0xfe 0x2d 0xfe 0xdb 0xff 0x7b 0x87 Packet type: DM1 DM3 DM5 DH1 DH3 DH5 HV1 HV2 HV3 Link policy: RSWITCH HOLD SNIFF Link mode: SLAVE ACCEPT Name: 'beaglebone-0' Class: 0x420100 Service Classes: Networking, Telephony Device Class: Computer, Uncategorized HCI Version: 4.0 (0x6) Revision: 0x0 LMP Version: 4.0 (0x6) Subversion: 0xac20 Manufacturer: Texas Instruments Inc. (13)
However this generic profile is unable to discover any nearby BT devices via 'hcitool scan'.
Note in trying to get the UART configured, we also applied the RTS/CTS serial driver patch posted on TI wiki at:
http://processors.wiki.ti.com/index.php/WL18xx_Platform_Integration_Guide
It seems evident that RTS/CTS handshaking is required for loading TI BTS profiles with 'hciattach'.
Is there a way to get this basic BT functionality working without adding more SW layers (like WLink8 driver patch set or Bluetopia stack)?
--DaveM