DSP-10: Installing UHF3 to DSPx Flash Bank 1
DSPx Flash Bank 1 - A 512 KByte plug-in flash memory is part of the DSPx board. This memory can be erased and programmed electrically, making it versatile. Bank 1, of banks 0 to 7, is a 64 KByte program area that can be transferred to the ADSP-2185 DSP and executed at power-up, or a reset. Since flash memory is permanent until deliberately erased, we can cause the DSP to come up running without any extra steps.
This web page discusses the transfer of an Intel Hex program file, distributed for the DSP-10 into bank 1. This file is named UHF3Xzzz.HEX, where zzz is the version number, such as 34 or 35A. Note that flash memory can be used for other purposes, but we are focused here on this particular use. By loading flash bank 1 with UHF3Xzzz.HEX it will not be necessary to load UHF3Xzzz.EXE each time you start your DSP-10. One requirement for programming Bank 1 is that Flash Bank 0 must contain a copy of the "DSP Monitor" program. Information for working with Flash Bank 0, is covered separately. In working with Bank 1, error messages will be generated if the monitor is not present.
Jumpers The DSPx board has a pair of jumpers that are critical for ensuring that Bank 0 is not accidentally damaged. These jumpers can be used as standard mechanical slip-on shorts, or in the case of JP1, it can be made more convenient by bringing the pins to a SPST switch. It is strongly recommended that you do not just poke wire in the board holes, with the potential for poor connections.
Jumper JP0 prevents any changes to Flash Bank 0 (the Monitor). JP0 SHOULD REMAIN OPEN during all steps of this procedure.
Jumper JP1 determines which flash bank will be used as a source when loading a program to the DSP. If JP1 is open (Open circuit)), Bank 0 will be used and the monitor will be loaded. If JP1 is shorted, Bank 1 is shorted, Bank 1 will be used (normally the UHF3 for the DSP-10).
Summary of Steps Flash Bank 1 programming details are given below, but in summary:
Step-by-Step This process is controlled by the FL1B.BAT DOS batch file. It, along with the programs being called, have screen comments showing the progress of the loading. The following is a step-by-step description of the human control required:
FL1B.BAT FLASHUTB.EXE EZLD.COM UHF3Xzzz.HEX XFINDMN1.EXE XFLASH1.EXE
What if there are problems? Here are a few ideas, beyond just repeating the steps above:
During the hex-file loading process, one of the programs used, XFLASH1.EXE, writes a diagnostic file called XF_TRACE.TXT It contains much of the same material that was on the screen during the loading process, BUT the trace file did not scroll away. A sample of this file for a successful load is available here.
There is an LED on the DSPx board marked FL1. A couple of checks can be done simply using the indicator:
EZLD.COM is used to place FLASHUTL.EXE into DSP memory (and to run it). If EZLD is not talking properly to the Monitor, it will fill the screen with HEX data bytes. Proper operation has a sign-on line and then is quiet until the load is finished (a few seconds) when two more lines of status are shown.
There are several versions of Monitor that may be in use. For purposes of loading Bank 1, any of these may be used.
Files for loading Bank 1 For convenience, all of the files listed above in item 1, except the UHF3Xzzz.HEX, are available here. in a single ZIP file. The current version of the UHF3Xzzz.HEX (such as UHF3X35A.HEX, or later) is linked on the DSP-10 home page. Look for "DSP Program."
Flash integrity The check sums at the end of the loading process can be repeated in the future by using a terminal program to send a 'C' command to the FLASHUTB, running in the DSP. If there is ever a question about the flash data this could be helpful. Save the XF_TRACE.TXT file and the check sum numbers for each sector and the entire bank will be available. These are also listed in the ZIP for UHF3Xzzz.HEX
Thanks - Many thanks to Mike, KD7TS, and Jimmy, W7CQ, for helping me at all levels from concepts to writing code to many hours of testing.
This was revised 3 May 2013. Bob Larkin, W7PUA