PEmicro Blog

Programming with Dynamic Data Using "Overlay Data"

by Johnny Ng & Keith McNeil on Nov 03, 2023

This blog post was updated in Nov. 2023 to feature general information about overlay data programming.

PEmicro's Cyclones offer a few ways to program Dynamic Data - serial numbers, MAC addresses, etc. - that the user might wish to program into their devices. One such approach, wihch is available as part of both the Control Console and Control SDK, is callled Overlay Data. This blog post will demonstrate how to use Overlay Data as part of the programming process.

Read more...

PEmicro Adds Debug and Programming Support For OMNIVISION's OMX14X Devices

by Keith McNeil on Sep 28, 2023

PEmicro's development and production tools now support OMX14X microcontrollers from OMNIVISION. OMNIVISION’s core strengths are its proprietary image sensing, state-of-the-art CMOS processing, and packaging technologies. Through outstanding pixel design, semiconductor manufacturing processes and package development, OMNIVISION sensors enable customers to capture images at higher resolutions, lower light levels, with better image quality, and in less space than previously.

Read more...

Cyclone ProCryption Security: RSA/AES Encryption Added for Production Programming

by Esteban Gonzalez, Keith McNeil & Peter Truong on Sep 14, 2023

This post was updated on 14 Sept., 2023 to include security information as it relates to the PEcloud cloud-based flash programming platform.

PEmicro's new ProCryption Security feature on Cyclone programmers allows for easy-to-use custom encryption of programming images as well as control over how and when programming images are used. By taking advantage of these security features a user can send their programming images electronically with the confidence that their valuable IP will remain safe and only usable on their own Cyclone programmers. It is also possible to control how many times an image is programmed and when, such that unwarranted programming does not occur.  When used along with our PECloud service, it allows for remote supervision and control of your IP. Once implemented, these security measures are also easy to maintain.  

With ProCryption Security, Cyclone users can:

  1. Create RSA/AES encrypted programming images (eSAP images) that use their own uniquely generated ImageKey(s). These programming images may only be used on Cyclones that are pre-configured with the same ImageKey(s). 
  2. Restrict the use of programming images by programming count and date range. 
  3. Use Cloud-managed Jobs for remote monitoring and control of the manufacturing process.
Read more...

Cloud Setup

by Dr. Julie Perreault on Aug 23, 2023

This blog post walks through the setup to be able to use cloud-connected programming jobs with Cyclone Programmers.

In order to create a cloud connected programming job, the user's local software needs to be connected to their Virtual Factory in PEcloud. This allows job information, and optionally the job binary, to be uploaded to the PEcloud during creation.

For a Cyclone to be able to execute the job, the Cyclone needs to be provisioned to the same PEcloud Virtual Factory.  This gives the Cyclone access to the Job information. Additionally, if the job binary is delivered through the PEcloud, the Cyclone needs to be pre-loaded with a copy of the PEImageKey used to encrypt the job. 

Steps to using cloud-connected programming jobs:

  1. Link PEmicro Cyclone Software to the user’s PEcloud account (To allow job creation).
  2. Provision Cyclones to the user’s Virtual Factory in PEcloud (To allow job execution/download).  
  3. Pre-load the user's PEImageKey(s) to the Cyclones (To allow job decryption/execution). 
Read more...

PEmicro Supports Debug and Programming of Yuntu YTM32B1LD0 Devices

by Keith McNeil, Johnny Ng on Aug 21, 2023

Update: As of September 28 2023, YTM32B1LE0, YTM32B1ME0, and YTM32B1MD1 are also supported.

PEmicro's development and production tools now support YTM32B1LD0 microcontrollers from Yuntu. Yuntu is a semiconductor and integrated circuit design company specializing in automotive-grade chips without wafer fabrication. It provides comprehensive solutions for automotive-grade chips to customers and ensuring innovation in global intelligent transportation technologies. Their YTM32B1LD0 processors are high-performance devices with a rich selection of peripherals and safety features.

Read more...

PEmicro Adds Supports for Infineon 32-bit TRAVEO(tm) T2G ARM® Cortex® Microcontrollers

by Steve McGrath on Jul 28, 2023

Update, July 28, 2023: PEmicro now supports entire Traveo T2G family including 32-bit Traveo T2G Arm Cortex for Cluster.

PEmicro's development and production tools now support Infineon's 32-bit Traveo(tm) T2G ARM® Cortex® devices. This includes both subfamilies Traveo T2G Arm Cortex for Body and Traveo T2G Arm Cortex for Cluster.

T2G microcontrollers are based on ARM Cortex-M4 (Single core) / M7 (Single core/Dual core) and deliver high-performance, enhanced human-machine interfaces, high security, and advanced networking protocols tailored for a broad range of automotive applications such as electrification, body control modules, gateway, and infotainment applications.

Read more...

Flagchip as Flagship Devices Now Supported by PEmicro Tools

by Keith McNeil on Jul 20, 2023

Update, July 20, 2023: PEmicro will be adding support for Flagchip as Flagship's FC7300F devices to those mentioned below.

PEmicro's development and production tools now support Flagchip as Flagship devices. The FC4150 device features a Cortex-M4 with FPU/DSP, 8K Cache, with 8MPU region. The Feature List available on the device webpage includes many impressive additional features, including support for 3xCAN with FD and 3xCAN without FD.

PEmicro's Cyclone programmers can be used for secure production programming of FC4150 devices, including control and automation. In addition, Multilink debug probes with PROGACMP programmer, and GDB Server Eclipse IDE plug-in are ideally suited for the development process.

Read more...

PEmicro Tools Add Support for Blue Whale CVM0116 & CVM0118 Devices

by Keith McNeil on Jul 11, 2023

PEmicro's development and production tools now support Blue Whale devices. The M01xx devices are designed for automotive electronic control applications, with a focus on high reliability, flexibility, and versatility.

PEmicro's Cyclone programmers can be used for secure production programming of M01xx devices, including control and automation. In addition, Multilink debug probes with PROGACMP programmer, and GDB Server Eclipse IDE plug-in are ideally suited for the development process.

Read more...

Renesas RA Devices: Device Lifecycle Programming Support

by Steven McGrath on May 18, 2023

This blog post was updated May 18, 2023 to include Renesas DLM Key Injection and User Key support. Other updates include running an application after DLM programming and updated flowchart and images.

PEmicro has added production programming support for the Renesas RA family Device Lifecycle Management (DLM) and TrustZone boundary settings to the Cyclone FX programmer. Device Lifecycle Management and TrustZone boundary settings are used to secure access to the on-chip Flash and RAM both from external debug/bootloader access as well as untrusted code running internal to the device on devices with DLM Technology and TrustZone support (such as Cortex-M33 devices). Configuration and programming of these settings are made simple with PEmicro's stand alone programmers.

Read more...

Texas Instruments' MSPM0x Devices Now Supported by PEmicro

by Steve McGrath on May 18, 2023

PEmicro's development and production tools now support MSPM0L and MSPM0G ARM Cortex-M0+ MCUs from Texas Instruments. ARM Cortex-M0+ MCUs are highly scalable and deliver the sensing and processing features that developers are seeking.

Read more...

Infineon's MOTIX™ TLE9844 and TLE9879 Devices Now Supported By PEmicro Tools

by Keith McNeil on May 17, 2023

PEmicro's development and production tools now support TLE9844 (Cortex M0) and TLE9879 (Cortex M3) devices from Infineon. These MOTIX™ Embedded Power ICs are highly integrated products that save space and energy, improve the overall system reliability through advanced diagnosis features and reduce the overall cost due to a minimum number of components. They fit with a range of motor control applications where a small package form factor and a minimum number of external components are essential, such as window lift, sunroof, wiper, auxiliary pumps, HVAC fans and engine cooling fan applications.

