Re: How to run up CSR chip without eeprom with BLUEZ ?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi  sanja, attaboyu, henry

        Thanks for your help, I can do the hcitool scan now!

    It's my bad, I set the ANA_FREQ in worng way,
    At first I try bccmd -t bcsp way to set the ana_freq, And find it not 
work,
    and I use   bccmd -t bcsp -d /dev/ttyS1 psget -s 0x0 0x1fe to read the 
value
    but it says
    Can't execute command: No such device or address (6)

    So I remove it.

    And when I do the following test again , I add it back,  But ... shame , 
My chip is using 40M crystal , When I calculate the value I put 4000 in calc 
to get 0xfa0 , But it should be 40000 and thus 0x9c40

    I check my csr.psr and correct it just now it  works now.

    And I understand now, why bccmd -t bcsp -d /dev/ttyS1 psget -s 0x0 0x1fe 
got nothing at the biginning. This pskey unlike the other pskey say 0x1be , 
they have a "psrom" version value, so before you set it, you can read it out 
from "psrom" ( which can be done by -s 0x0 say "default" ) , and after you 
setting them , you can also read it out from "psram" , this pskey do not 
have default value in "psrom" ( strange ? ) and only after you successfully 
setting it , it can be read out.

    (  However, It is really strange here, without setting this value, why 
hciattach can connect the chip for the first time, while do a warmreset , it 
won't ? Is csr's chip do a self uart baudrate adjustment to match the host 
for the first time ? )

    Thanks for all of you's help on this issue!

    So My process now is :

    boot up the fs

    insmod bluetooth.ko
    insmod hci_uart.ko
    insmod l2cap.ko
    insmod rfcomm.ko

    bccmd -t bcsp -d /dev/ttyS1  psload -r csr.psr

    hciattach -s 921600 /dev/ttyS1 bcsp 921600
    hciconfig hci0 up
    hciconfig hci0 piscan
    hcitool -i hci0 scan

Thanks again

Hope I do not get further problems with those bluez daemons 8  )

Raymond


> If  I using -r in the bccmd:
>
> ~ # bccmd -t bcsp -d /dev/ttyS1 psload -r csr.psr
> Loading PSKEY_ANA_FREQ ... done
> Loading PSKEY_UART_BAUDRATE ... done
> Loading PSKEY_UART_SEQ_WINSIZE ... done
> Loading PSKEY_BDADDR ... done
> Loading PSKEY_PCM_CONFIG32 ... done
> Loading PSKEY_PCM_FORMAT ... done
> Loading PSKEY_HOSTIO_MAP_SCO_PCM ... done
> Loading PSKEY_HOSTIO_MAP_SCO_CODEC ... done
> Loading PSKEY_CODEC_PIO ... done
> Loading PSKEY_ANA_FTRIM ... done
> ~ #
> ~ # hciattach -s 921600 /dev/ttyS1 bcsp 921600
> BCSP initialization timed out

Which baud rate do you set in your .psr file? You should use the same
speed in hciattach command, otherwise chip will be initialized to one
speed, and hciattach will try to connect using another one.


> I try to use following cmd to see whether the cmd is write in to the
chip,
> but :
>
> ~ # bccmd -t bcsp -d /dev/ttyS1 psget -s 0x0 0x1be
> UART Baud rate: 0x0000 (0)
> ~ #
> ~ # bccmd -t bcsp -d /dev/ttyS1 psset -s 0x0 0x1be 0x0ebf
> ~ #
> ~ # bccmd -t bcsp -d /dev/ttyS1 psget -s 0x0 0x1be
> UART Baud rate: 0x0000 (0)
>
> seems chip just reset it self between two bccmd with bcsp protocol,
and lost
> everything write to it.

Yes, I had the same behaviour, and only if I use -r with first bccmd
things worked. Reading the fault code returned FAULT_HOSTIO_INVALID_ACK
(the chip received a BCSP ACK for a message it has not sent) - based on
this I conclude that repeating bccmd messes the chips state machine
during BCHS protocol initialization.

Regards,
Sanja




-------------------------------------------------------------------------
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://sourceforge.net/services/buy/index.php
_______________________________________________
Bluez-devel mailing list
Bluez-devel@xxxxxxxxxxxxxxxxxxxxx
https://lists.sourceforge.net/lists/listinfo/bluez-devel

[Index of Archives]     [Linux Bluetooth Devel]     [Linux USB Devel]     [Network Devel]     [Linux Audio Users]     [Yosemite News]     [Linux SCSI]

  Powered by Linux