User`s guide
Aironet Wireless Communications, Inc. 7-18 Confidential and Proprietary
Data0-1 Registers (I/O offsets 0x36 or 0x38)
Bit #1514131211109876543210
Name Data
This register is used to write or read buffer data. The specific buffer and buffer word initially accessed is
determined by values previously written to the related Select and Offset registers. When a word is
written to or read from this register, the internal data pointer is automatically incremented. Therefore,
repeated Data register access addresses consecutive buffer words.
Initial access to the Data register is only allowed if Busy of the related Offset register is 0. During
subsequent Data register accesses (eg. without writes to the related Select and Offset registers) Busy
remains 0.
Alternating writes to and reads from this register is NOT recommended.
Note: due to the automatic internal data pointer increments, the Data offset needs to be rewritten into the
related Offset register when repeated accesses to the same buffer word are needed.
The following is the correct method for accessing memory (FIDs):
SelectX = FIDvalue; // select the appropriate FID/RID
OffsetX = offset; // desired offset
while (OffsetX.Busy) ; // -- add applicable timeout here
if (OffsetX.Err) { // invalid FID or offset
error in access;
return ERROR;
};
read/write to DataX; // note, auto-increments to next word
Notes:
The selector must be written before the offset.
The least-significant bit of the offset register is zero since only words are accessible.
Only word writes are available, a read/modify write is required to change a byte. In this case the offset
register would have to be rewritten since it would auto-increment to the next address.
The OffsetX register is not updated by reads/writes to the DataX register; the original value remains in
the register.
Note, since the OffsetX register is not updated, an interrupt service routine cannot use the same BAPx
registers as are in use by an interrupted routine.