section 14 - technical university of košice · • ppi_frame register is set to the number of...

26
14-1 a Section 14 Section 14 Parallel Peripheral Interface (PPI)

Upload: others

Post on 05-Nov-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Section 14 - Technical University of Košice · • PPI_FRAME register is set to the number of lines per frame (lines are delineated by FS1 assertions) PPI_CLK PPI_FS1 PPI_DATA PPI_DELAY

1

14-1 a

Section 14Section 14

Parallel Peripheral Interface (PPI)

Page 2: Section 14 - Technical University of Košice · • PPI_FRAME register is set to the number of lines per frame (lines are delineated by FS1 assertions) PPI_CLK PPI_FS1 PPI_DATA PPI_DELAY

2

14-2 a

WatchdogAnd Timers

DMA Controller

UART0IRDA

Real Time Clock

Programmableflags

SPORTs SPI

EBIU

1KB internalBoot ROM

CORE/SYSTEM BUS INTERFACE

32 Core D1 bus 64 Core I bus

CoreTimer

JTAG/Debug

Performance Monitor

Core Processor

L1InstructionMemory

L1 Data

MemoryLD1 32

64

PPI

Peripheral Access Bus (PAB)

DMA Access Bus (DAB)

External Access Bus (EAB)

Power Management

Event Controller

32DMA Masteredbus

ADSP-BF533 Block Diagram

Core DA0 bus32 32Core D0 bus

Core DA1 bus32Core Clock (CCLK) Domain

System Clock (SCLK) Domain

LD0 32

16 1616

16

External Port Bus (EPB)

DMA Ext Bus (DEB)

16

DMA Core Bus (DCB)16

SD32

DataAddressControl

Page 3: Section 14 - Technical University of Košice · • PPI_FRAME register is set to the number of lines per frame (lines are delineated by FS1 assertions) PPI_CLK PPI_FS1 PPI_DATA PPI_DELAY

3

14-3 a

PPI PPI -- What is it?What is it?

• Parallel Peripheral Interface − Programmable bus width (from 8 – 16 bits in 1-bit steps)− Bidirectional (half-duplex) parallel interface− Synchronous Interface

• Interface is driven by an external clock (“PPI_CLK”)• Up to 66MHz rate (SCLK/2)• Asynchronous to SCLK

− Includes three frame syncs to control the interface timing− Applications

• High speed data converters• Video CODECs

• Used in conjunction with a DMA channel− Can setup 2D DMA (e.g., for video)− Can pack 8-bit bytes into 16-bit words for efficient I/O

Page 4: Section 14 - Technical University of Košice · • PPI_FRAME register is set to the number of lines per frame (lines are delineated by FS1 assertions) PPI_CLK PPI_FS1 PPI_DATA PPI_DELAY

4

14-4 a

PPI in general purpose mode PPI in general purpose mode (For video and other high speed devices)(For video and other high speed devices)

TX_ENRX_EN

DATAx

RX/TX CLK

AD9975

HREFVREFFIELD

LLC2

ADV7183

P[15:0]

Mixed Signal Front End

NTSC/PAL Standard Video Decoder

DAB

PPI CLK

FS1/HSYNC/TIMER1

FS2/VSYNC/TIMER2

FS3/FIELD/PF3

PPI3-0

PAB

PPI4-7/PF15-PF12

PPI8-15/PF11-PF4

Page 5: Section 14 - Technical University of Košice · • PPI_FRAME register is set to the number of lines per frame (lines are delineated by FS1 assertions) PPI_CLK PPI_FS1 PPI_DATA PPI_DELAY

5

14-5 a

General Purpose Input/Output ModesGeneral Purpose Input/Output Modes

• Single Sync (FS1 only)− Useful for Data Converter applications− “Infinite Capture” input sub-mode requires either

• initial H/W sync to be sent, or• “Self Trigger” through S/W write (no need for H/W FS)

• 3 Syncs (FS1, FS2, FS3)− useful for video I/O with H/W signaling− “Frame Capture” mode outputs syncs from processor while data is

input into processor− 2 Syncs can be used by ignoring 3rd sync where appropriate (pull

FS3 to ground)• Modes are set in PPI_CONTROL register

Page 6: Section 14 - Technical University of Košice · • PPI_FRAME register is set to the number of lines per frame (lines are delineated by FS1 assertions) PPI_CLK PPI_FS1 PPI_DATA PPI_DELAY