Read more...

PEcloud Launches: A Cloud-Based, Production Programming Management Platform

by Keith McNeil and Kevin Perreault on Apr 20, 2023

PEmicro has announced the launch of PEcloud, a cutting-edge platform that offers unparalleled control and visibility into users' production programming Jobs which run worldwide on Cyclone programmers.

Users upload programming Jobs to PEcloud, which provides an easy-to-use online interface to manage workflow. Jobs are a new type of programming image that use a secure connection from the Cyclone to the PEcloud platform to provide additional control, features, and visibility to the user. PEcloud users manage these Jobs in their own Virtual Factories (VFs). Each VF space can be organized as the user sees fit in order to connect specific Cyclones, programming Jobs, and PEcloud users together logistically. 

PEcloud then allows for unprecedented visibility of, and control over, programming operations. Jobs being used in manufacturing can be paused, deleted, or updated. Programming logs for Jobs can be viewed, and unique device and dynamic programming data can be inspected. Serial numbers, programming count restrictions, and shared dynamic data are managed across all Cyclones running a Job. This system reduces distribution overhead and minimizes the risk of errors while increasing security.

Read more...

An Overview of PEcloud

by Julie Perreault on Apr 20, 2023

PEmicro has launched PEcloud, a cloud-based production programming Platform for the management of remote production.  Along with PEcloud, an updated version of the Image Creation utility has been released that now has the ability to generate PEcloud connected programming images (Jobs).

PEcloud gives the user a secure delivery method to send programming images to remote Cyclones, enhanced control over their IP being programmed, as well as insight into the production programming process.  It is designed with security in mind, so no matter where in the world the production programming is done, from generation of the programming image on the PC to deployment to PEcloud to downloading onto the Cyclone Production Programmer, customer Firmware IP remains safe. 

Read more...

The Difference Between SAP Images and Job Images

by Julie Perreault on Apr 20, 2023

PEmicro has launched PEcloud, a cloud-based production programming Platform, along with an updated version of the Cyclone Image Creation utility.  In addition to Stand-Alone Programming (SAP) images, the Image creation utility now has the ability to generate Cloud-Connected programming images (Jobs).   

SAP images and Job Images have a lot in common in terms of their base functionality, but the cloud-connected programming Jobs offer some really expanded capabilities that sets them apart. 

Read more...

PEcloud: The Magic of SAPOBJ

by Julie Perreault on Apr 20, 2023

PEmicro Cyclone programmers are sophisticated production programming tools that are designed to operate in StandAlone mode.  PEmicro’s Image Creation Utility generates these StandAlone programming images. They might combine an algorithm, binaries, and a programming script which could include  erase, program and verify of their binaries, as well as more complicated scripts along with other features like serial numbers, dynamic data, or running test commands and saving data for programming.  

Users often save a configuration file (.CFG) so they can later regenerate a new SAP image from the same configuration and reference files.  However, if any of the files have changed or been lost, like the binary file or the serial file, then it is not possible to recreate and image the programs with exactly the same data. The latest version of Image Creation Utility addresses this by adding the ability to build a SAP object file (.SAPOBJ).

Read more...

MindMotion Devices Now Supported by Cyclone and Multilink Tools

by Keith McNeil and Johnny Ng on Apr 05, 2023

Note: This blog post was updated on 05 April 2023 to reflect new support for the MindMotion MM32F Series.

PEmicro's development and production tools now support MindMotion's MM32 SPIN and MM32F family of microcontrollers. MindMotion products and solutions are widely used in industrial control systems, smart homes, wearable applications, automotive electronics, instrumentations, and many other fields. MM32SPIN is designed for motor drive and control.  MM32F is designed for the general purpose and high performance market.

Read more...

PEmicro Supports Infineon 32-bit XMC7000 Industrial Microcontrollers

by Steve McGrath on Mar 22, 2023

PEmicro's development and production tools now support Infineon's 32-bit XMC7000 Industrial Microcontrollers (Arm® Cortex®-M7). The XMC7000 architecture is built on a low-power 40-nm process technology and the MCUs offer best-in-class compute performance addressing high-end industrial applications.

Read more...

PEmicro Development & Production Tools Are RISC-V Ready

by Keith McNeil on Mar 10, 2023

See PEmicro demonstrate RISC-V readiness at Embedded World 2023, March 14-16 -- Hall 4, Booth 648.

The RISC-V architecture, which offers some similarities to the ARM architecture but with a different set of advantages and disadvantages, is positioned to become a bigger part of the marketplace in the coming years. PEmicro is finalizing support for RISC-V devices, including the GD32VF103 from manufacturer GigaDevices. 

Users with plans to work with RISC-V devices are welcome to send us questions and concerns about specific parts they would be interested in programming. 

Cyclone Control Suite Supported on Linux/macOS

by Keith McNeil on Mar 10, 2023

Watch PEmicro demonstrate a first-look into this new feature at Embedded World 2023, March 14-16 -- Hall 4, Booth 648.

Check for updates soon for when this will be publicly released in the cyclone software installer.

PEmicro's Cyclone programmers will soon support advanced control and automation features in both Linux and macOS. This support extends to all the three components of the Cyclone Control Suite - the Control GUI, Control Console, and Control SDK - which gives the user a great deal of flexibility when planning a solution.  

Read more...

PEMicro Adds Support for STM32H5 Device from STMicroelectronics

by Steve McGrath on Mar 10, 2023

PEmicro's development and production tools now support STMicroelectronics' STM32H5 microcontrollers based on ARM Cortex-M33.  The H5 devices are intended to offer a compelling combination of performance and security at a reasonable price.

Read more...

Secure Boot Programming for NXP LPC55Sxx Processors

by Edison Tam on Jun 14, 2022

PEmicro's Secure Boot Utility is now updated to support NXP's LPC55Sxx processors. The LPC55Sxx secure boot feature is a key component in protecting embedded devices as security threats increase both in volume and complexity. PEmicro’s Secure Boot Utility is a graphical user interface which configures Secure Boot for applications running on LPC55Sxx devices and sets device security features to inhibit copying or misuse.  Functionality includes signing applications, generating keys and certificates, setting security options, and running a security analysis of all settings.

The Secure Boot Utility automates building secure boot binary files and is used in the process of generating encrypted secure boot programming images for manufacturing.  The goal is to make sure the user's application data is secure in both the manufacturing stage and when devices are deployed in the field. The tool includes a security analyzer which grades the user's security choices based on how secure it will leave the device after programming.

The Secure Boot Utility is integrated into the Cyclone production programming software and included with the PROGARM programming software.

Read more...

Diagnostic Mode for External SPI Flash Memory

by Johnny Ng on May 09, 2022

PEmicro supports external flash connected to an MCU via the SPI and Address/Data bus interfaces. When performing this type of programming, the algorithm needs to be set up specifically for our programmers to be able to communicate with the flash via the MCU. What must be configured depends on which external bus interface has been chosen for the connection. When using the Address/Data bus, the user will need to configure the external address, data, and bus control pins of the MCU. In the case of the SPI bus, the user will need to configure GPIO pins connected to the external SPI device properly. The modifications are made in the header of the algorithm file. PEmicro's PROGACMP software, as of version 8.84, has an SPI Diagnostic mode that provides the user with a new method to easily test the GPIO configuration in order to help troubleshoot programming issues.

Read more...

Cyclone Programming Overview for STMicroelectronics Devices

