PRU Hardware Overview. Building Blocks for PRU Development: Module 1

Similar documents
How to add Industrial Ethernet to Computer Numeric Control (CNC) Router Machine

Speeding AM335x Programmable Realtime Unit (PRU) Application Development Through Improved Debug Tools

PRU Firmware Development. Building Blocks for PRU Development: Module 2

Introduction to Sitara AM437x Processors

Simplifying Multiprotocol Industrial Ethernet Communication. Sandeep Kumar December 2016

Advanced Embedded Systems

Interconnects, Memory, GPIO

Emerging Integrated Drive Controller

MYD-C437X-PRU Development Board

ECE 471 Embedded Systems Lecture 2

Diploma in Embedded Systems

EE 354 Fall 2015 Lecture 1 Architecture and Introduction

Product Technical Brief S3C2416 May 2008

KeyStone C665x Multicore SoC

Closed-loop Delfino Control Systems: Multiple Industrial Protocol Support using the AMIC110 Sitara Processor

KeyStone Training. Bootloader

Cortex M4-based LPC4300 The first asymmetric multi-core MCU for the industry

Copyright 2016 Xilinx

MYC-C437X CPU Module

AT-501 Cortex-A5 System On Module Product Brief

Product Technical Brief S3C2413 Rev 2.2, Apr. 2006

AM57x Sitara Processors Technical Deep Dive

Product Technical Brief S3C2412 Rev 2.2, Apr. 2006

Simplify rich applications & hard real-time

Product Technical Brief S3C2440X Series Rev 2.0, Oct. 2003

The World Leader in High Performance Signal Processing Solutions. DSP Processors

STM32F7 series ARM Cortex -M7 powered Releasing your creativity

D Demonstration of disturbance recording functions for PQ monitoring

Introducing the AM57x Sitara Processors from Texas Instruments

TEVATRON TECHNOLOGIES PVT. LTD Embedded! Robotics! IoT! VLSI Design! Projects! Technical Consultancy! Education! STEM! Software!

Designing Embedded Processors in FPGAs

EtherCAT on Sitara Processors. Maneesh Soni Systems Manager Arm Microprocessor Group Texas Instruments

Embedded Operating Systems. Unit I and Unit II

December 1, 2015 Jason Kridner

Zynq-7000 All Programmable SoC Product Overview

ECE 471 Embedded Systems Lecture 2

AM335x PRU-ICSS Reference Guide

Lesson 6 Intel Galileo and Edison Prototype Development Platforms. Chapter-8 L06: "Internet of Things ", Raj Kamal, Publs.: McGraw-Hill Education

AVR XMEGA Product Line Introduction AVR XMEGA TM. Product Introduction.

AM57x, 66AK2Gx processors for Space/Avionics/Defense designs. Texas Instruments Catalog Processors June 2017

acret Ameya Centre for Robotics & Embedded Technology Syllabus for Diploma in Embedded Systems (Total Eight Modules-4 Months -320 Hrs.

AM437x Industrial Communications. Sitara ARM Processors

Chapter 6 Storage and Other I/O Topics

MYC-AM335X CPU Module MYC-AM3352 MYC-AM3358

EtherNet/IP on TI s Sitara processors. Vineet Roy Software Systems Engineer Texas Instruments

Basic Components of Digital Computer

SoC Platforms and CPU Cores

Hello, and welcome to this presentation of the STM32F7 System Configuration Controller.

Rad-Hard Microcontroller For Space Applications

Keystone Architecture Inter-core Data Exchange

MYC-AM335X CPU Module MYC-AM3352 MYC-AM3359

ARM Cortex core microcontrollers 3. Cortex-M0, M4, M7

WHICH MICRO? What does MCU needs to do in my system? What are the tasks? Dr. Adriana Becker-Gomez

ARM Cortex-M4 Architecture and Instruction Set 1: Architecture Overview

Contents. 1 Introduction Features Product Specifications Hardware Specification Software Specification...

Agilent N2533A RMP 4.0 Remote Management Processor Data Sheet

Lecture 5: Computing Platforms. Asbjørn Djupdal ARM Norway, IDI NTNU 2013 TDT

A 1-GHz Configurable Processor Core MeP-h1

Systems in Silicon. Converting Élan SC400/410 Design to Élan SC520

Course Introduction. Purpose: Objectives: Content: Learning Time:

CprE 288 Introduction to Embedded Systems (Project and Platform Overview)

HotChips An innovative HD video and digital image processor for low-cost digital entertainment products. Deepu Talla.

Passing Time with a SPI Framebuffer Driver

systems such as Linux (real time application interface Linux included). The unified 32-

Effective System Design with ARM System IP

ArduCAM CC3200 UNO board

Embedded Systems: Hardware Components (part II) Todor Stefanov

Ali Karimpour Associate Professor Ferdowsi University of Mashhad

Homework 9: Software Design Considerations

Network Embedded Systems Sensor Networks Fall Hardware. Marcus Chang,

Microprocessor Systems

Hardware Design. University of Pannonia Dept. Of Electrical Engineering and Information Systems. MicroBlaze v.8.10 / v.8.20

Hardware Software Bring-Up Solutions for ARM v7/v8-based Designs. August 2015

The industry s first industrial drive control SoC supporting digital and analog position sensors

Infineon C167CR microcontroller, 256 kb external. RAM and 256 kb external (Flash) EEPROM. - Small single-board computer (SBC) with an

Design and development of embedded systems for the Internet of Things (IoT) Fabio Angeletti Fabrizio Gattuso

Fujitsu System Applications Support. Fujitsu Microelectronics America, Inc. 02/02

GUJARAT TECHNOLOGICAL UNIVERSITY

NXP Unveils Its First ARM Cortex -M4 Based Controller Family

Unlocking the Potential of Your Microcontroller

STM32F7 series ARM Cortex -M7 powered Releasing your creativity

RISC-V based core as a soft processor in FPGAs Chowdhary Musunuri Sr. Director, Solutions & Applications Microsemi

Platform-based Design

ECE 471 Embedded Systems Lecture 2

Engineer-to-Engineer Note

STM32 Cortex-M3 STM32F STM32L STM32W

SoC Overview. Multicore Applications Team

Introduction. PURPOSE: - List and explain the 15 i.mx1 modules that are also used on the i.mx21 device.

New STM32 F7 Series. World s 1 st to market, ARM Cortex -M7 based 32-bit MCU

Hercules ARM Cortex -R4 System Architecture. Processor Overview

EMBEDDED SYSTEMS READY TO USE LECTURE MATERIALS FOR UNDERGRADUATES

Single-chip PLC for STEP7from Siemens

The Design of MCU's Communication Interface

Department of Computer Science, Institute for System Architecture, Operating Systems Group. Real-Time Systems '08 / '09. Hardware.

NXP Microcontrollers Selection Guide

Course Introduction. Purpose: Objectives: Content: 27 pages 4 questions. Learning Time: 20 minutes

Introduction to L.A.P. 1

Embedded Systems: Architecture

Chapter 15. ARM MCUs Architecture, Programming and Development Tools

Introduction to ARM LPC2148 Microcontroller

Transcription:

PRU Hardware Overview Building Blocks for PRU Development: Module 1

Agenda SoC Architecture PRU Submodules Example Applications 2

SoC Architecture Building Blocks for PRU Development: PRU Hardware Overview 3

ARM SoC Architecture ARM Subsystem L1 Instruction Cache Cortex A L2 Data Cache On chip SRAM L1 Data Cache L1 D/I caches: Single cycle access L2 cache: Minimum latency of 8 cycles Access to on chip SRAM: 20 cycles Access to shared memory over L3 Interconnect: 40 cycles L3 Interconnect Shared Memory Peripherals L4 Interconnect Peripherals GP I/O

ARM + PRU SoC Architecture ARM Subsystem L1 Instruction Cache Cortex A L2 Data Cache L1 Data Cache Programmable Real Time Unit (PRU) Subsystem Shared RAM PRU0 (200MHz) PRU1 (200MHz) Inst. Data Inst. Data RAM RAM RAM RAM Interconnect PRU0 I/O PRU1 I/O On chip SRAM INTC Peripherals L3 Interconnect L3 Interconnect Shared Memory Peripherals L4 Interconnect GP I/O Peripherals Access times: Instruction RAM = 1 cycle DRAM = 3 cycles Shared DRAM = 3 cycles

Programmable Real Time Unit (PRU) Subsystem Programmable Real Time Unit (PRU) is a low latency microcontroller subsystem. Two independent PRU execution units: 32 Bit RISC architecture 200MHz; 5ns per instruction Single cycle execution; No pipeline Dedicated instruction and data RAM per core Shared RAM Includes Interrupt Controller for system event handling Fast I/O interface: Up to 30 inputs and 32 outputs on external pins per PRU unit Industrial Ethernet 32 GPO PRU0 Core (IRAM0) 30 GPI PRUSubsystem BlockDiagram MII0 RX/TX Scratchpad 32 GPO PRU1 Core 30 GPI (IRAM1) Industrial Ethernet Events to ARM INTC Events from Peripherals + PRUs MII1 RX/TX MDIO UART Interrupt Controller (INTC) nnect bus 32 2 bit Interco Data RAM0 Data RAM1 Shared RAM Master I/F (to SoC interconnect) Slave I/F (from SoC interconnect) IEP (Timer) ecap MPY/MAC

PRU Submodules Building Blocks for PRU Development: PRU Hardware Overview

PRU Functional Block Diagram Special Registers (R30 and R31) R30 Write: 32 GPO R31 Read: 30 GPI + 2 Host Int status Write: Generate INTC Event 32 GPO 30 GPI INTC PRU Execution Unit R0 R1 R2 R29 R30 R31 Constant Table Execution Unit Instruction RAM Constant Table Saves PRU cycles by providing frequently used peripheral base addresses Execution Unit Logical, arithmetic, and flow control instructions Scalar, no Pipeline, Little Endian Single cycle execution Instruction RAM Typical size is a multiple of 4KB (or 1K instructions) Can be updated with PRU reset

Fast I/O Interface Cortex A L3F L3S L4 PER Peripherals GPIO1 GPIO2 GPIO3... GPIO 3.19 Pinmux Device pin

Fast I/O Interface Reduced latency through direct access to pins: Read or toggle I/O within a single PRU cycle. Detect and react to I/O event within two PRU cycles. Independent General Purpose Inputs (GPIs) and General Purpose Outputs (GPOs): Cortex A L3F L3S L4 PER PRU R31 directly reads from up to 30 PRU GPI pins. PRU R30 directly writes up to 32 PRU GPO pins. Peripherals Configurable I/O modes per PRU core: GP input modes: Direct connect 16 bit parallel capture 28 bit shift GP output modes: Direct connect Shift out GPIO1 GPIO2 GPIO3... GPIO 3.19 Pinmux PRU Subsystem PRU Output 5 Device pin

GPIO Toggle: Bench Measurements ARM GPIO Toggle: PRU IO Toggle: ~200ns ~5ns = ~40x Faster

Integrated Peripherals Provide reduced PRU read/write access latency compared to external peripherals Local peripherals do not need to go through external L3 or L4 interconnects Can be used by PRU or by the ARM as additional hardware peripherals on the device Integrated peripherals: PRU UART PRU ecap PRU IEP (Timer & DigIO) Programmable Real Time Unit (PRU) Subsystem Shared RAM PRU0 (200MHz) Inst. RAM Data RAM PRU1 (200MHz) Inst. RAM Data RAM Interconnect INTC UART ecap IEP

PRU Memory Map PRU local memory map PRU global memory map SoC memory map

PRU Read Latencies: Local vs Global Memory Map The PRU directly accessing internal MMRs (Local MMR Access) )is faster than going through the L3 interconnects (Global MMR Access). Local MMR Access Global MMR Access PRU cycles @ 200MHz PRU cycles @ 200MHz PRU R31 (GPI) 1 N/A PRU CTRL 4 36 PRU CFG 3 35 PRU INTC 3 35 PRU DRAM 3 35 PRU Shared DRAM 3 35 PRU ECAP 4 36 PRU UART 14 46 PRU IEP 12 44 Note: Latency values listed are best case values.

