When using P&E's PROG family of programming software, it's necessary to specify the correct programming algorithm to match your hardware setup. Because P&E
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.
1) Obtain the latest Programming Algorithms
P&E's Programming Algorithms are being constantly updated to support new devices. For convenience, all of our algorithms are located here. These algorithms are grouped according to the processor family being used.
2) Internal or External Flash/EEPROM?
Internal Flash/EEPROM is memory that resides inside the processor itself. Although most modern processors contain at least some internal Flash/EEPROM, there are some specific devices (Freescale MCF5474) that do not contain any nonvolatile storage. External Flash is a separate integrated circuit component that is externally connected to the processor. In general, external Flash is used for higher end 32-bit applications that require increased memory capacity.
3a) Internal Flash/EEPROM Algorithm Selection
Once you have identified the processor that you are working with, it is generally straightforward to identify the correct programming algorithm. All of P&E's internal Flash/EEPROM algorithms contain the processor part number in the filename. In certain cases, there are separate algorithms for programming the Flash and the EEPROM. This information is also present in the algorithm filename itself.
Examples:
9S08GB60.S8P - Freescale MC9S08GB60 internal Flash
Freescale_MC9S12DP256_1x16x128k_256k_Linear_16k_page.12P - MC9S12DP256 internal Flash
Freescale_MC9S12DP256_1x16x2k_4k_EEPROM.12P - MC9S12DP256 internal EEPROM
3b) External Flash Algorithm Selection
P&E's external Flash Algorithms use the following naming convention:
Manufacturer_PartNumber_NumDevices x DataBusWidth x NumRows.FileExtension
Manufacturer = Manufacturer of the external Flash device
PartNumber = Manufacturer Part Number
NumDevices = Number of these external Flash devices used in parallel. Devices are typically used in parallel to support a wider data bus. As an example, imagine that an external Flash device only supports a 16-bit data bus. By using two of these devices in parallel, a 32-bit data bus can be supported.
DataBusWidth = The data bus width of EACH external Flash device. Certain devices support multiple data bus widths.
NumRows = The number of rows in each Flash device. Each row contains DataBusWidth bits. NumRows multiplied by DataBusWidth results in the total size of the Flash memory.
FileExtension = The file extension is unique for each processor family.
Examples:
ST_29W128FH_1x8x16meg.CFP - A single STMicroelectronics 29W128FH device, configured for 8-bit data bus. Total size = 8 bits (1 byte) x 16Meg = 16 MB
ST_29W128FH_1x16x8meg.CFP - A single STMicroelectronics 29W128FH device, configured for 16-bit data bus. Total size = 16 bits (2 bytes) x 8Meg = 16 MB
ST_29W128FH_2x8x16meg.CFP - Two STMicroelectronics 29W128FH devices, each configured for 8-bit data bus. The result is a 16-bit wide data bus. Total size = 2 x 8 bits (1 byte) x 16Meg = 32 MB
4) Device not supported?
This page can be used to request a specific Flash Programming algorithm if you do not find what you are looking for. Use this form if your device is not supported or if the existing algorithms do not match your setup correctly (e.g., if you are not using the default chip select). This service is provided by P&E free of charge.


Mar 16, 2009 at 3:48 AM Hi there,
Please advise the algorithm for the Freescale MCF51AC128CCPUE.
The closest I have found is a Coldfire Freescale 51AC128 algorithm, Freescale_51AC128_1x32x32k.CFP which is at V1.00 01/08.
Is this the right one?
Mar 20, 2009 at 5:19 PM Hello David,
That is the correct algorithm for your part.
Best Regards,
Johnny
P&E Technical Support
Mar 30, 2009 at 2:15 AM Which algorithm to select S9S08SG8 MCU? I am using internal clock with 20MHz Bus and CyclonePro with standalone utility.
What is the difference between the various algo available for SG8: 9S08SG8.S8P, 9S08SG_20MHZ.S8P, 9S08SG8_PRESERVE.S8P, 9S08SG8_TRIM31_5KHZ
Mar 30, 2009 at 11:27 AM Hello Rajiv
9S08SG4.S8P - accesses internal Flash ROM only
9S08SG4_20MHZ.S8P - accesses internal Flash ROM only and bus frequency is 20 MHz.
9S08SG4_PRESERVE.S8P - accesses internal Flash ROM only preserves data at 0xFFAE-0xFFAF even after erasing the flash
9S08SG8_TRIM31_5KHZ - accesses internal Flash ROM only and internal reference clock is trimmed to 31.5 KHz
Mar 31, 2009 at 12:23 AM To achieve 20MHz with internal oscillator there seam to be two approaches:
a) Use algorithm 9S08SG8.08P and set trim frequency option to 39.0625 KHz.
b) Use algorithm 9S08SG8_20MHZ.S8P (set trim freq option to default:31.5 KHz)
Are both approaches correct?
Jun 23, 2009 at 11:06 AM Hi,
Can you suggest the flash algorithm for NOR flash - PC28F256J3D-95?
Thanks,
Siva
Jul 1, 2009 at 1:30 PM What is the exact difference between following flashing algorithms
9S08DZ60.S8P
9S08DZ60_EEP4ByteSect.S8P
9S08DZ60_EEPROMonly.S8P
9S08DZ60_FLASHonly.S8P
9S08DZ60_preservetrim.S8P
Aug 7, 2009 at 5:07 AM Please advice which algorithm to use for MCF5485 logic pd board with code flash 28F256K3C120.
Oct 12, 2009 at 5:38 AM Hi,
I want to get the algorithm for the Freescale 9S12HY64,
but I haven't found it.
Thanks.
Nov 25, 2009 at 8:59 AM please suggest a flash programming to use for 5674 ,4 MB flash ....
Nov 25, 2009 at 8:59 AM please suggest a programming algo to use for freescale 5674 4 mb flash
Nov 25, 2009 at 10:33 AM Hello Manjunath,
You should use: Freescale_MPC5674F_1x32x1024k_Freescale_C90FL2_Driver_302.PCP
You can download it here:
http://www.pemicro.com/support/flash_list_menu.cfm
Mar 3, 2010 at 12:09 PM What is the significance of the _PLL part of the name for a 9S12A256B?
Thanks.
Mar 9, 2010 at 2:58 PM Hello Bill,
The algorithm enables the PLL to increase the bus frequency on the 9S12 device. This increases the communication speed between the Multilink and the BDM module on the device which can shorten programming time.
Best Regards,
Johnny
P&E Technical Support