by Keith McNeil on Apr 19, 2022

The process of setting up Cyclone programmers to perform production programming at a local or remote facility is simple and straightforward. PEmicro's Cyclones support programming of STMicroelectronics' popular STM32 and Bluetooth Low-Energy (BlueNRG) devices, as well as the SPC5 automotive and STM8 8-bit families.

In addition, Cyclone programmers leverage PEmicro's ProCryption Security to use industry-standard RSA/AES cryptography to safeguard programming images containing valuable IP. The IP owner also gains added control over factors like when and how many devices can be programmed, and how many errors are allowed.

This article will provide an overview of Cyclone programming - what the various components are and how they interact - and then explore the security aspect of the production programming process, in order to show that IP security does not need to be unduly complicated or expensive to be effective. 

Read more...

Updated "GO" Command Enables Improved Control of MCU Reset Type

by Steve McGrath on Feb 25, 2022

PEmicro has improved user reset capabilities after a flash programming sequence. With the updated implementation of the ‘GO’ command (available with most ARM Cortex processors) in both PEmicro's Cyclone and PROGACMP (v8.76 and up) software-based programming solutions, the user is able to specify the use of a software or hardware reset to reset the MCU. 

Read more...

Cyclone Programming Control Port (ATE Compatible) Added

by Laith Shamieh on Jan 19, 2022

PEmicro has added "Cyclone Programming Control Port" functionality to the 10-pin expansion I/O interface on the Cyclone allowing external signal control of programming operations. The Cyclone Programming Control Port may be used to launch programming as well as read the IDLE/BUSY state of the cyclone and the SUCCESS/ERROR result of the last programming operation. The port I/O operates from 1.6v-5.5v. These signals can be interfaced to by ATE (Automated Test Equipment), external buttons / LEDs, microcontrollers, etc. 

Read more...

Cyclone Incorporates Automated Run Tests Prior to Final Application Programming

by Julie Perreault on Jan 19, 2022

Note: This article was updated on August 3. 2022 to reflect updates to the Cyclone programmer feature sets.

As part of the production programming process, Cyclone FX programmers have the ability to program and run a series of custom test applications in the target processor before final programming is allowed to occur. These custom test applications are written by the end user and include any functionality desired including test and calibration of the target system. The custom test applications indicate to the Cyclone through the debug interface whether they were successful or not and also optionally return generated data to the Cyclone for use later in the programming process. If all of the custom test applications pass, the final application is programmed into the target. This advanced control/automation feature is exclusive to the Cyclone FX programmer model. 

Read more...

PEmicro Announces Development Tool Support for NXP’s New S32K3 Automotive MCU Family

by Zahar Raskin on Nov 16, 2021

PEmicro, an NXP® Semiconductors Gold Partner, has announced a range of development tool support for the S32K3 Automotive MCU family for next generation body, zone, and domain control applications. Tightly integrated with NXP’s evaluation boards and S32 Design Studio IDE, PEmicro tools provide a powerful platform for the evaluation, development, and production programming stages of the product cycle.

Read more...

S32K3xx Secure Debug Support

by Mika Ichiki-Welches on Nov 16, 2021

NXP has released a new, scalable S32K3xx device family, featuring an advanced secure debug mechanism, based on secret keys, to protect user applications throughout the development phase. PEmicro debug tools, which are deeply integrated with NXP’s S32 Design Studio and other IDEs, include Python scripts to enable and use the secure debug feature.

Read more...

PEmicro Supports STMicroelectronics' STM32WB Wireless Stack Functionality

by Steve McGrath on Nov 05, 2021

PEmicro has introduced the ability to update the current flash memory of STMicroelectronics' STM32WB Wireless MCUs with wireless stack information. Deleting current wireless stacks allows for more available flash memory in the processor, while upgrading wireless stacks allows the processor to perform desired wireless functions out of the otherwise inaccessible second core.

Read more...

PEmicro Legacy Hardware Support Notice (In Effect As of 1 Oct. 2021)

by Keith McNeil and Takao Yamada on Oct 01, 2021

Beginning October 1, 2021 the latest versions of PEmicro software will only be tested against and designed to work with the following PEmicro hardware interfaces:

MULTILINK DEBUG PROBES (2015+)

  • USB ML Universal, Rev. C or later
  • USB ML Universal FX, Rev. B or later
  • USB ML ACP

CYCLONE PROGRAMMERS (2016+)

  • Cyclone LC Universal
  • Cyclone LC ARM
  • Cyclone FX Universal
  • Cyclone FX ARM
Read more...

Update to ICD & PKG Software Licensing

by Keith McNeil on Jul 23, 2021

PEmicro is changing its licensing for ICD and PKG software, in the same manner as we previously updated PROG software. Effective today, July 23, 2021, the license that activates ICD and PKG will reside on a Cyclone or Multilink debug probe rather than in the software itself. The user who activates the software will choose a Cyclone or Multilink on which to permanently install the license. This allows that hardware interface to work with ICD and PKG on any machine where a supported version of the software is installed.

Note that the ICD and PKG software itself is unchanged, it is only the licensing which has been updated.

Read more...

Cyclone Programming Demo of NXP's New i.MX RT1170 Devices

by Keith McNeil on Feb 25, 2021

PEmicro offers launch day support of many NXP devices. NXP has now released the i.MX RT1170 series of crossover devices, which are fast, efficient, secure devices ideal for IoT, automotive, and industrial applications.

For this important MCU launch, PEmicro put together a  demonstration of how quickly and easily the user can create and load a programming image, and program an i.MX RT1176 device, using a Cyclone programmer.

Read more...

Cyclone Control SDK: Automated Flash Programming with Visual Basic .NET

by Johnny Ng on Dec 02, 2020

PEmicro has released a Visual Basic .NET 2019 example utilizing the Cyclone Control SDK API.

The Cyclone Control SDK API allows developers to integrate the Cyclone LC and Cyclone FX into their applications. Using the API calls, you can control multiple Cyclones in stand alone programming operations and to read/update Cyclone settings.

The example project can be downloaded from our Github repository

Cyclone Control SDK also includes example applications for GCCMicrosoft Visual CMicrosoft Visual C#, Delphi/FPC, Labview, and Python.

Learn more about how you can use the Cyclone Control Suite to automate your production.

Using PEmicro's i.MX RT10xx Secure Boot Utility

by Edison Tam on Nov 02, 2020

NXP’s i.MX RT10xx devices come with an advanced set of security features which provide a sophisticated level of protection for devices in the field. PEmicro’s Secure Boot Utility is a graphical user interface which configures Secure Boot for applications running on i.MX RT10xx devices and sets device security features to inhibit copying or misuse.  Functionality includes signing and encrypting applications, generating keys and certificates, setting security fuses, and running a security analysis of all settings.

The Secure Boot Utility automates building secure boot binary files and is used in the process of generating encrypted secure boot programming images for manufacturing.  The goal is to make sure the user's application data is secure in both the manufacturing stage and when devices are deployed in the field. The tool includes a security analyzer which grades the user's security choices based on how secure it will leave the device after programming.

The Secure Boot Utility is integrated into the Cyclone production programming software and included with the PROGARM programming software.

Read more...

Production Programming NXP i.MX RT10xx devices with Secure Boot

by Kevin Perreault on Nov 02, 2020

PEmicro's Cyclone production programmers make programming NXP i.MX RT10xx devices with Secure Boot enabled extremely easy and secure. The Secure Boot Utility, which comes with the programmer, handles i.MX RT10xx application signing, encryption, as well as the details of security fuse configuration and locking. The programmer supports an extremely fast Secure JTAG connection to the target i.MX device.  