6

14-6 a

PPI General Purpose Input Mode

DAB

PAB

DMA Controller

FIFO16-bit wide

16 deep

PPI_CONTROL

PPI_STATUS

PPI_COUNT

PPI_DELAY

PPI_FRAME

FS1

FS2

FS3

Data Bus

10 80 10 80…….EF 38 EE

SYNCPACK GATE

- PACK: 8->16-Bit Packing Unit- GATE: Data Control Unit- SYNC: Data Sync Unit

DMA Request

PPI_CLK

Page 7: Section 14 - Technical University of Košice · • PPI_FRAME register is set to the number of lines per frame (lines are delineated by FS1 assertions) PPI_CLK PPI_FS1 PPI_DATA PPI_DELAY

7

14-7 a

Single Sync Input ModeSingle Sync Input Mode

• PPI_CLK, PPI_FS1, PPI_DATA are inputs• Programmable delay register (PPI_DELAY) inserts a time delay (in units of

PPI_CLK cycles) to start transfer after FS1 has been asserted• Count register (PPI_COUNT) holds the number of samples the PPI will receive• PPI_COUNT ignored during Infinite Capture

PPI_CLK

PPI_FS1

PPI_DATA

PPI_DELAY

1 2 3 N-1 N

PPI_COUNT

Page 8: Section 14 - Technical University of Košice · • PPI_FRAME register is set to the number of lines per frame (lines are delineated by FS1 assertions) PPI_CLK PPI_FS1 PPI_DATA PPI_DELAY

8

14-8 a

Three Sync Input ModeThree Sync Input Mode

• PPI_CLK, PPI_FS1/2/3, PPI_DATA are inputs• Coincident assertion of FS1 and FS2 with FS3 low indicates the start of a frame

− FS3 used to indicate odd/even fields. In a 2-FSx configuration, this line is pulled low.• PPI_FRAME register is set to the number of lines per frame (lines are delineated

by FS1 assertions)

PPI_CLK

PPI_FS1

PPI_DATA

PPI_DELAY

1 2 3 N-1 N

PPI_COUNT

PPI_FS2

PPI_FS3

Page 9: Section 14 - Technical University of Košice · • PPI_FRAME register is set to the number of lines per frame (lines are delineated by FS1 assertions) PPI_CLK PPI_FS1 PPI_DATA PPI_DELAY

9

14-9 a

TIMER1

TIMER2

PPI General Purpose Input ModeFrame Capture

DAB

PAB

DMA Controller

FIFO16-bit wide

16 deep

PPI_CONTROL

PPI_STATUS

PPI_COUNT

PPI_DELAY

PPI_FRAME

PPI_CLK

Data Bus

UPACK GATE

37 ED 38 EF…80 10 C7 00 00 FF

- UPACK: 16->8-Bit Unpacking Unit- GATE: Data Control Unit- TIMER1/2: Make use of Timers

DMA Halt

FS1

FS2

PPI_CLK

Page 10: Section 14 - Technical University of Košice · • PPI_FRAME register is set to the number of lines per frame (lines are delineated by FS1 assertions) PPI_CLK PPI_FS1 PPI_DATA PPI_DELAY

10

14-10 a

Frame Capture Input ModeFrame Capture Input Mode

• PPI_CLK, PPI_DATA are inputs• PPI_FS1, PPI_FS2 are outputs

− TIMER1_WIDTH/TIMER1_PERIOD used to set up PPI_FS1 timing− TIMER 2 set up to generate PPI_FS2 timing

• PPI_FRAME register is set to the number of lines per frame (lines are delineated by FS1 assertions)

PPI_CLK

PPI_FS1

PPI_DATA

PPI_DELAY

1 2 3 N-1 N

PPI_COUNT

PPI_FS2

Page 11: Section 14 - Technical University of Košice · • PPI_FRAME register is set to the number of lines per frame (lines are delineated by FS1 assertions) PPI_CLK PPI_FS1 PPI_DATA PPI_DELAY

11

14-11 a

TIMER1

TIMER2

PPI General Purpose Output Mode

DAB

PAB

DMA Controller

FIFO16-bit wide

16 deep

PPI_CONTROL

PPI_STATUS

PPI_COUNT

PPI_DELAY

PPI_FRAME

PPI_CLK

Data Bus

UPACK GATE

37 ED 38 EF…80 10 C7 00 00 FF

