Microchip Technology dsPIC24 series Family Reference Manual Download Page 3

 2006-2019 Microchip Technology Inc.

DS30009711C-page 3

I/O Ports with PPS

2.0

I/O PORT CONTROL REGISTERS

All I/O ports have four registers directly associated with the operation of the port, where ‘x’ is a
letter that denotes the particular I/O port:
• TRISx: PORTx Data Direction Control register
• PORTx: I/O Portx register
• LATx: PORTx Data Latch register
• ODCx: PORTx Open-Drain Control register
Each I/O pin on the device has an associated bit in the TRISx, PORTx, LATx and ODCx registers.

2.1

TRIS Registers

The TRISx register control bits determine whether each pin associated with the I/O port is an
input or an output. If the TRISx bit for an I/O pin is a ‘

1

’, then the pin is an input. If the TRISx bit

for an I/O pin is a ‘

0

’, then the pin is configured as an output. An easy way to remember this is

that a ‘

1

’ looks like an I (Input) and a ‘

0

’ looks like an O (Output). All port pins are defined as

inputs after a Reset.

2.2

PORT Registers   

Data on an I/O pin are accessed via a PORTx register. A read of the PORTx register reads the
value of the I/O pin, while a write to the PORTx register writes the value to the port data latch.
This will also be reflected on the PORTx pins if the TRISx is configured as an output and the
multiplexed peripherals (if any) are disabled.
Many instructions, such as 

BSET

 and 

BCLR

, are Read-Modify-Write (RMW) operations. There-

fore, a write to a port implies that the port pins are read, the value is modified and then written
back to the port data latch. Care should be taken when Read-Modify-Write instructions are used
on the PORTx registers when some I/O pins associated with the port are configured as inputs. If
an I/O pin configured as an input is changed to an output, at some later time, an unexpected
value may be output on the I/O pin. To avoid this, first write to the associated PORTx bit and then
change the direction of the pin as an output.
In addition, if Read-Modify-Write instructions are used on the PORTx registers while I/O pins are
configured as outputs, unintended I/O behavior may occur based on the device speed and I/O
capacitive loading. 

Figure 2-1

 illustrates unintended behavior that occurs if the user application

attempts to set I/O bits, 0 and 1 on PORTA, with two consecutive Read-Modify-Write instructions
in the PORTA register. At high CPU speeds and high-capacitive loading on the I/O pins, the
unintended result of the example code is that only I/O bit 1 is set high. 

Note:

The total number of ports and available I/O pins will depend on the device variant.
In a given device, all of the bits in a PORT register may not be implemented. Refer
to the specific device data sheet for further details.

Note:

Set the pin as an output and drive to zero (TRISx = 

1

, LATx = 

1

) prior to making the

I/O pin an input (TRISx = 

1

). This helps discharge the parasitic capacitance internal

to the I/O pin.

Summary of Contents for dsPIC24 series

Page 1: ...following topics 1 0 Introduction 2 2 0 I O Port Control Registers 3 3 0 Peripheral Multiplexing 7 4 0 Peripheral Pin Select 9 5 0 Port Descriptions 19 6 0 Change Notification CN Pins 19 7 0 Register...

Page 2: ...als Figure 1 1 shows a block diagram of a typical I O port This block diagram does not take into account peripheral functions that may be multiplexed onto the I O pin Figure 1 1 Dedicated Port Structu...

Page 3: ...ify Write RMW operations There fore a write to a port implies that the port pins are read the value is modified and then written back to the port data latch Care should be taken when Read Modify Write...

Page 4: ...is 0 then the pin is configured for a normal digital output ODC bit is valid only for output pins After a Reset the status of all the bits of the ODCx register is set to 0 The open drain feature allo...

Page 5: ...t is cleared x Bit is unknown bit 15 0 TRISx 15 0 PORTx Data Direction Control bits 1 1 The pin is an input 0 The pin is an output Note 1 Refer to the specific device data sheet for the actual impleme...

Page 6: ...bit 15 0 LATx 15 0 PORTx Data Latch bits 1 1 The latch content is 1 0 The latch content is 0 Note 1 Refer to the specific device data sheet for the actual implementation R W 0 R W 0 R W 0 R W 0 R W 0...

Page 7: ...e peripheral functions may be multiplexed on each I O pin The priority of the peripheral function depends on the order of the pin description in the pin diagram of the specific product data sheet Figu...