PEmicro's Production Programming Images are heavily encoded, and optionally cryptographically secureso the user’s firmware files, encryption keys, fuse settings, and passwords are safely protected from the moment the image is generated through the manufacturing process. Programming images can be restricted for use on specific cyclones, with specified date ranges and programming counts.

Learn about i.MX security features as well as see a demonstration of creating a secure i.MX RT10xx programming image.

Read more...

Python Support for ARM® Cortex™-M processors UNIT Library Routines Now Available

by Steve McGrath on Oct 01, 2020

PEmicro has expanded its line of UNIT Library Interface Routines by adding a package for Python support for ARM® Cortex™-M processors. PEmicro's UNIT Libraries allow the user to create custom Windows applications that can fully control an ARM® Cortex™-M processor using either PEmicro's Cyclone programmers or Multilink debug probes.

Read more...

Cyclone Control SDK: Automated Flash Programming with Python

by Johnny Ng on Aug 18, 2020

The Cyclone Control SDK is a software development kit with a comprehensive API that allows developers to seamlessly integrate Cyclone LC and Cyclone FX programmers into their applications. They can manipulate SAP images, launch SAP images, retrieve programming results, and update settings. This blog post demonstrates the use of the SDK in a Python application.

Read more...

SAP Image Integrity Via Checksum with Cyclone Programmers

by Johnny Ng on Jul 17, 2020

PEmicro’s software can calculate a checksum to help verify the data integrity of a SAP (Stand-Alone Programming) or eSAP (encrypted Stand-Alone Programming) image file. This checksum is a 32-bit hexadecimal number such as 0x0123ABCD. This number is unique to the SAP file, which is created by the user via the Image Creation Utility. If there are any differences (algorithms, object files, paths to these files, scripts, settings, description, name of the SAP files, or path of the SAP files) in how two SAP images are built, their checksums will also be different. The checksum should be recorded for a SAP image once it has been validated and becomes a golden file that is used for production. 

Read more...

Device Data Integrity Via Checksum With Cyclone Programmers

by Johnny Ng on Jun 30, 2020

A common method that our clients use to verify the data integrity of a device under test is to calculate a checksum and then compare it against a known good value. To help make this task easier, PEmicro has added the ability to calculate and retrieve the checksum of a device under test. This feature is available on Cyclone LC and Cyclone FX programmers, starting with software release v.10.49. The most recent Cyclone software is always available on the Support & Downloads tab of the Cyclone product pages.

Read more...

PEmicro Discusses Cyclone Programmer Security in Embedded Online Conference Presentation

by Keith McNeil on May 19, 2020

The Embedded Online Conference is a virtual conference for Embedded Systems, DSP, Machine Learning and FPGA Engineers, which is taking place on Weds. May 20 & Thurs. May 21, 2020. PEmicro is offering a presentation that describes the security measures that are used on Cyclone programmers to protect valuable IP. PEmicro president Kevin Perreault discusses Cyclone cryptography, restrictions on programming images, the ease with which a user can implement these security features, and more. Watch the presentation on the Show Floor page.

Read more...

SD Card Security for Cyclone Programming

by Esteban Gonzalez on May 13, 2020

External memory, in the form of SD Cards, has proven to be very useful for some users as a physical way to distribute programming images to Cyclone programmers. This can be a convenient way to deliver images in scenarios where the Cyclone is not connected to the internet or a PC. 

In order to be used with a Cyclone, SD Cards are first formatted and encrypted at the sector level using industry standard AES encryption. The SD Card AES keys used are a blend of different information, and encryption happens in such a way that each SDCard is uniquely encrypted; only a Cyclone programmer has the knowledge to decrypt it. This means that any Cyclone FX can read the data inside the SD Card, which allows the SD Card to be moved around to different Cyclone FX units while also inhibiting a user from being able to copy the images.

Read more...

Update to PROG Software Licensing

by Keith McNeil on Apr 25, 2020

PEmicro is changing its licensing for PROG software. Effective Monday, April 27, 2020 the license that activates PROG will reside on a Multilink debug probe rather than in the software itself. The user who activates the software will choose a Multilink on which to permanently install the license. This allows that Multilink to work with PROG on any machine where a supported version of the software is installed.

Note that the PROG software itself is unchanged, it is only the licensing which has been updated.

Read more...

Programming MCU Fuses, OTP, and Option Bytes

by Mika Ichiki-Welches on Jan 07, 2020

Article updated Aug. 2021 to describe automatic fuse generation for NXP i,MX RT devices.

Some ARM devices have areas of flash memory dedicated to programming user configuration data. Writes to such areas can be sensitive or permanent for some devices, so it is important that the developer is able to write these options in an intuitive way in order to minimizes human error. PEmicro's PROGACMP v7.78 and Cyclone software installer v10.41 introduce a set of new "user options" commands:

  • Create/Modify User Options File (CU)
  • Specify User Options File (SU)
  • Program User Options (PU)

These commands allow the developer to individually program user options through the use of an IDE.

Read more...

Renesas Programming - A Look At Cyclone Universal FX Features

by Keith McNeil on Dec 10, 2019

PEmicro has now upgraded the production programming capabilities for Renesas devices. PEmicro's original Renesas programming solution, Cyclone for Renesas, has been replaced by the Cyclone FX Universal with a Renesas adapter.  The Cyclone Universal FX provides a significant upgrade in programming technology over the legacy programmer. This article will walk the user through this new technology and look at some of the powerful features that are now available when using the Cyclone FX Universal to program Renesas devices.

Read more...

Cyclone FX Universal Now Supports Renesas Devices via Adapter

by Keith McNeil on Dec 04, 2019

A Renesas adapter is now available that allows the Cyclone FX Universal production programmer to program all Renesas devices supported by PEmicro.  Cyclone for Renesas users who wish to upgrade to the Cyclone FX Universal programmer may receive a discount by taking advantage of PEmicro's Cyclone trade-in program.

Read more...

Custom Clock Trimming for Compatible ARM devices with Cyclone & PROGACMP

by Gilbert Yap on Nov 21, 2019

Along with clock multiplier and dividers, clock trimming offers a way for users to control the frequency of internal clocks in their target processors. Unlike multipliers and dividers, digital clock trimming allows changes to the internal clock through specific registers. Trim resolution can be any number of bits and different manufacturers provide different levels of trimming. Clocks are typically  trimmed to a specific value from the factory and are within a specific tolerance.

Read more...

Comparison of the Classic Automated Control Package and the Cyclone Control SDK

by Johnny Ng on Nov 19, 2019

PEmicro's Classic Automated Control Package is an older product that enables users to to control and automate the production process with PEmicro's legacy Cyclones (Cyclone PRO, Cyclone MAX, Cyclone for Renesas, Cyclone for ARM devices, Cyclone for STMicro). PEmicro most recent control package is the Cyclone Control Suite, which is included with all next generation touchscreen Cyclones (Cyclone LC and Cyclone FX). Like the Classic Automated Control Package, the newer Cyclone Control Suite also includes an SDK (called the Cyclone Control SDK).

Those who use the Classic Automated Control Package but are upgrading to a Cyclone LC or Cyclone FX programmer might have questions about the new Cyclone Control SDK, such as: 

  • What are the differences between the two SDKs?
  • Can the classic SDK be used with the new Cyclones?
Read more...

Changing the Infineon XMC1000-Series BMI (Boot Mode Index)

by Juan See on Nov 06, 2019

The Boot Mode Index (BMI) is a 2-Byte value stored in Flash that holds information about the start-up mode and debug configuration of an Infineon XMC1000  device. From the factory, XMC1000 series devices are configured with ASC_BSL (ASC Bootstrap Load) mode by default. In ASC_BSL mode, ARM Serial Wire Debug (SWD) capabilities are disabled. During debug entry, PEmicro tools will automatically change the Boot Mode Index (BMI) to "User mode with debug enabled (UMD) SWD", allowing the user to communicate with the Infineon XMC 1000 series through SWD. 

Read more...

Multilink/Cyclone Debug with NXP's S32 Design Studio for Power IDE

by Zahar Raskin on Sep 17, 2019

The "S32 Design Studio for Power IDE" from NXP provides a comprehensive enablement platform for Power Architecture with full integration of PEmicro’s GDB Server for Power Devices. This provides advanced debug capabilities via PEmicro’s Multilink, Cyclone, and embedded OpenSDA debug interfaces.

Read more...

Cyclone Programming Images Overview Video

by Julie Perreault and Keith McNeil on Aug 29, 2019

Note: The Cyclone Image Creation Utility has changed in significant ways since the creation of this video, although the settings concepts that are discussed remain helpful. We hope to create an updated video soon.

PEmicro's Cyclone stand-alone programmers use Stand-Alone Programming (SAP) images that are created by the user to in-system program a target. This video provides an overview of what constitutes a programming image and demonstrates how to set up a basic SAP image using the Cyclone Image Creation Utility.

Topics covered during setup include:

  • Target Power & Voltage Settings
  • Communication Settings
  • SAP image protection, including RSA/AES encryption that will only allow your SAP image to be decrypted on specific Cyclones 
Read more...

Cyclone ProCryption Security: A Step by Step Example

by Keith McNeil on Jul 09, 2019

This blog post gives a step-by-step example of a company that wants to use the ProCryption Security features of custom encryption and image limitations to: 

  • Secure their programming images/IP from their own source computers all the way to their own Cyclone programmers at an external manufacturer
  • Limit production programming to occur only in a specific date range
  • Generate their own custom Encryption Keys and provision Cyclones with them
Read more...

Cyclone Control SDK: Automated Flash Programming with C#

by Johnny Ng on Jun 27, 2019

The Cyclone Control SDK is a software development kit with a comprehensive API that allows custom applications to control multiple Cyclones in stand alone programming operations and to read/update Cyclone settings. This blog post demonstrates the use of the SDK in the Microsoft Visual C# language. 

NOTE: The examples in this blog are shown in Microsoft Visual C#. The Cyclone Control SDK includes interface code and demo applications for GCC, Microsoft Visual C, Microsoft Visual C#, Delphi/FPC, Labview, Python, and Microsoft Visual Basic.

Read more...

Programming STM32Fx and STM32Lx Option Bytes

by Gilbert Yap on Jun 05, 2019

Note: As of January 2020, PEmicro now offers a new method of programming user configuration data through the new Program User Options command. Click here for more details about this command.

PEmicro supports a wide selection of STMicroelectronics' STM32 device families. Many STM32 devices include a set of user configurable option bytes that can control features such as HW/SW watchdog, read protection, and write protection. These options give users a convenient way of changing the settings of their device. Configuring option bytes of a STM32Fx or STM32Lx device is made easy with our PROG software and Cyclone Image Creation Utility software

Read more...

How to Configure and Write Microchip/Atmel Emulated EEPROM

by Mika Ichiki-Welches on May 24, 2019

Some Microchip/Atmel's SAM-Series devices allow rows of non-volatile flash memory (NVM) to be configured as EEPROM, so that users can treat NVM pages as EEPROM with Atmel's software, and let Atmel's back-end take care of keeping peripheral data safe.

PEmicro's Cyclone in-system programmers and PROGACMP flash programming software each allow users to set up NVM main flash space as emulated EEPROM by programming the EEPROM FUSE bits in the device's User Row. Our latest Microchip/Atmel algorithms support single-byte writes to the User Row, to preserve adjacent User Row settings.

Read more...

How to Secure/Unsecure Microchip SAM-Series MCU

by Gilbert Yap on Mar 22, 2019

The safety of users’ intellectual property is a top priority for PEmicro. Utilizing the “Chip Protect” function of processors prevents data from being read or written from an external source, which helps keep your data secure. PEmicro is constantly expanding its compatibility with different manufacturers’ device security methods. Each manufacturer may employ multiple methods for securing or unsecuring a processor, so the goal is to make this process as simple and easy as possible for the user.

Read more...

Enabling and Disabling ECC on Cypress PSoC5 Devices

by Gilbert Yap on Mar 21, 2019

Cypress’ PSoC5 line of microcontrollers are a great option for high performance at a low cost. The PSoC 5 provides an Error Correcting Code (ECC) feature to help detect errors in operations that manipulate the flash memory. The ECC peripheral can be enabled or disabled by writing to the Nonvolatile Latch (NVL). The advantage of disabling ECC is that each row of flash gains 32 bytes for data storage, extending the row from 256 to 288 bytes.

Read more...

How To Secure/Unsecure A Cypress PSoC 4 MCU

by Gilbert Yap on Mar 20, 2019

PEmicro is constantly expanding its support for device security methods. The Cypress’ PSoC 4 Cortex-M0 processor-based microcontrollers have a few device features to prevent external flash access. Enabling device security features on products prevents third party sources from accessing or manipulating program code and data. This post aims to detail the secure and unsecure process for Cypress PSoC 4 devices. 

Read more...

Cyclone Programming with Shared Serial Numbers

by Julie Perreault on Jan 22, 2019

PEmicro has expanded the capabilities of Cyclone programmers to allow them to internally store and track serial numbers though the use of a unique serial number ID.  This increased sophistication allows Stand-Alone Programming (SAP) images stored on a Cyclone to share serial numbers that reference the same unique serial number ID. There are several cases where this is very useful. The first is when a user may want to update their firmware for a product to a new version but the serial number to have persistence.  The user may also have different products that need to be programmed with different firmware, but still want have those products draw from the same serialization sequence.  

Read more...

Cyclone Programmers Overview Video

by Peter Truong & Keith McNeil on Oct 11, 2018

Note: Some of the material in this video is outdated, however it still successfully explains how the Cyclone functions in a general sense. PEmicro hopes to produce an updated version soon. 

PEmicro has designed our Cyclone LC programmers, and more advanced Cyclone FX programmers, to be helpful tools for for a broad range of production programming situations. In this video Edison Tam, one of PEmicro's senior design engineers, provides a quick and useful overview of these Cyclone programmers that will help those interested in production programming understand the Cyclone features, as well as how these features can provide specific benefits to a project or production line that save the user time and money. He demonstrates a typical configuration and use case for manual programming, as well as an overview of the control and automation features available with the Cyclone Control Suite.

Read more...

Cyclone Control SDK: Automated Flash Programming with LabVIEW®

by Johnny Ng on Oct 08, 2018

April 2021 - We've updated this blog post with more information about gang operation.

PEmicro is excited to announce the release of a library of LabVIEW VI components as well as a sample project as part of the Cyclone Control Suite. This new feature facilitates easy integration of CYCLONE stand alone programmers into production applications developed in LabVIEW®. 

Read more...

High Speed ARM Cortex Download, Programming, and Verification

by Kevin Perreault on Jul 19, 2018

PEmicro's CYCLONE FX programmer provides extremely high-speed and robust debug communications rates for ARM® Cortex® devices. With debug shift speeds reaching 75 Mbits/s, the download and verification rates achieved for almost every ARM Cortex device, even low-speed Cortex M0 parts, are in the MBytes per second range. 