- UPACK: 16->8-Bit Unpacking Unit- GATE: Data Control Unit- TIMER1/2: Make use of Timers

DMA Halt

FS1

FS2

FS3/PF3

PPI_CLK

Page 12: Section 14 - Technical University of Košice · • PPI_FRAME register is set to the number of lines per frame (lines are delineated by FS1 assertions) PPI_CLK PPI_FS1 PPI_DATA PPI_DELAY

12

14-12 a

Single Sync Output ModeSingle Sync Output Mode

• PPI_CLK is input• PPI_FS1 and PPI_DATA are outputs

− Timer 1 used to set up timing for FS1• There is a 1-cycle delay between FS1 assertion and start of PPI_DELAY• Count register (PPI_COUNT) holds the number of samples the PPI will output,

less one (i.e., set for N-1)

PPI_CLK

PPI_FS1

PPI_DATA

PPI_DELAY

1 2 3 N-1 N

PPI_COUNT

Page 13: Section 14 - Technical University of Košice · • PPI_FRAME register is set to the number of lines per frame (lines are delineated by FS1 assertions) PPI_CLK PPI_FS1 PPI_DATA PPI_DELAY

13

14-13 a

Three Sync Output ModeThree Sync Output Mode

• PPI_CLK is input• PPI_FS1, PPI_FS2, PPI_FS3 and PPI_DATA are outputs

− Timer 1 used to set up timing for FS1− Timer 2 used to set up timing for FS2− FS3 toggles coincident with an FS1 assertion, after an FS2 assertion

PPI_CLK

PPI_FS1

PPI_DATA

PPI_DELAY

1 2 3 N-1 N

PPI_COUNT

PPI_FS2

PPI_FS3

Page 14: Section 14 - Technical University of Košice · • PPI_FRAME register is set to the number of lines per frame (lines are delineated by FS1 assertions) PPI_CLK PPI_FS1 PPI_DATA PPI_DELAY

14

14-14 a

• Screen Sizes− QCIF = 176 x 144 pixels− CIF = 352 x 288 pixels− ¼ VGA = 320 x 240 pixels− VGA = 640 x 480 pixels− D1 (NTSC/PAL full screen)

= 720 x 480 pixels[720 x 576 includes the unviewableportions above and below the picture]

• Scan Types− Interlaced – dual-refresh technique on

alternating lines at 1/60 second rate each (e.g. 1080i = 1080 horizontal lines interlaced)

− Progressive (Non-Interlaced) – single refresh technique on all lines at a 1/30 second rate (e.g. 480p = 480 horizontal lines progressive scan)

Electron gunpath

Progressive (1/30 sec)

Electron gunpath

Interlaced (2 x 1/60 sec=1/30 sec)

1

12

retra

ce

Video BasicsVideo Basics

Page 15: Section 14 - Technical University of Košice · • PPI_FRAME register is set to the number of lines per frame (lines are delineated by FS1 assertions) PPI_CLK PPI_FS1 PPI_DATA PPI_DELAY

15

14-15 a

Blanking

Line 1Line 2Line 3

Line 261Line 262Line 263

Video

Line 1 Line 2 Line 3 Line 261 Line 263

t

Video8-16 bit

BUS Blank

(H)SYNC

(V)SYNC(F)IELD

CVBS

Video FramingVideo Framing

Video Video VideoBlank Blank Blank

Line 262

Video Blank

Page 16: Section 14 - Technical University of Košice · • PPI_FRAME register is set to the number of lines per frame (lines are delineated by FS1 assertions) PPI_CLK PPI_FS1 PPI_DATA PPI_DELAY

16

14-16 a

What constitutes a What constitutes a ‘‘pixel?pixel?’’

• Black-and-white image− Y (luminance) values only; One 8- or 10-bit Y value per pixel

• Color image− RGB: Three 8- or 10-bit values per pixel− YUV: Scaled and decorrelated version of RGB− Y Cr Cb

• One Y (luminance) value per pixel (720 per line)• One Cr or Cb (chrominance) value per pixel (360 of each per

line)• 4:2:2 4 Y’s for every 2 Cr’s and 2 Cb’s

− Cb Y Cr Y Cb Y Cr Y Cb Y Cr Y Cb Y Cr Y ……

Page 17: Section 14 - Technical University of Košice · • PPI_FRAME register is set to the number of lines per frame (lines are delineated by FS1 assertions) PPI_CLK PPI_FS1 PPI_DATA PPI_DELAY

17

14-17 a

ITUITU--601601

• ITU-601 - specifies methods for digitally coding signals

• Video coding− RGB is an intuitive format, but channels are highly correlated− YCrCb (a scaled and offset version of YUV color space) is highly

uncorrelated• Provides better compression characteristics

− 8-bit or 10-bit quantization− NTSC and PAL each have 720 pixels per line

• NTSC (30 frames/sec) has 525 lines (including blanking)• PAL (25 frames/sec) has 625 lines (including blanking)

• PPI supports ITU-601 through use of 3-frame-sync modes

Page 18: Section 14 - Technical University of Košice · • PPI_FRAME register is set to the number of lines per frame (lines are delineated by FS1 assertions) PPI_CLK PPI_FS1 PPI_DATA PPI_DELAY

18

14-18 a

ITUITU--656656

• ITU-656− Defines the physical interfaces and data stream− Bit-parallel and bit-serial modes

• Only bit-parallel supported with PPI− 27 MHz nominal clock + 8-10 data lines (for bit-parallel mode)− Embedded hardware signaling (H, V, F) – no extra hardware lines

required− Supports interlaced and progressive formats− Some OEMs support “pseudo” ITU-656

Page 19: Section 14 - Technical University of Košice · • PPI_FRAME register is set to the number of lines per frame (lines are delineated by FS1 assertions) PPI_CLK PPI_FS1 PPI_DATA PPI_DELAY

19

14-19 a

PPI ITUPPI ITU--656 Modes656 Modes

• ITU-656 Input (3 Modes)− Entire Field (H and V Blanking, Active Video and control codes) − Vertical Blanking Interval only (with associated H blanking and

control codes)− Active video only. Can drop blanking for bandwidth savings

• ITU-656 Output− User sets up blanking and encoding info in memory

Page 20: Section 14 - Technical University of Košice · • PPI_FRAME register is set to the number of lines per frame (lines are delineated by FS1 assertions) PPI_CLK PPI_FS1 PPI_DATA PPI_DELAY

20

14-20 a

ITUITU--656 Mode Preamble656 Mode Preamble

FF

00

00

XY

EAV/SAV

00P0P1P2P3HVF1Status Word

D0D1D2D3D4D5D6D7D8D9

8-bit DATA 10-bit DATA

8bit

Dat

a B

us

• The preamble (XY) holds the sync indicators “VSYNC, HSYNC, Field”.

• It also includes protection bits “P0-P3”.• In output mode the user must construct all preamble control codes• In general, the 8-bit bus is for consumer markets while 10-bit bus is

for professional markets.

Page 21: Section 14 - Technical University of Košice · • PPI_FRAME register is set to the number of lines per frame (lines are delineated by FS1 assertions) PPI_CLK PPI_FS1 PPI_DATA PPI_DELAY

21

14-21 a

DAB

PAB

FIFO16-bit wide

16 deep

DMA Controller

PPI_CONTROL

PPI_STATUS

PPI_COUNT

PPI_DELAY

PPI_FRAME

Data Bus

FF 00 00 C7 10 80 …EF 38 EE

PCHK

PACK GATE

FF

00

00

XY

80

10

80

10

80

10

FF

00

00

XY

CB

Y CR

Y CB

Y CB

Y FF

00

EAV SAV EAV

4 268 4 1440

Blanking Active Video

- PCHK: Preamble Check Unit- PACK: 8->16-Bit Packing Unit- GATE: Data Control Unit

8bit

Dat

a B

us

DMA Request

PPI_CLK

PPI ITU-656 Input Mode

Page 22: Section 14 - Technical University of Košice · • PPI_FRAME register is set to the number of lines per frame (lines are delineated by FS1 assertions) PPI_CLK PPI_FS1 PPI_DATA PPI_DELAY

22

14-22 a

PPI ITU-656 Output Mode

DAB

PAB

DMA Controller

FIFO16-bit wide

16 deep

PPI_CONTROL

PPI_STATUS

PPI_COUNT

PPI_DELAY

PPI_FRAME

Data Bus

UPACK GATE

37 ED 38 EF…80 10 C7 00 00 FF

- UPACK: 16->8-Bit Unpacking Unit- GATE: Data Control Unit

DMA Halt

PPI_CLK

