AD1821 Analog Devices, AD1821 Datasheet - Page 28
![no-image](/images/manufacturer_photos/0/0/56/analog_devices_sml.jpg)
AD1821
Manufacturer Part Number
AD1821
Description
Manufacturer
Analog Devices
Datasheet
1.AD1821.pdf
(44 pages)
Available stocks
Company
Part Number
Manufacturer
Quantity
Price
Company:
Part Number:
AD1821JC
Manufacturer:
TOKO
Quantity:
1 027
Part Number:
AD1821JS
Manufacturer:
ADI/亚德诺
Quantity:
20 000
AD1821
[Base+14]
JAXIS [7:0]
Note: Axis to be read through this register is selected by the JSEL bits in the control register. A write to this register starts a sampling
cycle.
[Base+15]
JAXIS [15:8]
Note: Axis to be read through this register is selected by the JSEL bits in the control register. A write to this register starts a sampling
cycle.
Sound System Indirect Registers
Writing Indirect Registers
All Indirect Registers “MUST” be written in pairs: low byte followed by high byte. The Indirect Address Register [SSBASE+0]
holds the address for a register pair, the Indirect Low Data Byte [SSBASE+2] is used to write low data byte and the Indirect High
Data Byte [SSBASE+3] is used to write the high data byte. The low data byte is held in the temporary register until the upper byte is
written.
Programming Example
“Write Sample Rate for Voice Playback at 11,000 Hz (0x2AF8)”
1) Write [SSBASE+0] with 0x02
2) Write [SSBASE+2] with 0xF8
3) Write [SSBASE+3] with 0x2A
Reading Indirect Registers
All indirect registers can be individually read. The Sound System Indirect Address Register [SSBASE+0] holds the address for a reg-
ister pair, the Indirect Low Data Byte [SSBASE+2] is used to read low data byte and Indirect High Data Byte [SSBASE+3] is used
to read the High data byte.
Programming Example
“Read Sample Rate for Voice Playback set to 11,000 Hz (0x2AF8)”
1) Write [SSBASE+0] with 0x02
2) Read [SSBASE+2]
3) Read [SSBASE+3]
ISR Saves and Restores
For Interrupt Service Routines, ISRs, it is necessary to save and restore the Indirect Address and the Low Byte Temporary Data
holding registers inside the ISR.
Programming Example
“Save/Restore during an ISR”
Beginning of ISR:
1) Read [SSBASE+0]
2) Write [SSBASE+0] with 0x00;
3) Read [SSBASE+2]
4) ISR Code
5) Write [SSBASE+2] with TMP_LBT
6) Write [SSBASE+0] with TMP_IA
7) Return from Interrupt
Joystick Position Data Low Byte
Joystick Position Data High Byte
(RO)
(RO)
7
7
Joystick Axis Low Byte.
Joystick Axis High Byte.
6
6
5
5
; indirect register for voice playback sample rate
; low byte of 16-bit sample rate register
; high byte of 16-bit sample rate register
; indirect register for voice playback sample rate
; low byte of 16-bit sample rate register set to 0xF8
; high byte of 16-bit sample rate register set to 0x2A
; save Indirect Address register to TMP_IA
; indirect Register for Low Byte Temporary Data
; save Low Byte Temporary data to TMP_LBT
; ISR routine
; restore Low Byte Temporary data TMP_LBT
; restore Indirect Address Register to TMP_IA
; return from ISR
JAXIS [15:8]
4
4
JAXIS [7:0]
3
3
–28–
2
2
1
1
0
0
RESET = [0xFF]
RESET = [0xFF]
REV. 0