Read more...

How To Automate Cyclone Stand-Alone Programming Image Generation

by Johnny Ng on Mar 19, 2018

April 2021 - We've updated this blog post with steps to perform an automated silent install of the Cyclone software package. See Section 7 below.

PEMicro has released the Cyclone Control Suite which offers a powerful yet flexible set of utilities to automate control of the Cyclones on your production line. Many of our users have to work with a very large number of stand-alone programming (SAP) image files and have to continually regenerate these images with new binaries. This blog post shows how they can also fully automate the process of generating stand-alone programming (SAP) image files to remove the chance of errors that could occur when the process is done manually.

Read more...

Gang Programming with Cyclone Programmmers

by Esteban Gonzalez on Jan 26, 2018

A volume production solution often relies on simultaneous gang programming of different target boards to meet speed and throughput requirements. This programming scenario may integrate Cyclone programmers into a fixture which interfaces to a panel of boards to be programmed. Programming is commonly controlled and monitored from a local computer, especially when customized dynamic data is being added to the main binary image that is being programmed into each target.

PEmicro’s gang programming solution is to control many Cyclone programmers simultaneously via the Cyclone Control Suite. A mix of programming images, targets, and data can be simultaneously programmed into many devices while maintaining a high level of performance because each Cyclone is itself an independently operating programmer.  

Read more...

Cyclone Control Suite: Cyclone Control Console

by Keith McNeil & Kevin Perreault on Dec 05, 2017

Note: This blog post was updated io August 2, 2022 following a reorganization of Cyclone features..

The Cyclone Control Console is a powerful command-line application that allows simultaneous control of one or more Cyclones. Programming images can be added/removed, settings read/set, programming operations launched, and dynamic data programmed. The command-line application displays comprehensive status messages and also returns an error code indicating success or failure. The application can be launched from a script, a console, or another application. It is one of the three main components of the Cyclone Control Suite including : the Cyclone Control Console, the Cyclone Control GUI, and the Cyclone Control SDK.

Read more...

Cyclone Control Suite: Overview

by Kevin Perreault on Oct 18, 2017

Note: This article was updated August 2, 2022 to reflect a re-organization of Cyclone features.

PEmicro has released a powerful new set of automated control software, the Cyclone Control Suite, to support PC based control of our popular Cyclone LC and Cyclone FX stand-alone programmers.

The suite provides comprehensive control of one or more Cyclones from the PC via the following components: the Cyclone Control GUI application, the Cyclone Control Console application, and via custom PC applications built using the Cyclone Control SDK. Ways to control the Cyclone include programming launch, recovering results, managing images resident on a Cyclone, adding unique programming data for each target, as well as recovering descriptive errors.

Read more...

Cyclone Control SDK: Automated Flash Programming with C

by Johnny Ng on Oct 18, 2017

PEmicro’s product line of Cyclone stand-alone programmers provides a fast, robust, and automated solution for production-scale programming of microprocessors. However, production facilities may desire an even higher level of automation than the single-button touch capability that is offered by the Cyclone. PEmicro offers several means of automating control, including a console application, Ethernet/Serial protocol communications, or the SDK included in PEmicro's new Cyclone Control Suite. In this article, we discuss using the SDK to automate programmer control and the levels of flexibility and scalability that it offers our customers.

NOTE: This example is shown in C. The Cyclone Control SDK interface code and demo applications are included for GCC, LabView, Microsoft Visual C, Microsoft Visual C#, Delphi/FPC, Python, and Microsoft Visual Basic.

Read more...

Cyclone Control Suite: Cyclone Control GUI

by Esteban Gonzalez on Oct 18, 2017

Note: This blog post was updated in July 2019 with new information regarding Cyclone image encryption (part of the ProCryption Security feature).

As part of the Cyclone Control Suite, PEmicro includes a graphical application called the Cyclone Control GUI that allows the user to add and remove images, access Cyclone settings, read Programming Image properties and statistics, and remote access a Cyclone's display. It also provides the user with tools to manage ImageKeys (for encrypted images), serial files, and optional Cyclone licenses.

Read more...

PEmicro Introduces Cyclone Trade-In Program

by Peter Truong on Oct 18, 2017

PEmicro is pleased to introduce our Cyclone Trade-in Program which is a simple upgrade path to trade-in an old or non-functional Cyclone unit for a discount on a new CYCLONE or CYCLONE FX programmer.

Read more...

Migrate to the Next Generation Cyclones From Cyclone PRO & Cyclone MAX

by Johnny Ng on Oct 18, 2017

August 2, 2022 - We've updated this blog post to reflect the re-organization of touchscreen Cyclone features.

Migrating from the legacy Cyclone PRO and Cyclone MAX to the Cyclone LC Universal or Cyclone FX Universal is extremely easy. The Universal programmers are close to drop-in replacements for the PRO and MAX, albeit more powerful. Learn what to look out for when making the transition.

Read more...

How To Regenerate a Stand Alone Programming Image

by Huajun Liu on Apr 18, 2017

Note: The Cyclone Image Creation Utility has changed in signficant ways since this blog post was originally published, but the explanation remains useful in general terms. PEmicro hopes to update this soon.

PEmicro has just released a new version of the Cyclone Image Creation Utility that allows the user to retrieve the configuration for a Stand Alone Programming (SAP) image directly from a previously saved image. Once the image configuration settings have been retrieved from an image file, the user can then regenerate the image, or modify the settings and generate a new file, or even use those settings with other .s19 files to generate a SAP image with different source but the same configuration.

Read more...

Tip: Chip Select Configuration for External Flash Memory

by Johnny Ng on Mar 22, 2017

In addition to supporting the flash that resides in many different microcontrollers, PEmicro supports flash connected to an MCU via the SPI, I2C, and Address/Data bus interfaces. Depending on how the flash device is connected to the MCU, the programming algorithm may need to be set up to properly configure the external address, data, and bus control pins of the MCU. If you are not sure if you selected the right algorithm for your flash memory, please also read this blog post on selecting a flash algorithm.

Read more...

Insight Into Barcode Driven Flash Programming with Cyclone FX

by Esteban Gonzalez on Feb 14, 2017

The Cyclone FX has the capability to automatically select and launch a programming image based upon a scanned barcode. This can generate an error if more than one image corresponds to the barcode or no images correspond to the barcode. The CYCLONE FX includes a way to quickly gain insight into the issue. A log file is created every time the barcode scanner operates and it details the scanned barcode as well as the analysis process used to select the appropriate programming image.

Read more...

5 Different Ways to Power a Target With a Cyclone Programmer

by Julie Perreault on Feb 07, 2017

Different targets require a different power schemes that depend on the design of the target board, target voltages, and even the device architecture. PEmicro has designed their Cyclone LC and Cyclone FX to optionally power a target before, during, and after programming. Power can be sourced at many voltage levels from the Cyclone itself or sourced by an external power supply and switched by the Cyclone.

Read more...

High-Speed Programming For Power Architecture MPC5xxx/SPC5xxx Devices

by Takao Yamada on Jan 24, 2017

PEmicro has just released pipelined programming algorithms for a variety of Power Architecture devices. These new pipelined algorithms can be huge time-savers for those who program Power Architecture devices either in development or on their manufacturing lines, as they result in 50% to 100% faster programming times than using non-pipelined algorithms.

Read more...

Cyclone FX: Using A Barcode Scanner to Select & Launch Programming Images

by Esteban Gonzalez and Peter Truong on Jan 17, 2017

