programmable system-on-chip (psoc) general overview embedded architectures ee446

Post on 30-Dec-2015

246 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Programmable System-on-Chip (PSoC) General Overview

Embedded ArchitecturesEE446

Typical Microcontroller Purposes

• The purpose for uC’s is to interface multiple types of hardware.

– Digital Input/Outputs:• Switches• Relays• LEDs

– Digital Communications: I2C, SPI

– Analog Input/Outputs

Computer

uC

Thermal

Gyro

Acceleration

Example of Hardware Interfacing

Regular Microcontroller Caveats

– What if you need more Analog Inputs?– What if you need more Interrupts?– Advanced projects: more PWMs needed?

• Use external circuitry• Buy a larger microcontroller

What is a Programmable System-on-Chip (PSoC)?

• A customizable microcontroller that includes flexible analog and digital logic blocks.

– Analog blocks:• High-resolution inputs (up to 20-bit)• 4 Digital-to-Analog Converters

– Digital logic blocks (UDBs):• A wide mix of digital peripherals can be

implemented into a single chip.

– Up to 4 voltage domains

– Almost all pins can be flexible in terms of being digital or analog.

What is a Programmable System-on-Chip (PSoC)?

• PSoC-5

(Powered by ARM Core)

– Provides above features plus ARM processor benefits:

• Up to 67Mhz

• Flash: Up to 256kb

• SRAM: Up to 65kb

– Up to 70 I/O pins

General Overview of PSoC Features

Cypress PSoC IDEAPI

Cypress PSoC IDE (Block Configuration)

PSoC Pin Routing

PSoC Main Program Code

Main loop

ISR Flag

ISR Flag

API’s for the PSoC Blocks

API’s for the PSoC Blocks

Top-level UDB Block Diagram

Top-level UDB Routing Diagram

Extensive Uses of UDBs

• Examples of possible hardware configurations on a single (and largest) PSoC chip:– 12 UARTs

or– 28 PWMs

• For a normal microcontroller, this configuration is impossible without resorting to additional external hardware, such as:– Daisy-chain or bus-connected peripherals:

• Microcontrollers• I2C/SPI-connected hardware for UART, PWM, etc.

Extensive Uses of UDBsTechnology Mapping

Summary

Extensive Uses of UDBsTechnology Mapping

Summary

PSoC Top-Level Analog Routing Diagram

PSoC Analog Routing

• Analog Local Bus– 4 on left side, 4 on right side– Connects to analog resource blocks only– No access to GPIO’s

• Analog Global Bus– Connects I/O to analog resource blocks on same side– Connects to GPIO on their respective quadrant– 8 routes on left side, 8 routes on right side

• Analog Mux Bus– Connects the buses to the ‘outside’ world– Can connect to all GPIO’s and all analog resource blocks

PSoC Die Quadrants Analog Routing

Global Bus

Detailed Analog Routing

Interrupts

Why have interrupts?

• An external event that needs immediate attention.– An ‘emergency’ switch– A long-running timer

• PSoC-5 supports 16 system interrupts and 32 from peripherals.– Tail Chaining (Back-to-Back)– Late Arrival (Lower Higher)– Reprioritize Interrupts

• Same Priority?– Fixed Function DMA UDB

Interrupts

• Some modules that are used needs immediate attention in real time.

Interrupt Vector Table

How Interrupts Work

Interrupt Setup and ISR

Tail Chaining Interrupts

Late Arrival Interrupts

Polling vs Interrupting

• Signals can happen too fast for the CPU to read or process!

Example PSoC ProjectFirmware Overview

I/O Communications InputsFrom

Sensors

OutputsTo

Devices

Raw Sensor Data Collection to the Host PC

• Digital:– I2C used in Gyroscopes, Accelerometers,

Magnetometers (IMU), and Temperature Sensor– UART from Sonar @ 9600bps (8N1)

• For this particular usage, very inefficient.• Requires interrupts and additional code complexity.• Very slow data updates.

• ADC Settings and Inputs: – 14-bits @ 70,000 Samples Per Second (currently)– Vcc = 5 Volt (Reference)– Raw value range:

• 0v 5v• 0 16384

PSoC Data Output

• Raw ADC Values: 85 updates/sec over Serial UART @ 115200bps (8N1)

Servo Position Infrared Gyro

X-AxisGyro

Y-AxisGyro

Z-AxisSonar

(analog)

Host PC Application GUI

top related