User's Manual

Datalogic Scanning, Inc
959 Terry Street
Eugene, Oregon 97402
Page 63 10/23/2009
Revision X2
This pskey enables the security mechanism.
When a BlueCore module is freshly manufactured this bool flag is set FALSE. The host may then read and
write all ps values and can run all of the BCCMD commands. This allows the manufacturer to configure the
Bluetooth module.
When the configuration is complete the manufacturer sets this pskey to TRUE. This enables the ps and
bccmd access controls. Once set TRUE this key cannot be set back to FALSE via BCSP running over
BCSP or the HCI extension channel. Setting security active is thus normally a one-way operation.
(Type bool is fundamentally a uint16 with values 0 and 1 mapping to FALSE and TRUE.)
Key Name Key Number Type Default Setting
PSKEY_ANA_FREQ 0x01fe uint16 none
Configures the BlueCore hardware to work with a particular reference clock frequency.
For chips prior to BlueCore2-ROM the default, 4, configures the chip to use a 16 MHz reference. The value
defines a reference frequency of n*250 kHz where n is an integer, but there is a pseudo-random mapping
from n to the required value. This is covered in supporting documentation.
For BlueCore2-ROM and subsequent chips, the value defines the reference frequency in units of 1 kHz.
The default value, 26000, configures the chip to use a 26 MHz reference. If the key is absent or the value is
zero, the chip will attempt to pick a frequency; this cannot be relied upon to be the correct frequency, so the
radio will not be usable.
The automatic clock frequency detection mechanism is likely to be most useful in ROM parts, and is
further described in document CS-101436-ME (previously numbered as bcore-me-014) which is available
from the CSR support website.
See also the description of PSKEY_ANA_FTRIM
.
Key Name Key Number Type Default Setting
PSKEY_PIO_PROTECT_MASK 0x0202 uint16 0
Each BlueCore chip contains a PIO port that may, under BCCMD or VM control, be used as a general
input / output port. However, various optional hardware and software configurations require the use of
certain PIO pins for their own needs, e.g., an optional external PA/LNA block may be driven using PIO
pins 0 and 1.
This pskey prevents applications from changing PIO pins that are required for lower level functions. This
blocking action applies to host-based applications requesting PIO changes via BCCMD and to VM
applications running on the chip.
Some of the lower level functions automatically prevent the application from changing the state of PIOs
being used by the function by overriding the value of the relevant bits in this pskey. This includes the PIOs
related to PSKEY_TXRX_PIO_CONTROL
, PSKEY_USB_PIO_VBUS, PSKEY_USB_PIO_DETACH,
PSKEY_USB_PIO_PULLUP
, PSKEY_USB_PIO_WAKEUP and PSKEY_USB_PIO_RESUME (so, for
instance, if PSKEY_USB_PIO_DETACH
claims the use of PIO[5] then this PIO cannot be changed by
application code no matter what the value of PSKEY_PIO_PROTECT_MASK
is).