Micrel
MICRF405
April 2006
12
M9999-041906
(408) 955-1690
Writing to n Registers having Non-Incremental
Addresses
Registers with non-incremental addresses can be
written to in one write-sequence as well. Example of
non-incremental addresses: 0,1,3. However, this
requires more overhead, and the user should
consider the possibility to make a continuous
update, for example, by writing to 0,1,2,3 (writing
the present value of 2 into 2). The simplest
firmware is achieved by always writing to all
registers. Refer to previous sections.
This write-sequence is divided into several sub-
parts:
" Disable the generation of load-signals by
clearing bit load_en (D0 in ControlRegister0)
" Repeat for each group of register having
incremental addresses:
- Bring SEN active
- Enter first address for this group, R/W bit and
values
- Bring SEN inactive
" Finally, enable and make a load-signal by
setting load_en
Refer to the previous sections for how to write to 1 or
n (with incremental addresses) registers in the
MICRF405.
Reading from the Control Registers in MICRF405
The read-sequence is:
1.   Enter address and R/W bit
2.   Change direction of SIO line
3.   Read out a number of octets and change SIO
direction back again.
It is possible to read all, 1 or n registers. The
address to read from (or the first address to read
from) can be any valid address (0-29). Reading is
not destructive, i.e., values are not changed. The
SIO line is output from the MICRF405 (input to user)
for a part of the read-sequence. Refer to procedure
description below.
A   read-sequence   is   described   for   reading   n
registers, where n is number 1-30.
SEN
SIO
SCK
Register address
Data read
from register
Internal load pulse
generated here
A6A5A4A3A2A1A0R/W
D7D6D5D4D3D2D1 D0
SIO INPUT
SIO OUTPUT
SAMPLE TIME
Figure 4. Reading from a Control Register.
In Figure 4 above, 1 register is read. The address is
A6, A5, & A0. A6 = MSB. The data read out is D7,
D6, &D0. The value of the R/W bit is always 1 for
reading.
" Bring SEN low
" Enter address to read from (or the first address
to read from) (7 bits) and
" The R/W bit = 1 to enable reading
" Make the SIO line an input to the user (set pin in
tristate)
" Read n octets. The first rising edge of SLK will
set the SIO as an output from the MICRF405.
The 405 will change the SIO line at positive
edges of SCK. The user should read the SIO
line at the negative edges.
" Make the SIO line an output from the user again.
Reading from the Interrupt Register
If any of the interrupts, Vc_HI, Vc_LO or Low_Batt,
is set the SRV pin will go high. Read the interrupt
register, address 24, to see which interrupts are
flagged. It is possible to read this register at all
times, for instance, to read the tuned VCO_FREQ
setting which is also stored at the same address.
When rising SEN after haveing read the register, the
internal load pulse will then clear all interrupt flags.
To keep the flags when reading it, it is therefore
necessary to set LOAD_en=0 before hand.