background image

 Port Initialization

and Direction Control

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              

Semiconductor Group

4 of 7

AP164601   1998-02

Note 2: When a port is in the initial input configuration after reset, and no external source
is driving the pins to defined logic levels, it is not guaranteed that the reset value ’0’ for a
specific bit will still be in the port data register after a read-modify-write operation has
been performed on any bit of this port. This applies to explicit AND/OR masking as well
as to Bit and Bit Field instructions, which are implicit read-modify-write instructions and
always perform a complete word access on a port.

The reason for this effect is that any read access on port pins configured as inputs returns
the logic levels of the individual pins. Therefore, when the value in the port data register is
different from the logic level at the pin, the value in the port data register may
unintentionally be overwritten by a read-modify-write operation. This may also result in
sporadic problems when the level at the input pin is floating to random logic levels.

For ports which are associated with the CAPCOM/CAPCOM2 or PWM unit (P2, P7, P8), a
specific  bit protection mechanism has been implemented which prevents single bits
which are modified by the on-chip periperal units from unintentionally being overwritten by
a bit read-modify-write sequence via Bit and Bit Field instructions (see section ’Protected
Bits’ and ’Bit-Handling and Bit-Protection’ in respective User’s Manual, e.g. C167
Derivatives User’s Manual, V2.0, p. 2-17 and p. 4-9).

It is therefore advised to always set the port data register and the port direction register (at
least for all ports without bit protection) as one unit in two consecutive instructions.

In case interrupts could occur after the instruction which writes to the port data register,
and in the interrupt service routine read-modify-write instructions are executed which also
access this port, it is additionally recommended to temporarily disable interrupts, e.g.

; (syntax for 8xC166 microcontrollers)

BFLDH PSW, #0F0h, #0F0h ; set PSW.ILVL to highest priority level
NOP

Note: NMI# may still interrupt this sequence

BSET P1.7

; set initial ouput value

BSET DP1.7

; set direction to output

BFLDH PSW, #0F0h, #00h

; restore previous priority

; (syntax for other C166 microcontrollers)

ATOMIC #2

; disable interrupts and class A traps for 2 instruction cycles

BSET P1L.7

; set initial ouput value

EXTR#1
BSET DP1L.7

; set direction to output

NOP

; or other instruction which does not access P1

This procedure is also recommended when a port pin is used in a bidirectional manner,
i.e. when its direction is dynamically changed from input to output.

Содержание AP164601

Страница 1: ...ntrol This Application Note discusses various aspects of the initialization of port pins as outputs effects of single Bit and Bit Field BFLDL H instructions ports with bit protection initialization of alternate output functions effects of interrupts during port initialization and bitfield function in C compilers Author Christoph Meinhold HL DC AT ...

Страница 2: ...ration as General Purpose Outputs 3 2 2 Configuration of Alternate Output Function 5 2 3 Configuration of CAPCOM Pins 5 3 Initialization of several Port Pins on the same Port 5 AP164601 ApNote Revision History Actual Revision Rel 1 0 Previous Revison Rel 0 0 Page of Actual Rel Page of prev Rel Subjects changes since last release 7 7 Example for bit field function in C added ...

Страница 3: ...ardware All other pins have to be configured by software when they are to be used as outputs 2 Initialization of Single Port Pins as Outputs 2 1 Configuration as General Purpose Outputs When a port pin is to be used as general purpose output first the initial output value should be written to the port data register and then the direction of this pin should be set to output to achieve a defined tra...

Страница 4: ... are modified by the on chip periperal units from unintentionally being overwritten by a bit read modify write sequence via Bit and Bit Field instructions see section Protected Bits and Bit Handling and Bit Protection in respective User s Manual e g C167 Derivatives User s Manual V2 0 p 2 17 and p 4 9 It is therefore advised to always set the port data register and the port direction register at l...

Страница 5: ...l will appear at the pin For P3 13 WR of 8xC166 microcontrollers in particular this low level will be regarded as write strobe by external memory devices and unexpected results may occur 2 3 Configuration of CAPCOM Pins When a Port 2 pin is to be used as compare signal output alternate function for the CAPCOM unit of 8xC166 microcontrollers respectively Port 7 and Port 8 for CAPCOM2 unit on other ...

Страница 6: ...T Px BSET DPx instruction pairs and in general after each instruction which has modified the port direction as follows BSET P3 13 set P3 13 WR SCLK to 1 BSET DP3 13 set direction of P3 13 to output NOP or other instruction which does not access P3 BSET P3 10 set P3 10 TxD0 to 1 BSET DP3 10 set direction of P3 10 to output NOP or other instruction which does not access P3 Or on C level _pubit P3 13...

Страница 7: ...A 0x240A This instruction sequence may result in the following assembler instruction sequence BFLDH P3 24h 24h set P3 13 WR SCLK and P3 10 TxD0 to 1 BFLDL P3 0Ah 0Ah set P3 1 T6OUT and P3 3 T3OUT to 1 CAUTION P3 13 and P3 10 are still inputs when this instruction reads P3 P3 13 and P3 10 values read from pin maybe undefined P3 13 and P3 10 SFR values may be overwritten with pin values no WR strobe...

Отзывы: