Difference between revisions of "Using PSoC Creator"

From uGFX Wiki
Jump to: navigation, search
(Adding Drivers)
(Hardware)
Line 60: Line 60:
 
== Hardware ==
 
== Hardware ==
 
Unlike conventional microcontrollers, the PSoC family doesn't have pre-made peripherals. This section gives examples to implement some of the basic features required to create a useful & run-able µGFX application.
 
Unlike conventional microcontrollers, the PSoC family doesn't have pre-made peripherals. This section gives examples to implement some of the basic features required to create a useful & run-able µGFX application.
 +
Please note that the components and their configuration shown here are '''examples'''. They are in no way optimized for a specific target or a specific application.
  
 
=== Systick ===
 
=== Systick ===

Revision as of 22:05, 17 August 2016

ILI9341 connected to PSoC 5LP via SPI.

This article will explain how the µGFX library can be added to an existing PSoC Creator project.

Used Tools

The following tools were used to create this guide:

  • PSoC Creator 3.3 CP3
  • PSoC 5LP Prototyping Kit (CY8CKIT-059)

However, this article has been kept as generic as possible and should be usable for any PSoC platform.

Structure

We recommend using the following folder structure:

.
├── Project 1
├── Project 2
├── Project 3
└── ugfx

Adding µGFX

This guide will describe how to add the µGFX library to a PSoC Creator project using the Single-File-Inclusion technique.

The first step is to add the file gfx_mk.c which can be found in the /src directory of the µGFX library directory to the project. Furthermore, we add our configuration file as well.

Psoc file structure 01.png

Next, we need to add the top level uGFX library directory and the driver directory to the compiler include path. This is done in the Build Settings dialog:

Psoc build settings.png Psoc include paths 01.png

At this stage you have successfully added the µGFX library to an existing PSoC Creator project and you should be able to compile without any errors after including #include <gfx.h> and calling gfxInit() in your main() code (if the requirements of the underlying system are met):

#include "gfx.h"
 
int main (void)
{	
    // Initialize hardware and underlying system (if any) BEFORE calling gfxInit()
 
    gfxInit();
 
    while(1) {
        gfxSleepMilliseconds(500);
    }
}

Adding Drivers

Drivers are being added by adding the drivers directory to the compiler include path and adding the driver source file(s) to the project file tree. The following is an example showing how to add the ILI9341 driver to the PSoC Creator project. However, adding any other uGFX drivers for displays, touchscreen, audio and so on is exactly the same.

Psoc file structure 02.png Psoc include paths 02.png

The following steps need to be performed:

  1. Add the driver directory to the compiler include path (../ugfx_2.6/drivers/gdisp/ILI9341 in this case)
  2. Copy the board file template from the driver directory to your project (board_ILI9341.h in this case)
  3. Add the driver source file to the project tree (gdisp_lld_ILI9341.c in this case)

Hardware

Unlike conventional microcontrollers, the PSoC family doesn't have pre-made peripherals. This section gives examples to implement some of the basic features required to create a useful & run-able µGFX application. Please note that the components and their configuration shown here are examples. They are in no way optimized for a specific target or a specific application.

Systick

If running µGFX baremetal on the PSoC (without an underlying operating system), two systick functions have to be implemented (see baremetal for more details). The standard components library of the PSoC Creator schematic editor doesn't feature a pre-made systick component. Therefore, this has to built manually using a conventional timer and a counter.

In this example, we are using a 1 kHz timer and a 32-bit counter. However, other setups are possible:

Psoc systick.png

SPI

ToDo


Psoc spi.png

Psoc spi config 01.png Psoc spi config 02.png

Examples

Various example projects can be found in the downloads section. Use the search to find projects that suit your setup.