Page 23: Section 14 - Technical University of Košice · • PPI_FRAME register is set to the number of lines per frame (lines are delineated by FS1 assertions) PPI_CLK PPI_FS1 PPI_DATA PPI_DELAY

23

14-23 a

PORT_CFG[1:0] (Port Config.)In input mode:00 = 1 frame sync input01 = frame capture, FS1, FS2 output10 = 3 frame syncs11 = infinite mode, 1 frame sync not repeated In output mode:00 = 1 sync01 = 3 syncs

PORT_DIR (Direction)0 = PPI receive mode1 = PPI transmit mode

XFR_TYPE[1:0] (Transfer Type)In input mode:00 = Active field only01 = Entire field10 = Vertical Blanking only11 = GP Input mode In output mode:00, 01, 10 = ITU-656 Output Mode11 = GP Output Mode

DLEN[2:0] (Data Length)000 = 8-bit001 = 10-bit

.

.110 = 15-bit111 = 16-bit

POL[1:0] (Polarity)00 = Nothing inverted

01 = PPI_CLK inv., PPI_FS1 and PPI_FS2 not inv.

10 = PPI_FS1 and PPI_FS2 inv., PPI_CLK not inverted

11 = PPI_FS1, PPI_FS2, and PPI_CLK inv.

0 0 0 0 0 0 0 000 0 0 00 0 0

PORT_EN (Enable)0 = PPI disable1 = PPI enable

FLD_SEL (Active Field Select)In ITU-656 input mode:0 = Field 11 = Fields 1 and 2In GP input mode:0 = External frame sync trigger1 = PPI self-trigger

PACK_EN (Packing Mode)0 = Disable1 = Enable

SKIP_EO (Skip Even Odd)0 = Skip odd number of elem.1 = Skip even number of elem.

Reserved

SKIP_EN (Skip Enable)0 = Disable1 = Enable

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

Addr: 0XFFC0 1000

PPI Control Register (PPI_Control)PPI Control Register (PPI_Control)

Page 24: Section 14 - Technical University of Košice · • PPI_FRAME register is set to the number of lines per frame (lines are delineated by FS1 assertions) PPI_CLK PPI_FS1 PPI_DATA PPI_DELAY

24

14-24 a

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

PPI Status Register (PPI_STATUS)

00 0 0 00 0 0 0 0 0 0 0 0 0 0

FLD (Field Indicator)0 = Field 11 = Field 2

UNDR (PPI FIFO Underrun)0 = No interrupt1 = FIFO Underrun error interrupt occurred

ERR_NCOR (Error not corrected)ITU-656 Mode:0 = Preamble error detected and corrected1 = Preamble error detected but not corrected

ERR_DET (Error Detected)ITU-656 Mode:0 = No preamble error detected1 = Preamble error detected

OVR (PPI FIFO Overflow)0 = No interrupt1 = FIFO Overflow Error interrupt occurred

FT_ERR (Frame Track Error)0 = No interrupt1 = Frame Track error interrupt occurred

Addr: 0XFFC0 1004

ReservedRead to clear

Page 25: Section 14 - Technical University of Košice · • PPI_FRAME register is set to the number of lines per frame (lines are delineated by FS1 assertions) PPI_CLK PPI_FS1 PPI_DATA PPI_DELAY

25

14-25 a

Transfer Count Register (PPI_COUNT)15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 00 0 0 00 0 0 0 0 0 0 0 0 0 0

PPI_COUNT[15:0]In GP input mode:One less than the number of samples to read in to the PPI per lineIn GP output mode:One less than the number of samples to write out through the PPI per line

Addr: 0XFFC0 1008

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 00 0 0 00 0 0 0 0 0 0 0 0 0 0

PPI_DELAY[15:0]Number of PPI clock cycles to delay after assertation of PPI_FS1 before latching in data

Addr: 0XFFC0 100C

Delay Count Register (PPI_DELAY)

Page 26: Section 14 - Technical University of Košice · • PPI_FRAME register is set to the number of lines per frame (lines are delineated by FS1 assertions) PPI_CLK PPI_FS1 PPI_DATA PPI_DELAY

26

14-26 a

Lines Per Frame Register (PPI_FRAME)

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

00 0 0 00 0 0 0 0 0 0 0 0 0 0

PPI_FRAME[15:0]Holds the number of lines expected per frame of data

Addr: 0XFFC0 1000