From: Larry M. <Larry@GlueLogix.com> - 2008-11-28 18:59:26
|
Is there a theory of operation for Gumstix Bluetooth - not a FAQ or a Howto (both of which seem unrealistically optimistic), but something that explains how this hardware is hooked together and meant to work? I am using a new Verdex XM4-BT with a NetCF-VX and Console-VX. All boards were purchased in October 2008. The BTxXD jumpers are removed from the Console board. My image is buildroot 1637 with bluez and netkit/telnetd. On bootup, I get: Starting 32kHz clock...Settled Starting Bluetooth subsystem:Trying baud rate 57600... No response after reset Initialization timed out. Same happens at runtime when I run: /etc/init.d/S30bluetooth start and hciattach -s 57600 ttyS1 gumstix 921600 flow This is a recurring problem on the mailing lists, and I'm researching it, but am hoping that someone will be able to furnish a key piece of information that will get me going. After reading older posts on this topic, I have verified that the following lines appear in /etc/init.d/S30Bluetooth before the call to hciattach: echo "AF1 in" >/proc/gpio/GPIO42 echo "AF2 out" >/proc/gpio/GPIO43 echo "AF1 in" >/proc/gpio/GPIO44 echo "AF2 out" >/proc/gpio/GPIO45 and that the call to `sleep 1` is before the call to sdptool in the same file. The GPIO settings look repetitive to me, in that "AF1 in" is assigned to both GPIO42 and GPIO44, but that's how they are shown in several older mailing list messages. Reading older posts, I see statements like "you need to swap HWUART and ??UART". Those statements probably make sense if you already know the answer, or have access to the Verdex schematics, but I don't get it. I see in gumstix_bluetooth.c that the 4 GPIO settings above are made to HWUART, and seem less repetitive than the standard lines above in that each line gets a different function: /* Set up GPIOs to use the BTUART */ pxa_gpio_mode(GPIO42_HWRXD_MD); pxa_gpio_mode(GPIO43_HWTXD_MD); pxa_gpio_mode(GPIO44_HWCTS_MD); pxa_gpio_mode(GPIO45_HWRTS_MD); I also see in some older posts that people have solved this problem by going to OE or even enabling curses, but there are also other posts that say "I tried that but..."; which all leads me to believe there is some under-the-radar configuration that changes as different packages are linked in. To find something like that, I'll need to know more about the circuit. I'm currently reading the driver source, trying to grow a clue. So, does anybody have a link to something that explains this architecture, or the time to write it out now? Thanks, Larry |