Cart New Account Login Search
HomeAbout usProductsSupportForumsBlogCustomer Service

Choosing the Right Programming Algorithm

In-Circuit Flash Programming Add comments

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.

15 responses to “Choosing the Right Programming Algorithm”

  1. david simon Says:
    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?
  2. Johnny Ng Says:
    Hello David,

    That is the correct algorithm for your part.

    Best Regards,
    Johnny
    P&E Technical Support
  3. Rajiv Bandodkar Says:
    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
  4. Johnny Ng Says:
    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
  5. Rajiv Bandodkar Says:
    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?
  6. Sivakumar Borela Says:
    Hi,

    Can you suggest the flash algorithm for NOR flash - PC28F256J3D-95?

    Thanks,
    Siva
  7. Rajendra Saindane Says:
    What is the exact difference between following flashing algorithms
    9S08DZ60.S8P
    9S08DZ60_EEP4ByteSect.S8P
    9S08DZ60_EEPROMonly.S8P
    9S08DZ60_FLASHonly.S8P
    9S08DZ60_preservetrim.S8P
  8. Sudeep balan Says:
    Please advice which algorithm to use for MCF5485 logic pd board with code flash 28F256K3C120.
  9. Wong Evan Says:
    Hi,
    I want to get the algorithm for the Freescale 9S12HY64,
    but I haven't found it.

    Thanks.
  10. manjunath s Says:
    please suggest a flash programming to use for 5674 ,4 MB flash ....
  11. manjunath s Says:
    please suggest a programming algo to use for freescale 5674 4 mb flash
  12. Johnny Ng Says:
    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
  13. Bill Elliot Says:
    What is the significance of the _PLL part of the name for a 9S12A256B?

    Thanks.
  14. Johnny Ng Says:
    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
  15. Jaideep Save Says:
    Hi,
    We were using Freescale_MPC5607B_1x32x384k_CFlash.PCP for controller Freescale MPC5607B. We are using USB-ML-PPCNEXUS Hardware for flashing.

    However we are following error: "Error in ONCE status register during instruction execution". This error occuring while loading programming algorithm.

    Regards
    Jai
Please login to post a message on this Post: Login
Home RSS Feeds


© 2010 P&E Microcomputer Systems
Website Terms of Use and Sales Agreement