KC7WW's COLLECTION OF UTILITIES AND APPLICATION PACKAGE FOR THE EVM56002 ------------------------------------------------------------------------ Version 3 - March 1996 ----------------------- This version of the package accompany the article in the August 1995 issue of QEX: "Using the Motorola DSP56002EVM for Amateur Radio DSP". The purpose of this package is intended to get you started developing amateur radio applications with the DSP56002EVM. It assumes you have some prior experience with the EVM56002, i.e., have assembled code and used the debugger a little bit. Please read the disclaimer provided with this note regarding the use of the enclosed code examples. --Acknowledgements-- The bulk of the more interesting applications are based on the work of the Alef Null group. I acknowledge the efforts of Jarkko Vuori (OH2LNS), Kaj Wiik (OH6EH), and their associates, for their excellent work. I am also most grateful for Jarkko Vuori's permission to port and post the Leonid monitor code for the EVM56K. I recommend that the documentation of the Alef Null project be obtained for reference purposes from jeeves.hut.fi. There are several components: source, tools1, and doc. It contains an appropiate introduction to what DSP is and also discusses modem theory as applied to the various software modules in the package. Makes for interesting reading. Some exellent examples from Pawel Jalocha (SP9VRC) are included with his kind permission. Thanks Pawel for sharing your fine workmanship! I can recommend all the modems, denoiser/filters, and FSKIFACE works wonderfully with JVFAX7.1 (another outstanding program). I also include a contribution by Danie, ZS6AWK - I am sure that this will also be appreciated by others. --Radio interface-- ------------------------------------------------------------------------- NOTE: Using this interface to your EVM requires NO modifications to your EVM. Please read the disclaimer at the end of this note. ------------------------------------------------------------------------- I included the schematic of my radio interface for the EVM56K. This schematic is basically adapted from the DSP4 and simplified to the bare essentials. The reader is referred to the DSP4 documentation for further details. Also note that if you want to use the interface schematic, that a few jumpers need to be changed: 1) J8 should have all four jumpers in standard mode, i.e., parallel to the short edge of the PCB. 2) J10 should have PC0 and PC1 jumpers installed. Just a note about FLASH EPROM: I have used the Atmel chip and have had good luck with it. To program the FLASH, first load your code using the debugger, then load the FLASH program supplied with the kit. Finally execute the FLASH program. The start address is given in the FLASH program, just look at the source code. When all is done, remove the debugger and push the "reset" button. The DSP will then boot from the FLASH EPROM. --EVM and DSP4-- The EVM56002 and the DSPCARD4 are very similar in many respects - deceptive differences, however will puzzle the beginner and expert alike. When porting the code between these two platforms be mainly aware of the following: 1). The DSP4 has seperate spaces for P, X, and Y - the EVM56K only has P/X, and Y. Be careful with X memory allocation. Also be aware of tricks that use a common address pointer that addresses both X and Y at the same time. The DSP4 software examples occasionally uses this method. 2). There is only one audio source connected on the EVM, i.e., "MIKE" input. The DSP4 allows a selection. Thus make sure that any code that you port has "MIKE" selected. You may optionally put the 20dB pad in if you need more gain at the cost of poorer audio quality. Also note that there is only one crystal on the CODEC, i.e. 24.5MHz, and it is connected to the WRONG crystal port, i.e. where the 16MHz crystal is supposed to be. This is no problem, though when you initialize th CODEC, make sure it looks for the 16MHz crystal - the 24MHz crystal is then selected and all is fine. 3). To use the Leonid monitor on the EVM, first load "BIOS", then your application(s) and finally "go 0" to start the code. If you plan to use the "SPY" program, or any other program that use the SCI, for that matter, you need to switch to the "terminal" port on the EVM as all communications using the EVM's SCI port is through that port. 4) Please look at the code for BIOS.ASM before using it: a) You may wish to change the SCI baudrate to another value than the 9600 baud that I used. b) For a faster EVM clock, enable the speed you wish. I have been using 40 MHz to maintain compatibility between several old and new systems. My EVM will run quite happily at 80 MHz. This goes for the 1200 baud FSK modem as well. In that case you also need to make sure that you use a program that can talk in "KISS" mode, i.e. something like NOS will do just fine. Note there are two experimental 1200 baud modems in the package. The OH2LNS version, FSK.ASM, is somewhat sensitive to audio input level - set this not more than 180 mV. Pawel's modem, FSK1200.ASM, is fairly insensitive to the input level. 4). If you are not a NOS guru, the following commands will let you monitor raw traffic (make sure you have the appropiate serial port, attached in your "autoexec.nos" file). trace ax0 211 (then push F9, I assume "ax0" is your ax25 device) 5). When NOS is used, ensure that NOS and the EVM is communicating at the same baudrate. Please check the baudrate that Leonid is using by the setting in "baud" (line 182) - set it to the required rate and re-assemble BIOS.ASM. 6). You must use my version of the "leonid.asm" include file when building programs that use the Alef Null Leonid monitor calls. --Other Hints & Kinks-- 1) The EVM has only provision for using MIC input - LINE inputs are grounded through a capacitor. If you wish, these LINE inputs can be enabled, though this modification should only be attempted by a skilled person. You will need to work under good lighting and use a magifier glass to inspect your work. This one voids your warranty - beware! step 1). Referring to the CODEC: find the track running from pin 18, towards C207. Cut it close to C207. The LINE inputs are now disconnected from ground. step 2). Turn the EVM upside down and find the feed-thru tracks from pins 15 and 16. Between these two feed-thru holes, is a "L" shaped short track that feeds through to pin 16. This "L"-shaped track ties LINEL and LINER together - cut it. Now LINEL and LINER are independant. step 3). If you wish to connect LINEL and LINER to an independant input conditioning circuit, you may wish to use the feed-though holes on the bottom of the EVM for solder pads to gain access to LINER (pin 16) and LINEL (pin 18). I choose to bridge these pads so that MICR/LINER and MIRL/LINEL becomes connected. I did this modification only to maintain software compatibility with some programs the use LINE as input. OTHERWISE IT IS BEST TO LEAVE THIS ALONE. --Applications-- These are native EVM56002 applications (KC7WW) ----------------------------------------------- EVMPCB PLT -- KC7WW's EVM radio interface schematic in HPGL format EVMPCB SCH -- KC7WW's EVM radio interface schematic in ORCAD format RTTY ASM -- KC7WW's HF RTTY/AMTOR/Pactor (use with PCTOR) RCOEFFS ASM -- filter coefficients for above TTYCD ASM -- CODEC support for RTTY modem INOUT ASM -- CODEC talk-thru test BOOT ZIP -- This was a contributed program by Chris Hanna Please read the comment carefully before using FLASH ASM -- Some fixes to the released programmer, but also please read the comments before using. These applications are based on the LEONID kernel port -------------------------------------------------------- BIOS ASM -- The source code for the ported Leonid kernel BIOS CLD -- loadable object INTEQULC ASM -- essential include files IOEQULC ASM LEONID ASM -- KC7WW's ported Leonid include file TALK ASM -- KC7WW's CODEC talk-thru test FSK ASM -- Jarkko's 1200 baud Bell 202 modem for the EVM BANDPASS ASM -- Jarkko's narrow CW filter COEFF ASM -- filter coefficients for above QRMQRN ASM -- a slightly modified version of Jarkko's LMS denoiser Pawel's (SP9VRC) programs -------------------------- CORELFLT ASM -- Correlation-based CW denoiser FFT-CUT ASM -- Denoiser based on the spectral subtraction method NEWQPSK ASM -- Experimental OFDM modem (15-parallel tones) FSK1200 ASM -- 1200 baud packet modem FSKIFACE ASM -- FSK interface for FAX, HF FSK etc. TXTEST ASM -- Checking transmitter filter response WEAKSIG ZIP -- Real-time FFT signal analyser for weak signal detection Great set of programs for real-time FFT displays. Danie's (ZS6AWK) programs -------------------------- NOS AWK -- Some notes on EVM usage and NOS hints EVM56K0 ZIP -- Interface layout in Tango format EVM56K0 ZIP -- Interface schematic in ORCAD format TSTSCI ASM -- Test code for SCI interface (NOS) a collection of notes for running the EVM with NOS -------------------------------------------------------- README -- suggestions for running NOS with modem programs FSK.ASM, FSK1200, NEWQPSK.ASM AUTOEXEC NOS -- KC7WW's setup for the EVM ----------------------------------------------------------------------------- I trust that this collection of examples is of use. Please let the authors know that you are using their software and that you appreciate their indivdual efforts. The main thing is - please contribute your own efforts so that we all can grow in our experiences. 73's --Johan Forrer (KC7WW) ----------------------------------------------------------------------------- DISCLAIMER NOTICE ----------------- The code, schematics, and examples in this package are provided for personal use without any warranty on an "as is" basis - "what you see is what you get". The code examples or schematics may not be used for resale or in any commercial or government applications without written concent of the author(s). The author and authors of the included software examples are not liable for any mishaps due to the use and/or abuse of this software package. -----------------------------------------------------------------------------