Automatic selection and launch of a specific flash programming image based on a scanned barcode can improve the speed and accuracy of production programming, especially when there is a varied product mix being programmed. Barcode scanning improves accuracy by making the process of selecting a programming image fast, automatic, and less vulnerable to user error. PEmicro's CYCLONE FX programmers have the ability to use a barcode scanner, connected via the Cyclone's host USB port, to initiate programming. When a barcode is scanned, the Cyclone selects a specific programming image based on the barcode and programs the target board accordingly.

Read more...

Cyclone ProCryption Security Supports Programming Count and Date Restrictions

Jun 20, 2016

PEmicro's ProCryption Security feature for Cyclone programmers offers user the ability to add usage restrictions to programming images. These usage restrictions include the ability to limit programming to a specific date range and also to set a maximum number of programming operations which can occur. The effect of this is that the user can limit the duration and amount of programming allowed by an image. This can be useful for protecting the IP contained within a programming image as well as making sure that programming images in production are not too far out of date. These restrictions persist even when the images are deleted/restored on a Cyclone unit's internal memory or SD card. Images are encoded in such a way as to deter tampering.

Read more...

PEmicro Announces Serial SPI Memory Device Programming Algorithms

Jun 03, 2015

PEmicro is now providing serial SPI memory device programming algorithms for devices attached to ARM® Cortex-M microcontrollers. There are many reasons to use PEmicro’s algorithms for your programming requirements. Some of the more significant reasons are:

Read more...

PEmicro Adds High-Performance Pipelined Algorithms For Kinetis Programming

Sep 09, 2014

PEmicro has developed a new pipelined version of its flash programming engine for Kinetis and other ARM® Cortex™ devices with more than 4KB of RAM by leveraging some unique aspects of the architecture. This pipelining mechanism improves already fast programming rates by up to 50%.

Read more...

PEmicro Development and Production Tools Add Support for Freescale DSCs

Mar 15, 2012

 

BOSTON – Mar. 15, 2012 - P&E Microcomputer Systems Inc., a leading developer of third-party tools for Freescale microcontrollers, has announced the addition of support for Freescale DSCs (digital-signal controllers) to key P&E development and production programming interfaces. Freescale DSCs are designed to blend processing power with specific, optimized control loop capabilities. P&E's DSC-compatible products represent a range of feature sets and price points in order to accommodate projects of any scope and budget.

P&E's Cyclone MAX, a flagship Automated Programmer and Debug Interface that is designed to handle a variety of tasks, including low and high volume programming in demanding production environments, now offers support for the following Freescale DSC families: MC56F80xx, 56F82xx, MC56F83xx, and MC56F84xxx. In addition, the new Cyclone MAX firmware (v.7.70) streamlines the unit's LCD display and provides more user selected and customized information. 

The USB Multilink Universal and the high-speed USB Multilink Universal FX also support Freescale's MC56F80xx, 56F82xx, MC56F83xx, and MC56F84xxx DSC families as part of an "all-in-one" approach that includes support for many other Freescale MCU architectures. The USB Multilink Universal is P&E's entry-level all-in-one development interface, and the USB Multilink Universal FX features up to 10x faster download speed and the ability to supply target power, while remaining an excellent overall value.

All three of these DSC-compatible interfaces are natively supported by Freescale's Codewarrior 10.2. More information on the Cyclone MAX, USB Multilink Universal, USB Multilink Universal FX, and compatible software is available at www.pemicro.com.

 

Renesas Programming Algorithms Available For Download

Sep 02, 2010

For users of our Cyclone for Renesas stand-alone programmer, we've made our library of programming algorithms for supported Renesas devices available for download here. As always, if you do not see the algorithm you need for a supported device, you can use this link to request a custom algorithm. The Cyclone for Renesas currently supports the H8, R8C, and M16C families.  

Expert's Corner: Cyclone CompactFlash - Managing Mulitple Images

Aug 10, 2009

Overview

PEmicro’s Cyclone PRO/MAX Stand Alone Programmers offer an impressive array of capabilities such as in-circuit flash programming, stand-alone programming, and as much as 7MB internal non-volatile memory for storing programming images. And now this memory space can be expanded via optional software which enables the Cyclones’ CompactFlash interface. The expanded storage feature simplifies management of Stand-Alone Programming images. This Expert’s Corner explains how to take advantage of the CompactFlash card feature to facilitate the Stand-Alone Programming process.

Read more...

External Flash Programming Tips

May 28, 2009

 Systems that use memory-mapped external flash require special considerations from a programming perspective. Because there are so many variables, questions about external flash are among the most common types of technical support inquiries that we receive. In this article, we provide an overview of how the PEmicro PROG software handles external flash and offer some tips to help debug a system.  The examples in this article relate to Freescale ColdFire devices, but the concepts can be applied to most microprocessor systems.


Hardware connections
The following is the minimum set of signals required to access a memory-mapped external flash:

A[X:0] – Address signals
D[Y:0] – Data signals
CS – Chip Select
WE or R/W – Write Enable
OE – Output Enable

How PROG works
PEmicro’s PROG software forces the processor into background (or "debug") mode, where it gains full access to the processor’s resources. The flash programming algorithm is then loaded into the processor’s RAM. The algorithm contains all of the routines necessary to erase and program the external flash.

PROG always moves the external flash so that it begins at address 0 for programming. If your own memory map is different, PROG will need to account for this with the correct base address

Accessing the external flash
The PROG software uses the processor to access the external flash. This means that from the processor’s perspective, it must be able to read and write to the external flash. Usually, this is all handled by the processor’s external bus interface. Most of the external flash algorithms provided by PEmicro assume that this configuration is already handled by the user.

For example, most processors automatically start up with CS0 as the global chip select. The processor uses this chip select for all external memory accesses until it is reconfigured by the user. Likewise, the processor checks certain signals during bootup to determine the width of the data bus on CS0.

Extra initialization
Depending on the processor and external flash used, there may be some extra initialization that is not automatically performed by the processor on bootup, but is necessary before flash programming can take place. Users may perform this extra initialization by adding commands to the beginning of the algorithm itself. The algorithms may be edited with a simple text editor such as Notepad. Refer to the PROG help file for more detailed information on these commands.

Some examples:

1) Processor’s internal SRAM needs to be enabled, because it is disabled at bootup
NO_ON_CHIP_RAM
CONTROL=80000001/0C05/             ;set up rambar to place ram at $80000000

2) Processor has a software watchdog that needs to be disabled
WRITE_WORD=0000/40140000/          ;kill extra sw watchdog

3) External bus interface is not properly configured after bootup
WRITE_WORD=0000/40000080/       ;CSAR0 - CS0 at address 0
WRITE_LONG=00000101/40000084/       ;CSMR0 - Enable CS0
WRITE_WORD=3D80/4000008A/       ;CSCR0 16-bit data bus

Troubleshooting
- Make sure you are using the correct algorithm. Please refer to this previous blog post for more information about algorithm selection.
- Double check hardware connections between the processor and the external flash.
- Check if the processor is actually able to access the external flash. The PROG software has a command called “Show Module” which will attempt to read the contents of the flash. If the data is displayed as XX, then the processor was unable to read the external flash.
-  If the hardware connections are good but the processor’s external bus configuration needs tweaking, a debugger will allow you to check the processor’s settings on bootup to make sure they match up with the external flash.

Choosing the Right Programming Algorithm

by Johnny Ng on Jan 06, 2009

When using PEmicro's PROG family of programming software, it's necessary to specify the correct programming algorithm to match your hardware setup. Because PEmicro provides thousands of different programming algorithms this can seem like a duanting task. In this article we discuss how to quickly determine the programming algorithm that correctly matches a specific hardware setup.

