- •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 for Test
4.3.6ACITCDR_L [8] (+0x90)
ACITCDR is the test clock divider register, LOW byte. This is a read-only register that provides observation for the bottom 8 bits of the clock divide counter values during test. The counter is a 10-bit, free-running counter that decrements in intervals of two.
Table 4-7 shows the bit assignments for the ACITCDR_L.
|
|
Table 4-7 ACITCDR_L register |
|
|
|
Bit |
Name |
Description |
|
|
|
7:0 |
ACICDCNT_L |
A read of this register returns the current count of the clock |
|
|
divide counter, bits 7-0. |
|
|
|
4.3.7ACITCDR_H [2] (+0x94)
ACITCDR_H is the test clock divider register, HIGH byte. This is a read-only register that provides observation for the top 2 bits of the clock divide counter values during test. Table 4-8 shows the bit assignments for the ACI TCDR_H.
|
|
Table 4-8 ACITCDCR_H register |
|
|
|
Bit |
Name |
Description |
|
|
|
7:2 |
- |
Reserved, read unpredictable. |
|
|
|
1:0 |
ACICDCNT_H |
A read of this register returns the current count of the clock |
|
|
divide counter, bits 9-8. |
|
|
|
4-8 |
© Copyright ARM Limited 1999. All rights reserved. |
ARM DDI 0146C |
Appendix A
ARM PrimeCell Audio CODEC Interface(PL040)
Signal Descriptions
This appendix describes the signals that interface with the ARM PrimeCell Audio
CODEC Interface (PL040). It contains the following sections:
•AMBA APB signals on page A-2
•On-chip signals on page A-3
•Signals to pads on page A-4.
ARM DDI 0146C |
© Copyright ARM Limited 1999. All rights reserved. |
A-1 |
ARM PrimeCell Audio CODEC Interface (PL040) Signal Descriptions
A.1 AMBA APB signals
The PrimeCell ACI module is connected to the AMBA APB as a bus slave. With the exception of the BnRES signal, the AMBA APB signals have a P prefix and are active HIGH. Active LOW signals contain a lower case n. The AMBA APB signals are described in Table A-1.
Table A-1 AMBA APB signal descriptions
Name |
Type |
Source/ |
Description |
|
destination |
||||
|
|
|
||
|
|
|
|
|
BnRES |
Input |
Reset controller |
Bus reset signal, active LOW. |
|
|
|
|
|
|
PADDR[7:2] |
Input |
APB bridge |
Subset of AMBA APB address bus. |
|
|
|
|
|
|
PCLK |
Input |
Clock generator |
AMBA APB clock, used to time all bus |
|
|
|
|
transfers. |
|
|
|
|
|
|
PENABLE |
Input |
APB bridge |
AMBA APB enable signal. PENABLE |
|
|
|
|
is asserted HIGH for one cycle of PCLK |
|
|
|
|
to enable a bus transfer cycle. |
|
|
|
|
|
|
PRDATA [7:0] |
Output |
APB bridge |
Subset of unidirectional AMBA APB |
|
|
|
|
read data bus |
|
|
|
|
|
|
PSEL |
Input |
APB bridge |
PrimeCell ACI select signal from |
|
|
|
|
decoder. When set to 1 this signal |
|
|
|
|
indicates that the slave device is selected |
|
|
|
|
by the AMBA APB bridge, and that a |
|
|
|
|
data transfer is required. |
|
|
|
|
|
|
PWDATA [7:0] |
Input |
APB bridge |
Subset of unidirectional AMBA APB |
|
|
|
|
write data bus. |
|
|
|
|
|
|
PWRITE |
Input |
APB bridge |
AMBA APB transfer direction signal, |
|
|
|
|
indicates a write access when HIGH, |
|
|
|
|
read access when LOW. |
|
|
|
|
|
A-2 |
© Copyright ARM Limited 1999. All rights reserved. |
ARM DDI 0146C |
ARM PrimeCell Audio CODEC Interface (PL040) Signal
A.2 On-chip signals
A free-running reference clock, ACICLK, must be provided. By default it is assumed to be asynchronous to PCLK. Synchronizing registers are used for signals crossing between PCLK and ACICLK domains.
If PCLK and ACICLK are always synchronous then the HDL could be modified to remove the synchronizing registers, but this will also necessitate modification of the test vectors. The on-chip signals required in addition to the APB signals are shown in Table A-2.
|
|
|
Table A-2 On-chip signals |
|
|
|
|
|
|
Name |
Type |
Source/ |
Description |
|
destination |
||||
|
|
|
||
|
|
|
|
|
ACICLK |
Input |
Clock generator |
PrimeCell ACI clock. |
|
|
|
|
|
|
nACIRST |
Input |
Reset controller |
PrimeCell ACI reset signal to ACICLK clock domain, active LOW. |
|
|
|
|
The reset controller must use BnRES to assert nACIRST |
|
|
|
|
asynchronously, but negate it synchronously with ACICLK. |
|
|
|
|
|
|
ACITXINTR |
Output |
Interrupt controller |
Transmit interrupt request. Active HIGH interrupt request asserted |
|
|
|
|
whenever the transmit FIFO is at least half empty. |
|
|
|
|
|
|
ACIRXINTR |
Output |
Interrupt controller |
Receive interrupt request. Active HIGH interrupt request asserted |
|
|
|
|
whenever the receive FIFO is at least half full. |
|
|
|
|
|
|
ACIINTR |
Output |
Interrupt controller |
PrimeCell ACI interrupt request, active HIGH. A single combined |
|
|
|
|
interrupt generated as an OR function of the two individual maskable |
|
|
|
|
interrupts above. |
|
|
|
|
|
|
SCANMODE |
Input |
Test controller |
Scan test hold input. When scan test is used, this signal must be |
|
|
|
|
asserted HIGH during scan testing to ensure that internal data storage |
|
|
|
|
elements can be asynchronously reset. |
|
|
|
|
SCANMODE must be negated LOW during normal use or when |
|
|
|
|
applying manufacturing test vectors via the Test Interface controller |
|
|
|
|
(TIC). |
|
|
|
|
|
The reset inputs should be asynchronously asserted but synchronously negated for each of the clock domains within the ACI. This ensures that logic is reset even if clocks are not present, to avoid any static power consumption problems at power up.
The interrupt functionality is described in Interrupts on page 3-8.
ARM DDI 0146C |
© Copyright ARM Limited 1999. All rights reserved. |
A-3 |