PRU Memory Access FAQ Q: Why does my PRU firmware hang when reading or writing to an address external to the PRU Subsystem? A: The OCP master port is in standby and needs to be enabled in the PRU ICSS CFG register space, SYSCFG[STANDBY_INIT].

PRU Interrupts The PRU does not support asynchronous interrupts. However, specialized h/w and instructions facilitate efficient polling of system events. The PRU ICSS can also generate interrupts for the ARM, other PRU ICSS, and sync events for EDMA. From UofT CSC469 lecture notes, Polling is like picking up your phone every few seconds to see if you have a call. Interrupts are like waiting for the phone to ring. Interrupts win if processor has other work to do and event response time is not critical Polling can be better if processor has to respond to an event ASAP Asynchronous interrupts can introduce jitter in execution time and generally reduce determinism. The PRU is optimized for highly deterministic operation.

PRU Subsystem Feature Comparison AM18x/ AM572x AM335x AM437x AM571x Features OMAPL138 (SR1.1 / SR2.0*) PRUSS PRU ICSS1 PRU ICSS1 PRU ICSS0 2 x PRU ICSS 2 x PRU ICSS Number of PRU cores 2 2 2 2 2 2 Max frequency CPU freq / 2 200 MHz 200 MHz 200 MHz 200 MHz 200 MHz IRAM size (per PRU core) 4 KB 8 KB 12 KB 4 KB 12 KB 12 KB DRAM size (per PRU core) 512 B 8 KB 8 KB 4 KB 8 KB 8 KB Shared DRAM size 12 KB 32 KB 32KB 32KB Direct; or 16 bit Direct; or 16 bit Direct; or 16 bit parallel capture; or parallel capture; or parallel capture; or Direct; or 16 bit General purpose input Direct; or 16 bit parallel Direct 28 bit shift; or 3ch 28 bit shift; or 3ch 28 bit shift; or 3ch parallel capture; or (per PRU core) capture; or 28 bit shift EnDat 2.2; or 9ch EnDat 2.2; or 9ch EnDat 2.2; or 9ch 28 bit shift Sigma Delta Sigma Delta Sigma Delta General purpose output (per PRU core) Direct Direct; or Shift out Direct; or Shift out Direct; or Shift out Direct; or Shift out Direct; or Shift out GPI Pins (PRU0, PRU1) 30, 30 17, 17 13, 0 20, 20 0 / 21*, 21 21, 21 GPO Pins (PRU0, PRU1) 32, 32 16, 16 12, 0 20, 20 0 / 21*, 21 21, 21 MPY/MAC N Y Y Y Y Y Scratchpad N Y (3 banks) Y (3 banks) N Y (3 banks) Y (3 banks) CRC16/32 0 0 2 2 2 0** / 2 INTC 1 1 1 1 1 1 Peripherals n/a Y Y Y Y Y UART 0 1 1 1 1 1 ecap 0 1 1 no connect 1 1 IEP 0 1 1 no connect 1 1 MII_ RT 0 2 2 no connect 2 2 MDIO 0 1 1 no connect 1 1 Simultaneous protocols 1 1 2*** 2 2 * AM571x PRU ICSS1 does not pin out the PRU0 core GPIs/GPOs. ** AM572x SR1.1 does not include CRC16/32. *** 2 nd protocol limited to EnDAT/Profibus/BISS/HIperphase DSL or serial based protocols.

Example PRU Applications Building Blocks for PRU Development: PRU Hardware Overview

Use Case Examples Industrial Protocols ASRC 10/100 Switch Smart Card DSP like functions Filtering FSK Modulation LCD I/F Camera I/F RS 485 UART SPI Monitor Sensors I2C Bit banging Custom/Complex PWM Stepper motor control Not all use cases are feasible on PRU: Development complexity Technical constraints (i.e., running Linux on PRU) Development Complexity

For More Information Visit the PRU ICSS Wiki: http://processors.wiki.ti.com/index.php/pru ICSS Download the PRU tools: PRU Software Package PRU CGT (Code Gen Tools) http://www.ti.com/tool/pru swpkg available through CCSv6 app center Linux drivers for interfacing with PRU availablein in Processor SDK Order the PRU Cape: http://www.ti.com/tool/prucape For questions regarding topics covered in this training, visit the support forums at the TI E2E Community website: http://e2e.ti.com 20