Since the Ubicom SX instruction set is a superset of that of the
Microchip PIC16C5X, see also my PIC page.
The information on this web page is based on my own experiences with the
SX and SX-Key, both using them on personal projects and in the course of my
employment. However, I am speaking only for myself, and my comments do not
reflect the opinions of my employer, Ubicom, or other party.
Disclaimer: since August 2002 I've been an employee of Ubicom. However,
nearly everything here predates that.
Loren Blaney's SxSim,
a free screen-oriented simulator for the SX that's very easy to use.
Version 1.11 now supports the Scenix SASM assembler
Loren Blaney's SxProg allows the use of the
Parallax SX-Key from a
DOS command line to program, verify, or read SX parts. Great for use
in batch files or Makefiles. Unfortunately it doesn't work with the
new Revision E SX-Key.
Richard Ottosen's LstFix can postprocess listing
files from MPASM to remove unnecessary lines and make them easier to
read.
Geoff Jackson's SxTrans translates the listing
file output of the Parallax SX-Key assembler to work with SxSim.
(no longer necessary with version 1.10 of SxSim)
Pavel Baranov offers (free for non-commercial use) his
C2C
C compiler and P2C
Pascal compiler
The SX-Key allows you to configure the erase and program times. The SX
was originally specified to use 10 ms/word program times. However, the
20-Feb-1998 errata for the revision 2.1 parts states that 100 ms should
be used instead.
There is a temptation to find the smallest values that seem to work, and then
to back off somewhat. For example, I've found that at a setting of 50 ms,
the SX-Key rarely reports errors. (Note that it sometimes reports programming
errors even at the suggested 100 ms timing.) However, you should exercise
extreme caution in your choice. I found out the hard way that just because
the SX-Key doesn't report an error, doesn't mean that the part has programmed
properly.
Some code I was debugging was behaving very strangely, and I just couldn't
figure it out. Finally I tried increasing the programming time back to
100 ms, and all the problems went away!
Apparently it is not possible to verify the flash memory in the SX at the
normal operating speed. If the flash cells aren't programmed long enough,
they will read correctly with the long cycle time used in programming mode
and by the IREAD instruction, but not at the full operating speed.
Parallax has now made available the serial commuication protocol specifications
for their new SX-Blitz programmer. This will be really helpful for
those of us that want to use Linux, FreeBSD, plain old DOS, or other
development environments.
Scenix has published both the serial and parallel programming
specifications for the SX; both are available from the
Scenix Technical Support Specifications Page.
Apparently they are considering publishing the specifications for the
in-circuit debugging features as well, but have not yet made a decision.