PIC24 16-bit MCU Architecture and Programming

0.0(0)
Studied by 0 people
call kaiCall Kai
learnLearn
examPractice Test
spaced repetitionSpaced Repetition
heart puzzleMatch
flashcardsFlashcards
GameKnowt Play
Card Sorting

1/32

flashcard set

Earn XP

Description and Tags

Vocabulary practice flashcards covering PIC24 16-bit microcontroller architecture, CPU core features, programmer's model, memory organization, assembly directives, and addressing modes.

33 Terms

1
New cards

Modified Harvard Architecture

A computer architecture implemented in the PIC24 family that features separated memory spaces with a 24-bit wide instruction bus and a 16-bit wide data bus, allowing concurrent access to program and data memory.

2
New cards

Program Counter (PC)

A 23-bit register in the PIC24 CPU core that addresses up to 4M4\text{M} instructions (4,194,3044{,}194{,}304 instructions) in linear program memory, with its least significant bit always fixed at 0.

3
New cards

Single Cycle Instruction Prefetch

The instruction pipeline mechanism in the PIC24 core where an instruction is prefetched concurrently while the current instruction executes, enabling nearly all instructions to execute in a single instruction cycle of 2 clocks.

4
New cards

REPEAT Instruction

An interruptible, overhead-free program loop instruction that repeats the execution of the subsequent instruction for the number of times specified in the RCOUNT register.

5
New cards

PIC24 Hardware Multiplier

A high-speed 17-bit×17-bit17\text{-bit} \times 17\text{-bit} hardware multiplier embedded in the ALU that supports signed and unsigned operations, completing all multiplications in a single instruction cycle.

6
New cards

Divide Assist Hardware

Dedicated hardware within the 16-bit ALU that facilitates 32-bit/16-bit and 16-bit/16-bit signed and unsigned integer division operations, completing execution in 18 interruptible instruction cycles.

7
New cards

Working Register Array (W0–W15)

A programmer's model register file consisting of 16 16-bit memory-mapped registers, each capable of serving as a data register, address register, or address offset register.

8
New cards

W15 Register

The working register dedicated to operating as the software Stack Pointer for handling subroutine calls, returns, and interrupt contexts.

9
New cards

SPLIM (Stack Pointer Limit Value Register)

A 16-bit register used to establish the upper memory boundary for the software stack, triggering a stack overflow error trap if W15 exceeds its value.

10
New cards

TBLPAG (Table Memory Page Address Register)

An 8-bit register (bits 0–7) that supplies the upper page address bits when accessing program memory via table read or table write operations.

11
New cards

PSVPAG (Program Space Visibility Page Address Register)

An 8-bit register (bits 0–7) used to select the 32 Kbyte program memory page that is mapped into the upper 32 Kbytes of data space.

12
New cards

RCOUNT (REPEAT Loop Count Register)

A 16-bit register in the programmer's model that holds the iteration count for code execution using the REPEAT instruction.

13
New cards

CORCON (Core Control Register)

A 16-bit CPU control register that contains processor control and configuration bits, including the interrupt priority level bit IPL3 and the Program Space Visibility enable bit (PSV).

14
New cards

STATUS Register (SR)

A 16-bit register split into SRH and SRL containing ALU arithmetic status flags (DC, N, OV, Z, C), the REPEAT loop active bit (RA), and the CPU interrupt priority level status bits (IPL2:IPL0).

15
New cards

DC Bit (ALU Half Carry/Borrow)

Bit 8 of the STATUS register (SR) that is set to 1 if a carry-out occurs from bit 3 during byte-mode operations or from bit 7 during word-mode operations.

16
New cards

RA Bit (REPEAT Loop Active)

Bit 4 of the STATUS register (SR) that indicates loop status; it is set to 1 when a REPEAT loop is in progress and cleared to 0 when it is not.

17
New cards

IPL3 Bit

Bit 3 of the CORCON register indicating if the CPU interrupt priority level is greater than 7; when set to 1, all user interrupts are disabled.

18
New cards

PSV Bit

Bit 2 of the CORCON register that acts as the Program Space Visibility Enable bit; setting it to 1 maps program flash memory into the data memory space.

19
New cards

Phantom Byte

The unimplemented, unallocated high byte (always read as '0') of the upper word in the 32-bit aligned program memory word-pair, occurring because PIC24 instructions are 24 bits wide.

20
New cards

Program Space Visibility (PSV) Area

The upper 32 Kbyte region of the data address space (8000h−FFFFh8000\text{h} - \text{FFFFh}, where EA⟨15⟩=1\text{EA}\langle 15\rangle = 1) reserved for accessing read-only constant tables directly from program flash memory.

21
New cards

Near Data Space

The first 8192 bytes of data memory ranging from address 0000h0000\text{h} to 1FFFh1\text{FFFh}, which can be directly referenced by instructions using memory direct addressing.

22
New cards

Special Function Registers (SFRs)

Core and peripheral control and status registers located in the near data space between memory addresses 0000h0000\text{h} and 07FFh07\text{FFh}, typically referenced by symbolic names.

23
New cards

General Purpose Registers (GPRs)

The portion of data memory RAM beginning at address 0800h0800\text{h} not reserved for SFRs, allocated for storing dynamic program variables.

24
New cards

Little-Endian Format (PIC24)

The byte-ordering rule wherein multi-byte words are stored in increasing memory addresses with the least significant byte (LSB) at the lower, even address and the most significant byte (MSB) at the higher, odd address.

25
New cards

Register Direct Addressing

An addressing mode in which the instruction explicitly names the working registers containing the source and destination operands (e.g., MOV Wns, Wnd).

26
New cards

Register Indirect Addressing

An addressing mode denoted by brackets (e.g., [Wns]), where the operand value is fetched from or written to the memory address held within the specified working register.

27
New cards

Immediate Addressing

An addressing mode denoted by a '#' prefix indicating that the operand value is a constant literal encoded directly within the instruction rather than a memory address.

28
New cards

lit5

A 5-bit unsigned literal value ranging from 0 to 31 used in PIC24 addition and subtraction instructions to modify working registers with small constants.

29
New cards

.bss Directive

An assembler directive that designates uninitialized variable definitions to be allocated in volatile data memory (RAM), by default starting at address 0800h0800\text{h}.

30
New cards

.space Directive

An assembler directive used in variable declarations within the .bss section to reserve a specified number of bytes in data RAM.

31
New cards

.text Directive

An assembler directive that marks the beginning of an executable instruction code block targeted for program flash memory.

32
New cards

.equ Directive

An assembler directive used to equate a symbolic constant or label to a fixed numeric value during compilation.

33
New cards

MPLAB C30 Default Integer Sign

The rule in the MPLAB C30 C Compiler where integer types (char, short, int, long, long long) default to signed representation unless explicitly declared with the unsigned qualifier.