- •Preface
- •About this document
- •Intended audience
- •Organization
- •Typographical conventions
- •Timing diagram conventions
- •Further reading
- •ARM publications
- •Feedback
- •Feedback on this document
- •Feedback on the ARM PrimeCell Audio CODEC Interface (PL040)
- •Introduction
- •1.1 About the ARM PrimeCell Audio CODEC Interface (PL040)
- •1.1.1 Features of the PrimeCell ACI
- •1.1.2 An example CODEC interface
- •1.2 AMBA compatibility
- •Functional Overview
- •2.1 ARM PrimeCell Audio CODEC Interface (PL040) overview
- •2.2 PrimeCell ACI functional description
- •2.2.1 AMBA APB interface and register block
- •2.2.2 Frequency divider
- •2.2.3 Transmit FIFO
- •2.2.4 Receive FIFO
- •2.2.5 Transmit logic
- •2.2.6 Receive logic
- •2.2.7 Interrupt generation logic
- •2.2.8 Synchronizing registers and logic
- •2.2.9 Test registers and logic
- •2.3 PrimeCell ACI operation
- •2.3.1 Interface reset
- •2.3.2 Clock signals
- •2.3.3 PrimeCell ACI operation
- •2.3.4 System loopback testing
- •Programmer’s Model
- •3.1 About the programmer’s model
- •3.2 Summary of PrimeCell ACI registers
- •3.3 Register descriptions
- •3.3.1 ACIDR: [8] (+ 0x00)
- •3.3.2 ACICR: [5] (+ 0x04)
- •3.3.3 ACISR: [8] (+0x08)
- •3.3.4 ACICDR_L: [8] (+ 0x0c)
- •3.3.5 ACICDR_H: [2] (+ 0x10)
- •3.4 Interrupts
- •3.4.1 Interrupt generation logic
- •Programmer’s Model for Test
- •4.1 PrimeCell ACI test harness overview
- •4.2 Scan testing
- •4.3 Test registers
- •4.3.2 ACITCR [5] (+0x80)
- •4.3.3 ACITMR [3] (+0x84)
- •4.3.4 ACITISR [1] (+0x88)
- •4.3.5 ACITOCR [4] (+0x8c)
- •4.3.6 ACITCDR_L [8] (+0x90)
- •4.3.7 ACITCDR_H [2] (+0x94)
- •A.1 AMBA APB signals
- •A.2 On-chip signals
- •A.3 Signals to pads
Programmer’s Model
3.4Interrupts
Refer to Interrupt generation logic below for a functional description of the interrupt generation logic.
Two individual maskable active HIGH interrupts, ACIRXINTR and ACITXINTR, are generated by the PrimeCell ACI. Each of these interrupts may be enabled or disabled by changing the mask bits TIE and RIE in ACICR. Setting the appropriate mask bit HIGH enables the corresponding interrupt. This allows for a system interrupt controller to provide the mask registers for each interrupt. In this way a global interrupt service routine would be able to read the entire set of sources from one wide register in the system interrupt controller. This is an attractive option where the time to read from the peripheral registers is significant compared to the CPU clock speed in a real time system.
The interrupts are also output as a combined single interrupt that is an OR function of the individual masked sources. ACIINTR is asserted if any of the two individual interrupts above are asserted and unmasked. This output can be connected to the system interrupt controller to provide another level of masking on a per-peripheral basis. This allows use of modular device drivers that always know where to find the interrupt source control register bits.
The status of the individual interrupt sources can be read from ACISR.
3.4.1Interrupt generation logic
The two maskable active HIGH interrupts, ACIRXINTR and ACITXINTR, and the combined single interrupt ACIINTR that are generated by the ACI, are described below:
ACIRXINTR The receive interrupt is asserted when the ACI receive FIFO is greater than or equal to half full (the FIFO contains eight or more words and the mask bit RIE is set in ACICR).
The receive interrupt is cleared when the FIFO becomes less than half full (the FIFO contains less than eight words).
ACITXINTR The transmit interrupt is asserted when the ACI transmit FIFO is at least half empty (the FIFO contains less than eight words and the mask bit TIE is set in ACICR).
The transmit interrupt is cleared by filling the transmit FIFO to more than half full (the FIFO contains more than eight words).
3-8 |
© Copyright ARM Limited 1999. All rights reserved. |
ARM DDI 0146C |
Programmer’s Model
The individual masked interrupt outputs are also combined into a single output that is an OR function of the individual sources. This output can be connected to the system interrupt controller to provide another level of masking on an individual per-peripheral basis.
ACIINTR |
The combined ACI interrupt is asserted when any of the two |
|
individual interrupts above is asserted and the corresponding |
|
mask is enabled. |
The transmit interrupt ACITXINTR is not qualified with the ACI Transmit Enable signal, which allows operation in one of two ways. Data can be written to the transmit FIFO prior to enabling the ACI, and then interrupts can be enabled. Alternatively, the ACI can be transmit enabled and interrupt enabled so that data values are written to the transmit FIFO by the Interrupt Service Routine.
ARM DDI 0146C |
© Copyright ARM Limited 1999. All rights reserved. |
3-9 |
Programmer’s Model
3-10 |
© Copyright ARM Limited 1999. All rights reserved. |
ARM DDI 0146C |