Read more...

New Programming Feature For Non-Volatile Memory – Preserve Range

by Updated by Johnny Ng on Oct 10, 2008

Did you know you can safeguard data while erasing your Flash/EEPROM module during programming? PEmicro has added a “preserve range” function that can be used in a programming algorithm to preserve memory ranges. The function looks at the range to be preserved, saves it, and restores it after the Flash/EEPROM has been erased. The user can easily preserve code segments stored in flash with a couple of modifications to the header of the programming algorithm.

A flash programming algorithm is a text file which describes how a particular flash block is to be programmed. The algorithm contains a configuration section as well as some s-record data which implements the programming process. User's commonly will modify the configuration section to change the behavior of the programming algorithm, such as to add ranges of data to preserve.

Flash algorithms describe flash blocks as having either a fixed address (common for internal flash on a microcontroller) or a variable address (common for flash chips external to a microprocessor). Algorithms which do not have a fixed address for the flash will prompt the user for the base address of the flash at the time of programming. In either case, the algorithm can be used to specify ranges of flash to preserve relative to the start of the flash block.

For an algorithm with a fixed address for the flash block, the following line will indicate the flash block location:

NO_BASE_ADDRESS=NNNNNNNN/     ; NNNNNNNN is a Hexadecimal value indicating the start of flash

Do not modify the NO_BASE_ADDRESS line! You are simply going to add some lines after it which indicate that you wish to preserve certain ranges relative to the base address. The configuration line(s) you should add directly after the NO_BASE_ADDRESS line should have the following format (very strictly formatted - no spaces allowed and include all forward slashes):

PRESERVE_RANGE=SSSSSSSS/EEEEEEEE/     ; SSSSSSSS is the starting offset, EEEEEEEE is ending offset

Adding this line would preserve the following memory range : NNNNNNNN+SSSSSSSS to NNNNNNNN+EEEEEEEE.

Example:

If there was an algorithm which was designed to program a flash block with address range $4000-$FFFF, you would see the following configuration in the flash algorithm:

NO_BASE_ADDRESS=00004000/         ;Fixed at $4000
ADDR_RANGE=00000000/0000BFFF/00/FFFFFFC0/FFFFFE00/     ; $4000-$FFFF

 

Do not modify these lines! If you wanted to preserve a certain memory range, you would specify it after the line with the NO_BASE_ADDRESS command (which sets the base address) and before the lines with ADDR_RANGE. If you wanted to preserve the memory from address $F000-$F001, you would add the bolded line as follows:

NO_BASE_ADDRESS=00004000/         ;Fixed at $4000
PRESERVE_RANGE=0000B000/0000B001/     ; Preserve $0000F000-$0000F001
ADDR_RANGE=00000000/0000BFFF/00/FFFFFFC0/FFFFFE00/     ; $4000-$FFFF

Note that the preserve_range command requires the offset from the base address of your memory. If you add $4000 to $B000 and $B001, you have $F000 and $F001.

In addition, this functionality does not limit the user to preserving only 1 range or one address. The function can be called several times in the algorithm if several ranges and/or addresses need to be preserved, or if the Flash/EEPROM is segmented into several fields or extended into pages.

Example:

For the flash block above (from $4000 to $FFFF), if the user wished to preserve addresses $5001, $5006 and ranges $CCAA-$CCBB and $D123-$DFFF, the following segment would be added to the algorithm:

NO_BASE_ADDRESS=00004000/         ;Fixed at $4000
PRESERVE_RANGE=00001001/00001001/    ; 5001-4000
PRESERVE_RANGE=00001006/00001006/    ; 5006-4000
PRESERVE_RANGE=00008CAA/00008CBB/    ; CCAA-4000/CCBB-4000
PRESERVE_RANGE=00009123/00009FFF/    ; D123-4000/DFFF-4000
ADDR_RANGE=00000000/0000BFFF/00/FFFFFFC0/FFFFFE00/     ; $4000-$FFFF

Example:

It is also possible to preserve several different segments across different pages of Flash/EEPROM. The user should know how to access each page of memory logically in the software. Let's look at the HCS08 AC128. The paged Flash memory can be accessed with the following ranges. This will typcially be described in the configuration section of the programming algorithm.

$08000-$0BFFF --> Page 0
$18000-$1BFFF --> Page 1
$28000-$2BFFF --> Page 2 
$38000-$3BFFF --> Page 3 
etc.

If the user wanted to preserve memory on page 0 from $08000-$08005 and on page 3 from $38000-$38005, he would add the following commands :

NO_BASE_ADDRESS=000020F0/         ;Fixed at $20F0
PRESERVE_RANGE=00005F10/00005F15/    ; Preserve $08000-$08005
PRESERVE_RANGE=00035F10/00035F15/    ; Preserve $38000-$38005
ADDR_RANGE=00000000/0000DF0F/00/FFFFFFC0/FFFFFE00/     ; $20F0-$FFFF

Note again that the offset $20F0 is added to the parameters of the command to calculate the correct paged memory ranges to preserve. Add $20F0 to $5F10 to get $08000 and add $20F0 to $35F10 to get $38000.  

The PROG software will report a checksum error and warn that the algorithm has been modified. This error can be ignored. If you wish to remove the warning, please use our command-line ADDCRC utility to update the checksum.


The Blank Check command will now fail because of the preserved data. Also note that the Verify Module command will ignore the addresses that are preserved when comparing memory against an S-record.


Any information which follows a semicolon (;) on a configuration line is a comment.

PEmicro can provide more a detailed specification of flash algorithm construction upon request.

How To Use Longer Cables To Extend The Reach Of PEmicro Products

Oct 03, 2008

Certain test procedures and production environments require the use of a cable longer than the typical 9-inch flat ribbon cable typically included with PEMicro hardware interfaces. Extending the cable length requires special considerations for signal integrity, crosstalk, and electromagnetic interference. Simply using a longer cable without understanding these topics will usually produce a setup that does not work reliably, if at all. Extending the ribbon cable should be the option only if you determine that you cannot make longer the length of the USB, Ethernet, or Serial cable that connects the PEMicro hardware interface to your PC. The cables for the communication ports already have some shielding.

If it is necessary to use a longer ribbon cable, PEMicro recommends using a shielded jacketed cable . This cable configuration is excellent at reducing crosstalk as well as minimizing electromagnetic interference from other devices. Further improvement can be obtained if the wires are also arranged in twisted pairs.

Shielded USB cables are inexpensive and easy to rework. The four wires provided can be used to create a cable for the standard 6-pin BDM header used by many NXP microcontrollers (such as the HCS08, RS08, CFV1, HCS12, and S12Z). Additional shielded USB cables can be used for other devices that require more debug pins.

Thicker wires offer less resistance to current which will reduce the voltage drop of the signal across the length of the wire. Our current 6 pin and other ribbon cables are AWG 28. Using a thicker wire (smaller AWG number) you may get some improvements in signal integrity.

In general, these guidelines should be followed for all cables between the target microcontroller and the PEMicro hardware interface:


  1. Use the shortest cable possible

     

  2. Use shielded cable configurations to reduce electrical parasitic effects

     

  3. Lower the communication frequency. For the ColdFire or Qorivva architectures, the communication frequency is controlled by the BDM Debug Shift Frequency setting. For other architectures, the communication speed is only dependent on the processor's bus frequency. Reducing the bus frequency (ie. disabling the PLL) should improve results.
The debug signals for some ColdFire devices such as the MCF5272 and MCF5206(e) have to be synchronized before reaching the microprocessor. This additional requirement must be kept in mind.