Vermes
Advanced Member level 4
**broken link removed**
This is a simple FLASH memory programmer for hobby use. While designing, the most important things was maximum simplicity of construction and comfortable handling via computer and possibly biggest number of operated channels. The whole system consists of a programmer and a computer program. It is modelled on commercial structures of such devices on the market today. The programmer can be connected to the computer through the USB port. On the computer there is a program that controls its work and provides the user interface. The programmer is powered entirely from the USB port, so there is no need to connect an additional power supply, what is undoubtedly a great advantage.
**broken link removed**
Application
By this programmer, it is possible to program about 100 different types of flash memory chips – about 200 with a typical conversion factor used by manufacturers of programmers. It can be used to repair motherboards in older computers after badly updated BIOS, as well as repair of all kinds of other computer components, and not only, where there is firmware such as graphics cards, CD drives and tuners. Using the programmer can also program the new, clean flash memory chips and replace original ROM memory in cartridges for various game consoles with them.
Construction of the programmer
The programmer has a 23-pin ZIF socket for classic DIL32 housings. Additionally, two adapters were developed, extending the capabilities of programming systems in the currently more common PLCC32 and TSOP32. Therefore, programming systems with capacities from 128 to 512kB is possible. The main element of the programmer is AVR Atmega16L or Atmega8535L microcontroller, that controls the programmer ZIF socket terminals. Also system USB converter – RS232 FT232RL is connected to the microcontroller. That system allows the communication with the computer. The programmer has also a voltage stabilizer that provides 3,3V, so that when the voltage is switched, also programming low voltage systems is possible (the program indicates that the voltage must be set for a specific system). On the programer's plate, there are also two LEDs – green one indicates connection to a computer, red one lights when the voltage switch is selected on 5V. Clock signal for the microcontroller is taken directly from the FT232RL, so there is no need to attach quartz crystal. Below there is a diagram of the programmer:
**broken link removed**
Control program
Programmer's control program is easy and convenient in use. In the central part of the window, there is a log of all operations performed, and also various messages are displayed (eg. About how to select the power supply voltage for a particular system) and any errors. Big buttons for opening and saving the files (binary format is supported as well as the IntelHex format), access to the cache editor, select a layout from a list of supported and to invoke a read operation and programming are on the left side. At the top of the window, there is menu bar with additional options such as for example selection of the program language (Polish and English available). At the bottom of the window, currently selected parameters of the memory chip are displayed and below on the status bar, there is information in text and graphics showing the current state of the programmer (connected, disconnected, during data transfer). The program also includes a complete support, where all of its elements are described in detail.
**broken link removed****broken link removed****broken link removed**
Support
The work begins with connecting the programmer to the computer via a standard USB cable type A-B, used to connect printers, and then run the program. The programmer can be disconnected or connected at any time after starting the program. When the program doesn't detect the programmer, it switches to demo mode. In this mode, the program is fully functional, except reading and memory programming. These steps are simulated after calling the function, in order to be able to watch as it looks even before the eventual construction of the programmer.
Next, click on the function of system select and choose from a list a system that we want to program. The program has a browser, so just type designation of the system. Supported systems were grouped according to the manufacturers, and every time beyond its name, the name of housing and memory size is displayed. At this stage we can check whether the system that we want to program is supported by the programmer. If you need to use an adapter, the program would display this information after the approval of the selection. Once this is done, in the log window the voltage on the power switch would be displayed. Only now you can carefully put the system to stand and close it by the lever – but before make sure that the system is correctly oriented.
Next, the contents of a system can be read or programmed. After opening the file from a computer disc or reading data from the system, the content would be in the program's buffer. The application program has a buffer editor, through which we can view or edit the content of each memory cell. Additionally, it is possible to clear the buffer, fill it with random values, fill any part of the buffer with any character string or value and copy any block from one address to another.
To read the system, click on the button of the reading. The programmer would read the signature of inserted system and if it is consistent with the selected system, it would start the proper reading data from the system. During the reading, a progress bar would be displayed and estimated time remaining to complete the operation. Of course, using the cancellation button is possible at any time to interrupt the operation. After reading, the data are in the program buffer.
To program the system, click on the programming button. The programmer would read the signature of inserted system and of it is consistent with the system selected in the program and there would be data to program in the buffer, in the first phase the system would be cleared and then programmed it with data from the program buffer.
When operating in demo mode, actual time of reading and programming the systems are not simulated. For example, the reading of MBM29F040C (512kB) takes about 130 seconds, and deleting and programming takes 180 seconds. They are not the times that could compete with commercial programmers, but because of the nature and potential applications of this programmer, they are acceptable.
Assembly
After assembly the programmer, before inserting the microcontroller to the stand, correct voltages should be checked and FT232RL system configured so on its pin 12 (CBUS4) a clock signal with a frequency of 6MHz was available. For this purpose, a special program FT_PROG LINK should be downloaded. Option for C4 should be changed to CLK6 and changes programmed:
**broken link removed**
Then with an external ISP programmer upload available input to the microcontroller and set fusebits as follows: Fuse High Byte = 0xD1, Fuse Low Byte = 0xA0:
**broken link removed**
One of two microcontrollers Atmega16L or Atmega8535L can be used in this programmer, depending on which is more easily available or cheaper. However, remember to use a version of the microcontroller with the L designation. Now the microcontroller can be put in the stand and the supply voltage can be re-checked.
Next, install a control program on the computer, using the installer. The program requires .NET Framework version 2.0. The installer would firstly check if the framework is installed, if it is not, the installer would open the page where it can be downloaded and installed. After installation, the installer install the FTDI driver by default to the system of USB<->RS232 converter. If this driver is already installed, the option to install it can be unchecked. After installation, of course, it would be possible to install the driver later, using the shortcut in the Start menu. There also a shortcut to the program and help file would be placed.
Conclusion
Due to the very simplified structure, the programmer does not have any short circuit security. Incorrect installation of the system or using a system that is not supported by flash memory, in particular having power inputs on other pins or switching for incorrect power supply voltage may end with breaking the programmer and/or USB port of the computer. Please note that some systems may have activated securities to prevent deleting the whole or part of the memory (boot block) and incorrect programming does not necessarily result from incorrect functioning of the programmer.
The control program can be also downloaded from LINK
Link to original thread – Programator pamięci FLASH
This is a simple FLASH memory programmer for hobby use. While designing, the most important things was maximum simplicity of construction and comfortable handling via computer and possibly biggest number of operated channels. The whole system consists of a programmer and a computer program. It is modelled on commercial structures of such devices on the market today. The programmer can be connected to the computer through the USB port. On the computer there is a program that controls its work and provides the user interface. The programmer is powered entirely from the USB port, so there is no need to connect an additional power supply, what is undoubtedly a great advantage.
**broken link removed**
Application
By this programmer, it is possible to program about 100 different types of flash memory chips – about 200 with a typical conversion factor used by manufacturers of programmers. It can be used to repair motherboards in older computers after badly updated BIOS, as well as repair of all kinds of other computer components, and not only, where there is firmware such as graphics cards, CD drives and tuners. Using the programmer can also program the new, clean flash memory chips and replace original ROM memory in cartridges for various game consoles with them.
Construction of the programmer
The programmer has a 23-pin ZIF socket for classic DIL32 housings. Additionally, two adapters were developed, extending the capabilities of programming systems in the currently more common PLCC32 and TSOP32. Therefore, programming systems with capacities from 128 to 512kB is possible. The main element of the programmer is AVR Atmega16L or Atmega8535L microcontroller, that controls the programmer ZIF socket terminals. Also system USB converter – RS232 FT232RL is connected to the microcontroller. That system allows the communication with the computer. The programmer has also a voltage stabilizer that provides 3,3V, so that when the voltage is switched, also programming low voltage systems is possible (the program indicates that the voltage must be set for a specific system). On the programer's plate, there are also two LEDs – green one indicates connection to a computer, red one lights when the voltage switch is selected on 5V. Clock signal for the microcontroller is taken directly from the FT232RL, so there is no need to attach quartz crystal. Below there is a diagram of the programmer:
**broken link removed**
Control program
Programmer's control program is easy and convenient in use. In the central part of the window, there is a log of all operations performed, and also various messages are displayed (eg. About how to select the power supply voltage for a particular system) and any errors. Big buttons for opening and saving the files (binary format is supported as well as the IntelHex format), access to the cache editor, select a layout from a list of supported and to invoke a read operation and programming are on the left side. At the top of the window, there is menu bar with additional options such as for example selection of the program language (Polish and English available). At the bottom of the window, currently selected parameters of the memory chip are displayed and below on the status bar, there is information in text and graphics showing the current state of the programmer (connected, disconnected, during data transfer). The program also includes a complete support, where all of its elements are described in detail.
**broken link removed****broken link removed****broken link removed**
Support
The work begins with connecting the programmer to the computer via a standard USB cable type A-B, used to connect printers, and then run the program. The programmer can be disconnected or connected at any time after starting the program. When the program doesn't detect the programmer, it switches to demo mode. In this mode, the program is fully functional, except reading and memory programming. These steps are simulated after calling the function, in order to be able to watch as it looks even before the eventual construction of the programmer.
Next, click on the function of system select and choose from a list a system that we want to program. The program has a browser, so just type designation of the system. Supported systems were grouped according to the manufacturers, and every time beyond its name, the name of housing and memory size is displayed. At this stage we can check whether the system that we want to program is supported by the programmer. If you need to use an adapter, the program would display this information after the approval of the selection. Once this is done, in the log window the voltage on the power switch would be displayed. Only now you can carefully put the system to stand and close it by the lever – but before make sure that the system is correctly oriented.
Next, the contents of a system can be read or programmed. After opening the file from a computer disc or reading data from the system, the content would be in the program's buffer. The application program has a buffer editor, through which we can view or edit the content of each memory cell. Additionally, it is possible to clear the buffer, fill it with random values, fill any part of the buffer with any character string or value and copy any block from one address to another.
To read the system, click on the button of the reading. The programmer would read the signature of inserted system and if it is consistent with the selected system, it would start the proper reading data from the system. During the reading, a progress bar would be displayed and estimated time remaining to complete the operation. Of course, using the cancellation button is possible at any time to interrupt the operation. After reading, the data are in the program buffer.
To program the system, click on the programming button. The programmer would read the signature of inserted system and of it is consistent with the system selected in the program and there would be data to program in the buffer, in the first phase the system would be cleared and then programmed it with data from the program buffer.
When operating in demo mode, actual time of reading and programming the systems are not simulated. For example, the reading of MBM29F040C (512kB) takes about 130 seconds, and deleting and programming takes 180 seconds. They are not the times that could compete with commercial programmers, but because of the nature and potential applications of this programmer, they are acceptable.
Assembly
After assembly the programmer, before inserting the microcontroller to the stand, correct voltages should be checked and FT232RL system configured so on its pin 12 (CBUS4) a clock signal with a frequency of 6MHz was available. For this purpose, a special program FT_PROG LINK should be downloaded. Option for C4 should be changed to CLK6 and changes programmed:
**broken link removed**
Then with an external ISP programmer upload available input to the microcontroller and set fusebits as follows: Fuse High Byte = 0xD1, Fuse Low Byte = 0xA0:
**broken link removed**
One of two microcontrollers Atmega16L or Atmega8535L can be used in this programmer, depending on which is more easily available or cheaper. However, remember to use a version of the microcontroller with the L designation. Now the microcontroller can be put in the stand and the supply voltage can be re-checked.
Next, install a control program on the computer, using the installer. The program requires .NET Framework version 2.0. The installer would firstly check if the framework is installed, if it is not, the installer would open the page where it can be downloaded and installed. After installation, the installer install the FTDI driver by default to the system of USB<->RS232 converter. If this driver is already installed, the option to install it can be unchecked. After installation, of course, it would be possible to install the driver later, using the shortcut in the Start menu. There also a shortcut to the program and help file would be placed.
Conclusion
Due to the very simplified structure, the programmer does not have any short circuit security. Incorrect installation of the system or using a system that is not supported by flash memory, in particular having power inputs on other pins or switching for incorrect power supply voltage may end with breaking the programmer and/or USB port of the computer. Please note that some systems may have activated securities to prevent deleting the whole or part of the memory (boot block) and incorrect programming does not necessarily result from incorrect functioning of the programmer.
The control program can be also downloaded from LINK
Link to original thread – Programator pamięci FLASH