Datasheet

ATmega48/88/168 Automotive [DATASHEET]
7530K–AVR–07/14
58
10.2 Ports as General Digital I/O
The ports are bi-directional I/O ports with optional internal pull-ups. Figure 10-2 shows a functional description of one I/O-
port pin, here generically called Pxn.
Figure 10-2. General Digital I/O
(1)
Note: 1. WRx, WPx, WDx, RRx, RPx, and RDx are common to all pins within the same port. clk
I/O
, SLEEP, and PUD
are common to all ports.
10.2.1 Configuring the Pin
Each port pin consists of three register bits: DDxn, PORTxn, and PINxn. As shown in
Section 10.4 “Register Description for I/O Ports” on page 71, the DDxn bits are accessed at the DDRx I/O address, the
PORTxn bits at the PORTx I/O address, and the PINxn bits at the PINx I/O address.
The DDxn bit in the DDRx register selects the direction of this pin. If DDxn is written logic one, Pxn is configured as an output
pin. If DDxn is written logic zero, Pxn is configured as an input pin.
If PORTxn is written logic one when the pin is configured as an input pin, the pull-up resistor is activated. To switch the
pull-up resistor off, PORTxn has to be written logic zero or the pin has to be configured as an output pin. The port pins are
tri-stated when reset condition becomes active, even if no clocks are running.
If PORTxn is written logic one when the pin is configured as an output pin, the port pin is driven high (one). If PORTxn is
written logic zero when the pin is configured as an output pin, the port pin is driven low (zero).
D
0
1
Q
WRx
RRx
WPx
Pxn
CLR
RESET
Synchronizer
DATA BUS
PORTxn
Q
Q
L
D
Q
QD
Q
PINxn
RESET
RPx
WDx: WRITE DDRx
WRx:
WPx:
RPx:
RRx: READ PORTx REGISTER
READ PORTx PIN
WRITE PORTx REGISTER
RDx:
WRITE PORTx
READ DDRx
PUD: PULLUP DISABLE
CLK
I/O
:
SLEEP:
I/O CLOCK
SLEEP CONTROL
RDx
CLK
I/O
PUD
WDx
SLEEP
D
Q
CLR
DDxn
Q