You are here

General PSoC® Programming | Cypress Semiconductor

General PSoC® Programming

Last Updated: 
Sep 08, 2015


The General PSoC Programming web page is central location that details all aspects of programming related to all available PSoC devices. The following sections will detail the available software, hardware, documentation, and 3rd party vendor relationships available to PSoC customers.


The PSoC Programmer software tool supports all Cypress PSoC programming hardware and PSoC devices. PSoC Programmer is a simple GUI that connects to programming hardware to program and configure PSoC devices. The image below is a screenshot of the Programmer GUI. From the GUI users will be able to select their target device, configure programming selections and execute a number of programming actions such as Program, Read, Verify and Erase.

PSoC Programmer is a required installation for both PSoC Creator and PSoC Designer. Both development IDE’s utilize PSoC Programmer for the hardware access layer it delivers (Programmer COM). The Programmer COM supports programming and debugging for PSoC devices. This Programmer COM is not restricted to just the development environments, but is also available to all users to develop custom applications utilizing the Cypress programming and debugging hardware. This hardware is described below.

To Download PSoC Programmer please navigate to the following web page:


Programming Modes, Protocols, and Schematics:

When programming any PSoC device there is at least one Host Programmer and the target PSoC. The Host programmer can be one of the following, a Cypress Programmer (ex. Miniprog3), a Host processor or FPGA performing HSSP programming (Host Side Serial Programming), or a 3rd party programmer. When interfacing with the target device there are two modes to program the device, Reset and Power Cycle programming.

Reset (XRES) Programming means that the target PSoC is powered by some external power supply or from the programmer, such as a Miniprog3, and is acquired using the XRES pin.

Power Cycle Programming means that there is an external power supply (often controlled by the programmer) that cycles power on the device. The voltage level is measured by the programmer and when the voltage value crosses a specific value the programmer begins to initiate the programming sequence and acquire the chip. The acquire window for Power Cycle methods are often smaller than with XRES programming. Due to this narrow window it is often preferred to use XRES programming.

Various PSoC devices support different programming protocols. The following table details the PSoC devices and the support protocols:


PSoC Family Programming Protocols

When laying out schematic designs for PSoC devices please refer to both the respective PSoC Datasheet or Programming Spec. All specific layout requirements are detailed in the specs. Please use the following table to access the correct datasheet for the schematic requirements:

PSoC Family Device Datasheets
PSoC 3
PSoC 5



PSoC Engineering Programmers:
As referenced above in the PSoC Programmer software section Cypress also supports proprietary programming and debugging hardware for all PSoC Devices. The functionality of this hardware ranges from simply programming functions to debugging and I2C-USB bridging. All of the hardware listed below is supported by PSoC Programmer. All hardware drivers are signed and supported on all XP, Vista and Windows 7 systems.



The Cypress engineering programmers are not recommended for mass production programming environments due to their mechanical design, plastic enclosures, and plastic headers. The Miniprog3 provides over current protection and over voltage protections, but due to the manufacturing environments customers may subject the engineering programmers to damaging conditions. It is recommended that customers use mass production programmers for manufacturing. Please scroll to the table below to see a complete list of recommended vendors.

PSoC Programmer also supports the Generic USB programmer. This programmer is shipped on PSoC 3 and PSoC 5 development kits and connects directly to the USB port and will be recognized and supported by PSoC Programmer.

JTAG and Boundary Scan

The PSoC 3 device family supports JTAG device programming and Boundary Scan Testing as part of the IEEE1149.1 standard. Cypress will be expanding our 3rd party ecosystem by engaging with 3rd party JTAG vendors to enable support for the PSoC 3 JTAG programming sequence.

The PSoC 3 programming algorithm does not support generalized JTAG programming languages such as SVF, STAPL, and others. To program the PSoC 3 devices the user must use the Miniprog3 and PSoC Programmer or a qualified third party vendor.

The following vendor(s) have been qualified by Cypress to perform JTAG and JTAG Chain programming of PSoC 3 devices:


  Goepel Electronic  –
  • SW: SYSTEM CASCON GALAXY 4.6.0a 1266 and above.
  • SW Library: VarioTAP
  • HW: Platform SCANFLEX, Controller SFX/ASL 1149
  • Qualified: Q2 2012

We will be adding additional programming support through selected vendors, which should be complete in Q3 of 2012. We will list that support here once it has been qualified. Only qualified vendors can support PSoC 3 JTAG programming. If you wish to be added to the Qualified JTAG programming list please navigate to the bottom of this web page and select the ‘New Vendor’ button and send Cypress an email with your contact information.

For all Boundary Scan testing the PSoC 3 device will work with any standard JTAG boundary scan development tool. All PSoC 3 devices are preconfigured from Cypress as 4-wire JTAG devices. For more information please see the JTAG section in the PSoC 3 datasheet, which can be found through the PSoC 3 landing page.

PSoC Programming Specifications:

Cypress provides programming specific documentation to users who wish to develop a custom programmer or those who wish to implement a host side serial programming (HSSP) protocol. Some customers wish to implement the cypress programming support on their host programmer in order to reprogram the PSoC in system. Cypress provides a number of application notes, segmented via device family, that details the programming algorithm and specification. Listed below are the specific application notes that all customers should reference when implementing their own programming algorithm support for PSoC devices or when trying to implement the Host Side Serial Programming (HSSP) protocol.



Production Programming Vendors:



The following list compiles the 3rd-party programmer tools that have been specifically designed, tested, and qualified to support streamlined programming of PSoC® Programmable System-on-Chip devices. The vendors below support the PSoC family but may not support every marketing part number in the family. Customers should contact their local distributor or vendor to ensure that their specific marketing part number is supported in a timely manner. If you need assistance in contacting a vendor, please file a support case with Cypress at

  PSoC 1 PSoC 3 PSoC 4 PSoC 5 PSoC 5LP GEN4
BP Microsystems:
  • Programmer Model 1400 and 1700
  • Running BP WIN Software Revision V4.64.0 or V4.66.1
  • Programmer Model All 100
  • Running S/W v1.59
yes yes yes    
RPM Systems:
  • Programmer Model: MPQ 4 Port Programmer, MPQ-E2 4 Port Programmer
  • Running S/W Rev 1.11.1 (Firmware 2.14)
yes yes     
  • Programmer Model: SP3000U Programmer
  • Running S/W SUPERPRO/3000U
  • Programmer Model: BeeProg2
  • Running S/W PG4UW 2.77
yes yes yes yes
System General:
  • Programmer Model: T9600
  • Running S/W v1.38r

Leap Electronic:

  • Programmer Model: SU-600
  • Running S/W 1.30G
  • Programmer Model: FTOR-3W
  • Running S/W d16_Cypress_PSoC_107 v1.0.7
yes yes yes    

Any 3rd party programming vendors who wish to work with Cypress please click the button below to send your request.


Are you having Problems with Programming?

If you are having problems programming or have questions regarding programming of PSoC  devices please feel free to file a technical support case. Please navigate to the following web page and file a support case: