PSoC Training: 1.Introduction

PSoC (Programmable System-on-Chip)  – it is programmable system on chip  by Cypress. These chips include a CPU core and mixed-signal arrays of configurable integrated analog and digital peripherals.This is a first article from series how to work with PSoC.

Currently are 4 series of PSoC

  1. PSoC 1: uses 8 bit proprietary core M8C.  IDE PSoC Designer. This series is obsolete and will not be considered.
  2. PSoC 3: uses core 8051, has powerful digital and analog periphery.
  3. PSoC 4: uses core Cortex M0, has low power consumption.
  4. PSoC 5PL: uses core Cortex M3, it is most powerful IC from all Cypress series.

Arichitecture of PSoC 4

As you can see PSoC consists of 4 main parts:

  • CPU part;
  • Probrammable analog blocks;
  • Probrammable digital blocks;
  • I/O ports.

PSoC does not have fixed peripheral blocks (like timers, comparators, UART). Developer decides which components will be used for creating own unique configuration by using analog and digital parts.

Kits for learining

For this course you need to have CY8CKIT-042 PSoC 4 Pioneer Kit , but you  can use another Cypress boards. Each board has embedded programmer, so you don’t need to have extra devices.

PSoC Creator IDE

In order to create firmware you need to have  PSoC Creator, which you can downlod from Cypress site. First you need to create the schematic. There are main components (Cypress Component Catalog) and “Off-Chip” components ( in the schematic they have blue color ). “Off-Chip” components is intended only for make schematic informative. Get appropriated component from Component Catalog and put it to the schematic. After this go to component properties and change necessary parameters. In the pictures you can see ADC configuration example.

We have selected all necessary components. Now we need to connect components with each other. We have got the schematic.Let’s generate current projec: Build – Generate Aplication. Now we have generated API function for each components, so we can use them for create our firmware. You can use this API for make component initialization and for starting them in file main.c. After components configuration we can writing C code as for ordinary MCUs.

After all nesseccery connections and components setup are completed, we need to connect the schematic to I/O ports. Go to port setting by clicking on file  *.cydwr and configure appropriated inputs and outputs to I/O ports.

Everything is completed, so you can upload firmware into PSoC.

Why does my design not work? Did you remembed  to:

  1. Set the pins?
  2. Start the components?
  3. Set the correct active workspace?
  4. Program the board?
  5. Enable Interrupts?