PEmicro Blog

PEmicro Supports Debug and Programming of Yuntu YTM32B1LD0 Devices

by Keith McNeil, Johnny Ng on Aug 21, 2023

Update: As of September 2023, YTM32B1LE0 and YTM32B1ME0 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...

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...

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 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...

PROG Update: "QO" (Queue Object Data) Command Replaces "SS" Command

by Steve McGrath on Feb 28, 2023

Historically, PEmicro's PROG has limited the user to specifying one object file at a time to be programmed. But users occasionally encounter situations where they would want to program their bootloader, application, and some additional security settings, all at the same time. Such a configuration was possible using PROG, but quite cumbersome. So PEmicro has implemented a solution that allows programming of multiple object files using a single “PM” and “VM”. This solution is the new “QO” (Queue Object Data) command, which replaces the legacy "SS" command.

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...

Securing Renesas RA/Synergy Devices via ID Code Protection

by Steve McGrath on Jan 31, 2022

It is crucial to be able to prevent access by third parties to on-chip flash memory. Renesas RA and Synergy devices offer several means of security, one of which is called ID Code protection. After the MCU starts up in boot mode, ID authentication is performed when a host such as a PC is connected, in order to prevent unauthorized access. PEmicro's tools now allow users to take advantage of ID Code protection within the OCD/Serial Programmer ID Setting Register (OSIS) of supported Renesas ARM processors.

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...

Java SE Dev Kit 11 Support Added to PEmicro's Eclipse-Based ARM IDE Plug-In

by Zahar Raskin & Keith McNeil on Jun 21, 2021

PEmicro is pleased to announce our latest Eclipse-based GDB Plugins for ARM devices with Java 11 support compatibility. Java 11 support was introduced in PEmicro's ARM plugin version 4.9.2 in April of 2021, and all ongoing PEmicro plugin releases include Java 11 support, as well as backwards compatibility with Eclipse IDEs that still rely on Java 8-based JDK. Java 11 is a prerequisite for native Eclipse IDEs, starting from version 2020-12, as well as some proprietary Eclipse based IDEs from NXP (MCUXpresso IDE) and STmicroelectronics (STM32CubeIDE).    

Read more...

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...

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...

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...

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...

Programming STM32Fx and STM32Lx Option Bytes

by Gilbert Yap on Jun 05, 2019

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...

Flash Secure/Unsecure Support for Silicon Labs Gecko Devices with Time-Sensitive AAPs

by Mika Ichiki-Welches on Mar 25, 2019

PEmicro considers the privacy of its customers' intellectual property to be of utmost importance. Silicon Labs' 32-bit devices feature an Authentication Access Port (AAP) as part of their security features, and for some of these devices, a debugger may have a limited time to access this port when communicating with an unsecured device. With that in mind, recent PROG software (v6.94) and Cyclone firmware (v10.04) releases now provide support to secure, unsecure, and mass-erase Silicon Labs devices with these debug time-sensitivities, which can help users keep their valuable data safe.

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...

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...

Understanding the Base Address

Mar 04, 2009

PEmicro’s PROG programming software will sometimes prompt the user to enter a “Base Address”. In this article, we discuss what the base address is and why it exists.

On most 8-bit and 16-bit processors, the internal flash/eeprom is located at fixed address locations. If this is the case, the associated programming algorithm will NOT prompt the user for a base address, since the address is fixed and already known.

On 32-bit processors and any systems using external flash, the address of the flash may be configured to reside anywhere within the processor’s address space. The developer will decide on an appropriate memory map early in the design process.

For these situations where the flash can be relocated, the PROG software will always move the flash so that it begins at address 0.  However, the developer may not have an object file that matches this new memory mapping. To account for this, the “Base Address” (specified by the user) is subtracted from all addresses in the object file prior to programming.

Below is an example of how the developer’s memory map may differ from the one in PROG. Although the external flash is located at different addresses, it refers to the same physical memory. Here, the user would specify a base address of FFC00000.

The base address should always be the starting address of flash in the developer’s memory map, and not the “first” address where data exists (although in most cases they are the same!)

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...