1101
SPRUH82C – April 2013 – Revised September 2016
Copyright © 2013–2016, Texas Instruments Incorporated
Multichannel Audio Serial Port (McASP)
Figure 24-22. McASP I/O Pin to Control Register Mapping
31
30
29
28
27
26
25
24
AFSR
AHCLKR
ACLKR
AFSX
AHCLKX
ACLKX
AMUTE
Reserved
R/W-0
R/W-0
R/W-0
R/W-0
R/W-0
R/W-0
R/W-0
R-0
23
16
Reserved
R-0
15
14
13
12
11
10
9
8
AXR15
AXR14
AXR13
AXR12
AXR11
AXR10
AXR9
AXR8
R/W-0
R/W-0
R/W-0
R/W-0
R/W-0
R/W-0
R/W-0
R/W-0
7
6
5
4
3
2
1
0
AXR7
AXR6
AXR5
AXR4
AXR3
AXR2
AXR1
AXR0
R/W-0
R/W-0
R/W-0
R/W-0
R/W-0
R/W-0
R/W-0
R/W-0
LEGEND: R/W = Read/Write; R = Read only; -
n
= value after reset
Example 24-1. General-Purpose Input Pin
Because the PDIN register always reflects the state at the pin, you can read the PDIN register to obtain the
pin input state. To explicitly set the pin as a general-purpose input pin, you can set the registers as follows:
•
PDIR[n] = 0 (input)
•
PFUNC[n] = 1 (GPIO function)
Example 24-2. General-Purpose Output Pin—Initialization Using PDOUT
All pins default as inputs. To initialize a pin as output, you should follow this sequence:
1. PDIR[n] = 0 (default as input)
2. PFUNC[n] = 1 (GPIO function)
3. PDOUT[n] = desired output value
4. PDIR[n] = 1 (change to output after desired value is configured in PDOUT[n])
Example 24-3. General-Purpose Output Pin—Change Data from 0 to 1 Using PDSET
If the pin is already configured as a general-purpose output pin driving a 0, and you want to change the output
from 0 to 1, the recommended method is to use the PDSET register instead of the PDOUT register. This is
because writing to the PDSET register only affects pin(s) in concern. To change a pin from 0 to 1:
•
Set PDSET[n]. This sets the respective PDOUT[n].
Example 24-4. General-Purpose Output Pin—Change Data from 1 to 0 Using PDCLR
If the pin is already configured as a general-purpose output pin driving a 1, and you want to change the output
from 1 to 0, the recommended method is to use the PDCLR register instead of the PDOUT register. This is
because writing to the PDCLR register only affects pin(s) in concern. To change a pin from 1 to 0:
•
Set PDCLR[n]. This clears the respective PDOUT[n].