Craig Hughes wrote:
> On Jan 4, 2007, at 12:25 PM, Ricardo Martins wrote:
>> I'm sorry if I'm being rude, but this particular issue is very
>> for the prototype I'm developing using two gumstix. Does anyone
>> know the
>> answer, if not I'll sign the Infinion NDA and implement the correct
>> configuration myself.
> when/if you sign the Infineon NDA, you'll get a document which says
> that the only way to change the baud rate is to re-write a set of
> clock control registers in the module firmware, then "reboot" the
> module -- the "HCI_Ericsson_Set_UART_Baud_Rate" which had been in the
> ROK104001 module is no longer there in PBA31307 (though there is a
> command like it back now in PBA31308). You need to rewrite something
> like 7 or 8 parameters using a "HCI_Infineon_Write_Clock_Data"
> command, only the "baud rate" one of which is supposed to change. A
> couple of the other parameters aren't particularly well documented
> (or documented at all). There is no "HCI_Infineon_Read_Clock_Data"
> to read out the existing values so that they can just be passed back
> in the write command. There is an "HCI_Infineon_Read_EEPROM_Data"
> command with which you can read all the params out a byte at a time,
> but then you need to pay close attention to byte-ordering issues. To
> figure out what should go in the other 6 or 7 parameters, I read the
> docs carefully, read the existing values of the params, and had
> extensive discussion with the Infineon technical folks. When I set
> the baud rate to anything other than 115200, it came out as 1.3333x
> what I'd told it to be; so trying to go to 921600 actually made the
> baud rate (according to the PXA255's baudrate detection thing on the
> HWUART) be over a megabaud, which of course the gumstix (to which the
> module is soldered) can not handle. So I tried seting the rate to
> something where 1.3x was still in range for the gumstix, and found
> that at high speeds, it's hard to get a divisor on the gumstix UART
> which will match the bad module baud rate closely enough.
> I discussed this baud-rate-is-1.3x-what-it-should-be problem with
> Infineon, and they couldn't come up with a fix. They asked me to
> warn anyone if I did publish my code that passing the wrong
> parameters to the "HCI_Infineon_Write_Clock_Data" command could
> result in a bricked bluetooth module (I managed to kill a few myself
> before I realized what was happening with the 1.3x baud rate thing).
> So anyway, suffice to say that it's somewhat tricky doing this
> properly. I never managed to get the right set of parameters to get
> the module to correctly switch speeds, and I nuked 3 bluetooth
> modules in trying. I think I was getting somewhat close (from re-
> reading my email correspondence with Infineon) but then got sidelined
> onto another project. I have a patch that I sent to infineon at the
> time for hciattach which attempted to set the baudrate on the module
> by reading the various other values from EEPROM and then constructing
> a set of params to poke back. That patch is attached here but BEWARE
> THAT IT IS VERY LIKELY BROKEN AS-IS, AND WILL QUITE LIKELY RENDER
> YOUR PBA31307 USELESS IF YOU EXECUTE THE CODE AGAINST THE MODULE. It
> might form a useful starting point though if you want to work on it
> some more. I also have the chain of emails back and forth between me
> and Infineon which I can share with you if you get under Infineon NDA
> -- actually the emails won't mean much unless you have the Infineon
> datasheet and docs to refer to, but if you do have those, then it
> will be very valuable in saving you the time that I had put into this
> back then.
Thank you for such a complete reply. I thought the changing the speed
was not implemented for lack of time or interest (since there is a new
bluetooth chip shipping with the gumstix). Knowing this I'll probably
have to think of another method or wait a few weeks for a gumstix with
the new chip to arrive here. Anyway, I'll give it a deep thought. Thank
you once again for the insight in the matter.