sl100

1. Download SPLat Firmware

Download this firmware file for your controller. More information about the upgrade process can be found in the Knowledge Base.

************************* SL100 Revision History ***********************************
*
* V3-00         11/12/2006 Initial release
*
* V3-10         12/1/2007 Bug fixed in PERMSTORE module.
*
* V3-11         1/2/2007 Bug fixed in the STSCALE mechanism which would prevent the
*               correct functioning of this instruction with certain numbers. OBCB multi 
*               channel software counter module added, 8 channels implemented on inputs 
*               0 - 7. Handling of expansion I/O altered to spread the processor interrupt 
*               loading over several timer interrupt cycles.
*
* V3-12         17/8/2007 CPU peripheral instruction added to change PWM frequency:
*               SPxCmd1, Cmd=0  U(0)  Set PWM frequency:
*                                     0	  16000	Hz
*                                     1	  8000	Hz
*                                     2	  4000	Hz
*                                     3	  2000	Hz
*                                     4	  1000	Hz
*                                     5	  500	Hz
*                                     6	  250	Hz
*                                     7	  125	Hz
*
*               Xwire V1-1 expansion protocol added. Task que timer base can be set between 1 - 255ms by an 
*               SPxCmd1, Cmd=1 U(0) command (default is 10ms). TSP interface has been removed.
*
* V3-13         15/2/2008 CPU peripheral instruction to change PWM frequency was not implemented in V3-12
*               as advertised, but is now implemented in V3-13. A bug has been fixed in the task que timer 
*               code which would cause improper operation for time delays using the "fStTimeSince" instruction 
*               if the delay time exceeded 8,388,607d. A new CPU call SPxPoll1 (Argument=7) returns the number 
*               of tasks running in the SPLat task que. "Reason for reset" byte now has bit 0 implemented which 
*               is set when the SPLat interpreter encounters the new "WarmBoot" instruction. The OBCB peripheral
*               now has the ability to have the number of channels specified and an offset added to allow the OBCB
*               inputs to be positioned anywhere in the controllers memory map, including expansion I/O. The form 
*               of the instruction is "$F5 $2C NumberOfChannels StaringInput". The number of channels is limited
*               by the compilation variable "OBCB_channels".
*
* V3-14         16/6/2008 A vulnerability has been fixed in the Xwire protocol sequencer that could cause the Xwire module
*               to stream TX characters if a timing error occured in the received message (ie: message not arriving within
*               Xwire time parameters). The Xwire comms receive structure now uses an interrupt and small circular buffer
*		to eliminate comms errors when the receive baud rate is slightly higher than that of the SL100. A bug has
*		been fixed in the MemToUV and UVtoMem instructions which would not allow the last byte to be accessed. The
*		FixtoU instruction now preserves W. Timing issue fixed when using the SPxTxfrU instruction, the symptom of 
*               which was that input data would be corrupted when using this instruction. Bug fixed in Xwire protocol which 
*               would cause long corrupted messages to be sent if the data length was set to zero in either slave or master mode.
*
* V3-15         25/6/2008 High drive strength enabled on all PWM pins used in this design to improve the accuracy of the generated
*               analogue voltages. Xwire protocol modified so that transmit messages and received data is only tranfered to and from
*               SPLat memory between the execution of SPLat instructions. This has been done to make it easier for the user
*               to transfer multibyte variables (ie: floating point) without corruption. First cut of MODBUS master.
*
* V3-16         24/3/2009 MODBUS master bug in function 1 and 2 fixed. Bootloader bug fixed which could prevent successful reflashing
*               of a board if NVEM alters memory to something other than $FF after the end of the SPLat program. Demo program feature 
*               removed to free up space and resources. User program space reduced by 4096 bytes to allow for future code expansion. 
*               User now has 22,016 bytes for program and NVEM storage (previously 26,112 bytes). The FixtoU instruction now preserves W.
*
* V3-17         8/1/2010 IEEE floating point format <--> SPLat floating point format conversion routines added to make the use of touch
*               screens easier. 16 bit signed and unsigned <--> SPLat floating point routines added to make working with touch screens 
*               easier. MODBUS memory referencing instructions in WORD mode now have the starting address multiplied by 2 when processed 
*               if the address is in the range 3000 - 3999. The ensures correct behaviour when using SPLat products with touch screens 
*               and other MODBUS devices. Function Types 6 (preset single register) and 16 (preset multiple registers) are affected in 
*               MASTER mode. SLAVE functions 3 (Read memory), 6 (preset single register) and 16 (preset multiple registers) are affected.   
*               An SPxPoll4 0,!CPU returns the floating point temperature of the CPU chip in �C at locations U(0) --> U(3). 
*               An SPxPoll4 1,!CPU returns the floating point temperature of the CPU chip in �F at locations U(0) --> U(3).
*               Modified SPLat comms to allow much faster download speeds (up to 30 times faster). This firmware is fully backward
*               compatible with older versions of SPLatPC in terms of downloads, but to get the benefit of the faster downloads,
*               the user will need SPLatPC Version 10.21.1 or higher.
*
* V3-18         19/1/2010 LCD buffer driver added to the SL100 to allow the LCD buffer to be fully manipulated by SPLat LCD program 
*               commands. Using the SL100 as a MODBUS slave, the LCD buffer can be displayed on a touch screen, by reading memory in 
*               the range 2000 - 2039.
*
* V3-19         25/3/2010 Fixed a bug in the comms RX interrupt handler which would cause the board to reset if being used in any UART
*               profile with parity enabled. MODBUS RX handler modified to be active all the time rather than only after the UART
*               transmitter has finished sending. This has been done because several MODBUS devices we have used ignore the MODBUS
*               specification and reply immediately rather than waiting 3.5 character times before replying. MODBUS master mode is now
*               capable of sending the LCD buffer using function 16 (preset muliple registers) if the address range is set to 2000 - 2079.
*               The CommRunScript and CommHaltScr commands will now wait for the MODBUS master script parser to be actually stopped
*               before HALTing or changing the script to be executed, respectively.
*
* V3-20         19/4/2010 Jindexing has been applied to the instructions "FixToMem16S", "FixToMem16U", "FloatMem16U" and "FloatMem16S". 
*               A Bug has been fixed in the signed versions of these instructions. New instruction added "fSTSinceMark" which loads W 
*               with the time since the tasks private timer was set using a "marktime" instruction. This instruction only works in the 
*               task que. Board reports SPLat dialect 22.
*
* V3-21         6/5/2010 Added counter which is incremented whenever a successful transaction is completed (Xwire slave mode)
*               or whenever the end of script table is encountered (Xwire master mode). A new instruction is able to 
*               read the value of this counter and clears the counter to zero. Two new instructions have been added 
*               which facillitate the changing of Xwire modes and scripts while a program is running. XwireStop will
*               command the Xwire communication module to stop after the current transaction and return to an idle
*               state. XwirePollIdle will return X=true if the Xwire comms module is idle. The current Xwire slave
*               and Xwire master configuration instructions work as previous but will stop the Xwire comms module and
*               stall the SPLat interpreter until the Xwire comms module is actually idle (has completed current
*               transaction). For applications where the SPLat interpreter must not be stalled, the user should stop
*               Xwire comms, poll until it is idle then run the configuration instruction. If stalling the program
*               is not important, the configuration instruction can be used by itself. If Xwire is not currently
*               running when an Xwire configuration instruction is executed, there is no stalling of the users program.
*
* V3-22         18/6/2010 Abitrary string communications protocol added. This protocol allows the user to create and send ASCII
*               and binary strings and receive and parse same. Simple 8 bit addition and subtraction, both with and without carry
*               instructions have been added. The carry/borrow bit for these instruction is held in the R register. Non destructive 
*               floating bit compare and go instructions have been added. Bug fixed which prevented the BranchM instruction from
*               being jindexed.
*
* V3-23         1/7/2010 Added the RtoX instruction.
* 
* V3-24         6/7/2010 String protocol buffer pointers were not being re-initialised. This became evident when a program
*               error occurred and the protocol was re-started.
*
* V3-25         13/7/2010 Bug fixed in the COMTX_Space instruction which would return the number of bytes in the buffer rather 
*               that the number of free bytes.
*
* V3-26         20/7/2010 Bug fixed in Xwire slave sequencer, other minor Xwire improvements to improve robustness in the slave
*               mode when there are inadvertantly two Xwire masters on the bus.
*
* V3-27         12/8/2010 Xwire TX and RX state machines now re-initialise themselves immediately that they are disabled. This
*               has been done to prevent unwanted beaviour when there are multiple slaves with the same address on the Xwire bus (PKS).
*               A bug has been fixed in the SPI module which may cause expansion I/O to be ignored depending on the power up data contents
*               of the shift registers.
*
* V3-28         19/5/2011 MODBUS/SPLat/String protocol UART RX interrupt routine and UART interrupt vectors modified to recover 
*               correctly from UART overrun errors. Bug fixed in MODBUS which would cause the 3.5 character delay timer not to be 
*               initialised if the selected baud rate was the same as the current baud rate. Xwire RX interrupt routine and UART
*               interrupt vectors also modified to recover from overrun errors. MODBUS code modified to always return idle status
*               when re-initialised.Added 10 new floating point compare instructions which set X either true of false depending on the 
*               floating point comparison. They are non destructive to W and Q. Added "COMRX_fGetNum" instruction to string comms protocol 
*               to allow the extraction of numbers from the ASCII string contained in the receive buffer. The routine will parse both signed 
*               integer and signed decimal numbers and return with the result in W. The SPLat result register R will be zero if a number was 
*               successfully parsed or 1 if a valid number could not be parsed. Added COMRX_StrFind and iiPrintNVText instructions. Bugs 
*               fixed in iiPrintFill and COMRX_peek instructions. Changed buffer arrangements for the LCD driver and string comms protocol 
*               so that the string comms protocol can send strings of up to 255 characters from a single string comms instruction. Previously, 
*               a limit of 40 characters applied to the iiPrintText, iiPrintFill and iiPrintNVText instructions. Also, if the TX buffer was 
*               full when any String protocol instruction which resulted in characters being appended to the TX buffer, an error would be 
*               generated and the SPLat program reset. The user was expected to use the COMTX_Space instruction to ensure this did not 
*               happen. Now, the TX buffer can be written at any time with the caveat that if the buffer becomes full during the execution 
*               of the string comms instruction, the entire SPLat program will be stalled until the currently executing instruction can 
*               deposit all of its characters into the TX buffer. The TX buffer is 128 characters in length. When the destination is the 
*               user RAM, the instructions still execute atomically providing the string fits within the user RAM. If not, an error is 
*               generated and the SPLat program is reset. Reports dialect 27.
*
* V3-29		14/10/2011 Bug fixed in COMRX_Peek instruction which would cause it to return a result when peeking at the first character
* 		in the buffer when no characters where in the RX buffer. Also fixed in the same instruction, was a bug which caused it to
*		return the byte after the one referenced by X.
*
* V3-30         Bug fixed in MODBUS slave function 2 which could cause eratic behaviour if more than 8 inputs state were polled for.
2. Download SPLat reFlash

Download then run SPLat reFlash on your PC. This tool will upload the firmware to your SPLat controller. You will need a serial port or USB to serial adaptor and may also need a PC232 programming cable.

Windows 8.x Users

The first time you run reFlash, you will need to do so as the Administrator, otherwise you will see an error about HIRESTIMER.OCX not being registered. After you’ve done this once, you can run it normally in future.

If you’re not sure what you want, give us a call: +61 3 9773 5082

Do you want to know more?

icon
Head to our
Knowledge Base.

For more information on product detail, software, references and lots more.

learn More
icon
Ready to buy?
Go to the Order Form.

If you already know what you’re after head straight to our full product order form.

Order Now
icon
Need support?
Get in touch.

If you’re unsure what you want or need, or have any questions contact us, we’re here to help.

Let’s chat

If you’re not sure what you want, give us a call: +61 3 9773 5082