JTAG interface for flash programming

28 March, 2008 - By using JTAG interface it is possible to manage other TAP states machines than standard IEEE1149 normally used for boundary scan test and external flash programming.
Most microcontrollers include state machines with special instructions which allows to read/write internal registers and memory and to program internal flash memory. Just to make a couple of examples, ST Microelectronics ARM microcontrollers and Freescale PowerPC devices. As long as documentation is available about the use of the custom state machine, it's quite simple to implement a software that allows at least to program internal flash memory and read status of main registers. Another approach normally used to program internal flash memories of MCUs is to load a firmware in the internal RAM, and let it run. This firmware should only implement routines to initialize some interfaces, like serial port or ethernet, get the binary image and store it to the flash.
Debug capabilities can be implemented also, but normally this require a more complicated approach and the ability to disassemble the binary image. I'll investigate this aspect but since it's strictly related to the microcontroller architecture it's out of topic for this project.
Just for play, i try to implement the feature to program internal flash memory of STM microcontroller STR912FAW44X6. Stay tuned!

1 February, 2008 - Hi, i've setup this page because i'm currently developing an hw interface and a software running on a Windows based host pc that allows to program flash memories embedded in electronic boards and connected to a microcontroller with the JTAG interface available on a connector.
I want to know if someone (other than me!) is interested in this project and which features it should have in order to make it a good product to be sold.
Of course this should be a very low cost product compared to other tools that have a lot more features but cost also a lot. Think that a complete JTAG/boundary scan system can cost more than 40000 (40 thousands!) euros (hw + sw), this is not so much if you consider that this kind of enviroment do all the job automatically (i mean, it can import netlist files from tens of different CAD formats, build test patterns, perform flash/cpld programming etc.)
My target is to build a more simple product but which is affordable by everyone, from electronic hobbiest to small electronic companies.
I've found on the internet some of these tools but they are very specific to a microprocessor/flash model or board configurations, while i want to develop something which is general purpose (uC/flash independent). This requires the ability from the user to provide some sort of description of the system to be programmed, the uC BSDL file, how the flash device is connected, and how the flash device works.
So, as a first step, the following features will be implemented:

- programming of flash memories connected to a single JTAG compliant device (e.g. a microcontroller)
- BSDL file import (BSDL files are availables for free from uC manufacturer websites)
- manual description of flash interconnections with uC through an easy to use GUI
- manual description of flash signals handshake in order to perform actions like write/read/erase commands (these informations can be found in flash datasheets)
- an HW interface, it can be either the PC parallel port or a more "clever" device that use a serial RS-232 or USB connection.

If you're interested in this project please let me know! My e-mail address is onesim@tiscalinet.it

Electronic Eng. Simone Pedruzzi

u-boot-1.3.1.tar.bz2 (6.919.821 bytes)


Copyright (c) 2007 by Simone Pedruzzi - E-Mail