Page 8: ...Software Input Pin Control Some of the functions assigned to an I O pin may be input functions that do not take control of the pin output driver An example of one such peripheral is the input capture...

Page 9: ...ates a remappable peripheral and n is the remappable pin number If the pin supports only the input function Peripheral Pin Select feature then it will be designated as RPIn For more details refer to t...

Page 10: ...ch Read PORTx Read TRISx n 0 WR TRISx Peripheral 2 Output Enable I O Peripheral n Output Enable PIO Module Output Multiplexers Output Function Read LATx 0 1 Peripheral Input Q Peripheral 1 Output Enab...

Page 11: ...ociated with a peripheral dictates the pin it will be mapped to The RPINRx reg isters refer to Register 4 3 and Table 4 1 contain sets of 6 bit fields with each set associated with one of the remappab...

Page 12: ...pture 2 IC2 RPINR7 13 8 IC2R 5 0 Input Capture 3 IC3 RPINR8 5 0 IC3R 5 0 Input Capture 4 IC4 RPINR8 13 8 IC4R 5 0 Input Capture 5 IC5 RPINR9 5 0 IC5R 5 0 Output Compare Fault A OCFA RPINR11 5 0 OCFAR...

Page 13: ...is mapped to the pin see Table 4 1 and Figure 4 3 The peripheral outputs that support Peripheral Pin Selection have no default pins Since the RPORy registers reset to all 0 s the outputs are all disc...

Page 14: ...on 1 RPnR 5 0 Output Name NULL 0 The pin is an I O Port pin C1OUT 1 RPn tied to Comparator 1 Output C2OUT 2 RPn tied to Comparator 2 Output U1TX 3 RPn tied to UART1 Transmit U1RTS 4 RPn tied to UART1...

Page 15: ...e the unlock sequence should be performed by writing inline assembly or using built in functions provided by the MPLAB C30 C Compiler IOLOCK remains in one state until changed This allows all of the P...

Page 16: ...ral output to a particular pin does not automatically perform any other configuration of the pin s I O circuitry This means adding a pin selectable output to a pin may mean inadvertently driving an ex...

Page 17: ...p w3 n pop w2 n pop w1 Configure Input Functions Assign U1Rx To Pin RP0 RPINR18bits U1RXR 0 0 represents RP0 Assign U1CTS To Pin RP1 RPINR18bits U1CTSR 1 1 represents RP1 Configure Output Functions As...

Page 18: ...in bits 1 bit 7 6 Unimplemented Read as 0 bit 5 0 Input Function Bits 5 0 Assign Peripheral to Corresponding RPn Pin bits 1 Note 1 Here n represents the peripheral select input pin number 2 Here x rep...

Page 19: ...registers associated with the CN module The CNENx registers contain the CNxIE control bits where x denotes the number of the CN input pin The CNxIE bit must be set for a CN input pin to interrupt the...

Page 20: ...condition and set up the CN logic to detect the next pin change The current PORTx value can be compared to the PORT read value obtained at the last CN interrupt to determine the pin that changed The C...

Page 21: ...x3 Rx2 Rx1 Rx0 xxxx ODCx PORTx Open Drain Control bits 0000 Note 1 Refer to the specific device data sheet for the I O Ports register map details Name Bit 15 Bit 14 Bit 13 Bit 12 Bit 11 Bit 10 Bit 9 B...

Page 22: ...pecifically for the dsPIC33 PIC24 families of devices but the concepts are pertinent and could be used with modification and possible limitations The current application notes related to the I O Ports...

Page 23: ...evision A August 2006 This is the initial released revision of this document Revision B May 2007 Added PPS section removed JTAG boundary scan section and added PPS SFR table Revision C March 2019 Upda...

Page 24: ...dsPIC33 PIC24 Family Reference Manual DS30009711C page 24 2006 2019 Microchip Technology Inc NOTES...

Page 25: ...TSHARC USBCheck VariSense ViewSpan WiperLock Wireless DNA and ZENA are trademarks of Microchip Technology Incorporated in the U S A and other countries SQTP is a service mark of Microchip Technology...

Page 26: ...5300 China Xian Tel 86 29 8833 7252 China Xiamen Tel 86 592 2388138 China Zhuhai Tel 86 756 3210040 ASIA PACIFIC India Bangalore Tel 91 80 3090 4444 India New Delhi Tel 91 11 4160 8631 India Pune Tel...

Reviews: